2007-11-05 Mark Rowe <mrowe@apple.com>
authormrowe@apple.com <mrowe@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 5 Nov 2007 14:39:25 +0000 (14:39 +0000)
committermrowe@apple.com <mrowe@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 5 Nov 2007 14:39:25 +0000 (14:39 +0000)
        Reviewed by Alp Toker.

        Fix http://bugs.webkit.org/show_bug.cgi?id=15842
        Bug 15842: [Gtk] about:blank doesn't work

        * WebCoreSupport/FrameLoaderClientGtk.cpp:
        (WebKit::FrameLoaderClient::finishedLoading): Set the encoding on the frame loader to
        get work done that is normally done when the first bit of data is received, even in the
        case of a document with no data (like about:blank).

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@27436 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebKit/gtk/ChangeLog
WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp

index 7f66b4b49808916bedc222d6c1a0a7d045146437..cfb0d971cf8d3ce81518d872517d78930b82d70c 100644 (file)
@@ -1,3 +1,15 @@
+2007-11-05  Mark Rowe  <mrowe@apple.com>
+
+        Reviewed by Alp Toker.
+
+        Fix http://bugs.webkit.org/show_bug.cgi?id=15842
+        Bug 15842: [Gtk] about:blank doesn't work
+
+        * WebCoreSupport/FrameLoaderClientGtk.cpp:
+        (WebKit::FrameLoaderClient::finishedLoading): Set the encoding on the frame loader to
+        get work done that is normally done when the first bit of data is received, even in the
+        case of a document with no data (like about:blank).
+
 2007-11-03  Alp Toker  <alp@atoker.com>
 
         Reviewed by Mark Rowe.
 2007-11-03  Alp Toker  <alp@atoker.com>
 
         Reviewed by Mark Rowe.
index c930cee0b0841a24f16469faf60fc5800aa69eba..280f0593805a49b9bf5175cfa6eb5242a7666d3d 100644 (file)
@@ -346,7 +346,6 @@ void FrameLoaderClient::revertToProvisionalState(DocumentLoader*) { notImplement
 void FrameLoaderClient::clearUnarchivingState(DocumentLoader*) { notImplemented(); }
 void FrameLoaderClient::willChangeTitle(DocumentLoader*) { notImplemented(); }
 void FrameLoaderClient::didChangeTitle(DocumentLoader *l) { setTitle(l->title(), l->URL()); }
 void FrameLoaderClient::clearUnarchivingState(DocumentLoader*) { notImplemented(); }
 void FrameLoaderClient::willChangeTitle(DocumentLoader*) { notImplemented(); }
 void FrameLoaderClient::didChangeTitle(DocumentLoader *l) { setTitle(l->title(), l->URL()); }
-void FrameLoaderClient::finishedLoading(DocumentLoader*) { notImplemented(); }
 void FrameLoaderClient::finalSetupForReplace(DocumentLoader*) { notImplemented(); }
 void FrameLoaderClient::setDefersLoading(bool) { notImplemented(); }
 bool FrameLoaderClient::isArchiveLoadPending(ResourceLoader*) const { notImplemented(); return false; }
 void FrameLoaderClient::finalSetupForReplace(DocumentLoader*) { notImplemented(); }
 void FrameLoaderClient::setDefersLoading(bool) { notImplemented(); }
 bool FrameLoaderClient::isArchiveLoadPending(ResourceLoader*) const { notImplemented(); return false; }
@@ -357,6 +356,19 @@ bool FrameLoaderClient::canShowMIMEType(const String&) const { notImplemented();
 bool FrameLoaderClient::representationExistsForURLScheme(const String&) const { notImplemented(); return false; }
 String FrameLoaderClient::generatedMIMETypeForURLScheme(const String&) const { notImplemented(); return String(); }
 
 bool FrameLoaderClient::representationExistsForURLScheme(const String&) const { notImplemented(); return false; }
 String FrameLoaderClient::generatedMIMETypeForURLScheme(const String&) const { notImplemented(); return String(); }
 
+void FrameLoaderClient::finishedLoading(DocumentLoader* documentLoader)
+{
+    ASSERT(documentLoader->frame());
+    // Setting the encoding on the frame loader is our way to get work done that is normally done
+    // when the first bit of data is received, even for the case of a document with no data (like about:blank).
+    String encoding = documentLoader->overrideEncoding();
+    bool userChosen = !encoding.isNull();
+    if (encoding.isNull())
+        encoding = documentLoader->response().textEncodingName();
+    documentLoader->frameLoader()->setEncoding(encoding, userChosen);
+}
+
+
 void FrameLoaderClient::provisionalLoadStarted()
 {
     notImplemented();
 void FrameLoaderClient::provisionalLoadStarted()
 {
     notImplemented();