Title: [98503] trunk/Source
Revision
98503
Author
[email protected]
Date
2011-10-26 11:11:51 -0700 (Wed, 26 Oct 2011)

Log Message

        Embedded PDFs should be known to DocumentLoader
        https://bugs.webkit.org/show_bug.cgi?id=70864

        Reviewed by Darin Adler.

        * WebProcess/Plugins/Plugin.h: Plugin stream load notifications now contain a suggested
        file name, in case the plug-in wants to save the file properly.

        * WebProcess/Plugins/PDF/BuiltInPDFView.h:
        * WebProcess/Plugins/PDF/BuiltInPDFView.cpp:
        (WebKit::BuiltInPDFView::addArchiveResource): Add the PDF as resource in DocumentLoader.
        (WebKit::BuiltInPDFView::pdfDocumentDidLoad): Call addArchiveResource.
        (WebKit::BuiltInPDFView::initialize): We need to remember source URL to create a resource
        for that. The URL needs to match one in HitTestResult, so we can't use response URL.
        (WebKit::BuiltInPDFView::streamDidReceiveResponse): Remember suggested file name, so
        that we could put it in archive resource later.
        (WebKit::BuiltInPDFView::manualStreamDidReceiveResponse): Ditto.

        * PluginProcess/PluginControllerProxy.cpp:
        (WebKit::PluginControllerProxy::streamDidReceiveResponse):
        (WebKit::PluginControllerProxy::manualStreamDidReceiveResponse):
        Pass an empty string for suggested file name. No plug-in that runs in a separate process
        cares about it, so it's not sent to the plugin process.

        * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
        (WebKit::NetscapePlugin::streamDidReceiveResponse):
        (WebKit::NetscapePlugin::manualStreamDidReceiveResponse):
        * WebProcess/Plugins/Netscape/NetscapePlugin.h:
        Updated for new signatures.

        * WebProcess/Plugins/PluginProxy.cpp:
        (WebKit::PluginProxy::streamDidReceiveResponse):
        (WebKit::PluginProxy::manualStreamDidReceiveResponse):
        * WebProcess/Plugins/PluginProxy.h:
        Updated for new signatures.

        * WebProcess/Plugins/PluginView.cpp:
        (WebKit::PluginView::Stream::didReceiveResponse):
        (WebKit::PluginView::manualLoadDidReceiveResponse):
        Pass suggested file name to plug-in, in case the plug-in wants to save the file properly.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (98502 => 98503)


--- trunk/Source/WebCore/ChangeLog	2011-10-26 17:56:41 UTC (rev 98502)
+++ trunk/Source/WebCore/ChangeLog	2011-10-26 18:11:51 UTC (rev 98503)
@@ -1,3 +1,12 @@
+2011-10-25  Alexey Proskuryakov  <[email protected]>
+
+        Embedded PDFs should be known to DocumentLoader
+        https://bugs.webkit.org/show_bug.cgi?id=70864
+
+        Reviewed by Darin Adler.
+
+        * WebCore.exp.in: Added exports.
+
 2011-10-26  Mark Hahnenberg  <[email protected]>
 
         Remove getOwnPropertySlotVirtual

Modified: trunk/Source/WebCore/WebCore.exp.in (98502 => 98503)


--- trunk/Source/WebCore/WebCore.exp.in	2011-10-26 17:56:41 UTC (rev 98502)
+++ trunk/Source/WebCore/WebCore.exp.in	2011-10-26 18:11:51 UTC (rev 98503)
@@ -282,6 +282,7 @@
 __ZN7WebCore12RenderObject16repaintRectangleERKNS_7IntRectEb
 __ZN7WebCore12RenderWidget28resumeWidgetHierarchyUpdatesEv
 __ZN7WebCore12RenderWidget29suspendWidgetHierarchyUpdatesEv
+__ZN7WebCore12SharedBuffer10wrapCFDataEPK8__CFData
 __ZN7WebCore12SharedBuffer10wrapNSDataEP6NSData
 __ZN7WebCore12SharedBuffer12createNSDataEv
 __ZN7WebCore12SharedBuffer24createWithContentsOfFileERKN3WTF6StringE
@@ -576,7 +577,11 @@
 __ZN7WebCore20NodeRenderingContextC1EPNS_4NodeE
 __ZN7WebCore20NodeRenderingContextD1Ev
 __ZN7WebCore20RenderEmbeddedObject30setShowsCrashedPluginIndicatorEv
