Closed
Bug 182021
Opened 22 years ago
Closed 22 years ago
Regression - Some HTML messages display blank in Simple HTML mode
Categories
(Core :: DOM: HTML Parser, defect)
Core
DOM: HTML Parser
Tracking
()
RESOLVED
FIXED
People
(Reporter: BenB, Assigned: harishd)
References
Details
(Keywords: regression, testcase)
Attachments
(2 files)
23.49 KB,
patch
|
hjtoi-bugzilla
:
review+
jst
:
superreview+
|
Details | Diff | Splinter Review |
23.81 KB,
patch
|
harishd
:
review+
harishd
:
superreview+
|
Details | Diff | Splinter Review |
See bug 138125 comment 27.
Probably caused by bug 177994.
I'm not surprised :-). May be Daniel's patch, in bug 180996, might fix the
problem :-/.
Reporter | ||
Comment 2•22 years ago
|
||
> I'm not surprised :-)
em...
> bug 180996
No, that bug is about the plaintext serializer, while this one is about the
sanitizer.
> while this one is about the sanitizer
oh. But, may be this is a similar issue ( mParserNode related ).
Note to test the html messages attached to bug 182021 when fixed since these
messages regressed from displaying in simple html with 11-18 and 11-19 trunk
builds to not displaying in simple html in 11-20 trunk builds. All platforms.
cc'in esther
Could some one tell me the steps to reproduce the problem?
Comment 6•22 years ago
|
||
Actually, it's bug 138125 where the messages are attached. To display such a
message, you'll need to manually add it to the folder file (as we still suffer
from bug 11076). Easy way is to create a local folder in MailNews, shut it down,
find the corresponding file under profile directory and replace it with the
message(s) file. Start Mozilla, view the message in different modes (View ->
Message Body As -> *).
Looks like CNavDTD::AddHeadLeaf() calls OpenHead() with an incorrect node!. That
is, OpenHead() is called ( done so to switch to head context in the sink -
HTMLContentSink ) on the sink for every child of head. This was not a problem,
before my checkin, because we used to call CloseHead() with the same child node
and therefore was able to match the open/close nodes in the sink rather
mozSanitizingSerializer. However, after my checkin a call to sink's CloseHead
always resulted in closing a matching start head tag, if there was one, and
therefore resulted in not closing the head children that got opened up by
OpenHead() calls. This is what, I believe, is the root cause of the regression.
Basically, CNavDTD needs spanking :->
Comment 8•22 years ago
|
||
*** Bug 181733 has been marked as a duplicate of this bug. ***
Updated•22 years ago
|
Flags: blocking1.3a?
With this patch CNavDTD ( and potentially other DTDs ) can add head content
without worrying about manually switching contexts ( body context -> head
context ) in the content sink. That is, CNavDTD used to call OpenHead and
CloseHead methods, with incorrect node info!, just to make the context switch
but with the patch the context switch happens automatically. This clean up
fixes the issue raised in this bug.
Attachment #107921 -
Flags: superreview?(jst)
Attachment #107921 -
Flags: review?(ben.bucksch)
Attachment #107921 -
Flags: review?(ben.bucksch) → review?(heikki)
Comment 10•22 years ago
|
||
Comment on attachment 107921 [details] [diff] [review]
patch v1.0
sr=jst if you rename AddHeadLeaf() to AddHeadContent() (as we discussed in
person).
Attachment #107921 -
Flags: superreview?(jst) → superreview+
Updated•22 years ago
|
Flags: blocking1.3a? → blocking1.3a-
Comment on attachment 107921 [details] [diff] [review]
patch v1.0
>Index: content/base/src/mozSanitizingSerializer.cpp
>===================================================================
>+mozSanitizingHTMLSerializer::AddHeadLeaf(const nsIParserNode& aNode)
>+{
>+ nsresult rv = OpenContainer(aNode);
>+ NS_ENSURE_SUCCESS(rv, rv);
>+ return CloseContainer(nsHTMLTag(aNode.GetNodeType()));
Why isn't there a call to AddLeaf in between those calls?
Otherwise the patch looks good.
Attachment #107921 -
Flags: review?(heikki) → review+
Assignee | ||
Comment 12•22 years ago
|
||
>Why isn't there a call to AddLeaf in between those calls?
Good question. The code in mozSanitizingSerializer::AddLeaf calls
DoOpenContainer ( Ben can explain why :-) ) if the node type is not "text", or
"entity", or "whitespace" and therefore could potentially leave a node unclosed.
Anyway, I should probably add the call to AddLeaf if the node type was "text",
or "entity", or "whitespace" and should call OpenContainer and CloseContainer
otherwise.
Status: NEW → ASSIGNED
Reporter | ||
Comment 13•22 years ago
|
||
> The code in mozSanitizingSerializer::AddLeaf calls
> DoOpenContainer ( Ben can explain why :-) )
Actually, I can't :-(. I don't know why the call is there. I didn't know the
APIs (mostly looked at nsPlaintextSerializer), nor anyone who does.
BTW: If you change something structurally, make sure that you don't regress the
code, it's security-relevant. Please test Mailnews' View|Message Body As|Simple
HTML feature thoroughly.
Assignee | ||
Comment 14•22 years ago
|
||
Addresses jst's and heikki's concerns. Ben, all the modes ( original | simple
html | plain text ) worked fine with the patch.
Comment 15•22 years ago
|
||
[Mozilla/5.0 (Windows; U; Win98; en-US; rv:1.3a) Gecko/20021212]
comment 5: After upgrading from 1.2 to 1.3a, the this bug was very easy to
reproduce:
1. Open Mozilla Mail
2. Compose
3. Type some simple message text like "Invisible in Simple HTML"
4. Ctrl+S and close the Edit Window
5. View|Message Body as|Simple Html
6. Select the new message in the "Drafts" folder
Actual Results: Message invisible in the Message Pane and Message Window
Expected Result: Message visible
Reproducible: always
Workaround: Select Original HTML or Plain Text
Sending the message as HTML or Text/HTML: the received message is still invisible.
Newer got this bug in 1.2b and 1.2.
Comment 16•22 years ago
|
||
Comment on attachment 109158 [details] [diff] [review]
patch v1.1
Can the patch be checked in now?
Assignee | ||
Comment 17•22 years ago
|
||
Comment on attachment 109158 [details] [diff] [review]
patch v1.1
Carrying forward r/sr=.
Attachment #109158 -
Flags: superreview+
Attachment #109158 -
Flags: review+
Assignee | ||
Comment 18•22 years ago
|
||
Fixed.
Status: ASSIGNED → RESOLVED
Closed: 22 years ago
Resolution: --- → FIXED
Comment 19•22 years ago
|
||
Great, seems to work again :)
*** Bug 178050 has been marked as a duplicate of this bug. ***
You need to log in
before you can comment on or make changes to this bug.
Description
•