[SCM] WebKit Debian packaging branch, webkit-1.1, updated. upstream/1.1.15.1-1414-gc69ee75

jhoneycutt at apple.com jhoneycutt at apple.com
Thu Oct 29 20:46:18 UTC 2009


The following commit has been merged in the webkit-1.1 branch:
commit 0bf4912d6da2fc5aa8ea2c8e897961a8374e4851
Author: jhoneycutt at apple.com <jhoneycutt at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Oct 16 21:26:33 2009 +0000

    Add SPI to restart a halted plug-in.
    
    Part of <rdar://problem/7273354> Halted plug-ins should restart on
    mouseover
    
    https://bugs.webkit.org/show_bug.cgi?id=30151
    
    Reviewed by Kevin Decker.
    
    * Interfaces/IWebViewPrivate.idl:
    Add restartHaltedPluginForNode().
    
    * WebView.cpp:
    (WebView::restartHaltedPluginForNode):
    From the IDOMNode, query for the DOMNode. From the DOMNode, get the
    WebCore::Node. Get the node's renderer, and check whether it is a
    RenderWidget. If so, get its Widget, and check whether it's a
    PluginView. If so, call PluginView::restart().
    
    * WebView.h:
    Declare restartHaltedPluginForNode().
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@49699 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit/win/ChangeLog b/WebKit/win/ChangeLog
index 8e81027..09a9f2e 100644
--- a/WebKit/win/ChangeLog
+++ b/WebKit/win/ChangeLog
@@ -1,3 +1,27 @@
+2009-10-15  Jon Honeycutt  <jhoneycutt at apple.com>
+
+        Add SPI to restart a halted plug-in.
+
+        Part of <rdar://problem/7273354> Halted plug-ins should restart on
+        mouseover
+
+        https://bugs.webkit.org/show_bug.cgi?id=30151
+
+        Reviewed by Kevin Decker.
+
+        * Interfaces/IWebViewPrivate.idl:
+        Add restartHaltedPluginForNode().
+
+        * WebView.cpp:
+        (WebView::restartHaltedPluginForNode):
+        From the IDOMNode, query for the DOMNode. From the DOMNode, get the
+        WebCore::Node. Get the node's renderer, and check whether it is a
+        RenderWidget. If so, get its Widget, and check whether it's a
+        PluginView. If so, call PluginView::restart().
+
+        * WebView.h:
+        Declare restartHaltedPluginForNode().
+
 2009-10-14  Jon Honeycutt  <jhoneycutt at apple.com>
 
         Add SPI to determine whether a node is a halted plug-in.
diff --git a/WebKit/win/Interfaces/IWebViewPrivate.idl b/WebKit/win/Interfaces/IWebViewPrivate.idl
index 19236c9..9843cca 100644
--- a/WebKit/win/Interfaces/IWebViewPrivate.idl
+++ b/WebKit/win/Interfaces/IWebViewPrivate.idl
@@ -218,4 +218,5 @@ interface IWebViewPrivate : IUnknown
     HRESULT addVisitedLinks([in] BSTR* visitedURLs, [in] unsigned visitedURLCount);
 
     HRESULT isNodeHaltedPlugin([in] IDOMNode*, [retval, out] BOOL*);
+    HRESULT restartHaltedPluginForNode([in] IDOMNode*);
 }
diff --git a/WebKit/win/WebView.cpp b/WebKit/win/WebView.cpp
index 4d5fc58..db4b43d 100644
--- a/WebKit/win/WebView.cpp
+++ b/WebKit/win/WebView.cpp
@@ -5709,6 +5709,31 @@ HRESULT STDMETHODCALLTYPE WebView::isNodeHaltedPlugin(IDOMNode* domNode, BOOL* r
     return S_OK;
 }
 
+HRESULT STDMETHODCALLTYPE WebView::restartHaltedPluginForNode(IDOMNode* domNode)
+{
+    if (!domNode)
+        return E_POINTER;
+
+    COMPtr<DOMNode> webKitDOMNode(Query, domNode);
+    if (!webKitDOMNode)
+        return E_FAIL;
+
+    Node* node = webKitDOMNode->node();
+    if (!node)
+        return E_FAIL;
+
+    RenderObject* renderer = node->renderer();
+    if (!renderer || !renderer->isWidget())
+        return E_FAIL;
+
+    Widget* widget = toRenderWidget(renderer)->widget();
+    if (!widget || !widget->isPluginView())
+        return E_FAIL;
+
+    static_cast<PluginView*>(widget)->restart();
+    return S_OK;
+}
+
 class EnumTextMatches : public IEnumTextMatches
 {
     long m_ref;
diff --git a/WebKit/win/WebView.h b/WebKit/win/WebView.h
index bcac157..9b21143 100644
--- a/WebKit/win/WebView.h
+++ b/WebKit/win/WebView.h
@@ -767,6 +767,7 @@ public:
     virtual HRESULT STDMETHODCALLTYPE addVisitedLinks(BSTR* visitedURLs, unsigned visitedURLCount);
 
     virtual HRESULT STDMETHODCALLTYPE isNodeHaltedPlugin(IDOMNode*, BOOL*);
+    virtual HRESULT STDMETHODCALLTYPE restartHaltedPluginForNode(IDOMNode*);
 
     // WebView
     bool shouldUseEmbeddedView(const WebCore::String& mimeType) const;

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list