Closed
Bug 290081
Opened 19 years ago
Closed 19 years ago
font size can override <hN> tags if more than one <font> is opened incorrectly
Categories
(Core :: DOM: HTML Parser, defect)
Tracking
()
RESOLVED
FIXED
People
(Reporter: plachinf, Assigned: mrbkap)
References
()
Details
Attachments
(2 files)
1.26 KB,
text/html
|
Details | |
2.98 KB,
patch
|
bzbarsky
:
review+
rbs
:
superreview+
asa
:
approval1.8b2+
|
Details | Diff | Splinter Review |
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322) Build Identifier: ver 1.0.1 and 1.0.2 Firefox doesn't display text modified by <Hn>text</Hn> codes correctly. Found by accident when writing pages in code. Display file link to demonstrate. IE displays text properly formatted. Netscape 4.72 also displays text correctly. Reproducible: Always Steps to Reproduce: 1. use the <H1>text</H1> html code on a web page. 2. display the page. 3. Text won't display in LARGER font as it should. Actual Results: affects all pages. Expected Results: displayed the text in a larger typesize.
Comment 1•19 years ago
|
||
Ofcourse we support headings. But you left a <font size="4"> open at the top ... That's why everything is displayed in size 4.
Status: UNCONFIRMED → RESOLVED
Closed: 19 years ago
Resolution: --- → INVALID
Reporter | ||
Comment 3•19 years ago
|
||
The <font size="4"> open at the top of the document is for the ENTIRE document with the </Font> close at the bottom of the page. Open the file in IE and you'll see that it formats correctly!
Status: RESOLVED → UNCONFIRMED
Resolution: INVALID → ---
Comment 4•19 years ago
|
||
(In reply to comment #3) > The <font size="4"> open at the top of the document is for the ENTIRE document > with the </Font> close at the bottom of the page. Open the file in IE and > you'll see that it formats correctly! But it also influences the headings ...
Comment 5•19 years ago
|
||
I've added 4 headings to your testfile, just before the <font> tag. Each heading gets displayed correctly.
Comment 6•19 years ago
|
||
"The <font size="4"> open at the top of the document is for the ENTIRE document" HTML forbids this. Any block-level element causes the <font> to be implicitly closed. Mozilla tries to "do the right thing" by reopening the <font> later on--this is known as "residual style" and helps fix up web pages with invalid HTML code. In this case you end up with Mozilla seeing something like: <h1><font size="4">text</font></h1> so whatever size is implied by the <h1> is lost. You can use http://validator.w3.org/ to see that the URL you provided has invalid HTML in it.
Comment 7•19 years ago
|
||
Over to parser. Probably a wontfix, I don't think residual style is being tweaked anymore.
Assignee: firefox → parser
Component: General → HTML: Parser
Product: Firefox → Core
QA Contact: general → mrbkap
Version: unspecified → Trunk
Assignee | ||
Comment 8•19 years ago
|
||
Taking. The problem here is that there are *two* <font> tags running around. The code that was added for bug 77352 only checks the immediate parent tag to special-case this, so it's still broken.
Assignee: parser → mrbkap
Status: UNCONFIRMED → NEW
Ever confirmed: true
Assignee | ||
Updated•19 years ago
|
Status: NEW → ASSIGNED
Assignee | ||
Comment 9•19 years ago
|
||
This just makes us check the whole context stack instead of the previously-opened tag when determining whether or not to use the magical attribute. I wonder if we could do this only for <font> instead of all residual style tags...
Attachment #180559 -
Flags: review?(bzbarsky)
Comment 10•19 years ago
|
||
Comment on attachment 180559 [details] [diff] [review] patch v1 So how often do we get into the case where we need the |isHeadingOpen| boolean? If it's not that common, perhaps we should do the HasOpenTagOfType() check on-demand and have a boolean indicating whether we've done it?
Assignee | ||
Comment 11•19 years ago
|
||
I'm not sure what you mean. This only happens when there's a (malformed) inline element trying to contain a <hN> tag that has a size applied to it. We need the isHeadingOpen boolean whenever we're opening residual style tags (to make sure their size doesn't override the heading's).
Comment 12•19 years ago
|
||
Looking at the code, it looks like we only use the isHeadingOpen boolean in the following conditions: 1) Something on the stack has an mUseCount == 1. 2) The same something can contain aChildTag. So the question is, if we get to the line where we do + PRBool isHeadingOpen = HasOpenTagOfType(kHeading, *mBodyContext); in that patch, what is the likelhood of hitting the line where we do: + if(isHeadingOpen) { ? If it's close to 1, this is fine; if it's close to 0 then perhaps we should lazily set the boolean.
Comment 13•19 years ago
|
||
Comment on attachment 180559 [details] [diff] [review] patch v1 r=bzbarsky per discussion on irc
Attachment #180559 -
Flags: review?(bzbarsky) → review+
Assignee | ||
Updated•19 years ago
|
Attachment #180559 -
Flags: superreview?(rbs)
Assignee | ||
Updated•19 years ago
|
Summary: HTML header "Hn" codes unsupported → font size can override <hN> tags if more than one <font> is opened incorrectly
Comment 14•19 years ago
|
||
Comment on attachment 180559 [details] [diff] [review] patch v1 sr=rbs + while (count-- > 0) { To speedup understanding, I would have preferred (in this context) + while (--count >= 0) { but...
Attachment #180559 -
Flags: superreview?(rbs) → superreview+
Assignee | ||
Comment 15•19 years ago
|
||
Comment on attachment 180559 [details] [diff] [review] patch v1 This is a small fix that simply extends a quirk fix to more cases, seeking approval for 1.8b2.
Attachment #180559 -
Flags: approval1.8b2?
Comment 16•19 years ago
|
||
Comment on attachment 180559 [details] [diff] [review] patch v1 a=asa
Attachment #180559 -
Flags: approval1.8b2? → approval1.8b2+
Assignee | ||
Comment 17•19 years ago
|
||
Fix checked in.
Status: ASSIGNED → RESOLVED
Closed: 19 years ago → 19 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•