+__ZN7WebCore20ResourceResponseBase11setMimeTypeERKN3WTF6StringE
+__ZN7WebCore20ResourceResponseBase17setHTTPStatusCodeEi
+__ZN7WebCore20ResourceResponseBase20setSuggestedFilenameERKN3WTF6StringE
 __ZN7WebCore20ResourceResponseBase24setExpectedContentLengthEx
+__ZN7WebCore20ResourceResponseBase6setURLERKNS_4KURLE
 __ZN7WebCore20ResourceResponseBaseC2Ev
 __ZN7WebCore20ShadowContentElement6createEPNS_8DocumentE
 __ZN7WebCore20SpaceSplitStringData12createVectorEv

Modified: trunk/Source/WebKit2/ChangeLog (98502 => 98503)


--- trunk/Source/WebKit2/ChangeLog	2011-10-26 17:56:41 UTC (rev 98502)
+++ trunk/Source/WebKit2/ChangeLog	2011-10-26 18:11:51 UTC (rev 98503)
@@ -1,3 +1,46 @@
+2011-10-25  Alexey Proskuryakov  <[email protected]>
+
+        Embedded PDFs should be known to DocumentLoader
+        https://bugs.webkit.org/show_bug.cgi?id=70864
+
+        Reviewed by Darin Adler.
+
+        * WebProcess/Plugins/Plugin.h: Plugin stream load notifications now contain a suggested
+        file name, in case the plug-in wants to save the file properly.
+
+        * WebProcess/Plugins/PDF/BuiltInPDFView.h:
+        * WebProcess/Plugins/PDF/BuiltInPDFView.cpp:
+        (WebKit::BuiltInPDFView::addArchiveResource): Add the PDF as resource in DocumentLoader.
+        (WebKit::BuiltInPDFView::pdfDocumentDidLoad): Call addArchiveResource.
+        (WebKit::BuiltInPDFView::initialize): We need to remember source URL to create a resource
+        for that. The URL needs to match one in HitTestResult, so we can't use response URL.
+        (WebKit::BuiltInPDFView::streamDidReceiveResponse): Remember suggested file name, so
+        that we could put it in archive resource later.
+        (WebKit::BuiltInPDFView::manualStreamDidReceiveResponse): Ditto.
+
+        * PluginProcess/PluginControllerProxy.cpp:
+        (WebKit::PluginControllerProxy::streamDidReceiveResponse):
+        (WebKit::PluginControllerProxy::manualStreamDidReceiveResponse):
+        Pass an empty string for suggested file name. No plug-in that runs in a separate process
+        cares about it, so it's not sent to the plugin process.
+
+        * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
+        (WebKit::NetscapePlugin::streamDidReceiveResponse):
+        (WebKit::NetscapePlugin::manualStreamDidReceiveResponse):
+        * WebProcess/Plugins/Netscape/NetscapePlugin.h:
+        Updated for new signatures.
+
+        * WebProcess/Plugins/PluginProxy.cpp:
+        (WebKit::PluginProxy::streamDidReceiveResponse):
+        (WebKit::PluginProxy::manualStreamDidReceiveResponse):
+        * WebProcess/Plugins/PluginProxy.h:
+        Updated for new signatures.
+
+        * WebProcess/Plugins/PluginView.cpp:
+        (WebKit::PluginView::Stream::didReceiveResponse):
+        (WebKit::PluginView::manualLoadDidReceiveResponse):
+        Pass suggested file name to plug-in, in case the plug-in wants to save the file properly.
+
 2011-10-26  Mark Hahnenberg  <[email protected]>
 
         Remove getOwnPropertySlotVirtual

Modified: trunk/Source/WebKit2/PluginProcess/PluginControllerProxy.cpp (98502 => 98503)


--- trunk/Source/WebKit2/PluginProcess/PluginControllerProxy.cpp	2011-10-26 17:56:41 UTC (rev 98502)
+++ trunk/Source/WebKit2/PluginProcess/PluginControllerProxy.cpp	2011-10-26 18:11:51 UTC (rev 98503)
@@ -462,7 +462,7 @@
 
 void PluginControllerProxy::streamDidReceiveResponse(uint64_t streamID, const String& responseURLString, uint32_t streamLength, uint32_t lastModifiedTime, const String& mimeType, const String& headers)
 {
-    m_plugin->streamDidReceiveResponse(streamID, KURL(ParsedURLString, responseURLString), streamLength, lastModifiedTime, mimeType, headers);
+    m_plugin->streamDidReceiveResponse(streamID, KURL(ParsedURLString, responseURLString), streamLength, lastModifiedTime, mimeType, headers, String());
 }
 
 void PluginControllerProxy::streamDidReceiveData(uint64_t streamID, const CoreIPC::DataReference& data)
