2010-09-10 Adam Barth <abarth@webkit.org>
authorabarth@webkit.org <abarth@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 10 Sep 2010 19:54:10 +0000 (19:54 +0000)
committerabarth@webkit.org <abarth@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 10 Sep 2010 19:54:10 +0000 (19:54 +0000)
        Reviewed by Eric Seidel.

        Main resource bytes shouldn't bounce through FrameLoader
        https://bugs.webkit.org/show_bug.cgi?id=45496

        After the MainResourceLoader hands the bytes for the main resource to
        the DocumentLoader, the DocumentLoader hands the bytes to the
        FrameLoaderClient.  The FrameLoaderClient, in turn, returns the bytes
        to WebCore.  Prior to this patch, the FrameLoaderClient returned the
        bytes to the FrameLoader.  However, the FrameLoader was actually adding
        any value.

        In this patch, we change the FrameLoaderClient to return the bytes to
        the DocumentLoader directly.  In a future patch, we'll cut out the
        FrameLoaderClient middleman and handle the bytes internally in the
        DocumentLoader.

        * WebCore.exp.in:
        * loader/DocumentLoader.cpp:
        (WebCore::DocumentLoader::addData):
        * loader/DocumentLoader.h:
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::finishedLoadingDocument):
        * loader/FrameLoader.h:
2010-09-10  Adam Barth  <abarth@webkit.org>

        Reviewed by Eric Seidel.

        Main resource bytes shouldn't bounce through FrameLoader
        https://bugs.webkit.org/show_bug.cgi?id=45496

        Now return the bytes to the DocumentLoader.

        Also, removed comment about wrong code in the Mac port.

        * src/WebFrameImpl.cpp:
        (WebKit::WebFrameImpl::commitDocumentData):
2010-09-10  Adam Barth  <abarth@webkit.org>

        Reviewed by Eric Seidel.

        Main resource bytes shouldn't bounce through FrameLoader
        https://bugs.webkit.org/show_bug.cgi?id=45496

        Now return the bytes to the DocumentLoader.

        * WebCoreSupport/FrameLoaderClientEfl.cpp:
        (WebCore::FrameLoaderClientEfl::committedLoad):
2010-09-10  Adam Barth  <abarth@webkit.org>

        Reviewed by Eric Seidel.

        Main resource bytes shouldn't bounce through FrameLoader
        https://bugs.webkit.org/show_bug.cgi?id=45496

        Now return the bytes to the DocumentLoader.

        * WebCoreSupport/FrameLoaderClientGtk.cpp:
        (WebKit::FrameLoaderClient::committedLoad):
2010-09-10  Adam Barth  <abarth@webkit.org>

        Reviewed by Eric Seidel.

        Main resource bytes shouldn't bounce through FrameLoader
        https://bugs.webkit.org/show_bug.cgi?id=45496

        Now return the bytes to the DocumentLoader.

        * WebCoreSupport/FrameLoaderClientHaiku.cpp:
        (WebCore::FrameLoaderClientHaiku::committedLoad):
2010-09-10  Adam Barth  <abarth@webkit.org>

        Reviewed by Eric Seidel.

        Main resource bytes shouldn't bounce through FrameLoader
        https://bugs.webkit.org/show_bug.cgi?id=45496

        Now return the bytes to the DocumentLoader.

        Previously, we were checking the document for null.  However, Frame can
        never have a null document, so this check is no longer needed.

        * WebView/WebFrame.mm:
        (-[WebFrame _addData:]):
2010-09-10  Adam Barth  <abarth@webkit.org>

        Reviewed by Eric Seidel.

        Main resource bytes shouldn't bounce through FrameLoader
        https://bugs.webkit.org/show_bug.cgi?id=45496

        Now return the bytes to the DocumentLoader.

        * WebCoreSupport/FrameLoaderClientQt.cpp:
        (WebCore::FrameLoaderClientQt::committedLoad):
2010-09-10  Adam Barth  <abarth@webkit.org>

        Reviewed by Eric Seidel.

        Main resource bytes shouldn't bounce through FrameLoader
        https://bugs.webkit.org/show_bug.cgi?id=45496

        Now return the bytes to the DocumentLoader.

        * WebCoreSupport/WebFrameLoaderClient.cpp:
        (WebFrameLoaderClient::receivedData):
