[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