[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