[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc
andersca at apple.com
andersca at apple.com
Wed Dec 22 11:14:59 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit e5cbf7a18e0c784ac85c5203e08f594db836c971
Author: andersca at apple.com <andersca at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Thu Jul 15 23:40:56 2010 +0000
Stop the plug-in stream when it's finished loading
https://bugs.webkit.org/show_bug.cgi?id=42423
Reviewed by Sam Weinig.
* WebProcess/Plugins/DummyPlugin.cpp:
(WebKit::DummyPlugin::streamDidFinishLoading):
* WebProcess/Plugins/DummyPlugin.h:
Add empty stub.
* WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
(WebKit::NetscapePlugin::streamDidFinishLoading):
Call NetscapePluginStream::didFinishLoading.
* WebProcess/Plugins/Netscape/NetscapePluginStream.cpp:
(WebKit::NetscapePluginStream::didFinishLoading):
Stop the stream with NPRES_DONE.
* WebProcess/Plugins/Plugin.h:
Add streamDidFinishLoading.
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::Stream::didFinishLoading):
Call Plugin::streamDidFinishLoading.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@63493 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebKit2/ChangeLog b/WebKit2/ChangeLog
index 648533d..d91145f 100644
--- a/WebKit2/ChangeLog
+++ b/WebKit2/ChangeLog
@@ -2,6 +2,33 @@
Reviewed by Sam Weinig.
+ Stop the plug-in stream when it's finished loading
+ https://bugs.webkit.org/show_bug.cgi?id=42423
+
+ * WebProcess/Plugins/DummyPlugin.cpp:
+ (WebKit::DummyPlugin::streamDidFinishLoading):
+ * WebProcess/Plugins/DummyPlugin.h:
+ Add empty stub.
+
+ * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
+ (WebKit::NetscapePlugin::streamDidFinishLoading):
+ Call NetscapePluginStream::didFinishLoading.
+
+ * WebProcess/Plugins/Netscape/NetscapePluginStream.cpp:
+ (WebKit::NetscapePluginStream::didFinishLoading):
+ Stop the stream with NPRES_DONE.
+
+ * WebProcess/Plugins/Plugin.h:
+ Add streamDidFinishLoading.
+
+ * WebProcess/Plugins/PluginView.cpp:
+ (WebKit::PluginView::Stream::didFinishLoading):
+ Call Plugin::streamDidFinishLoading.
+
+2010-07-15 Anders Carlsson <andersca at apple.com>
+
+ Reviewed by Sam Weinig.
+
Pass URL stream data to the plug-in
https://bugs.webkit.org/show_bug.cgi?id=42420
diff --git a/WebKit2/WebProcess/Plugins/DummyPlugin.cpp b/WebKit2/WebProcess/Plugins/DummyPlugin.cpp
index 36d1872..7fbd9d5 100644
--- a/WebKit2/WebProcess/Plugins/DummyPlugin.cpp
+++ b/WebKit2/WebProcess/Plugins/DummyPlugin.cpp
@@ -87,6 +87,10 @@ void DummyPlugin::streamDidReceiveData(uint64_t streamID, const char* bytes, int
{
}
+void DummyPlugin::streamDidFinishLoading(uint64_t streamID)
+{
+}
+
void DummyPlugin::streamDidFail(uint64_t streamID, bool wasCancelled)
{
}
diff --git a/WebKit2/WebProcess/Plugins/DummyPlugin.h b/WebKit2/WebProcess/Plugins/DummyPlugin.h
index 7041997..bb5a942 100644
--- a/WebKit2/WebProcess/Plugins/DummyPlugin.h
+++ b/WebKit2/WebProcess/Plugins/DummyPlugin.h
@@ -52,6 +52,7 @@ private:
virtual void streamDidReceiveResponse(uint64_t streamID, const WebCore::KURL& responseURL, uint32_t streamLength,
uint32_t lastModifiedTime, const WebCore::String& mimeType, const WebCore::String& headers);
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 PluginController* controller();
diff --git a/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp b/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp
index 1af4fb9..cc41f66 100644
--- a/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp
+++ b/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp
@@ -343,6 +343,12 @@ void NetscapePlugin::streamDidReceiveData(uint64_t streamID, const char* bytes,
pluginStream->didReceiveData(bytes, length);
}
+void NetscapePlugin::streamDidFinishLoading(uint64_t streamID)
+{
+ if (NetscapePluginStream* pluginStream = streamFromID(streamID))
+ pluginStream->didFinishLoading();
+}
+
void NetscapePlugin::streamDidFail(uint64_t streamID, bool wasCancelled)
{
if (NetscapePluginStream* pluginStream = streamFromID(streamID))
diff --git a/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h b/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h
index dca3f06..a431c4f 100644
--- a/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h
+++ b/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h
@@ -90,6 +90,7 @@ private:
virtual void streamDidReceiveResponse(uint64_t streamID, const WebCore::KURL& responseURL, uint32_t streamLength,
uint32_t lastModifiedTime, const WebCore::String& mimeType, const WebCore::String& headers);
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 PluginController* controller();
diff --git a/WebKit2/WebProcess/Plugins/Netscape/NetscapePluginStream.cpp b/WebKit2/WebProcess/Plugins/Netscape/NetscapePluginStream.cpp
index eb11e57..a69a698 100644
--- a/WebKit2/WebProcess/Plugins/Netscape/NetscapePluginStream.cpp
+++ b/WebKit2/WebProcess/Plugins/Netscape/NetscapePluginStream.cpp
@@ -72,6 +72,14 @@ void NetscapePluginStream::didReceiveData(const char* bytes, int length)
deliverData(bytes, length);
}
+void NetscapePluginStream::didFinishLoading()
+{
+ // Stopping the stream could cause the plug-in stream to go away so we keep a reference to it here.
+ RefPtr<NetscapePluginStream> protect(this);
+
+ stop(NPRES_DONE);
+}
+
void NetscapePluginStream::didFail(bool wasCancelled)
{
// Stopping the stream could cause the plug-in stream to go away so we keep a reference to it here.
diff --git a/WebKit2/WebProcess/Plugins/Netscape/NetscapePluginStream.h b/WebKit2/WebProcess/Plugins/Netscape/NetscapePluginStream.h
index c149520..c5ddecc 100644
--- a/WebKit2/WebProcess/Plugins/Netscape/NetscapePluginStream.h
+++ b/WebKit2/WebProcess/Plugins/Netscape/NetscapePluginStream.h
@@ -56,6 +56,7 @@ public:
void didReceiveResponse(const WebCore::KURL& responseURL, uint32_t streamLength,
uint32_t lastModifiedTime, const WebCore::String& mimeType, const WebCore::String& headers);
void didReceiveData(const char* bytes, int length);
+ void didFinishLoading();
void didFail(bool wasCancelled);
void sendJavaScriptStream(const WebCore::String& requestURLString, const WebCore::String& result);
diff --git a/WebKit2/WebProcess/Plugins/Plugin.h b/WebKit2/WebProcess/Plugins/Plugin.h
index c31cecc..18ce87c 100644
--- a/WebKit2/WebProcess/Plugins/Plugin.h
+++ b/WebKit2/WebProcess/Plugins/Plugin.h
@@ -80,6 +80,9 @@ public:
// Tells the plug-in that a stream did receive data.
virtual void streamDidReceiveData(uint64_t streamID, const char* bytes, int length) = 0;
+ // Tells the plug-in that a stream has finished loading.
+ virtual void streamDidFinishLoading(uint64_t streamID) = 0;
+
// Tells the plug-in that a stream has failed to load, either because of network errors or because the load was cancelled.
virtual void streamDidFail(uint64_t streamID, bool wasCancelled) = 0;
diff --git a/WebKit2/WebProcess/Plugins/PluginView.cpp b/WebKit2/WebProcess/Plugins/PluginView.cpp
index c83a567..df16295 100644
--- a/WebKit2/WebProcess/Plugins/PluginView.cpp
+++ b/WebKit2/WebProcess/Plugins/PluginView.cpp
@@ -188,7 +188,11 @@ void PluginView::Stream::didFail(NetscapePlugInStreamLoader*, const ResourceErro
void PluginView::Stream::didFinishLoading(NetscapePlugInStreamLoader*)
{
- // FIXME: Implement.
+ // Calling streamDidFinishLoading could cause us to be deleted, so we hold on to a reference here.
+ RefPtr<Stream> protect(this);
+
+ m_pluginView->m_plugin->streamDidFinishLoading(m_streamID);
+ m_pluginView->removeStream(this);
}
PluginView::PluginView(WebCore::HTMLPlugInElement* pluginElement, PassRefPtr<Plugin> plugin, const Plugin::Parameters& parameters)
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list