2010-09-10  Adam Barth  <abarth@webkit.org>

        Reviewed by Eric Seidel.

        Main resource bytes shouldn't bounce through FrameLoader
        https://bugs.webkit.org/show_bug.cgi?id=45496

        Now return the bytes to the DocumentLoader.

        * WebKitSupport/FrameLoaderClientWx.cpp:
        (WebCore::FrameLoaderClientWx::committedLoad):
2010-09-10  Adam Barth  <abarth@webkit.org>

        Reviewed by Eric Seidel.

        Main resource bytes shouldn't bounce through FrameLoader
        https://bugs.webkit.org/show_bug.cgi?id=45496

        Now return the bytes to the DocumentLoader.

        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
        (WebKit::WebFrameLoaderClient::receivedData):

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

24 files changed:
WebCore/ChangeLog
WebCore/WebCore.exp.in
WebCore/loader/DocumentLoader.cpp
WebCore/loader/DocumentLoader.h
WebCore/loader/FrameLoader.cpp
WebCore/loader/FrameLoader.h
WebKit/chromium/ChangeLog
WebKit/chromium/src/WebFrameImpl.cpp
WebKit/efl/ChangeLog
WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp
WebKit/gtk/ChangeLog
WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp
WebKit/haiku/ChangeLog
WebKit/haiku/WebCoreSupport/FrameLoaderClientHaiku.cpp
WebKit/mac/ChangeLog
WebKit/mac/WebView/WebFrame.mm
WebKit/qt/ChangeLog
WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp
WebKit/win/ChangeLog
WebKit/win/WebCoreSupport/WebFrameLoaderClient.cpp
WebKit/wx/ChangeLog
WebKit/wx/WebKitSupport/FrameLoaderClientWx.cpp
WebKit2/ChangeLog
WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp

index 856ac01..75c9cc7 100644 (file)
@@ -1,3 +1,30 @@
+2010-09-10  Adam Barth  <abarth@webkit.org>
+
+        Reviewed by Eric Seidel.
+
+        Main resource bytes shouldn't bounce through FrameLoader
+        https://bugs.webkit.org/show_bug.cgi?id=45496
+
+        After the MainResourceLoader hands the bytes for the main resource to
+        the DocumentLoader, the DocumentLoader hands the bytes to the
+        FrameLoaderClient.  The FrameLoaderClient, in turn, returns the bytes
+        to WebCore.  Prior to this patch, the FrameLoaderClient returned the
+        bytes to the FrameLoader.  However, the FrameLoader was actually adding
+        any value.
+
+        In this patch, we change the FrameLoaderClient to return the bytes to
+        the DocumentLoader directly.  In a future patch, we'll cut out the
+        FrameLoaderClient middleman and handle the bytes internally in the
+        DocumentLoader.
+
+        * WebCore.exp.in:
+        * loader/DocumentLoader.cpp:
+        (WebCore::DocumentLoader::addData):
+        * loader/DocumentLoader.h:
+        * loader/FrameLoader.cpp:
+        (WebCore::FrameLoader::finishedLoadingDocument):
+        * loader/FrameLoader.h:
+
 2010-09-10  Oliver Hunt  <oliver@apple.com>
 
         Reviewed by Darin Adler.
index d5135a3..265f42d 100644 (file)
@@ -170,7 +170,6 @@ __ZN7WebCore11FrameLoader4loadERKNS_15ResourceRequestERKN3WTF6StringEb
 __ZN7WebCore11FrameLoader4loadERKNS_15ResourceRequestERKNS_14SubstituteDataEb
 __ZN7WebCore11FrameLoader4loadERKNS_15ResourceRequestEb
 __ZN7WebCore11FrameLoader6reloadEb
-__ZN7WebCore11FrameLoader7addDataEPKci
 __ZN7WebCore11Geolocation12setIsAllowedEb
 __ZN7WebCore11GeolocationD1Ev
 __ZN7WebCore11HistoryItem10targetItemEv
@@ -299,6 +298,7 @@ __ZN7WebCore14DocumentLoader21addPlugInStreamLoaderEPNS_14ResourceLoaderE
 __ZN7WebCore14DocumentLoader22addAllArchiveResourcesEPNS_7ArchiveE
 __ZN7WebCore14DocumentLoader22cancelMainResourceLoadERKNS_13ResourceErrorE
 __ZN7WebCore14DocumentLoader24removePlugInStreamLoaderEPNS_14ResourceLoaderE