@@ -485,7 +485,7 @@
     if (m_pluginCanceledManualStreamLoad)
         return;
 
-    m_plugin->manualStreamDidReceiveResponse(KURL(ParsedURLString, responseURLString), streamLength, lastModifiedTime, mimeType, headers);
+    m_plugin->manualStreamDidReceiveResponse(KURL(ParsedURLString, responseURLString), streamLength, lastModifiedTime, mimeType, headers, String());
 }
 
 void PluginControllerProxy::manualStreamDidReceiveData(const CoreIPC::DataReference& data)

Modified: trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp (98502 => 98503)


--- trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp	2011-10-26 17:56:41 UTC (rev 98502)
+++ trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp	2011-10-26 18:11:51 UTC (rev 98503)
@@ -724,7 +724,7 @@
 }
 
 void NetscapePlugin::streamDidReceiveResponse(uint64_t streamID, const KURL& responseURL, uint32_t streamLength, 
-                                              uint32_t lastModifiedTime, const String& mimeType, const String& headers)
+                                              uint32_t lastModifiedTime, const String& mimeType, const String& headers, const String& /* suggestedFileName */)
 {
     ASSERT(m_isStarted);
     
@@ -757,7 +757,7 @@
 }
 
 void NetscapePlugin::manualStreamDidReceiveResponse(const KURL& responseURL, uint32_t streamLength, uint32_t lastModifiedTime, 
-                                                    const String& mimeType, const String& headers)
+                                                    const String& mimeType, const String& headers, const String& /* suggestedFileName */)
 {
     ASSERT(m_isStarted);
     ASSERT(m_loadManually);

Modified: trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h (98502 => 98503)


--- trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h	2011-10-26 17:56:41 UTC (rev 98502)
+++ trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h	2011-10-26 18:11:51 UTC (rev 98503)
@@ -174,12 +174,12 @@
     virtual void frameDidFail(uint64_t requestID, bool wasCancelled);
     virtual void didEvaluateJavaScript(uint64_t requestID, const String& result);
     virtual void streamDidReceiveResponse(uint64_t streamID, const WebCore::KURL& responseURL, uint32_t streamLength, 
-                                          uint32_t lastModifiedTime, const String& mimeType, const String& headers);
+                                          uint32_t lastModifiedTime, const String& mimeType, const String& headers, const String& suggestedFileName);
     virtual void streamDidReceiveData(uint64_t streamID, const char* bytes, int length);
     virtual void streamDidFinishLoading(uint64_t streamID);
     virtual void streamDidFail(uint64_t streamID, bool wasCancelled);
     virtual void manualStreamDidReceiveResponse(const WebCore::KURL& responseURL, uint32_t streamLength, 
-                                                uint32_t lastModifiedTime, const String& mimeType, const String& headers);
+                                                uint32_t lastModifiedTime, const String& mimeType, const String& headers, const String& suggestedFileName);
     virtual void manualStreamDidReceiveData(const char* bytes, int length);
     virtual void manualStreamDidFinishLoading();
     virtual void manualStreamDidFail(bool wasCancelled);

Modified: trunk/Source/WebKit2/WebProcess/Plugins/PDF/BuiltInPDFView.cpp (98502 => 98503)


--- trunk/Source/WebKit2/WebProcess/Plugins/PDF/BuiltInPDFView.cpp	2011-10-26 17:56:41 UTC (rev 98502)
+++ trunk/Source/WebKit2/WebProcess/Plugins/PDF/BuiltInPDFView.cpp	2011-10-26 18:11:51 UTC (rev 98503)
@@ -30,6 +30,8 @@
 #include "ShareableBitmap.h"
 #include "WebEvent.h"
 #include "WebEventConversion.h"
+#include <WebCore/ArchiveResource.h>
+#include <WebCore/DocumentLoader.h>
 #include <WebCore/FocusController.h>
 #include <WebCore/Frame.h>
 #include <WebCore/FrameView.h>
@@ -185,8 +187,24 @@
     scrollbar = 0;
 }
 
