[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