+__ZN7WebCore14DocumentLoader7addDataEPKci
 __ZN7WebCore14DocumentLoader7requestEv
 __ZN7WebCore14DocumentLoader8setFrameEPNS_5FrameE
 __ZN7WebCore14DocumentLoader8setTitleERKN3WTF6StringE
index b07b538..a58263e 100644 (file)
@@ -286,6 +286,14 @@ void DocumentLoader::commitLoad(const char* data, int length)
     frameLoader->client()->committedLoad(this, data, length);
 }
 
+void DocumentLoader::addData(const char* bytes, int length)
+{
+    ASSERT(m_frame->document());
+    ASSERT(m_frame->document()->parsing());
+    // FIXME: DocumentWriter should move to be owned by DocumentLoader.
+    frameLoader()->writer()->addData(bytes, length);
+}
+
 bool DocumentLoader::doesProgressiveLoad(const String& MIMEType) const
 {
     return !frameLoader()->isReplacing() || MIMEType == "text/html";
index 8ec3daa..a7b8b41 100644 (file)
@@ -211,6 +211,8 @@ namespace WebCore {
         DocumentLoadTiming* timing() { return &m_documentLoadTiming; }
         void resetTiming() { m_documentLoadTiming = DocumentLoadTiming(); }
 
+        void addData(const char* bytes, int length);
+
 #if ENABLE(OFFLINE_WEB_APPLICATIONS)
         ApplicationCacheHost* applicationCacheHost() const { return m_applicationCacheHost.get(); }
 #endif
index bf17ed9..3ea0863 100644 (file)
@@ -1089,14 +1089,6 @@ void FrameLoader::willSetEncoding()
         receivedFirstData();
 }
 
-void FrameLoader::addData(const char* bytes, int length)
-{
-    ASSERT(m_workingURL.isEmpty());
-    ASSERT(m_frame->document());
-    ASSERT(m_frame->document()->parsing());
-    writer()->addData(bytes, length);
-}
-
 #if ENABLE(WML)
 static inline bool frameContainsWMLContent(Frame* frame)
 {
@@ -2255,7 +2247,7 @@ void FrameLoader::finishedLoadingDocument(DocumentLoader* loader)
 
     ASSERT(m_frame->document());
 
-    addData(mainResource->data()->data(), mainResource->data()->size());
+    loader->addData(mainResource->data()->data(), mainResource->data()->size());
 }
 
 bool FrameLoader::isReplacing() const
index b388d9f..336a357 100644 (file)
@@ -261,8 +261,6 @@ public:
 
     void resetMultipleFormSubmissionProtection();
 
-    void addData(const char* bytes, int length);
-
     void checkCallImplicitClose();
 
     void frameDetached();
index adc37dc..b4d79fd 100644 (file)
@@ -1,3 +1,17 @@
+2010-09-10  Adam Barth  <abarth@webkit.org>
+
+        Reviewed by Eric Seidel.
+
+        Main resource bytes shouldn't bounce through FrameLoader
+        https://bugs.webkit.org/show_bug.cgi?id=45496
+
+        Now return the bytes to the DocumentLoader.
+
+        Also, removed comment about wrong code in the Mac port.
+
+        * src/WebFrameImpl.cpp:
+        (WebKit::WebFrameImpl::commitDocumentData):
+
 2010-09-08  Darin Adler  <darin@apple.com>
 
         Reviewed by Adam Barth.
index a2d6a46..6620516 100644 (file)
@@ -1012,7 +1012,8 @@ void WebFrameImpl::dispatchWillSendRequest(WebURLRequest& request)
         0, 0, request.toMutableResourceRequest(), response);
 }
 
-void WebFrameImpl::commitDocumentData(const char* data, size_t dataLen)
+// FIXME: This function should be moved into WebCore.
+void WebFrameImpl::commitDocumentData(const char* data, size_t length)
 {
     DocumentLoader* documentLoader = m_frame->loader()->documentLoader();
 
@@ -1025,9 +1026,7 @@ void WebFrameImpl::commitDocumentData(const char* data, size_t dataLen)
         encoding = documentLoader->response().textEncodingName();
     }
     m_frame->loader()->writer()->setEncoding(encoding, userChosen);
