- Revision
- 125500
- Author
- [email protected]
- Date
- 2012-08-13 19:37:54 -0700 (Mon, 13 Aug 2012)
Log Message
[chromium] release FrameLoaderClientImpl::m_pluginWidget refptr upon Plugin Document detach.
https://bugs.webkit.org/show_bug.cgi?id=93283
Reviewed by Eric Seidel.
Source/WebCore:
Chromium has a refptr that needs to be NULLed at this point.
The approach is to change the client redirectDataToPlugin method(s) to expect
the possibility of a NULL argument, and the use this to clear the refptr on
the chromium platform. Other platforms can merely ignore the NULL case, thereby
maintaining the existing behaviour.
Formal testing is nearly impossible without some chrome-specific plugins.
* html/PluginDocument.cpp:
(WebCore::PluginDocument::detach):
Source/WebKit/blackberry:
Change the client redirectDataToPlugin method(s) to expect the possibility of
a NULL argument, keeping existing behaviour otherwise.
* WebCoreSupport/FrameLoaderClientBlackBerry.cpp:
(WebCore::FrameLoaderClientBlackBerry::redirectDataToPlugin):
Source/WebKit/chromium:
Change the client redirectDataToPlugin method(s) to expect the possibility of
a NULL argument, NULLing Chromium's refptr that needs to be NULLed.
* src/FrameLoaderClientImpl.cpp:
(WebKit::FrameLoaderClientImpl::redirectDataToPlugin):
Source/WebKit/efl:
Change the client redirectDataToPlugin method(s) to expect the possibility of
a NULL argument, keeping existing behaviour otherwise.
* WebCoreSupport/FrameLoaderClientEfl.cpp:
(WebCore::FrameLoaderClientEfl::redirectDataToPlugin):
Source/WebKit/gtk:
Change the client redirectDataToPlugin method(s) to expect the possibility of
a NULL argument, keeping existing behaviour otherwise.
* WebCoreSupport/FrameLoaderClientGtk.cpp:
(WebKit::FrameLoaderClient::redirectDataToPlugin):
Source/WebKit/qt:
Change the client redirectDataToPlugin method(s) to expect the possibility of
a NULL argument, keeping existing behaviour otherwise.
* WebCoreSupport/FrameLoaderClientQt.cpp:
(WebCore::FrameLoaderClientQt::redirectDataToPlugin):
Source/WebKit/win:
Change the client redirectDataToPlugin method(s) to expect the possibility of
a NULL argument, keeping existing behaviour otherwise.
* WebCoreSupport/WebFrameLoaderClient.cpp:
(WebFrameLoaderClient::redirectDataToPlugin):
Source/WebKit/wince:
Change the client redirectDataToPlugin method(s) to expect the possibility of
a NULL argument, keeping existing behaviour otherwise.
* WebCoreSupport/FrameLoaderClientWinCE.cpp:
(WebKit::FrameLoaderClientWinCE::redirectDataToPlugin):
Source/WebKit/wx:
Chromium has a refptr that needs to be NULLed at this point.
Change the client redirectDataToPlugin method(s) to expect the possibility of
a NULL argument, keeping existing behaviour otherwise.
* WebKitSupport/FrameLoaderClientWx.cpp:
(WebCore::FrameLoaderClientWx::redirectDataToPlugin):
Source/WebKit2:
Chromium has a refptr that needs to be NULLed at this point.
Change the client redirectDataToPlugin method(s) to expect the possibility of
a NULL argument, keeping existing behaviour otherwise.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::redirectDataToPlugin):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (125499 => 125500)
--- trunk/Source/WebCore/ChangeLog 2012-08-14 02:17:06 UTC (rev 125499)
+++ trunk/Source/WebCore/ChangeLog 2012-08-14 02:37:54 UTC (rev 125500)
@@ -1,3 +1,22 @@
+2012-08-13 Tom Sepez <[email protected]>
+
+ [chromium] release FrameLoaderClientImpl::m_pluginWidget refptr upon Plugin Document detach.
+ https://bugs.webkit.org/show_bug.cgi?id=93283
+
+ Reviewed by Eric Seidel.
+
+ Chromium has a refptr that needs to be NULLed at this point.
+
+ The approach is to change the client redirectDataToPlugin method(s) to expect
+ the possibility of a NULL argument, and the use this to clear the refptr on
+ the chromium platform. Other platforms can merely ignore the NULL case, thereby
+ maintaining the existing behaviour.
+
+ Formal testing is nearly impossible without some chrome-specific plugins.
+
+ * html/PluginDocument.cpp:
+ (WebCore::PluginDocument::detach):
+
2012-08-13 Eric Penner <[email protected]>
[chromium] Paint animated layers immediately to avoid animation hiccups.
Modified: trunk/Source/WebCore/html/PluginDocument.cpp (125499 => 125500)
--- trunk/Source/WebCore/html/PluginDocument.cpp 2012-08-14 02:17:06 UTC (rev 125499)
+++ trunk/Source/WebCore/html/PluginDocument.cpp 2012-08-14 02:37:54 UTC (rev 125500)
@@ -168,6 +168,8 @@
{
// Release the plugin node so that we don't have a circular reference.
m_pluginNode = 0;
+ if (FrameLoader* loader = frame()->loader())
+ loader->client()->redirectDataToPlugin(0);
HTMLDocument::detach();
}
Modified: trunk/Source/WebKit/blackberry/ChangeLog (125499 => 125500)
--- trunk/Source/WebKit/blackberry/ChangeLog 2012-08-14 02:17:06 UTC (rev 125499)
+++ trunk/Source/WebKit/blackberry/ChangeLog 2012-08-14 02:37:54 UTC (rev 125500)
@@ -1,3 +1,16 @@
+2012-08-13 Tom Sepez <[email protected]>
+
+ [chromium] release FrameLoaderClientImpl::m_pluginWidget refptr upon Plugin Document detach.
+ https://bugs.webkit.org/show_bug.cgi?id=93283
+
+ Reviewed by Eric Seidel.
+
+ Change the client redirectDataToPlugin method(s) to expect the possibility of
+ a NULL argument, keeping existing behaviour otherwise.
+
+ * WebCoreSupport/FrameLoaderClientBlackBerry.cpp:
+ (WebCore::FrameLoaderClientBlackBerry::redirectDataToPlugin):
+
2012-08-13 Mike Fenton <[email protected]>
[BlackBerry] Update API for spell checking suggestions again.
Modified: trunk/Source/WebKit/blackberry/WebCoreSupport/FrameLoaderClientBlackBerry.cpp (125499 => 125500)
--- trunk/Source/WebKit/blackberry/WebCoreSupport/FrameLoaderClientBlackBerry.cpp 2012-08-14 02:17:06 UTC (rev 125499)
+++ trunk/Source/WebKit/blackberry/WebCoreSupport/FrameLoaderClientBlackBerry.cpp 2012-08-14 02:37:54 UTC (rev 125500)
@@ -346,9 +346,9 @@
void FrameLoaderClientBlackBerry::redirectDataToPlugin(Widget* pluginWidget)
{
- ASSERT(!m_pluginView);
m_pluginView = static_cast<PluginView*>(pluginWidget);
- m_hasSentResponseToPlugin = false;
+ if (pluginWidget)
+ m_hasSentResponseToPlugin = false;
}
void FrameLoaderClientBlackBerry::receivedData(const char* data, int length, const String& textEncoding)
Modified: trunk/Source/WebKit/chromium/ChangeLog (125499 => 125500)
--- trunk/Source/WebKit/chromium/ChangeLog 2012-08-14 02:17:06 UTC (rev 125499)
+++ trunk/Source/WebKit/chromium/ChangeLog 2012-08-14 02:37:54 UTC (rev 125500)
@@ -1,3 +1,16 @@
+2012-08-13 Tom Sepez <[email protected]>
+
+ [chromium] release FrameLoaderClientImpl::m_pluginWidget refptr upon Plugin Document detach.
+ https://bugs.webkit.org/show_bug.cgi?id=93283
+
+ Reviewed by Eric Seidel.
+
+ Change the client redirectDataToPlugin method(s) to expect the possibility of
+ a NULL argument, NULLing Chromium's refptr that needs to be NULLed.
+
+ * src/FrameLoaderClientImpl.cpp:
+ (WebKit::FrameLoaderClientImpl::redirectDataToPlugin):
+
2012-08-13 Eric Penner <[email protected]>
[chromium] Paint animated layers immediately to avoid animation hiccups.
Modified: trunk/Source/WebKit/chromium/src/FrameLoaderClientImpl.cpp (125499 => 125500)
--- trunk/Source/WebKit/chromium/src/FrameLoaderClientImpl.cpp 2012-08-14 02:17:06 UTC (rev 125499)
+++ trunk/Source/WebKit/chromium/src/FrameLoaderClientImpl.cpp 2012-08-14 02:37:54 UTC (rev 125500)
@@ -1490,9 +1490,8 @@
// (e.g., acrobat reader).
void FrameLoaderClientImpl::redirectDataToPlugin(Widget* pluginWidget)
{
- if (pluginWidget->isPluginContainer())
- m_pluginWidget = static_cast<WebPluginContainerImpl*>(pluginWidget);
- ASSERT(m_pluginWidget);
+ ASSERT(!pluginWidget || pluginWidget->isPluginContainer());
+ m_pluginWidget = static_cast<WebPluginContainerImpl*>(pluginWidget);
}
PassRefPtr<Widget> FrameLoaderClientImpl::createJavaAppletWidget(
Modified: trunk/Source/WebKit/efl/ChangeLog (125499 => 125500)
--- trunk/Source/WebKit/efl/ChangeLog 2012-08-14 02:17:06 UTC (rev 125499)
+++ trunk/Source/WebKit/efl/ChangeLog 2012-08-14 02:37:54 UTC (rev 125500)
@@ -1,3 +1,16 @@
+2012-08-13 Tom Sepez <[email protected]>
+
+ [chromium] release FrameLoaderClientImpl::m_pluginWidget refptr upon Plugin Document detach.
+ https://bugs.webkit.org/show_bug.cgi?id=93283
+
+ Reviewed by Eric Seidel.
+
+ Change the client redirectDataToPlugin method(s) to expect the possibility of
+ a NULL argument, keeping existing behaviour otherwise.
+
+ * WebCoreSupport/FrameLoaderClientEfl.cpp:
+ (WebCore::FrameLoaderClientEfl::redirectDataToPlugin):
+
2012-08-12 Krzysztof Czech <[email protected]>
[EFL][UT] Delete shutdown method.
Modified: trunk/Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp (125499 => 125500)
--- trunk/Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp 2012-08-14 02:17:06 UTC (rev 125499)
+++ trunk/Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp 2012-08-14 02:37:54 UTC (rev 125500)
@@ -371,9 +371,9 @@
void FrameLoaderClientEfl::redirectDataToPlugin(Widget* pluginWidget)
{
- ASSERT(!m_pluginView);
m_pluginView = static_cast<PluginView*>(pluginWidget);
- m_hasSentResponseToPlugin = false;
+ if (pluginWidget)
+ m_hasSentResponseToPlugin = false;
}
PassRefPtr<Widget> FrameLoaderClientEfl::createJavaAppletWidget(const IntSize&, HTMLAppletElement*, const KURL& baseURL,
Modified: trunk/Source/WebKit/gtk/ChangeLog (125499 => 125500)
--- trunk/Source/WebKit/gtk/ChangeLog 2012-08-14 02:17:06 UTC (rev 125499)
+++ trunk/Source/WebKit/gtk/ChangeLog 2012-08-14 02:37:54 UTC (rev 125500)
@@ -1,3 +1,16 @@
+2012-08-13 Tom Sepez <[email protected]>
+
+ [chromium] release FrameLoaderClientImpl::m_pluginWidget refptr upon Plugin Document detach.
+ https://bugs.webkit.org/show_bug.cgi?id=93283
+
+ Reviewed by Eric Seidel.
+
+ Change the client redirectDataToPlugin method(s) to expect the possibility of
+ a NULL argument, keeping existing behaviour otherwise.
+
+ * WebCoreSupport/FrameLoaderClientGtk.cpp:
+ (WebKit::FrameLoaderClient::redirectDataToPlugin):
+
2012-08-13 Martin Robinson <[email protected]>
[GTK] Default signal handler for WebKitWebView::should-show-delete-interface-for-element overrides default result
Modified: trunk/Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp (125499 => 125500)
--- trunk/Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp 2012-08-14 02:17:06 UTC (rev 125499)
+++ trunk/Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp 2012-08-14 02:37:54 UTC (rev 125500)
@@ -534,9 +534,9 @@
void FrameLoaderClient::redirectDataToPlugin(Widget* pluginWidget)
{
- ASSERT(!m_pluginView);
m_pluginView = static_cast<PluginView*>(pluginWidget);
- m_hasSentResponseToPlugin = false;
+ if (pluginWidget)
+ m_hasSentResponseToPlugin = false;
}
PassRefPtr<Widget> FrameLoaderClient::createJavaAppletWidget(const IntSize& pluginSize, HTMLAppletElement* element, const KURL& baseURL, const Vector<String>& paramNames, const Vector<String>& paramValues)
Modified: trunk/Source/WebKit/qt/ChangeLog (125499 => 125500)
--- trunk/Source/WebKit/qt/ChangeLog 2012-08-14 02:17:06 UTC (rev 125499)
+++ trunk/Source/WebKit/qt/ChangeLog 2012-08-14 02:37:54 UTC (rev 125500)
@@ -1,3 +1,16 @@
+2012-08-13 Tom Sepez <[email protected]>
+
+ [chromium] release FrameLoaderClientImpl::m_pluginWidget refptr upon Plugin Document detach.
+ https://bugs.webkit.org/show_bug.cgi?id=93283
+
+ Reviewed by Eric Seidel.
+
+ Change the client redirectDataToPlugin method(s) to expect the possibility of
+ a NULL argument, keeping existing behaviour otherwise.
+
+ * WebCoreSupport/FrameLoaderClientQt.cpp:
+ (WebCore::FrameLoaderClientQt::redirectDataToPlugin):
+
2012-08-13 Simon Hausmann <[email protected]>
[Qt] Port meta method/signal/slot handling in run-time bridge to use JSC C API
Modified: trunk/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp (125499 => 125500)
--- trunk/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp 2012-08-14 02:17:06 UTC (rev 125499)
+++ trunk/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp 2012-08-14 02:37:54 UTC (rev 125500)
@@ -1638,9 +1638,9 @@
void FrameLoaderClientQt::redirectDataToPlugin(Widget* pluginWidget)
{
- ASSERT(!m_pluginView);
m_pluginView = static_cast<PluginView*>(pluginWidget);
- m_hasSentResponseToPlugin = false;
+ if (pluginWidget)
+ m_hasSentResponseToPlugin = false;
}
PassRefPtr<Widget> FrameLoaderClientQt::createJavaAppletWidget(const IntSize& pluginSize, HTMLAppletElement* element, const KURL& url,
Modified: trunk/Source/WebKit/win/ChangeLog (125499 => 125500)
--- trunk/Source/WebKit/win/ChangeLog 2012-08-14 02:17:06 UTC (rev 125499)
+++ trunk/Source/WebKit/win/ChangeLog 2012-08-14 02:37:54 UTC (rev 125500)
@@ -1,3 +1,16 @@
+2012-08-13 Tom Sepez <[email protected]>
+
+ [chromium] release FrameLoaderClientImpl::m_pluginWidget refptr upon Plugin Document detach.
+ https://bugs.webkit.org/show_bug.cgi?id=93283
+
+ Reviewed by Eric Seidel.
+
+ Change the client redirectDataToPlugin method(s) to expect the possibility of
+ a NULL argument, keeping existing behaviour otherwise.
+
+ * WebCoreSupport/WebFrameLoaderClient.cpp:
+ (WebFrameLoaderClient::redirectDataToPlugin):
+
2012-08-05 Patrick Gansterer <[email protected]>
[WIN] Use sizeof() for cbWndExtra values
Modified: trunk/Source/WebKit/win/WebCoreSupport/WebFrameLoaderClient.cpp (125499 => 125500)
--- trunk/Source/WebKit/win/WebCoreSupport/WebFrameLoaderClient.cpp 2012-08-14 02:17:06 UTC (rev 125499)
+++ trunk/Source/WebKit/win/WebCoreSupport/WebFrameLoaderClient.cpp 2012-08-14 02:37:54 UTC (rev 125500)
@@ -885,8 +885,7 @@
void WebFrameLoaderClient::redirectDataToPlugin(Widget* pluginWidget)
{
// Ideally, this function shouldn't be necessary, see <rdar://problem/4852889>
-
- if (pluginWidget->isPluginView())
+ if (!pluginWidget || pluginWidget->isPluginView())
m_manualLoader = static_cast<PluginView*>(pluginWidget);
else
m_manualLoader = static_cast<EmbeddedWidget*>(pluginWidget);
Modified: trunk/Source/WebKit/wince/ChangeLog (125499 => 125500)
--- trunk/Source/WebKit/wince/ChangeLog 2012-08-14 02:17:06 UTC (rev 125499)
+++ trunk/Source/WebKit/wince/ChangeLog 2012-08-14 02:37:54 UTC (rev 125500)
@@ -1,3 +1,16 @@
+2012-08-13 Tom Sepez <[email protected]>
+
+ [chromium] release FrameLoaderClientImpl::m_pluginWidget refptr upon Plugin Document detach.
+ https://bugs.webkit.org/show_bug.cgi?id=93283
+
+ Reviewed by Eric Seidel.
+
+ Change the client redirectDataToPlugin method(s) to expect the possibility of
+ a NULL argument, keeping existing behaviour otherwise.
+
+ * WebCoreSupport/FrameLoaderClientWinCE.cpp:
+ (WebKit::FrameLoaderClientWinCE::redirectDataToPlugin):
+
2012-07-23 Pierre Rossi <[email protected]>
Unify numTouchEventHandlersChanged and needTouchEvents in the chrome client
Modified: trunk/Source/WebKit/wince/WebCoreSupport/FrameLoaderClientWinCE.cpp (125499 => 125500)
--- trunk/Source/WebKit/wince/WebCoreSupport/FrameLoaderClientWinCE.cpp 2012-08-14 02:17:06 UTC (rev 125499)
+++ trunk/Source/WebKit/wince/WebCoreSupport/FrameLoaderClientWinCE.cpp 2012-08-14 02:37:54 UTC (rev 125500)
@@ -174,9 +174,9 @@
void FrameLoaderClientWinCE::redirectDataToPlugin(Widget* pluginWidget)
{
- ASSERT(!m_pluginView);
m_pluginView = static_cast<PluginView*>(pluginWidget);
- m_hasSentResponseToPlugin = false;
+ if (pluginWidget)
+ m_hasSentResponseToPlugin = false;
}
PassRefPtr<Widget> FrameLoaderClientWinCE::createJavaAppletWidget(const IntSize&, HTMLAppletElement*, const KURL&, const Vector<String>&, const Vector<String>&)
Modified: trunk/Source/WebKit/wx/ChangeLog (125499 => 125500)
--- trunk/Source/WebKit/wx/ChangeLog 2012-08-14 02:17:06 UTC (rev 125499)
+++ trunk/Source/WebKit/wx/ChangeLog 2012-08-14 02:37:54 UTC (rev 125500)
@@ -1,3 +1,18 @@
+2012-08-13 Tom Sepez <[email protected]>
+
+ [chromium] release FrameLoaderClientImpl::m_pluginWidget refptr upon Plugin Document detach.
+ https://bugs.webkit.org/show_bug.cgi?id=93283
+
+ Reviewed by Eric Seidel.
+
+ Chromium has a refptr that needs to be NULLed at this point.
+
+ Change the client redirectDataToPlugin method(s) to expect the possibility of
+ a NULL argument, keeping existing behaviour otherwise.
+
+ * WebKitSupport/FrameLoaderClientWx.cpp:
+ (WebCore::FrameLoaderClientWx::redirectDataToPlugin):
+
2012-07-23 Pierre Rossi <[email protected]>
Unify numTouchEventHandlersChanged and needTouchEvents in the chrome client
Modified: trunk/Source/WebKit/wx/WebKitSupport/FrameLoaderClientWx.cpp (125499 => 125500)
--- trunk/Source/WebKit/wx/WebKitSupport/FrameLoaderClientWx.cpp 2012-08-14 02:17:06 UTC (rev 125499)
+++ trunk/Source/WebKit/wx/WebKitSupport/FrameLoaderClientWx.cpp 2012-08-14 02:37:54 UTC (rev 125500)
@@ -904,9 +904,9 @@
void FrameLoaderClientWx::redirectDataToPlugin(Widget* pluginWidget)
{
- ASSERT(!m_pluginView);
m_pluginView = static_cast<PluginView*>(pluginWidget);
- m_hasSentResponseToPlugin = false;
+ if (pluginWidget)
+ m_hasSentResponseToPlugin = false;
}
ResourceError FrameLoaderClientWx::pluginWillHandleLoadError(const ResourceResponse& response)
Modified: trunk/Source/WebKit2/ChangeLog (125499 => 125500)
--- trunk/Source/WebKit2/ChangeLog 2012-08-14 02:17:06 UTC (rev 125499)
+++ trunk/Source/WebKit2/ChangeLog 2012-08-14 02:37:54 UTC (rev 125500)
@@ -1,3 +1,18 @@
+2012-08-13 Tom Sepez <[email protected]>
+
+ [chromium] release FrameLoaderClientImpl::m_pluginWidget refptr upon Plugin Document detach.
+ https://bugs.webkit.org/show_bug.cgi?id=93283
+
+ Reviewed by Eric Seidel.
+
+ Chromium has a refptr that needs to be NULLed at this point.
+
+ Change the client redirectDataToPlugin method(s) to expect the possibility of
+ a NULL argument, keeping existing behaviour otherwise.
+
+ * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+ (WebKit::WebFrameLoaderClient::redirectDataToPlugin):
+
2012-08-13 Raphael Kubo da Costa <[email protected]>
[EFL] Unreviewed bot fix after r125467.
Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp (125499 => 125500)
--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp 2012-08-14 02:17:06 UTC (rev 125499)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp 2012-08-14 02:37:54 UTC (rev 125500)
@@ -1356,9 +1356,6 @@
void WebFrameLoaderClient::redirectDataToPlugin(Widget* pluginWidget)
{
- ASSERT(!m_pluginView);
- ASSERT(pluginWidget);
-
m_pluginView = static_cast<PluginView*>(pluginWidget);
}