[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:29 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit 9ddf7eb8f391d4d79aafe37e455df8d200061297
Author: andersca at apple.com <andersca at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Thu Jul 15 20:45:55 2010 +0000
Add a PluginView::Stream class
https://bugs.webkit.org/show_bug.cgi?id=42398
Reviewed by Sam Weinig.
* WebProcess/Plugins/PluginView.cpp:
Add the Stream class.
(WebKit::PluginView::performURLRequest):
Create the stream and start it.
(WebKit::PluginView::addStream):
Add the stream to the map.
(WebKit::PluginView::removeStream):
Remove the stream from the map.
* WebProcess/Plugins/PluginView.h:
Add Stream forward declaration and the m_streams map.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@63457 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebKit2/ChangeLog b/WebKit2/ChangeLog
index bd99707..756f420 100644
--- a/WebKit2/ChangeLog
+++ b/WebKit2/ChangeLog
@@ -26,6 +26,28 @@
Reviewed by Sam Weinig.
+ Add a PluginView::Stream class
+ https://bugs.webkit.org/show_bug.cgi?id=42398
+
+ * WebProcess/Plugins/PluginView.cpp:
+ Add the Stream class.
+
+ (WebKit::PluginView::performURLRequest):
+ Create the stream and start it.
+
+ (WebKit::PluginView::addStream):
+ Add the stream to the map.
+
+ (WebKit::PluginView::removeStream):
+ Remove the stream from the map.
+
+ * WebProcess/Plugins/PluginView.h:
+ Add Stream forward declaration and the m_streams map.
+
+2010-07-15 Anders Carlsson <andersca at apple.com>
+
+ Reviewed by Sam Weinig.
+
Don't allow multiple calls to NetscapePluginStream::stop
https://bugs.webkit.org/show_bug.cgi?id=42395
diff --git a/WebKit2/WebProcess/Plugins/PluginView.cpp b/WebKit2/WebProcess/Plugins/PluginView.cpp
index 88bb3e1..ca1a47b 100644
--- a/WebKit2/WebProcess/Plugins/PluginView.cpp
+++ b/WebKit2/WebProcess/Plugins/PluginView.cpp
@@ -64,6 +64,35 @@ private:
bool m_allowPopups;
};
+class PluginView::Stream : public RefCounted<PluginView::Stream> {
+public:
+ static PassRefPtr<Stream> create(PluginView* pluginView, uint64_t streamID, const ResourceRequest& request)
+ {
+ return adoptRef(new Stream(pluginView, streamID, request));
+ }
+
+ void start();
+
+ uint64_t streamID() const { return m_streamID; }
+
+private:
+ Stream(PluginView* pluginView, uint64_t streamID, const ResourceRequest& request)
+ : m_pluginView(pluginView)
+ , m_streamID(streamID)
+ , m_request(request)
+ {
+ }
+
+ RefPtr<PluginView> m_pluginView;
+ uint64_t m_streamID;
+ const ResourceRequest m_request;
+};
+
+void PluginView::Stream::start()
+{
+ // FIXME: Implement.
+}
+
PluginView::PluginView(WebCore::HTMLPlugInElement* pluginElement, PassRefPtr<Plugin> plugin, const Plugin::Parameters& parameters)
: m_pluginElement(pluginElement)
, m_plugin(plugin)
@@ -216,6 +245,11 @@ void PluginView::performURLRequest(URLRequest* request)
performFrameLoadURLRequest(request);
return;
}
+
+ // This request is to load a URL and create a stream.
+ RefPtr<PluginView::Stream> stream = PluginView::Stream::create(this, request->requestID(), request->request());
+ addStream(stream.get());
+ stream->start();
}
void PluginView::performFrameLoadURLRequest(URLRequest* request)
@@ -305,6 +339,19 @@ void PluginView::performJavaScriptURLRequest(URLRequest* request)
plugin->didEvaluateJavaScript(request->requestID(), decodeURLEscapeSequences(request->request().url()), resultString);
}
+void PluginView::addStream(Stream* stream)
+{
+ ASSERT(!m_streams.contains(stream->streamID()));
+ m_streams.set(stream->streamID(), stream);
+}
+
+void PluginView::removeStream(Stream* stream)
+{
+ ASSERT(m_streams.get(stream->streamID()) == stream);
+
+ m_streams.remove(stream->streamID());
+}
+
void PluginView::invalidateRect(const IntRect& dirtyRect)
{
if (!parent() || !m_plugin || !m_isInitialized)
diff --git a/WebKit2/WebProcess/Plugins/PluginView.h b/WebKit2/WebProcess/Plugins/PluginView.h
index 261e6ac..7108212 100644
--- a/WebKit2/WebProcess/Plugins/PluginView.h
+++ b/WebKit2/WebProcess/Plugins/PluginView.h
@@ -70,6 +70,10 @@ private:
// Perform a URL request where the URL protocol is "javascript:".
void performJavaScriptURLRequest(URLRequest*);
+ class Stream;
+ void addStream(Stream*);
+ void removeStream(Stream*);
+
// WebCore::Widget
virtual void setFrameRect(const WebCore::IntRect&);
virtual void paint(WebCore::GraphicsContext*, const WebCore::IntRect&);
@@ -104,6 +108,8 @@ private:
typedef HashMap<RefPtr<WebFrame>, RefPtr<URLRequest> > FrameLoadMap;
FrameLoadMap m_pendingFrameLoads;
+ // Streams that the plug-in has requested to load.
+ HashMap<uint64_t, RefPtr<Stream> > m_streams;
};
} // namespace WebKit
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list