Title: [117203] trunk/Source
- Revision
- 117203
- Author
- fsam...@chromium.org
- Date
- 2012-05-15 19:00:00 -0700 (Tue, 15 May 2012)
Log Message
[Chromium] Reset ScriptInstance in HTMLPlugInElement on WebPluginContainerImpl::setPlugin
https://bugs.webkit.org/show_bug.cgi?id=86535
Source/WebCore:
Reviewed by Darin Fisher.
When we swap out WebPluginImpls for the Browser Plugin, the HTMLPlugInElement continues
to use a now invalid ScriptInstance, so we reset the ScriptInstance on WebPluginContainerImpl::setPlugin
* html/HTMLPlugInElement.cpp:
(WebCore::HTMLPlugInElement::resetInstance):
(WebCore):
* html/HTMLPlugInElement.h:
(HTMLPlugInElement):
Source/WebKit/chromium:
Reviewed by Darin Fisher.
* src/WebPluginContainerImpl.cpp:
(WebKit::WebPluginContainerImpl::setPlugin):
(WebKit):
* src/WebPluginContainerImpl.h:
(WebPluginContainerImpl):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (117202 => 117203)
--- trunk/Source/WebCore/ChangeLog 2012-05-16 01:46:48 UTC (rev 117202)
+++ trunk/Source/WebCore/ChangeLog 2012-05-16 02:00:00 UTC (rev 117203)
@@ -1,3 +1,19 @@
+2012-05-15 Fady Samuel <fsam...@chromium.org>
+
+ [Chromium] Reset ScriptInstance in HTMLPlugInElement on WebPluginContainerImpl::setPlugin
+ https://bugs.webkit.org/show_bug.cgi?id=86535
+
+ Reviewed by Darin Fisher.
+
+ When we swap out WebPluginImpls for the Browser Plugin, the HTMLPlugInElement continues
+ to use a now invalid ScriptInstance, so we reset the ScriptInstance on WebPluginContainerImpl::setPlugin
+
+ * html/HTMLPlugInElement.cpp:
+ (WebCore::HTMLPlugInElement::resetInstance):
+ (WebCore):
+ * html/HTMLPlugInElement.h:
+ (HTMLPlugInElement):
+
2012-05-15 Robert Hogan <rob...@webkit.org>
Heap-use-after-free in WebCore::RenderBlock::layoutRunsAndFloats
Modified: trunk/Source/WebCore/html/HTMLPlugInElement.cpp (117202 => 117203)
--- trunk/Source/WebCore/html/HTMLPlugInElement.cpp 2012-05-16 01:46:48 UTC (rev 117202)
+++ trunk/Source/WebCore/html/HTMLPlugInElement.cpp 2012-05-16 02:00:00 UTC (rev 117203)
@@ -88,6 +88,11 @@
HTMLFrameOwnerElement::detach();
}
+void HTMLPlugInElement::resetInstance()
+{
+ m_instance.clear();
+}
+
PassScriptInstance HTMLPlugInElement::getInstance()
{
Frame* frame = document()->frame();
Modified: trunk/Source/WebCore/html/HTMLPlugInElement.h (117202 => 117203)
--- trunk/Source/WebCore/html/HTMLPlugInElement.h 2012-05-16 01:46:48 UTC (rev 117202)
+++ trunk/Source/WebCore/html/HTMLPlugInElement.h 2012-05-16 02:00:00 UTC (rev 117203)
@@ -40,6 +40,8 @@
public:
virtual ~HTMLPlugInElement();
+ void resetInstance();
+
PassScriptInstance getInstance();
Widget* pluginWidget();
Modified: trunk/Source/WebKit/chromium/ChangeLog (117202 => 117203)
--- trunk/Source/WebKit/chromium/ChangeLog 2012-05-16 01:46:48 UTC (rev 117202)
+++ trunk/Source/WebKit/chromium/ChangeLog 2012-05-16 02:00:00 UTC (rev 117203)
@@ -1,3 +1,16 @@
+2012-05-15 Fady Samuel <fsam...@chromium.org>
+
+ [Chromium] Reset ScriptInstance in HTMLPlugInElement on WebPluginContainerImpl::setPlugin
+ https://bugs.webkit.org/show_bug.cgi?id=86535
+
+ Reviewed by Darin Fisher.
+
+ * src/WebPluginContainerImpl.cpp:
+ (WebKit::WebPluginContainerImpl::setPlugin):
+ (WebKit):
+ * src/WebPluginContainerImpl.h:
+ (WebPluginContainerImpl):
+
2012-05-15 Mark Pilgrim <pilg...@chromium.org>
[Chromium] Move blobRegistry to Platform.h
Modified: trunk/Source/WebKit/chromium/src/WebPluginContainerImpl.cpp (117202 => 117203)
--- trunk/Source/WebKit/chromium/src/WebPluginContainerImpl.cpp 2012-05-16 01:46:48 UTC (rev 117202)
+++ trunk/Source/WebKit/chromium/src/WebPluginContainerImpl.cpp 2012-05-16 02:00:00 UTC (rev 117203)
@@ -234,6 +234,14 @@
reportGeometry();
}
+void WebPluginContainerImpl::setPlugin(WebPlugin* plugin)
+{
+ if (plugin != m_webPlugin) {
+ m_element->resetInstance();
+ m_webPlugin = plugin;
+ }
+}
+
bool WebPluginContainerImpl::supportsPaginatedPrint() const
{
return m_webPlugin->supportsPaginatedPrint();
Modified: trunk/Source/WebKit/chromium/src/WebPluginContainerImpl.h (117202 => 117203)
--- trunk/Source/WebKit/chromium/src/WebPluginContainerImpl.h 2012-05-16 01:46:48 UTC (rev 117202)
+++ trunk/Source/WebKit/chromium/src/WebPluginContainerImpl.h 2012-05-16 02:00:00 UTC (rev 117203)
@@ -112,7 +112,7 @@
// This cannot be null.
WebPlugin* plugin() { return m_webPlugin; }
- void setPlugin(WebPlugin* plugin) { m_webPlugin = plugin; }
+ void setPlugin(WebPlugin*);
// Printing interface. The plugin can support custom printing
// (which means it controls the layout, number of pages etc).
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes