[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-10851-g50815da

mrobinson at webkit.org mrobinson at webkit.org
Wed Dec 22 18:06:49 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit c289de6a5d5aef8bb8086035d9e161abc8fffd90
Author: mrobinson at webkit.org <mrobinson at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Tue Dec 7 12:40:54 2010 +0000

    2010-12-07  Martin Robinson  <mrobinson at igalia.com>
    
            Unreviewed, rolling out r73392.
            http://trac.webkit.org/changeset/73392
            https://bugs.webkit.org/show_bug.cgi?id=50489
    
            This commit caused crashes on the GTK+ bots
    
            * bindings/ScriptControllerBase.cpp:
            (WebCore::ScriptController::executeIfJavaScriptURL):
            * dom/Document.cpp:
            (WebCore::Document::Document):
            (WebCore::Document::close):
            (WebCore::Document::lastModified):
            (WebCore::Document::finishedParsing):
            (WebCore::Document::initSecurityContext):
            (WebCore::Document::updateURLForPushOrReplaceState):
            * dom/Document.h:
            * dom/ProcessingInstruction.cpp:
            (WebCore::ProcessingInstruction::checkStyleSheet):
            * dom/ScriptElement.cpp:
            (WebCore::ScriptElement::scriptCharset):
            * html/HTMLLinkElement.cpp:
            (WebCore::HTMLLinkElement::process):
            * html/MediaDocument.cpp:
            (WebCore::MediaDocument::replaceMediaElementTimerFired):
            * html/PluginDocument.cpp:
            (WebCore::PluginDocumentParser::createDocumentStructure):
            * loader/DocumentLoader.cpp:
            (WebCore::DocumentLoader::DocumentLoader):
            (WebCore::DocumentLoader::finishedLoading):
            (WebCore::DocumentLoader::commitData):
            (WebCore::DocumentLoader::setupForReplaceByMIMEType):
            (WebCore::DocumentLoader::setFrame):
            * loader/DocumentLoader.h:
            * loader/DocumentWriter.cpp:
            (WebCore::DocumentWriter::begin):
            * loader/DocumentWriter.h:
            * loader/FrameLoader.cpp:
            (WebCore::FrameLoader::FrameLoader):
            (WebCore::FrameLoader::init):
            (WebCore::FrameLoader::clear):
            (WebCore::FrameLoader::receivedFirstData):
            (WebCore::FrameLoader::transitionToCommitted):
            (WebCore::FrameLoader::open):
            (WebCore::FrameLoader::finishedLoadingDocument):
            (WebCore::FrameLoader::addExtraFieldsToRequest):
            * loader/FrameLoader.h:
            (WebCore::FrameLoader::writer):
            * loader/cache/CachedResourceLoader.cpp:
            (WebCore::CachedResourceLoader::requestPreload):
            * platform/network/FormDataBuilder.cpp:
            (WebCore::FormDataBuilder::encodingFromAcceptCharset):
            * svg/graphics/SVGImage.cpp:
            (WebCore::SVGImage::dataChanged):
    2010-12-07  Martin Robinson  <mrobinson at igalia.com>
    
            Unreviewed, rolling out r73392.
            http://trac.webkit.org/changeset/73392
            https://bugs.webkit.org/show_bug.cgi?id=50489
    
            This commit caused crashes on the GTK+ bots
    
            * src/ContextMenuClientImpl.cpp:
            (WebKit::ContextMenuClientImpl::getCustomMenuFromDefaultItems):
            * src/FrameLoaderClientImpl.cpp:
            (WebKit::FrameLoaderClientImpl::finishedLoading):
            * src/WebFrameImpl.cpp:
            (WebKit::WebFrameImpl::encoding):
            (WebKit::WebFrameImpl::loadJavaScriptURL):
            * src/WebPageSerializerImpl.cpp:
            (WebKit::WebPageSerializerImpl::preActionBeforeSerializeOpenTag):
            (WebKit::WebPageSerializerImpl::serialize):
            * src/WebSearchableFormData.cpp:
            (WebCore::GetFormEncoding):
            * src/WebViewImpl.cpp:
            (WebKit::WebViewImpl::pageEncoding):
    2010-12-07  Martin Robinson  <mrobinson at igalia.com>
    
            Unreviewed, rolling out r73392.
            http://trac.webkit.org/changeset/73392
            https://bugs.webkit.org/show_bug.cgi?id=50489
    
            This commit caused crashes on the GTK+ bots
    
            * WebCoreSupport/FrameLoaderClientGtk.cpp:
            (WebKit::FrameLoaderClient::finishedLoading):
            * webkit/webkitwebview.cpp:
            (webkit_web_view_get_encoding):
    2010-12-07  Martin Robinson  <mrobinson at igalia.com>
    
            Unreviewed, rolling out r73392.
            http://trac.webkit.org/changeset/73392
            https://bugs.webkit.org/show_bug.cgi?id=50489
    
            This commit caused crashes on the GTK+ bots
    
            * WebView/WebFrame.mm:
            (-[WebFrame _canProvideDocumentSource]):
    2010-12-07  Martin Robinson  <mrobinson at igalia.com>
    
            Unreviewed, rolling out r73392.
            http://trac.webkit.org/changeset/73392
            https://bugs.webkit.org/show_bug.cgi?id=50489
    
            This commit caused crashes on the GTK+ bots
    
            * Api/qwebframe.cpp:
            (QWebFrame::setUrl):
            * WebCoreSupport/FrameLoaderClientQt.cpp:
            (WebCore::FrameLoaderClientQt::finishedLoading):
    2010-12-07  Martin Robinson  <mrobinson at igalia.com>
    
            Unreviewed, rolling out r73392.
            http://trac.webkit.org/changeset/73392
            https://bugs.webkit.org/show_bug.cgi?id=50489
    
            This commit caused crashes on the GTK+ bots
    
            * WebCoreSupport/FrameLoaderClientWinCE.cpp:
            (WebKit::FrameLoaderClientWinCE::finishedLoading):
    2010-12-07  Martin Robinson  <mrobinson at igalia.com>
    
            Unreviewed, rolling out r73392.
            http://trac.webkit.org/changeset/73392
            https://bugs.webkit.org/show_bug.cgi?id=50489
    
            This commit caused crashes on the GTK+ bots
    
            * WebKitSupport/FrameLoaderClientWx.cpp:
            (WebCore::FrameLoaderClientWx::finishedLoading):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@73436 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 4fbeb71..a148fa4 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,59 @@
+2010-12-07  Martin Robinson  <mrobinson at igalia.com>
+
+        Unreviewed, rolling out r73392.
+        http://trac.webkit.org/changeset/73392
+        https://bugs.webkit.org/show_bug.cgi?id=50489
+
+        This commit caused crashes on the GTK+ bots
+
+        * bindings/ScriptControllerBase.cpp:
+        (WebCore::ScriptController::executeIfJavaScriptURL):
+        * dom/Document.cpp:
+        (WebCore::Document::Document):
+        (WebCore::Document::close):
+        (WebCore::Document::lastModified):
+        (WebCore::Document::finishedParsing):
+        (WebCore::Document::initSecurityContext):
+        (WebCore::Document::updateURLForPushOrReplaceState):
+        * dom/Document.h:
+        * dom/ProcessingInstruction.cpp:
+        (WebCore::ProcessingInstruction::checkStyleSheet):
+        * dom/ScriptElement.cpp:
+        (WebCore::ScriptElement::scriptCharset):
+        * html/HTMLLinkElement.cpp:
+        (WebCore::HTMLLinkElement::process):
+        * html/MediaDocument.cpp:
+        (WebCore::MediaDocument::replaceMediaElementTimerFired):
+        * html/PluginDocument.cpp:
+        (WebCore::PluginDocumentParser::createDocumentStructure):
+        * loader/DocumentLoader.cpp:
+        (WebCore::DocumentLoader::DocumentLoader):
+        (WebCore::DocumentLoader::finishedLoading):
+        (WebCore::DocumentLoader::commitData):
+        (WebCore::DocumentLoader::setupForReplaceByMIMEType):
+        (WebCore::DocumentLoader::setFrame):
+        * loader/DocumentLoader.h:
+        * loader/DocumentWriter.cpp:
+        (WebCore::DocumentWriter::begin):
+        * loader/DocumentWriter.h:
+        * loader/FrameLoader.cpp:
+        (WebCore::FrameLoader::FrameLoader):
+        (WebCore::FrameLoader::init):
+        (WebCore::FrameLoader::clear):
+        (WebCore::FrameLoader::receivedFirstData):
+        (WebCore::FrameLoader::transitionToCommitted):
+        (WebCore::FrameLoader::open):
+        (WebCore::FrameLoader::finishedLoadingDocument):
+        (WebCore::FrameLoader::addExtraFieldsToRequest):
+        * loader/FrameLoader.h:
+        (WebCore::FrameLoader::writer):
+        * loader/cache/CachedResourceLoader.cpp:
+        (WebCore::CachedResourceLoader::requestPreload):
+        * platform/network/FormDataBuilder.cpp:
+        (WebCore::FormDataBuilder::encodingFromAcceptCharset):
+        * svg/graphics/SVGImage.cpp:
+        (WebCore::SVGImage::dataChanged):
+
 2010-12-07  Patrick Gansterer  <paroga at webkit.org>
 
         Reviewed by Andreas Kling.
diff --git a/WebCore/bindings/ScriptControllerBase.cpp b/WebCore/bindings/ScriptControllerBase.cpp
index 3c50db2..a77ff9c 100644
--- a/WebCore/bindings/ScriptControllerBase.cpp
+++ b/WebCore/bindings/ScriptControllerBase.cpp
@@ -112,7 +112,7 @@ bool ScriptController::executeIfJavaScriptURL(const KURL& url, ShouldReplaceDocu
     //        synchronously can cause crashes:
     //        http://bugs.webkit.org/show_bug.cgi?id=16782
     if (shouldReplaceDocumentIfJavaScriptURL == ReplaceDocumentIfJavaScriptURL)
-        m_frame->document()->loader()->writer()->replaceDocument(scriptResult);
+        m_frame->loader()->writer()->replaceDocument(scriptResult);
 
     return true;
 }
diff --git a/WebCore/dom/Document.cpp b/WebCore/dom/Document.cpp
index 75d8b9b..c54f007 100644
--- a/WebCore/dom/Document.cpp
+++ b/WebCore/dom/Document.cpp
@@ -428,7 +428,6 @@ Document::Document(Frame* frame, const KURL& url, bool isXHTML, bool isHTML, con
     m_ignoreAutofocus = false;
 
     m_frame = frame;
-    m_documentLoader = frame ? frame->loader()->activeDocumentLoader() : 0;
 
     if (frame || !url.isEmpty())
         setURL(url);
@@ -2055,8 +2054,9 @@ void Document::close()
     Frame* frame = this->frame();
     if (frame) {
         // This code calls implicitClose() if all loading has completed.
-        loader()->writer()->endIfNotLoadingMainResource();
-        frame->loader()->checkCompleted();
+        FrameLoader* frameLoader = frame->loader();
+        frameLoader->writer()->endIfNotLoadingMainResource();
+        frameLoader->checkCompleted();
     } else {
         // Because we have no frame, we don't know if all loading has completed,
         // so we just call implicitClose() immediately. FIXME: This might fire
@@ -3713,7 +3713,7 @@ String Document::lastModified() const
     DateComponents date;
     bool foundDate = false;
     if (m_frame) {
-        String httpLastModified = m_documentLoader->response().httpHeaderField("Last-Modified");
+        String httpLastModified = m_frame->loader()->documentLoader()->response().httpHeaderField("Last-Modified");
         if (!httpLastModified.isEmpty()) {
             date.setMillisecondsSinceEpochForDateTime(parseDate(httpLastModified));
             foundDate = true;
@@ -4231,7 +4231,7 @@ void Document::finishedParsing()
             return;
 
         if (InspectorController* controller = page()->inspectorController())
-            controller->mainResourceFiredDOMContentEvent(m_documentLoader, url());
+            controller->mainResourceFiredDOMContentEvent(f->loader()->documentLoader(), url());
 #endif
     }
 }
@@ -4445,7 +4445,8 @@ void Document::initSecurityContext()
         // load local resources.  See https://bugs.webkit.org/show_bug.cgi?id=16756
         // and https://bugs.webkit.org/show_bug.cgi?id=19760 for further
         // discussion.
-        if (m_documentLoader->substituteData().isValid())
+        DocumentLoader* documentLoader = m_frame->loader()->documentLoader();
+        if (documentLoader && documentLoader->substituteData().isValid())
             securityOrigin()->grantLoadLocalResources();
     }
 
@@ -4525,7 +4526,7 @@ void Document::updateURLForPushOrReplaceState(const KURL& url)
     // FIXME: Eliminate this redundancy.
     setURL(url);
     f->loader()->setURL(url);
-    m_documentLoader->replaceRequestURLForSameDocumentNavigation(url);
+    f->loader()->documentLoader()->replaceRequestURLForSameDocumentNavigation(url);
 }
 
 void Document::statePopped(SerializedScriptValue* stateObject)
diff --git a/WebCore/dom/Document.h b/WebCore/dom/Document.h
index 5a4f5ca..2d607c9 100644
--- a/WebCore/dom/Document.h
+++ b/WebCore/dom/Document.h
@@ -33,7 +33,6 @@
 #include "CollectionType.h"
 #include "Color.h"
 #include "ContainerNode.h"
-#include "DocumentLoader.h"
 #include "DocumentMarkerController.h"
 #include "DocumentTiming.h"
 #include "QualifiedName.h"
@@ -56,7 +55,6 @@ class Attr;
 class AXObjectCache;
 class CDATASection;
 class CachedCSSStyleSheet;
-class CachedResourceLoader;
 class CachedScript;
 class CanvasRenderingContext;
 class CharacterData;
@@ -69,6 +67,7 @@ class DOMImplementation;
 class DOMSelection;
 class DOMWindow;
 class DatabaseThread;
+class CachedResourceLoader;
 class DocumentFragment;
 class DocumentType;
 class DocumentWeakReference;
@@ -550,9 +549,6 @@ public:
     // to get visually ordered hebrew and arabic pages right
     void setVisuallyOrdered();
     bool visuallyOrdered() const { return m_visuallyOrdered; }
-    
-    void setDocumentLoader(DocumentLoader* documentLoader) { m_documentLoader = documentLoader; }
-    DocumentLoader* loader() const { return m_documentLoader; }
 
     void open(Document* ownerDocument = 0);
     void implicitOpen();
@@ -1141,7 +1137,6 @@ private:
     bool m_didCalculateStyleSelector;
 
     Frame* m_frame;
-    DocumentLoader* m_documentLoader;
     OwnPtr<CachedResourceLoader> m_cachedResourceLoader;
     RefPtr<DocumentParser> m_parser;
     bool m_wellFormed;
diff --git a/WebCore/dom/ProcessingInstruction.cpp b/WebCore/dom/ProcessingInstruction.cpp
index b891310..544d789 100644
--- a/WebCore/dom/ProcessingInstruction.cpp
+++ b/WebCore/dom/ProcessingInstruction.cpp
@@ -168,7 +168,7 @@ void ProcessingInstruction::checkStyleSheet()
             {
                 String charset = attrs.get("charset");
                 if (charset.isEmpty())
-                    charset = document()->loader()->writer()->encoding();
+                    charset = document()->frame()->loader()->writer()->encoding();
 
                 m_cachedSheet = document()->cachedResourceLoader()->requestCSSStyleSheet(url, charset);
             }
diff --git a/WebCore/dom/ScriptElement.cpp b/WebCore/dom/ScriptElement.cpp
index 72878d2..74f2580 100644
--- a/WebCore/dom/ScriptElement.cpp
+++ b/WebCore/dom/ScriptElement.cpp
@@ -292,8 +292,8 @@ String ScriptElement::scriptCharset() const
 
     // If charset has not been declared in script tag, fall back to frame encoding.
     if (charset.isEmpty()) {
-        if (DocumentLoader* loader = m_element->document()->loader())
-            charset = loader->writer()->encoding();
+        if (Frame* frame = m_element->document()->frame())
+            charset = frame->loader()->writer()->encoding();
     }
 
     return charset;
diff --git a/WebCore/html/HTMLLinkElement.cpp b/WebCore/html/HTMLLinkElement.cpp
index f928138..319e759 100644
--- a/WebCore/html/HTMLLinkElement.cpp
+++ b/WebCore/html/HTMLLinkElement.cpp
@@ -230,8 +230,8 @@ void HTMLLinkElement::process()
         // also, don't load style sheets for standalone documents
         
         String charset = getAttribute(charsetAttr);
-        if (charset.isEmpty())
-            charset = document()->loader()->writer()->encoding();
+        if (charset.isEmpty() && document()->frame())
+            charset = document()->frame()->loader()->writer()->encoding();
 
         if (m_cachedSheet) {
             if (m_loading)
diff --git a/WebCore/html/MediaDocument.cpp b/WebCore/html/MediaDocument.cpp
index 72b9f78..af66795 100644
--- a/WebCore/html/MediaDocument.cpp
+++ b/WebCore/html/MediaDocument.cpp
@@ -208,7 +208,7 @@ void MediaDocument::replaceMediaElementTimerFired(Timer<MediaDocument>*)
         embedElement->setAttribute(heightAttr, "100%");
         embedElement->setAttribute(nameAttr, "plugin");
         embedElement->setAttribute(srcAttr, url().string());
-        embedElement->setAttribute(typeAttr, loader()->writer()->mimeType());
+        embedElement->setAttribute(typeAttr, frame()->loader()->writer()->mimeType());
 
         ExceptionCode ec;
         videoElement->parentNode()->replaceChild(embedElement, videoElement, ec);
diff --git a/WebCore/html/PluginDocument.cpp b/WebCore/html/PluginDocument.cpp
index bcb6d3a..cebb949 100644
--- a/WebCore/html/PluginDocument.cpp
+++ b/WebCore/html/PluginDocument.cpp
@@ -91,7 +91,7 @@ void PluginDocumentParser::createDocumentStructure()
     
     m_embedElement->setAttribute(nameAttr, "plugin");
     m_embedElement->setAttribute(srcAttr, document()->url().string());
-    m_embedElement->setAttribute(typeAttr, document()->loader()->writer()->mimeType());
+    m_embedElement->setAttribute(typeAttr, document()->frame()->loader()->writer()->mimeType());
 
     static_cast<PluginDocument*>(document())->setPluginNode(m_embedElement);
 
diff --git a/WebCore/loader/DocumentLoader.cpp b/WebCore/loader/DocumentLoader.cpp
index 66837d2..2f21066 100644
--- a/WebCore/loader/DocumentLoader.cpp
+++ b/WebCore/loader/DocumentLoader.cpp
@@ -37,7 +37,6 @@
 #include "DOMWindow.h"
 #include "Document.h"
 #include "DocumentParser.h"
-#include "DocumentWriter.h"
 #include "Event.h"
 #include "Frame.h"
 #include "FrameLoader.h"
@@ -50,7 +49,7 @@
 #include "PlatformString.h"
 #include "Settings.h"
 #include "SharedBuffer.h"
-#include "TextResourceDecoder.h"
+
 #include <wtf/Assertions.h>
 #include <wtf/text/CString.h>
 #include <wtf/unicode/Unicode.h>
@@ -78,7 +77,6 @@ static void setAllDefersLoading(const ResourceLoaderSet& loaders, bool defers)
 DocumentLoader::DocumentLoader(const ResourceRequest& req, const SubstituteData& substituteData)
     : m_deferMainResourceDataLoad(true)
     , m_frame(0)
-    , m_writer(m_frame)
     , m_originalRequest(req)
     , m_substituteData(substituteData)
     , m_originalRequestCopy(req)
@@ -278,7 +276,7 @@ void DocumentLoader::finishedLoading()
     commitIfReady();
     if (FrameLoader* loader = frameLoader()) {
         loader->finishedLoadingDocument(this);
-        m_writer.end();
+        loader->writer()->end();
     }
 }
 
@@ -306,9 +304,10 @@ void DocumentLoader::commitData(const char* bytes, int length)
         userChosen = false;
         encoding = response().textEncodingName();
     }
-    m_writer.setEncoding(encoding, userChosen);
+    // FIXME: DocumentWriter should be owned by DocumentLoader.
+    m_frame->loader()->writer()->setEncoding(encoding, userChosen);
     ASSERT(m_frame->document()->parsing());
-    m_writer.addData(bytes, length);
+    m_frame->loader()->writer()->addData(bytes, length);
 }
 
 bool DocumentLoader::doesProgressiveLoad(const String& MIMEType) const
@@ -338,7 +337,7 @@ void DocumentLoader::setupForReplaceByMIMEType(const String& newMIMEType)
     }
     
     frameLoader()->finishedLoadingDocument(this);
-    m_writer.end();
+    m_frame->loader()->writer()->end();
     
     frameLoader()->setReplacing();
     m_gotFirstByte = false;
@@ -375,7 +374,6 @@ void DocumentLoader::setFrame(Frame* frame)
         return;
     ASSERT(frame && !m_frame);
     m_frame = frame;
-    m_writer.setFrame(frame);
     attachToFrame();
 }
 
diff --git a/WebCore/loader/DocumentLoader.h b/WebCore/loader/DocumentLoader.h
index 63e5f43..e1f75ed 100644
--- a/WebCore/loader/DocumentLoader.h
+++ b/WebCore/loader/DocumentLoader.h
@@ -30,7 +30,6 @@
 #define DocumentLoader_h
 
 #include "DocumentLoadTiming.h"
