[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:43 UTC 2009


The following commit has been merged in the webkit-1.1 branch:
commit fb03e5817935a2a72d93281415482e41dd5080f9
Author: jhoneycutt at apple.com <jhoneycutt at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Sat Oct 17 04:38:38 2009 +0000

    Add SPI to determine whether a plug-in has ever been halted.
    
    Part of <rdar://problem/7312158>.
    
    Reviewed by Dan Bernstein.
    
    WebCore:
    
    * plugins/PluginView.cpp:
    (WebCore::PluginView::PluginView):
    Initialize m_hasBeenHalted.
    
    * plugins/PluginView.h:
    (WebCore::PluginView::hasBeenHalted):
    Return m_hasBeenHalted.
    
    * plugins/win/PluginViewWin.cpp:
    (WebCore::PluginView::halt):
    Set m_hasBeenHalted.
    
    WebKit/win:
    
    * Interfaces/IWebViewPrivate.idl:
    Add hasPluginForNodeBeenHalted().
    
    * WebView.cpp:
    (pluginViewForNode):
    Code factored out of isNodeHaltedPlugin().
    (WebView::isNodeHaltedPlugin):
    Remove STDMETHODCALLTYPE, as it has no use at the definition. Use
    pluginViewForNode().
    (WebView::restartHaltedPluginForNode):
    Ditto.
    (WebView::hasPluginForNodeBeenHalted):
    Get the PluginView for the given node. Return the result of
    PluginView::hasBeenHalted().
    
    * WebView.h:
    Declare hasPluginForNodeBeenHalted().
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@49732 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 6ade168..f8159ac 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,23 @@
+2009-10-16  Jon Honeycutt  <jhoneycutt at apple.com>
+
+        Add SPI to determine whether a plug-in has ever been halted.
+
+        Part of <rdar://problem/7312158>.
+
+        Reviewed by Dan Bernstein.
+
+        * plugins/PluginView.cpp:
+        (WebCore::PluginView::PluginView):
+        Initialize m_hasBeenHalted.
+
+        * plugins/PluginView.h:
+        (WebCore::PluginView::hasBeenHalted):
+        Return m_hasBeenHalted.
+
+        * plugins/win/PluginViewWin.cpp:
+        (WebCore::PluginView::halt):
+        Set m_hasBeenHalted.
+
 2009-10-16  Adam Barth  <abarth at webkit.org>
 
         Reviewed by Alexey Proskuryakov.
diff --git a/WebCore/plugins/PluginView.cpp b/WebCore/plugins/PluginView.cpp
index d3cafe0..8320bc4 100644
--- a/WebCore/plugins/PluginView.cpp
+++ b/WebCore/plugins/PluginView.cpp
@@ -829,6 +829,7 @@ PluginView::PluginView(Frame* parentFrame, const IntSize& size, PluginPackage* p
     , m_manualStream(0)
     , m_isJavaScriptPaused(false)
     , m_isHalted(false)
+    , m_hasBeenHalted(false)
 {
     if (!m_plugin) {
         m_status = PluginStatusCanNotFindPlugin;
diff --git a/WebCore/plugins/PluginView.h b/WebCore/plugins/PluginView.h
index a826a4f..1477561 100644
--- a/WebCore/plugins/PluginView.h
+++ b/WebCore/plugins/PluginView.h
@@ -200,6 +200,7 @@ namespace WebCore {
         virtual Node* node() const;
 
         bool isHalted() const { return m_isHalted; }
+        bool hasBeenHalted() const { return m_hasBeenHalted; }
 
         static bool isCallingPlugin();
 
@@ -345,6 +346,7 @@ private:
         bool m_isJavaScriptPaused;
 
         bool m_isHalted;
+        bool m_hasBeenHalted;
 
         static PluginView* s_currentPluginView;
     };
diff --git a/WebCore/plugins/win/PluginViewWin.cpp b/WebCore/plugins/win/PluginViewWin.cpp
index 409f859..6887af6 100644
--- a/WebCore/plugins/win/PluginViewWin.cpp
+++ b/WebCore/plugins/win/PluginViewWin.cpp
@@ -1029,6 +1029,7 @@ void PluginView::halt()
 #endif
 
     m_isHalted = true;
+    m_hasBeenHalted = true;
 
     stop();
     platformDestroy();
diff --git a/WebKit/win/ChangeLog b/WebKit/win/ChangeLog
index 3c64e78..0ebc610 100644
--- a/WebKit/win/ChangeLog
+++ b/WebKit/win/ChangeLog
@@ -1,3 +1,29 @@
+2009-10-16  Jon Honeycutt  <jhoneycutt at apple.com>
+
+        Add SPI to determine whether a plug-in has ever been halted.
+
+        Part of <rdar://problem/7312158>.
+
+        Reviewed by Dan Bernstein.
+
+        * Interfaces/IWebViewPrivate.idl:
+        Add hasPluginForNodeBeenHalted().
+
+        * WebView.cpp:
+        (pluginViewForNode):
+        Code factored out of isNodeHaltedPlugin().
+        (WebView::isNodeHaltedPlugin):
+        Remove STDMETHODCALLTYPE, as it has no use at the definition. Use
+        pluginViewForNode().
+        (WebView::restartHaltedPluginForNode):
+        Ditto.
+        (WebView::hasPluginForNodeBeenHalted):
+        Get the PluginView for the given node. Return the result of
+        PluginView::hasBeenHalted().
+
+        * WebView.h:
+        Declare hasPluginForNodeBeenHalted().
+
 2009-10-16  Steve Falkenburg  <sfalken at apple.com>
 
         Reviewed by Adam Roben.
diff --git a/WebKit/win/Interfaces/IWebViewPrivate.idl b/WebKit/win/Interfaces/IWebViewPrivate.idl
index 9843cca..d95f92b 100644
--- a/WebKit/win/Interfaces/IWebViewPrivate.idl
+++ b/WebKit/win/Interfaces/IWebViewPrivate.idl
@@ -219,4 +219,5 @@ interface IWebViewPrivate : IUnknown
 
     HRESULT isNodeHaltedPlugin([in] IDOMNode*, [retval, out] BOOL*);
     HRESULT restartHaltedPluginForNode([in] IDOMNode*);
+    HRESULT hasPluginForNodeBeenHalted([in] IDOMNode*, [retval, out] BOOL*);
 }
diff --git a/WebKit/win/WebView.cpp b/WebKit/win/WebView.cpp
index db4b43d..8d9e617 100644
--- a/WebKit/win/WebView.cpp
+++ b/WebKit/win/WebView.cpp
@@ -5682,55 +5682,67 @@ HRESULT STDMETHODCALLTYPE WebView::pluginHalterDelegate(IWebPluginHalterDelegate
     return m_pluginHalterDelegate.copyRefTo(d);
 }
 
-HRESULT STDMETHODCALLTYPE WebView::isNodeHaltedPlugin(IDOMNode* domNode, BOOL* result)
+static PluginView* pluginViewForNode(IDOMNode* domNode)
 {
-    if (!domNode || !result)
-        return E_POINTER;
-
     COMPtr<DOMNode> webKitDOMNode(Query, domNode);
     if (!webKitDOMNode)
-        return E_FAIL;
+        return 0;
 
     Node* node = webKitDOMNode->node();
     if (!node)
-        return E_FAIL;
-
-    *result = FALSE;
+        return 0;
 
     RenderObject* renderer = node->renderer();
     if (!renderer || !renderer->isWidget())
-        return S_OK;
+        return 0;
 
     Widget* widget = toRenderWidget(renderer)->widget();
     if (!widget || !widget->isPluginView())
-        return S_OK;
+        return 0;
+
+    return static_cast<PluginView*>(widget);
+}
 
-    *result = static_cast<PluginView*>(widget)->isHalted();
+HRESULT WebView::isNodeHaltedPlugin(IDOMNode* domNode, BOOL* result)
+{
+    if (!domNode || !result)
+        return E_POINTER;
+
+    *result = FALSE;
+
+    PluginView* view = pluginViewForNode(domNode);
+    if (!view)
+        return E_FAIL;
+
+    *result = view->isHalted();
     return S_OK;
 }
 
-HRESULT STDMETHODCALLTYPE WebView::restartHaltedPluginForNode(IDOMNode* domNode)
+HRESULT WebView::restartHaltedPluginForNode(IDOMNode* domNode)
 {
     if (!domNode)
         return E_POINTER;
 
-    COMPtr<DOMNode> webKitDOMNode(Query, domNode);
-    if (!webKitDOMNode)
+    PluginView* view = pluginViewForNode(domNode);
+    if (!view)
         return E_FAIL;
 
-    Node* node = webKitDOMNode->node();
-    if (!node)
-        return E_FAIL;
+    view->restart();
+    return S_OK;
+}
 
-    RenderObject* renderer = node->renderer();
-    if (!renderer || !renderer->isWidget())
-        return E_FAIL;
+HRESULT WebView::hasPluginForNodeBeenHalted(IDOMNode* domNode, BOOL* result)
+{
+    if (!domNode || !result)
+        return E_POINTER;
 
-    Widget* widget = toRenderWidget(renderer)->widget();
-    if (!widget || !widget->isPluginView())
+    *result = FALSE;
+
+    PluginView* view = pluginViewForNode(domNode);
+    if (!view)
         return E_FAIL;
 
-    static_cast<PluginView*>(widget)->restart();
+    *result = view->hasBeenHalted();
     return S_OK;
 }
 
diff --git a/WebKit/win/WebView.h b/WebKit/win/WebView.h
index 9b21143..b4c1239 100644
--- a/WebKit/win/WebView.h
+++ b/WebKit/win/WebView.h
@@ -768,6 +768,7 @@ public:
 
     virtual HRESULT STDMETHODCALLTYPE isNodeHaltedPlugin(IDOMNode*, BOOL*);
     virtual HRESULT STDMETHODCALLTYPE restartHaltedPluginForNode(IDOMNode*);
+    virtual HRESULT STDMETHODCALLTYPE hasPluginForNodeBeenHalted(IDOMNode*, BOOL*);
 
     // WebView
     bool shouldUseEmbeddedView(const WebCore::String& mimeType) const;

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list