Make the about:blank documents created by CreateAboutBlankContentViewer havethe same encoding as real about:blank documents (that is, UTF-8). Bug 380383,r+sr=jst
authorbzbarsky@mit.edu
Thu, 07 Jun 2007 00:13:04 -0700
changeset 2197 b52cb26ec9512da3c36c22ba0f83de9a74288208
parent 2196 cdcad92959a8076a9d9861a92c4daa285ce35f75
child 2198 11254ae7ef0b22e6b5dcc9207d69e3438189023c
push idunknown
push userunknown
push dateunknown
bugs380383
milestone1.9a6pre
Make the about:blank documents created by CreateAboutBlankContentViewer havethe same encoding as real about:blank documents (that is, UTF-8). Bug 380383,r+sr=jst
content/html/document/test/Makefile.in
content/html/document/test/test_bug380383.html
layout/build/nsContentDLF.cpp
--- a/content/html/document/test/Makefile.in
+++ b/content/html/document/test/Makefile.in
@@ -47,12 +47,13 @@ include $(topsrcdir)/config/rules.mk
 _TEST_FILES = 	test_bug1682.html \
 		test_bug1823.html \
 		test_bug172261.html \
 		test_bug255820.html \
 		test_bug311681.html \
 		test_bug311681.xhtml \
 		test_bug332848.xhtml \
 		test_bug359657.html \
+		test_bug380383.html \
 		$(NULL)
 
 libs:: $(_TEST_FILES)
 	$(INSTALL) $^ $(DEPTH)/_tests/testing/mochitest/tests/$(relativesrcdir)
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/content/html/document/test/test_bug380383.html
@@ -0,0 +1,40 @@
+<!DOCTYPE HTML>
+<html>
+<!--
+https://bugzilla.mozilla.org/show_bug.cgi?id=380383
+-->
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+  <title>Test for Bug 380383</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=380383">Mozilla Bug 380383</a>
+<p id="display">
+  <iframe id="f1" name="f1"></iframe>
+  <iframe id="f2" name="f2"></iframe>
+</p>
+<div id="content" style="display: none">
+  
+</div>
+<pre id="test">
+<script class="testbody" type="text/javascript">
+  /** Test for Bug 380383 **/
+  is($("f1").contentDocument.characterSet, "UTF-8",
+     "Unexpected charset for f1");
+
+  function runTest() {
+    is($("f2").contentDocument.characterSet, "UTF-8",
+       "Unexpected charset for f2");
+  }
+     
+  addLoadEvent(runTest);
+  addLoadEvent(SimpleTest.finish);
+  SimpleTest.waitForExplicitFinish();
+</script>
+</pre>
+</body>
+</html>
+
--- a/layout/build/nsContentDLF.cpp
+++ b/layout/build/nsContentDLF.cpp
@@ -53,16 +53,17 @@
 #include "nsContentCID.h"
 #include "prprf.h"
 #include "nsNetUtil.h"
 #include "nsICSSLoader.h"
 #include "nsCRT.h"
 #include "nsIViewSourceChannel.h"
 
 #include "imgILoader.h"
+#include "nsIParser.h"
 
 // plugins
 #include "nsIPluginManager.h"
 #include "nsIPluginHost.h"
 static NS_DEFINE_CID(kPluginManagerCID, NS_PLUGINMANAGER_CID);
 static NS_DEFINE_CID(kPluginDocumentCID, NS_PLUGINDOCUMENT_CID);
 
 // URL for the "user agent" style sheet
@@ -376,16 +377,19 @@ nsContentDLF::CreateBlankDocument(nsILoa
           htmlElement->AppendChildTo(bodyElement, PR_FALSE);
         }
       }
     }
   }
 
   // add a nice bow
   if (NS_SUCCEEDED(rv)) {
+    blankDoc->SetDocumentCharacterSetSource(kCharsetFromDocTypeDefault);
+    blankDoc->SetDocumentCharacterSet(NS_LITERAL_CSTRING("UTF-8"));
+    
     *aDocument = blankDoc;
     NS_ADDREF(*aDocument);
   }
   return rv;
 }
 
 
 nsresult