-#include "DocumentWriter.h"
 #include "NavigationAction.h"
 #include "ResourceError.h"
 #include "ResourceRequest.h"
@@ -73,8 +72,6 @@ namespace WebCore {
         FrameLoader* frameLoader() const;
         MainResourceLoader* mainResourceLoader() const { return m_mainResourceLoader.get(); }
         PassRefPtr<SharedBuffer> mainResourceData() const;
-        
-        DocumentWriter* writer() const { return &m_writer; }
 
         const ResourceRequest& originalRequest() const;
         const ResourceRequest& originalRequestCopy() const;
@@ -249,8 +246,6 @@ namespace WebCore {
         ResourceLoaderSet m_plugInStreamLoaders;
 
         RefPtr<SharedBuffer> m_mainResourceData;
-        
-        mutable DocumentWriter m_writer;
 
         // A reference to actual request used to create the data source.
         // This should only be used by the resourceLoadDelegate's
diff --git a/WebCore/loader/DocumentWriter.cpp b/WebCore/loader/DocumentWriter.cpp
index 8b75ee6..5b03cd7 100644
--- a/WebCore/loader/DocumentWriter.cpp
+++ b/WebCore/loader/DocumentWriter.cpp
@@ -123,7 +123,6 @@ void DocumentWriter::begin(const KURL& url, bool dispatch, SecurityOrigin* origi
 
     bool resetScripting = !(m_frame->loader()->stateMachine()->isDisplayingInitialEmptyDocument() && m_frame->document()->securityOrigin()->isSecureTransitionTo(url));
     m_frame->loader()->clear(resetScripting, resetScripting);
-    clear();
     if (resetScripting)
         m_frame->script()->updatePlatformScriptObjects();
 
diff --git a/WebCore/loader/DocumentWriter.h b/WebCore/loader/DocumentWriter.h
index 78db16c..5fb3dc1 100644
--- a/WebCore/loader/DocumentWriter.h
+++ b/WebCore/loader/DocumentWriter.h
@@ -52,8 +52,7 @@ public:
     void addData(const char* string, int length = -1, bool flush = false);
     void end();
     void endIfNotLoadingMainResource();
-    
-    void setFrame(Frame* frame) { m_frame = frame; }
+    void clear();
 
     String encoding() const;
     void setEncoding(const String& encoding, bool userChosen);
@@ -76,7 +75,6 @@ public:
 
 private:
     PassRefPtr<Document> createDocument(const KURL&);
-    void clear();
 
     Frame* m_frame;
 
diff --git a/WebCore/loader/FrameLoader.cpp b/WebCore/loader/FrameLoader.cpp
index 25ca6a4..35a492b 100644
--- a/WebCore/loader/FrameLoader.cpp
+++ b/WebCore/loader/FrameLoader.cpp
@@ -178,6 +178,7 @@ FrameLoader::FrameLoader(Frame* frame, FrameLoaderClient* client)
     , m_policyChecker(frame)
     , m_history(frame)
     , m_notifer(frame)
+    , m_writer(frame)
     , m_subframeLoader(frame)
     , m_state(FrameStateCommittedPage)
     , m_loadType(FrameLoadTypeStandard)
@@ -231,8 +232,8 @@ void FrameLoader::init()
     setState(FrameStateProvisional);
     m_provisionalDocumentLoader->setResponse(ResourceResponse(KURL(), "text/html", 0, String(), String()));
     m_provisionalDocumentLoader->finishedLoading();
-    m_documentLoader->writer()->begin(KURL(), false);
-    m_documentLoader->writer()->end();
+    writer()->begin(KURL(), false);
+    writer()->end();
     m_frame->document()->cancelParsing();
     m_stateMachine.advanceTo(FrameLoaderStateMachine::DisplayingInitialEmptyDocument);
     m_didCallImplicitClose = true;
@@ -591,6 +592,7 @@ void FrameLoader::clear(bool clearWindowProperties, bool clearScriptObjects, boo
     // Do not drop the document before the ScriptController and view are cleared
     // as some destructors might still try to access the document.
     m_frame->setDocument(0);
+    writer()->clear();
 
     m_subframeLoader.clear();
 
@@ -609,8 +611,8 @@ void FrameLoader::clear(bool clearWindowProperties, bool clearScriptObjects, boo
 
 void FrameLoader::receivedFirstData()
 {
-    activeDocumentLoader()->writer()->begin(m_workingURL, false);
-    activeDocumentLoader()->writer()->setDocumentWasLoadedAsPartOfNavigation();
+    writer()->begin(m_workingURL, false);
+    writer()->setDocumentWasLoadedAsPartOfNavigation();
 
     dispatchDidCommitLoad();
     dispatchDidClearWindowObjectsInAllWorlds();
@@ -2010,7 +2012,7 @@ void FrameLoader::transitionToCommitted(PassRefPtr<CachedPage> cachedPage)
             ASSERT_NOT_REACHED();
     }
 
-    m_documentLoader->writer()->setMIMEType(dl->responseMIMEType());
+    writer()->setMIMEType(dl->responseMIMEType());
 
     // Tell the client we've committed this URL.
     ASSERT(m_frame->view());
@@ -2146,6 +2148,8 @@ void FrameLoader::open(CachedFrameBase& cachedFrame)
     m_frame->domWindow()->setURL(document->url());
     m_frame->domWindow()->setSecurityOrigin(document->securityOrigin());
 
+    writer()->setDecoder(document->decoder());
+
     updateFirstPartyForCookies();
 
     cachedFrame.restore();
@@ -2238,7 +2242,7 @@ void FrameLoader::finishedLoadingDocument(DocumentLoader* loader)
     ArchiveResource* mainResource = archive->mainResource();
     loader->setParsedArchiveData(mainResource->data());
 
-    loader->writer()->setMIMEType(mainResource->mimeType());
+    writer()->setMIMEType(mainResource->mimeType());
 
     closeURL();
     didOpenURL(mainResource->url());
@@ -2246,8 +2250,8 @@ void FrameLoader::finishedLoadingDocument(DocumentLoader* loader)
     ASSERT(m_frame->document());
     String userChosenEncoding = documentLoader()->overrideEncoding();
     bool encodingIsUserChosen = !userChosenEncoding.isNull();
-    loader->writer()->setEncoding(encodingIsUserChosen ? userChosenEncoding : mainResource->textEncoding(), encodingIsUserChosen);
-    loader->writer()->addData(mainResource->data()->data(), mainResource->data()->size());
+    writer()->setEncoding(encodingIsUserChosen ? userChosenEncoding : mainResource->textEncoding(), encodingIsUserChosen);
+    writer()->addData(mainResource->data()->data(), mainResource->data()->size());
 }
 
 bool FrameLoader::isReplacing() const
@@ -2671,7 +2675,7 @@ void FrameLoader::addExtraFieldsToRequest(ResourceRequest& request, FrameLoadTyp
     // Always try UTF-8. If that fails, try frame encoding (if any) and then the default.
     // For a newly opened frame with an empty URL, encoding() should not be used, because this methods asks decoder, which uses ISO-8859-1.
     Settings* settings = m_frame->settings();
-    request.setResponseContentDispositionEncodingFallbackArray("UTF-8", activeDocumentLoader()->writer()->deprecatedFrameEncoding(), settings ? settings->defaultTextEncodingName() : String());
+    request.setResponseContentDispositionEncodingFallbackArray("UTF-8", writer()->deprecatedFrameEncoding(), settings ? settings->defaultTextEncodingName() : String());
 }
 
 void FrameLoader::addHTTPOriginIfNeeded(ResourceRequest& request, String origin)
diff --git a/WebCore/loader/FrameLoader.h b/WebCore/loader/FrameLoader.h
index 2101286..76ad977 100644
--- a/WebCore/loader/FrameLoader.h
+++ b/WebCore/loader/FrameLoader.h
@@ -32,6 +32,7 @@
 #define FrameLoader_h
 
 #include "CachePolicy.h"
+#include "DocumentWriter.h"
 #include "FrameLoaderStateMachine.h"
 #include "FrameLoaderTypes.h"
 #include "HistoryController.h"
@@ -97,6 +98,7 @@ public:
     PolicyChecker* policyChecker() const { return &m_policyChecker; }
     HistoryController* history() const { return &m_history; }
     ResourceLoadNotifier* notifier() const { return &m_notifer; }
+    DocumentWriter* writer() const { return &m_writer; }
     SubframeLoader* subframeLoader() const { return &m_subframeLoader; }
 
     // FIXME: This is not cool, people. There are too many different functions that all start loads.
@@ -425,6 +427,7 @@ private:
     mutable PolicyChecker m_policyChecker;
     mutable HistoryController m_history;
     mutable ResourceLoadNotifier m_notifer;
+    mutable DocumentWriter m_writer;
     mutable SubframeLoader m_subframeLoader;
     mutable FrameLoaderStateMachine m_stateMachine;
 
diff --git a/WebCore/loader/cache/CachedResourceLoader.cpp b/WebCore/loader/cache/CachedResourceLoader.cpp
index 5f4f360..15c5f03 100644
--- a/WebCore/loader/cache/CachedResourceLoader.cpp
+++ b/WebCore/loader/cache/CachedResourceLoader.cpp
@@ -406,7 +406,7 @@ void CachedResourceLoader::requestPreload(CachedResource::Type type, const Strin
 {
     String encoding;
     if (type == CachedResource::Script || type == CachedResource::CSSStyleSheet)
-        encoding = charset.isEmpty() ? m_document->loader()->writer()->encoding() : charset;
+        encoding = charset.isEmpty() ? m_document->frame()->loader()->writer()->encoding() : charset;
 
     CachedResource* resource = requestResource(type, url, encoding, true);
     if (!resource || (m_preloads && m_preloads->contains(resource)))
diff --git a/WebCore/platform/network/FormDataBuilder.cpp b/WebCore/platform/network/FormDataBuilder.cpp
index 4645583..da28fc2 100644
--- a/WebCore/platform/network/FormDataBuilder.cpp
+++ b/WebCore/platform/network/FormDataBuilder.cpp
@@ -94,7 +94,10 @@ TextEncoding FormDataBuilder::encodingFromAcceptCharset(const String& acceptChar
             return encoding;
     }
 
-    return document->loader()->writer()->encoding();
+    if (Frame* frame = document->frame())
+        return frame->loader()->writer()->encoding();
+
+    return Latin1Encoding();
 }
 
 Vector<char> FormDataBuilder::generateUniqueBoundaryString()
diff --git a/WebCore/svg/graphics/SVGImage.cpp b/WebCore/svg/graphics/SVGImage.cpp
index bebc742..c9804ae 100644
--- a/WebCore/svg/graphics/SVGImage.cpp
+++ b/WebCore/svg/graphics/SVGImage.cpp
@@ -278,10 +278,10 @@ bool SVGImage::dataChanged(bool allDataReceived)
         loader->load(fakeRequest, false); // Make sure the DocumentLoader is created
         loader->policyChecker()->cancelCheck(); // cancel any policy checks
         loader->commitProvisionalLoad();
-        loader->activeDocumentLoader()->writer()->setMIMEType("image/svg+xml");
-        loader->activeDocumentLoader()->writer()->begin(KURL()); // create the empty document
-        loader->activeDocumentLoader()->writer()->addData(data()->data(), data()->size());
-        loader->activeDocumentLoader()->writer()->end();
+        loader->writer()->setMIMEType("image/svg+xml");
+        loader->writer()->begin(KURL()); // create the empty document
+        loader->writer()->addData(data()->data(), data()->size());
+        loader->writer()->end();
         frame->view()->setTransparent(true); // SVG Images are transparent.
     }
 
diff --git a/WebKit/chromium/ChangeLog b/WebKit/chromium/ChangeLog
index 7cfd885..7d95846 100644
--- a/WebKit/chromium/ChangeLog
+++ b/WebKit/chromium/ChangeLog
@@ -1,3 +1,26 @@
+2010-12-07  Martin Robinson  <mrobinson at igalia.com>
+
+        Unreviewed, rolling out r73392.
+        http://trac.webkit.org/changeset/73392
+        https://bugs.webkit.org/show_bug.cgi?id=50489
+
+        This commit caused crashes on the GTK+ bots
+
+        * src/ContextMenuClientImpl.cpp:
+        (WebKit::ContextMenuClientImpl::getCustomMenuFromDefaultItems):
+        * src/FrameLoaderClientImpl.cpp:
+        (WebKit::FrameLoaderClientImpl::finishedLoading):
+        * src/WebFrameImpl.cpp:
+        (WebKit::WebFrameImpl::encoding):
+        (WebKit::WebFrameImpl::loadJavaScriptURL):
+        * src/WebPageSerializerImpl.cpp:
+        (WebKit::WebPageSerializerImpl::preActionBeforeSerializeOpenTag):
+        (WebKit::WebPageSerializerImpl::serialize):
+        * src/WebSearchableFormData.cpp:
+        (WebCore::GetFormEncoding):
+        * src/WebViewImpl.cpp:
+        (WebKit::WebViewImpl::pageEncoding):
+
 2010-12-07  Kenichi Ishibashi  <bashi at google.com>
 
         Reviewed by Kent Tamura.
diff --git a/WebKit/chromium/src/ContextMenuClientImpl.cpp b/WebKit/chromium/src/ContextMenuClientImpl.cpp
index 5003d10..d33a06b 100644
--- a/WebKit/chromium/src/ContextMenuClientImpl.cpp
+++ b/WebKit/chromium/src/ContextMenuClientImpl.cpp
@@ -226,7 +226,7 @@ PlatformMenuDescription ContextMenuClientImpl::getCustomMenuFromDefaultItems(
 
     // If it's not a link, an image, a media element, or an image/media link,
     // show a selection menu or a more generic page menu.
-    data.frameEncoding = selectedFrame->document()->loader()->writer()->encoding();
+    data.frameEncoding = selectedFrame->loader()->writer()->encoding();
 
     // Send the frame and page URLs in any case.
     data.pageURL = urlFromFrame(m_webView->mainFrameImpl()->frame());
diff --git a/WebKit/chromium/src/FrameLoaderClientImpl.cpp b/WebKit/chromium/src/FrameLoaderClientImpl.cpp
index f76c657..9d79599 100644
--- a/WebKit/chromium/src/FrameLoaderClientImpl.cpp
+++ b/WebKit/chromium/src/FrameLoaderClientImpl.cpp
@@ -1097,7 +1097,7 @@ void FrameLoaderClientImpl::finishedLoading(DocumentLoader* dl)
         // However, we only want to do this if makeRepresentation has been called, to
         // match the behavior on the Mac.
         if (m_hasRepresentation)
-            dl->writer()->setEncoding("", false);
+            dl->frameLoader()->writer()->setEncoding("", false);
     }
 }
 
diff --git a/WebKit/chromium/src/WebFrameImpl.cpp b/WebKit/chromium/src/WebFrameImpl.cpp
index 898d24b..4422e1b 100644
--- a/WebKit/chromium/src/WebFrameImpl.cpp
+++ b/WebKit/chromium/src/WebFrameImpl.cpp
@@ -545,7 +545,7 @@ WebURL WebFrameImpl::openSearchDescriptionURL() const
 
 WebString WebFrameImpl::encoding() const
 {
-    return frame()->document()->loader()->writer()->encoding();
+    return frame()->loader()->writer()->encoding();
 }
 
 WebSize WebFrameImpl::scrollOffset() const
@@ -2271,7 +2271,7 @@ void WebFrameImpl::loadJavaScriptURL(const KURL& url)
         return;
 
     if (!m_frame->navigationScheduler()->locationChangePending())
-        m_frame->document()->loader()->writer()->replaceDocument(scriptResult);
+        m_frame->loader()->writer()->replaceDocument(scriptResult);
 }
 
 } // namespace WebKit
diff --git a/WebKit/chromium/src/WebPageSerializerImpl.cpp b/WebKit/chromium/src/WebPageSerializerImpl.cpp
index 7ea9a8c..0d85d78 100644
--- a/WebKit/chromium/src/WebPageSerializerImpl.cpp
+++ b/WebKit/chromium/src/WebPageSerializerImpl.cpp
@@ -168,7 +168,7 @@ String WebPageSerializerImpl::preActionBeforeSerializeOpenTag(
             // Get encoding info.
             String xmlEncoding = param->document->xmlEncoding();
             if (xmlEncoding.isEmpty())
-                xmlEncoding = param->document->loader()->writer()->encoding();
+                xmlEncoding = param->document->frame()->loader()->writer()->encoding();
             if (xmlEncoding.isEmpty())
                 xmlEncoding = UTF8Encoding().name();
             result.append("<?xml version=\"");
@@ -505,7 +505,7 @@ bool WebPageSerializerImpl::serialize()
 
         didSerialization = true;
 
-        String encoding = document->loader()->writer()->encoding();
+        String encoding = webFrame->frame()->loader()->writer()->encoding();
         const TextEncoding& textEncoding = encoding.isEmpty() ? UTF8Encoding() : TextEncoding(encoding);
         String directoryName = url == mainURL ? m_localDirectoryName : "";
 
diff --git a/WebKit/chromium/src/WebSearchableFormData.cpp b/WebKit/chromium/src/WebSearchableFormData.cpp
index 55c0adf..178e4db 100644
--- a/WebKit/chromium/src/WebSearchableFormData.cpp
+++ b/WebKit/chromium/src/WebSearchableFormData.cpp
@@ -61,7 +61,8 @@ void GetFormEncoding(const HTMLFormElement* form, TextEncoding* encoding)
         if (encoding->isValid())
             return;
     }
-    *encoding = TextEncoding(form->document()->loader()->writer()->encoding());
+    const Frame* frame = form->document()->frame();
+    *encoding = frame ? TextEncoding(frame->loader()->writer()->encoding()) : Latin1Encoding();
 }
 
 // Returns true if the submit request results in an HTTP URL.