+void BuiltInPDFView::addArchiveResource()
+{
+    // FIXME: It's a hack to force add a resource to DocumentLoader. PDF documents should just be fetched as CachedResources.
+
+    // Add just enough data for context menu handling and web archives to work.
+    ResourceResponse synthesizedResponse;
+    synthesizedResponse.setSuggestedFilename(m_suggestedFilename);
+    synthesizedResponse.setURL(m_sourceURL); // Needs to match the HitTestResult::absolutePDFURL.
+    synthesizedResponse.setMimeType("application/pdf");
+
+    RefPtr<ArchiveResource> resource = ArchiveResource::create(SharedBuffer::wrapCFData(m_dataBuffer.get()), m_sourceURL, "application/pdf", String(), String(), synthesizedResponse);
+    pluginView()->frame()->document()->loader()->addArchiveResource(resource.release());
+}
+
 void BuiltInPDFView::pdfDocumentDidLoad()
 {
+    addArchiveResource();
+
     RetainPtr<CGDataProviderRef> pdfDataProvider(AdoptCF, CGDataProviderCreateWithCFData(m_dataBuffer.get()));
     m_pdfDocument.adoptCF(CGPDFDocumentCreateWithProvider(pdfDataProvider.get()));
 
@@ -218,6 +236,7 @@
     m_page->addScrollableArea(this);
 
     // Load the src URL if needed.
+    m_sourceURL = parameters.url;
     if (!parameters.loadManually && !parameters.url.isEmpty())
         controller()->loadURL(pdfDocumentRequestID, "GET", parameters.url.string(), String(), HTTPHeaderMap(), Vector<uint8_t>(), false);
 
@@ -378,9 +397,11 @@
     ASSERT_NOT_REACHED();
 }
 
-void BuiltInPDFView::streamDidReceiveResponse(uint64_t streamID, const KURL&, uint32_t, uint32_t, const WTF::String&, const WTF::String&)
+void BuiltInPDFView::streamDidReceiveResponse(uint64_t streamID, const KURL&, uint32_t, uint32_t, const String&, const String&, const String& suggestedFilename)
 {
     ASSERT_UNUSED(streamID, streamID == pdfDocumentRequestID);
+
+    m_suggestedFilename = suggestedFilename;
 }
                                            
 void BuiltInPDFView::streamDidReceiveData(uint64_t streamID, const char* bytes, int length)
@@ -407,8 +428,9 @@
     m_dataBuffer.clear();
 }
 
-void BuiltInPDFView::manualStreamDidReceiveResponse(const KURL& responseURL, uint32_t streamLength,  uint32_t lastModifiedTime, const WTF::String& mimeType, const WTF::String& headers)
+void BuiltInPDFView::manualStreamDidReceiveResponse(const KURL& responseURL, uint32_t streamLength,  uint32_t lastModifiedTime, const String& mimeType, const String& headers, const String& suggestedFilename)
 {
+    m_suggestedFilename = suggestedFilename;
 }
 
 void BuiltInPDFView::manualStreamDidReceiveData(const char* bytes, int length)

Modified: trunk/Source/WebKit2/WebProcess/Plugins/PDF/BuiltInPDFView.h (98502 => 98503)


--- trunk/Source/WebKit2/WebProcess/Plugins/PDF/BuiltInPDFView.h	2011-10-26 17:56:41 UTC (rev 98502)
+++ trunk/Source/WebKit2/WebProcess/Plugins/PDF/BuiltInPDFView.h	2011-10-26 18:11:51 UTC (rev 98503)
@@ -60,6 +60,7 @@
     void willRemoveVerticalScrollbar(WebCore::Scrollbar*);
     PassRefPtr<WebCore::Scrollbar> createScrollbar(WebCore::ScrollbarOrientation);
     void destroyScrollbar(WebCore::ScrollbarOrientation);
+    void addArchiveResource();
     void pdfDocumentDidLoad();
     void calculateSizes();
     void paintBackground(WebCore::GraphicsContext*, const WebCore::IntRect& dirtyRect);
@@ -81,11 +82,11 @@
     virtual void frameDidFinishLoading(uint64_t requestID);
     virtual void frameDidFail(uint64_t requestID, bool wasCancelled);
     virtual void didEvaluateJavaScript(uint64_t requestID, const String& result);
