mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-14 05:45:37 +00:00
Bug 417384, r+sr=peterv, a=mtschrep
This commit is contained in:
parent
922f5f425a
commit
5da47ef80d
@ -100,7 +100,7 @@ nsPlainTextSerializer::nsPlainTextSerializer()
|
||||
{
|
||||
|
||||
mOutputString = nsnull;
|
||||
mInHead = PR_FALSE;
|
||||
mHeadLevel = 0;
|
||||
mAtFirstColumn = PR_TRUE;
|
||||
mIndent = 0;
|
||||
mCiteQuoteLevel = 0;
|
||||
@ -406,8 +406,9 @@ nsPlainTextSerializer::AppendElementStart(nsIDOMElement *aElement,
|
||||
mContent = 0;
|
||||
mOutputString = nsnull;
|
||||
|
||||
if (!mInHead && id == eHTMLTag_head)
|
||||
mInHead = PR_TRUE;
|
||||
if (id == eHTMLTag_head) {
|
||||
++mHeadLevel;
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
@ -436,8 +437,9 @@ nsPlainTextSerializer::AppendElementEnd(nsIDOMElement *aElement,
|
||||
mContent = 0;
|
||||
mOutputString = nsnull;
|
||||
|
||||
if (mInHead && id == eHTMLTag_head)
|
||||
mInHead = PR_FALSE;
|
||||
if (id == eHTMLTag_head) {
|
||||
--mHeadLevel;
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
@ -464,7 +466,7 @@ nsPlainTextSerializer::OpenContainer(const nsIParserNode& aNode)
|
||||
PRInt32 type = aNode.GetNodeType();
|
||||
|
||||
if (type == eHTMLTag_head) {
|
||||
mInHead = PR_TRUE;
|
||||
++mHeadLevel;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
@ -475,7 +477,7 @@ NS_IMETHODIMP
|
||||
nsPlainTextSerializer::CloseContainer(const nsHTMLTag aTag)
|
||||
{
|
||||
if (aTag == eHTMLTag_head) {
|
||||
mInHead = PR_FALSE;
|
||||
--mHeadLevel;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
@ -512,7 +514,6 @@ nsPlainTextSerializer::AddLeaf(const nsIParserNode& aNode)
|
||||
NS_IMETHODIMP
|
||||
nsPlainTextSerializer::OpenHead()
|
||||
{
|
||||
mInHead = PR_TRUE;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
@ -160,7 +160,7 @@ protected:
|
||||
|
||||
inline PRBool DoOutput()
|
||||
{
|
||||
return !mInHead;
|
||||
return mHeadLevel == 0;
|
||||
}
|
||||
|
||||
// Stack handling functions
|
||||
@ -171,8 +171,7 @@ protected:
|
||||
|
||||
protected:
|
||||
nsString mCurrentLine;
|
||||
|
||||
PRPackedBool mInHead;
|
||||
PRUint32 mHeadLevel;
|
||||
PRPackedBool mAtFirstColumn;
|
||||
|
||||
// Handling of quoted text (for mail):
|
||||
|
@ -143,6 +143,7 @@ _TEST_FILES = test_bug5141.html \
|
||||
test_bug414190.html \
|
||||
test_bug414796.html \
|
||||
test_bug416383.html \
|
||||
test_bug417384.html \
|
||||
$(NULL)
|
||||
|
||||
libs:: $(_TEST_FILES)
|
||||
|
55
content/base/test/test_bug417384.html
Normal file
55
content/base/test/test_bug417384.html
Normal file
@ -0,0 +1,55 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=417384
|
||||
-->
|
||||
<head>
|
||||
<title>Test for Bug 417384</title>
|
||||
<script type="text/javascript" src="/MochiKit/MochiKit.js"></script>
|
||||
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
|
||||
</head>
|
||||
<body>
|
||||
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=417384">Mozilla Bug 417384</a>
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none">
|
||||
|
||||
</div>
|
||||
<pre id="test">
|
||||
<script class="testbody" type="text/javascript">
|
||||
|
||||
/** Test for Bug 417384 **/
|
||||
|
||||
var expectedSerialization = "about:blank document";
|
||||
function testSerializer() {
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
|
||||
var doc = document.getElementById('test_iframe').contentDocument;
|
||||
doc.body.textContent = expectedSerialization;
|
||||
var head1 = doc.createElement("head");
|
||||
doc.body.appendChild(head1);
|
||||
var span = doc.createElement("span");
|
||||
head1.appendChild(span);
|
||||
span.appendChild(doc.createTextNode("before inner head\n"));
|
||||
span.appendChild(doc.createElement("head"));
|
||||
span.appendChild(doc.createTextNode("\nafter inner head"));
|
||||
|
||||
var encoder =
|
||||
Components.classes["@mozilla.org/layout/documentEncoder;1?type=text/html"]
|
||||
.createInstance(Components.interfaces.nsIDocumentEncoder);
|
||||
encoder.init(doc, "text/plain", 0);
|
||||
encoder.setCharset("UTF-8");
|
||||
var out = encoder.encodeToString();
|
||||
ok(out == expectedSerialization, "Wrong serialization!");
|
||||
}
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
addLoadEvent(testSerializer);
|
||||
addLoadEvent(SimpleTest.finish);
|
||||
|
||||
</script>
|
||||
</pre>
|
||||
<iframe id="test_iframe" src="about:blank"></iframe>
|
||||
</body>
|
||||
</html>
|
||||
|
Loading…
Reference in New Issue
Block a user