diff --git a/WebKit/chromium/src/WebViewImpl.cpp b/WebKit/chromium/src/WebViewImpl.cpp
index 351c13d..7bec254 100644
--- a/WebKit/chromium/src/WebViewImpl.cpp
+++ b/WebKit/chromium/src/WebViewImpl.cpp
@@ -1431,7 +1431,7 @@ WebString WebViewImpl::pageEncoding() const
     if (!m_page.get())
         return WebString();
 
-    return m_page->mainFrame()->document()->loader()->writer()->encoding();
+    return m_page->mainFrame()->loader()->writer()->encoding();
 }
 
 void WebViewImpl::setPageEncoding(const WebString& encodingName)
diff --git a/WebKit/gtk/ChangeLog b/WebKit/gtk/ChangeLog
index 7367388..0e06a64 100644
--- a/WebKit/gtk/ChangeLog
+++ b/WebKit/gtk/ChangeLog
@@ -1,3 +1,16 @@
+2010-12-07  Martin Robinson  <mrobinson at igalia.com>
+
+        Unreviewed, rolling out r73392.
+        http://trac.webkit.org/changeset/73392
+        https://bugs.webkit.org/show_bug.cgi?id=50489
+
+        This commit caused crashes on the GTK+ bots
+
+        * WebCoreSupport/FrameLoaderClientGtk.cpp:
+        (WebKit::FrameLoaderClient::finishedLoading):
+        * webkit/webkitwebview.cpp:
+        (webkit_web_view_get_encoding):
+
 2010-12-06  Nate Chapin  <japhet at chromium.org>
 
         Reviewed by Adam Barth.