-    virtual void streamDidReceiveResponse(uint64_t streamID, const WebCore::KURL& responseURL, uint32_t streamLength, uint32_t lastModifiedTime, const WTF::String& mimeType, const WTF::String& headers);
+    virtual void streamDidReceiveResponse(uint64_t streamID, const WebCore::KURL& responseURL, uint32_t streamLength, uint32_t lastModifiedTime, const String& mimeType, const String& headers, const String& suggestedFileName);
     virtual void streamDidReceiveData(uint64_t streamID, const char* bytes, int length);
     virtual void streamDidFinishLoading(uint64_t streamID);
     virtual void streamDidFail(uint64_t streamID, bool wasCancelled);
-    virtual void manualStreamDidReceiveResponse(const WebCore::KURL& responseURL, uint32_t streamLength, uint32_t lastModifiedTime, const WTF::String& mimeType, const WTF::String& headers);
+    virtual void manualStreamDidReceiveResponse(const WebCore::KURL& responseURL, uint32_t streamLength, uint32_t lastModifiedTime, const WTF::String& mimeType, const WTF::String& headers, const String& suggestedFileName);
     virtual void manualStreamDidReceiveData(const char* bytes, int length);
     virtual void manualStreamDidFinishLoading();
     virtual void manualStreamDidFail(bool wasCancelled);
@@ -145,7 +146,11 @@
     // In window coordinates.
     WebCore::IntRect m_frameRect;
 
+    WebCore::KURL m_sourceURL;
+
+    String m_suggestedFilename;
     RetainPtr<CFMutableDataRef> m_dataBuffer;
+
     RetainPtr<CGPDFDocumentRef> m_pdfDocument;
     Vector<WebCore::IntRect> m_pageBoxes;
     WebCore::IntSize m_pdfDocumentSize; // All pages, including gaps.

Modified: trunk/Source/WebKit2/WebProcess/Plugins/Plugin.h (98502 => 98503)


--- trunk/Source/WebKit2/WebProcess/Plugins/Plugin.h	2011-10-26 17:56:41 UTC (rev 98502)
+++ trunk/Source/WebKit2/WebProcess/Plugins/Plugin.h	2011-10-26 18:11:51 UTC (rev 98503)
@@ -133,7 +133,7 @@
 
     // Tells the plug-in that a stream has received its HTTP response.
     virtual void streamDidReceiveResponse(uint64_t streamID, const WebCore::KURL& responseURL, uint32_t streamLength, 
-                                          uint32_t lastModifiedTime, const String& mimeType, const String& headers) = 0;
+                                          uint32_t lastModifiedTime, const String& mimeType, const String& headers, const String& suggestedFileName) = 0;
 
     // Tells the plug-in that a stream did receive data.
     virtual void streamDidReceiveData(uint64_t streamID, const char* bytes, int length) = 0;
@@ -146,7 +146,7 @@
 
     // Tells the plug-in that the manual stream has received its HTTP response.
     virtual void manualStreamDidReceiveResponse(const WebCore::KURL& responseURL, uint32_t streamLength, 
-                                                uint32_t lastModifiedTime, const String& mimeType, const String& headers) = 0;
+                                                uint32_t lastModifiedTime, const String& mimeType, const String& headers, const String& suggestedFileName) = 0;
 
     // Tells the plug-in that the manual stream did receive data.
     virtual void manualStreamDidReceiveData(const char* bytes, int length) = 0;

Modified: trunk/Source/WebKit2/WebProcess/Plugins/PluginProxy.cpp (98502 => 98503)


--- trunk/Source/WebKit2/WebProcess/Plugins/PluginProxy.cpp	2011-10-26 17:56:41 UTC (rev 98502)
+++ trunk/Source/WebKit2/WebProcess/Plugins/PluginProxy.cpp	2011-10-26 18:11:51 UTC (rev 98503)
@@ -262,7 +262,7 @@
     m_connection->connection()->send(Messages::PluginControllerProxy::DidEvaluateJavaScript(requestID, result), m_pluginInstanceID);
 }
 
-void PluginProxy::streamDidReceiveResponse(uint64_t streamID, const KURL& responseURL, uint32_t streamLength, uint32_t lastModifiedTime, const WTF::String& mimeType, const WTF::String& headers)
+void PluginProxy::streamDidReceiveResponse(uint64_t streamID, const KURL& responseURL, uint32_t streamLength, uint32_t lastModifiedTime, const WTF::String& mimeType, const WTF::String& headers, const String& /* suggestedFileName */)
 {
     m_connection->connection()->send(Messages::PluginControllerProxy::StreamDidReceiveResponse(streamID, responseURL.string(), streamLength, lastModifiedTime, mimeType, headers), m_pluginInstanceID);
 }