-
-    // NOTE: mac only does this if there is a document
-    m_frame->loader()->addData(data, dataLen);
+    m_frame->documentLoader()->addData(data, length);
 }
 
 unsigned WebFrameImpl::unloadListenerCount() const
index e805d2c..e492a5b 100644 (file)
@@ -1,3 +1,15 @@
+2010-09-10  Adam Barth  <abarth@webkit.org>
+
+        Reviewed by Eric Seidel.
+
+        Main resource bytes shouldn't bounce through FrameLoader
+        https://bugs.webkit.org/show_bug.cgi?id=45496
+
+        Now return the bytes to the DocumentLoader.
+
+        * WebCoreSupport/FrameLoaderClientEfl.cpp:
+        (WebCore::FrameLoaderClientEfl::committedLoad):
+
 2010-09-08  Darin Adler  <darin@apple.com>
 
         Reviewed by Adam Barth.
index 8ec783a..f0aaa5f 100644 (file)
@@ -182,7 +182,7 @@ void FrameLoaderClientEfl::dispatchWillSubmitForm(FramePolicyFunction function,
     callPolicyFunction(function, PolicyUse);
 }
 
-
+// FIXME: This function should be moved into WebCore.
 void FrameLoaderClientEfl::committedLoad(DocumentLoader* loader, const char* data, int length)
 {
     if (!m_pluginView) {
@@ -194,7 +194,7 @@ void FrameLoaderClientEfl::committedLoad(DocumentLoader* loader, const char* dat
             fl->writer()->setEncoding(m_response.textEncodingName(), false);
             m_firstData = false;
         }
-        fl->addData(data, length);
+        fl->documentLoader()->addData(data, length);
     }
 
     // We re-check here as the plugin can have been created
index 7d42874..036c5ce 100644 (file)
@@ -1,3 +1,15 @@
+2010-09-10  Adam Barth  <abarth@webkit.org>
+
+        Reviewed by Eric Seidel.
+
+        Main resource bytes shouldn't bounce through FrameLoader
+        https://bugs.webkit.org/show_bug.cgi?id=45496
+
+        Now return the bytes to the DocumentLoader.
+
+        * WebCoreSupport/FrameLoaderClientGtk.cpp:
+        (WebKit::FrameLoaderClient::committedLoad):
+
 2010-09-10  Martin Robinson  <mrobinson@igalia.com>
 
         Reviewed by Xan Lopez.
index 47ffa88..5974396 100644 (file)
@@ -245,7 +245,7 @@ void FrameLoaderClient::dispatchWillSubmitForm(FramePolicyFunction policyFunctio
     (core(m_frame)->loader()->policyChecker()->*policyFunction)(PolicyUse);
 }
 
-
+// FIXME: This function should be moved into WebCore.
 void FrameLoaderClient::committedLoad(WebCore::DocumentLoader* loader, const char* data, int length)
 {
     if (!m_pluginView) {
@@ -260,7 +260,7 @@ void FrameLoaderClient::committedLoad(WebCore::DocumentLoader* loader, const cha
         FrameLoader* frameLoader = loader->frameLoader();
         frameLoader->writer()->setEncoding(encoding, userChosen);
         if (data)
-            frameLoader->addData(data, length);
+            frameLoader->documentLoader()->addData(data, length);
 
         Frame* coreFrame = loader->frame();
         if (coreFrame && coreFrame->document() && coreFrame->document()->isMediaDocument())
index 986b00f..dcb0f14 100644 (file)
@@ -1,3 +1,15 @@
+2010-09-10  Adam Barth  <abarth@webkit.org>
+
+        Reviewed by Eric Seidel.
+
+        Main resource bytes shouldn't bounce through FrameLoader
+        https://bugs.webkit.org/show_bug.cgi?id=45496
+
+        Now return the bytes to the DocumentLoader.
+
+        * WebCoreSupport/FrameLoaderClientHaiku.cpp:
+        (WebCore::FrameLoaderClientHaiku::committedLoad):
+
 2010-08-06  Gavin Barraclough  <barraclough@apple.com>
 
         Rubber stamped by Sam Weinig
index 430194a..f3d1f87 100644 (file)
@@ -504,6 +504,7 @@ void FrameLoaderClientHaiku::setMainDocumentError(WebCore::DocumentLoader*, cons
     notImplemented();
 }
 
+// FIXME: This function should be moved into WebCore.
 void FrameLoaderClientHaiku::committedLoad(WebCore::DocumentLoader* loader, const char* data, int length)
 {
     if (!m_frame)
@@ -511,7 +512,7 @@ void FrameLoaderClientHaiku::committedLoad(WebCore::DocumentLoader* loader, cons
 
     FrameLoader* frameLoader = loader->frameLoader();
     frameLoader->writer()->setEncoding(m_response.textEncodingName(), false);
-    frameLoader->addData(data, length);
+    frameLoader->documentLoader()->addData(data, length);
 }
 
 WebCore::ResourceError FrameLoaderClientHaiku::cancelledError(const WebCore::ResourceRequest& request)
index df5ca46..bfe87fe 100644 (file)
@@ -1,3 +1,18 @@
+2010-09-10  Adam Barth  <abarth@webkit.org>
+
+        Reviewed by Eric Seidel.
+
+        Main resource bytes shouldn't bounce through FrameLoader
+        https://bugs.webkit.org/show_bug.cgi?id=45496
+
+        Now return the bytes to the DocumentLoader.
+
+        Previously, we were checking the document for null.  However, Frame can
+        never have a null document, so this check is no longer needed.
+
+        * WebView/WebFrame.mm:
+        (-[WebFrame _addData:]):
+
 2010-09-09  John Therrell  <jtherrell@apple.com>
 
         Reviewed by Alexey Proskuryakov.
index 8d564a3..9a987be 100644 (file)
@@ -490,16 +490,9 @@ static inline WebDataSource *dataSource(DocumentLoader* loader)
 - (void)_addData:(NSData *)data
 {
     Document* document = _private->coreFrame->document();
-    
-    // Document may be nil if the part is about to redirect
-    // as a result of JS executing during load, i.e. one frame
-    // changing another's location before the frame's document
-    // has been created. 
-    if (!document)
-        return;
 
     document->setShouldCreateRenderers(_private->shouldCreateRenderers);
-    _private->coreFrame->loader()->addData((const char *)[data bytes], [data length]);
+    _private->coreFrame->loader()->documentLoader()->addData((const char *)[data bytes], [data length]);
 }
 
 - (NSString *)_stringWithDocumentTypeStringAndMarkupString:(NSString *)markupString
index 95e79a4..711afb5 100644 (file)
@@ -1,3 +1,15 @@
+2010-09-10  Adam Barth  <abarth@webkit.org>
+
+        Reviewed by Eric Seidel.
+
+        Main resource bytes shouldn't bounce through FrameLoader
+        https://bugs.webkit.org/show_bug.cgi?id=45496
+
+        Now return the bytes to the DocumentLoader.
+
+        * WebCoreSupport/FrameLoaderClientQt.cpp:
+        (WebCore::FrameLoaderClientQt::committedLoad):
+
 2010-09-08  Darin Adler  <darin@apple.com>
 
         Reviewed by Adam Barth.
index 2d73f7f..cb14b4b 100644 (file)
@@ -789,6 +789,7 @@ void FrameLoaderClientQt::setMainDocumentError(WebCore::DocumentLoader* loader,
     }
 }
 
+// FIXME: This function should be moved into WebCore.
 void FrameLoaderClientQt::committedLoad(WebCore::DocumentLoader* loader, const char* data, int length)
 {
     if (!m_pluginView) {
@@ -799,7 +800,7 @@ void FrameLoaderClientQt::committedLoad(WebCore::DocumentLoader* loader, const c
             fl->writer()->setEncoding(m_response.textEncodingName(), false);
             m_firstData = false;
         }
-        fl->addData(data, length);
+        fl->documentLoader()->addData(data, length);
     }
     
     // We re-check here as the plugin can have been created
index b7e49cf..bfa9ccc 100644 (file)
@@ -1,3 +1,15 @@
+2010-09-10  Adam Barth  <abarth@webkit.org>
+
+        Reviewed by Eric Seidel.
+
+        Main resource bytes shouldn't bounce through FrameLoader
+        https://bugs.webkit.org/show_bug.cgi?id=45496
+
+        Now return the bytes to the DocumentLoader.
+
+        * WebCoreSupport/WebFrameLoaderClient.cpp:
+        (WebFrameLoaderClient::receivedData):
+
 2010-09-09  Simon Fraser  <simon.fraser@apple.com>
 
         Reviewed by Adam Roben.
index 48f7f3b..886f23c 100644 (file)
@@ -512,6 +512,7 @@ void WebFrameLoaderClient::committedLoad(DocumentLoader* loader, const char* dat
     m_manualLoader->didReceiveData(data, length);
 }
 
+// FIXME: This function should be moved into WebCore.
 void WebFrameLoaderClient::receivedData(const char* data, int length, const String& textEncoding)
 {
     Frame* coreFrame = core(m_webFrame);
@@ -524,8 +525,7 @@ void WebFrameLoaderClient::receivedData(const char* data, int length, const Stri
     if (encoding.isNull())
         encoding = textEncoding;
     coreFrame->loader()->writer()->setEncoding(encoding, userChosen);
-
-    coreFrame->loader()->addData(data, length);
+    coreFrame->loader()->documentLoader()->addData(data, length);
 }
 
 void WebFrameLoaderClient::finishedLoading(DocumentLoader* loader)
index 8edf46f..718fdfc 100644 (file)
@@ -1,3 +1,15 @@
+2010-09-10  Adam Barth  <abarth@webkit.org>
+
+        Reviewed by Eric Seidel.
+
+        Main resource bytes shouldn't bounce through FrameLoader
+        https://bugs.webkit.org/show_bug.cgi?id=45496
+
+        Now return the bytes to the DocumentLoader.
+
+        * WebKitSupport/FrameLoaderClientWx.cpp:
+        (WebCore::FrameLoaderClientWx::committedLoad):
+
 2010-09-08  Darin Adler  <darin@apple.com>
 
         Reviewed by Adam Barth.
index 5b708c2..eac5af1 100644 (file)
@@ -612,6 +612,7 @@ void FrameLoaderClientWx::setMainDocumentError(WebCore::DocumentLoader* loader,
     }
 }
 
+// FIXME: This function should be moved into WebCore.
 void FrameLoaderClientWx::committedLoad(WebCore::DocumentLoader* loader, const char* data, int length)
 {
     if (!m_webFrame)
@@ -619,7 +620,7 @@ void FrameLoaderClientWx::committedLoad(WebCore::DocumentLoader* loader, const c
     if (!m_pluginView) {
         FrameLoader* fl = loader->frameLoader();
         fl->writer()->setEncoding(m_response.textEncodingName(), false);
-        fl->addData(data, length);
+        fl->documentLoader()->addData(data, length);
     }
     
     // We re-check here as the plugin can have been created
index 5fde4e5..cfcae42 100644 (file)
@@ -1,3 +1,15 @@
+2010-09-10  Adam Barth  <abarth@webkit.org>
+
+        Reviewed by Eric Seidel.
+
+        Main resource bytes shouldn't bounce through FrameLoader
+        https://bugs.webkit.org/show_bug.cgi?id=45496
+
+        Now return the bytes to the DocumentLoader.
+
+        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+        (WebKit::WebFrameLoaderClient::receivedData):
+
 2010-09-10  Adam Roben  <aroben@apple.com>
 
         Don't crash when a frame is destroyed after the UI process has
index e4f611f..168948b 100644 (file)
@@ -620,6 +620,7 @@ void WebFrameLoaderClient::committedLoad(DocumentLoader* loader, const char* dat
     m_pluginView->manualLoadDidReceiveData(data, length);
 }
 
+// FIXME: This function should be moved into WebCore.
 void WebFrameLoaderClient::receivedData(const char* data, int length, const String& textEncoding)
 {
     Frame* coreFrame = m_frame->coreFrame();
@@ -633,7 +634,7 @@ void WebFrameLoaderClient::receivedData(const char* data, int length, const Stri
         encoding = textEncoding;
     coreFrame->loader()->writer()->setEncoding(encoding, userChosen);
     
-    coreFrame->loader()->addData(data, length);
+    coreFrame->loader()->documentLoader()->addData(data, length);
 }
 
 void WebFrameLoaderClient::finishedLoading(DocumentLoader* loader)