diff --git a/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp b/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp
index 9613bb1..3dbba12 100644
--- a/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp
+++ b/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp
@@ -1016,9 +1016,10 @@ String FrameLoaderClient::generatedMIMETypeForURLScheme(const String&) const
 
 void FrameLoaderClient::finishedLoading(WebCore::DocumentLoader* documentLoader)
 {
-    if (!m_pluginView)
-        documentLoader->writer()->setEncoding(m_response.textEncodingName(), false);
-    else {
+    if (!m_pluginView) {
+        FrameLoader* loader = documentLoader->frameLoader();
+        loader->writer()->setEncoding(m_response.textEncodingName(), false);
+    } else {
         m_pluginView->didFinishLoading();
         m_pluginView = 0;
         m_hasSentResponseToPlugin = false;
diff --git a/WebKit/gtk/webkit/webkitwebview.cpp b/WebKit/gtk/webkit/webkitwebview.cpp
index a1d550f..559906a 100644
--- a/WebKit/gtk/webkit/webkitwebview.cpp
+++ b/WebKit/gtk/webkit/webkitwebview.cpp
@@ -4509,7 +4509,7 @@ gdouble webkit_web_view_get_progress(WebKitWebView* webView)
 const gchar* webkit_web_view_get_encoding(WebKitWebView* webView)
 {
     g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), NULL);
-    String encoding = core(webView)->mainFrame()->document()->loader()->writer()->encoding();
+    String encoding = core(webView)->mainFrame()->loader()->writer()->encoding();
     if (encoding.isEmpty())
         return 0;
     webView->priv->encoding = encoding.utf8();
diff --git a/WebKit/mac/ChangeLog b/WebKit/mac/ChangeLog
index 581cb03..bc4bb8a 100644
--- a/WebKit/mac/ChangeLog
+++ b/WebKit/mac/ChangeLog
@@ -1,3 +1,14 @@
+2010-12-07  Martin Robinson  <mrobinson at igalia.com>
+
+        Unreviewed, rolling out r73392.
+        http://trac.webkit.org/changeset/73392
+        https://bugs.webkit.org/show_bug.cgi?id=50489
+
+        This commit caused crashes on the GTK+ bots
+
+        * WebView/WebFrame.mm:
+        (-[WebFrame _canProvideDocumentSource]):
+
 2010-12-07  Kenichi Ishibashi  <bashi at google.com>
 
         Reviewed by Kent Tamura.
diff --git a/WebKit/mac/WebView/WebFrame.mm b/WebKit/mac/WebView/WebFrame.mm
index db3f6ce..d1d4953 100644
--- a/WebKit/mac/WebView/WebFrame.mm
+++ b/WebKit/mac/WebView/WebFrame.mm
@@ -933,7 +933,7 @@ static inline WebDataSource *dataSource(DocumentLoader* loader)
 - (BOOL)_canProvideDocumentSource
 {
     Frame* frame = _private->coreFrame;
-    String mimeType = frame->document()->loader()->writer()->mimeType();
+    String mimeType = frame->loader()->writer()->mimeType();
     PluginData* pluginData = frame->page() ? frame->page()->pluginData() : 0;
 
     if (WebCore::DOMImplementation::isTextMIMEType(mimeType) ||
diff --git a/WebKit/qt/Api/qwebframe.cpp b/WebKit/qt/Api/qwebframe.cpp
index 268b73e..3cdbef2 100644
--- a/WebKit/qt/Api/qwebframe.cpp
+++ b/WebKit/qt/Api/qwebframe.cpp
@@ -703,8 +703,8 @@ static inline QUrl ensureAbsoluteUrl(const QUrl &url)
 void QWebFrame::setUrl(const QUrl &url)
 {
     const QUrl absolute = ensureAbsoluteUrl(url);
-    d->frame->document()->loader()->writer()->begin(absolute);
-    d->frame->document()->loader()->writer()->end();
+    d->frame->loader()->writer()->begin(absolute);
+    d->frame->loader()->writer()->end();
     load(absolute);
 }
 
diff --git a/WebKit/qt/ChangeLog b/WebKit/qt/ChangeLog
index c31feb9..9d73ff9 100644
--- a/WebKit/qt/ChangeLog
+++ b/WebKit/qt/ChangeLog
@@ -1,3 +1,16 @@
+2010-12-07  Martin Robinson  <mrobinson at igalia.com>
+
+        Unreviewed, rolling out r73392.
+        http://trac.webkit.org/changeset/73392
+        https://bugs.webkit.org/show_bug.cgi?id=50489
+
+        This commit caused crashes on the GTK+ bots
+
+        * Api/qwebframe.cpp:
+        (QWebFrame::setUrl):
+        * WebCoreSupport/FrameLoaderClientQt.cpp:
+        (WebCore::FrameLoaderClientQt::finishedLoading):
+
 2010-12-06  Nate Chapin  <japhet at chromium.org>
 
         Reviewed by Adam Barth.
diff --git a/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp b/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp
index 4751cf8..bf6e75a 100644
--- a/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp
+++ b/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp
@@ -619,7 +619,7 @@ void FrameLoaderClientQt::finishedLoading(DocumentLoader* loader)
         // However, we only want to do this if makeRepresentation has been called, to
         // match the behavior on the Mac.
         if (m_hasRepresentation)
-            loader->writer()->setEncoding("", false);
+            loader->frameLoader()->writer()->setEncoding("", false);
         return;
     }
     if (m_pluginView->isPluginView())
diff --git a/WebKit/wince/ChangeLog b/WebKit/wince/ChangeLog
index da1cd48..31f5543 100644
--- a/WebKit/wince/ChangeLog
+++ b/WebKit/wince/ChangeLog
@@ -1,3 +1,14 @@
+2010-12-07  Martin Robinson  <mrobinson at igalia.com>
+
+        Unreviewed, rolling out r73392.
+        http://trac.webkit.org/changeset/73392
+        https://bugs.webkit.org/show_bug.cgi?id=50489
+
+        This commit caused crashes on the GTK+ bots
+
+        * WebCoreSupport/FrameLoaderClientWinCE.cpp:
+        (WebKit::FrameLoaderClientWinCE::finishedLoading):
+
 2010-12-06  Nate Chapin  <japhet at chromium.org>
 
         Reviewed by Adam Barth.
diff --git a/WebKit/wince/WebCoreSupport/FrameLoaderClientWinCE.cpp b/WebKit/wince/WebCoreSupport/FrameLoaderClientWinCE.cpp
index f16346a..f3643b2 100644
--- a/WebKit/wince/WebCoreSupport/FrameLoaderClientWinCE.cpp
+++ b/WebKit/wince/WebCoreSupport/FrameLoaderClientWinCE.cpp
@@ -450,7 +450,8 @@ String FrameLoaderClientWinCE::generatedMIMETypeForURLScheme(const String&) cons
 void FrameLoaderClientWinCE::finishedLoading(DocumentLoader* documentLoader)
 {
     if (!m_pluginView) {
-        documentLoader->writer()->setEncoding(m_response.textEncodingName(), false);
+        FrameLoader* loader = documentLoader->frameLoader();
+        loader->writer()->setEncoding(m_response.textEncodingName(), false);
         return;
     }
 
diff --git a/WebKit/wx/ChangeLog b/WebKit/wx/ChangeLog
index f4e0615..ae7f240 100644
--- a/WebKit/wx/ChangeLog
+++ b/WebKit/wx/ChangeLog
@@ -1,3 +1,14 @@
+2010-12-07  Martin Robinson  <mrobinson at igalia.com>
+
+        Unreviewed, rolling out r73392.
+        http://trac.webkit.org/changeset/73392
+        https://bugs.webkit.org/show_bug.cgi?id=50489
+
+        This commit caused crashes on the GTK+ bots
+
+        * WebKitSupport/FrameLoaderClientWx.cpp:
+        (WebCore::FrameLoaderClientWx::finishedLoading):
+
 2010-12-06  Nate Chapin  <japhet at chromium.org>
 
         Reviewed by Adam Barth.
diff --git a/WebKit/wx/WebKitSupport/FrameLoaderClientWx.cpp b/WebKit/wx/WebKitSupport/FrameLoaderClientWx.cpp
index 9af992c..8748a98 100644
--- a/WebKit/wx/WebKitSupport/FrameLoaderClientWx.cpp
+++ b/WebKit/wx/WebKitSupport/FrameLoaderClientWx.cpp
@@ -434,7 +434,8 @@ void FrameLoaderClientWx::finishedLoading(DocumentLoader* loader)
 {
     if (!m_pluginView) {
         if (m_firstData) {
-            loader->writer()->setEncoding(m_response.textEncodingName(), false);
+            FrameLoader* fl = loader->frameLoader();
+            fl->writer()->setEncoding(m_response.textEncodingName(), false);
             m_firstData = false;
         }
     } else {

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list