@@ -282,7 +282,7 @@
     m_connection->connection()->send(Messages::PluginControllerProxy::StreamDidFail(streamID, wasCancelled), m_pluginInstanceID);
 }
 
-void PluginProxy::manualStreamDidReceiveResponse(const KURL& responseURL, uint32_t streamLength,  uint32_t lastModifiedTime, const WTF::String& mimeType, const WTF::String& headers)
+void PluginProxy::manualStreamDidReceiveResponse(const KURL& responseURL, uint32_t streamLength,  uint32_t lastModifiedTime, const WTF::String& mimeType, const WTF::String& headers, const String& /* suggestedFileName */)
 {
     m_connection->connection()->send(Messages::PluginControllerProxy::ManualStreamDidReceiveResponse(responseURL.string(), streamLength, lastModifiedTime, mimeType, headers), m_pluginInstanceID);
 }

Modified: trunk/Source/WebKit2/WebProcess/Plugins/PluginProxy.h (98502 => 98503)


--- trunk/Source/WebKit2/WebProcess/Plugins/PluginProxy.h	2011-10-26 17:56:41 UTC (rev 98502)
+++ trunk/Source/WebKit2/WebProcess/Plugins/PluginProxy.h	2011-10-26 18:11:51 UTC (rev 98503)
@@ -76,11 +76,11 @@
     virtual void frameDidFinishLoading(uint64_t requestID);
     virtual void frameDidFail(uint64_t requestID, bool wasCancelled);
     virtual void didEvaluateJavaScript(uint64_t requestID, const String& result);
-    virtual void streamDidReceiveResponse(uint64_t streamID, const WebCore::KURL& responseURL, uint32_t streamLength, uint32_t lastModifiedTime, const WTF::String& mimeType, const WTF::String& headers);
+    virtual void streamDidReceiveResponse(uint64_t streamID, const WebCore::KURL& responseURL, uint32_t streamLength, uint32_t lastModifiedTime, const String& mimeType, const String& headers, const String& suggestedFileName);
     virtual void streamDidReceiveData(uint64_t streamID, const char* bytes, int length);
     virtual void streamDidFinishLoading(uint64_t streamID);
     virtual void streamDidFail(uint64_t streamID, bool wasCancelled);
-    virtual void manualStreamDidReceiveResponse(const WebCore::KURL& responseURL, uint32_t streamLength, uint32_t lastModifiedTime, const WTF::String& mimeType, const WTF::String& headers);
+    virtual void manualStreamDidReceiveResponse(const WebCore::KURL& responseURL, uint32_t streamLength, uint32_t lastModifiedTime, const WTF::String& mimeType, const WTF::String& headers, const String& suggestedFileName);
     virtual void manualStreamDidReceiveData(const char* bytes, int length);
     virtual void manualStreamDidFinishLoading();
     virtual void manualStreamDidFail(bool wasCancelled);

Modified: trunk/Source/WebKit2/WebProcess/Plugins/PluginView.cpp (98502 => 98503)


--- trunk/Source/WebKit2/WebProcess/Plugins/PluginView.cpp	2011-10-26 17:56:41 UTC (rev 98502)
+++ trunk/Source/WebKit2/WebProcess/Plugins/PluginView.cpp	2011-10-26 18:11:51 UTC (rev 98503)
@@ -199,7 +199,7 @@
     if (expectedContentLength > 0)
         streamLength = expectedContentLength;
 
-    m_pluginView->m_plugin->streamDidReceiveResponse(m_streamID, responseURL, streamLength, response.lastModifiedDate(), mimeType, headers);
+    m_pluginView->m_plugin->streamDidReceiveResponse(m_streamID, responseURL, streamLength, response.lastModifiedDate(), mimeType, headers, response.suggestedFilename());
 }
 
 void PluginView::Stream::didReceiveData(NetscapePlugInStreamLoader*, const char* bytes, int length)
@@ -330,7 +330,7 @@
     if (expectedContentLength > 0)
         streamLength = expectedContentLength;
 
-    m_plugin->manualStreamDidReceiveResponse(responseURL, streamLength, response.lastModifiedDate(), mimeType, headers);
+    m_plugin->manualStreamDidReceiveResponse(responseURL, streamLength, response.lastModifiedDate(), mimeType, headers, response.suggestedFilename());
 }
 
 void PluginView::manualLoadDidReceiveData(const char* bytes, int length)
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to