[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-10851-g50815da
andersca at apple.com
andersca at apple.com
Wed Dec 22 18:43:57 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit 5758f5704ca4cc761c6ba3f10a3557bdbbaa7ea2
Author: andersca at apple.com <andersca at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Thu Dec 16 20:07:41 2010 +0000
Don't try to call plug-in member functions if the plug-in hasn't been initialized
https://bugs.webkit.org/show_bug.cgi?id=51205
<rdar://problem/8730204>
Reviewed by Oliver Hunt.
Make sure that all PluginView functions that can be called while a plug-in has not been
initialized (if the plug-in page is in a background tab for example) have an additional
check for m_isInitialized.
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::setWindowIsFocused):
(WebKit::PluginView::windowAndViewFramesChanged):
(WebKit::PluginView::platformLayer):
(WebKit::PluginView::scriptObject):
(WebKit::PluginView::privateBrowsingStateChanged):
(WebKit::PluginView::handleEvent):
(WebKit::PluginView::viewGeometryDidChange):
(WebKit::PluginView::setFocus):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@74205 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebKit2/ChangeLog b/WebKit2/ChangeLog
index 03fd0d2..d7457d0 100644
--- a/WebKit2/ChangeLog
+++ b/WebKit2/ChangeLog
@@ -1,5 +1,27 @@
2010-12-16 Anders Carlsson <andersca at apple.com>
+ Reviewed by Oliver Hunt.
+
+ Don't try to call plug-in member functions if the plug-in hasn't been initialized
+ https://bugs.webkit.org/show_bug.cgi?id=51205
+ <rdar://problem/8730204>
+
+ Make sure that all PluginView functions that can be called while a plug-in has not been
+ initialized (if the plug-in page is in a background tab for example) have an additional
+ check for m_isInitialized.
+
+ * WebProcess/Plugins/PluginView.cpp:
+ (WebKit::PluginView::setWindowIsFocused):
+ (WebKit::PluginView::windowAndViewFramesChanged):
+ (WebKit::PluginView::platformLayer):
+ (WebKit::PluginView::scriptObject):
+ (WebKit::PluginView::privateBrowsingStateChanged):
+ (WebKit::PluginView::handleEvent):
+ (WebKit::PluginView::viewGeometryDidChange):
+ (WebKit::PluginView::setFocus):
+
+2010-12-16 Anders Carlsson <andersca at apple.com>
+
Reviewed by John Sullivan.
Add a bunch of m_isStarted assertions to plug-in code.
diff --git a/WebKit2/WebProcess/Plugins/PluginView.cpp b/WebKit2/WebProcess/Plugins/PluginView.cpp
index a2e4f89..88d315b 100644
--- a/WebKit2/WebProcess/Plugins/PluginView.cpp
+++ b/WebKit2/WebProcess/Plugins/PluginView.cpp
@@ -378,7 +378,7 @@ void PluginView::setWindowIsVisible(bool windowIsVisible)
void PluginView::setWindowIsFocused(bool windowIsFocused)
{
- if (!m_plugin)
+ if (!m_isInitialized || !m_plugin)
return;
m_plugin->windowFocusChanged(windowIsFocused);
@@ -386,7 +386,7 @@ void PluginView::setWindowIsFocused(bool windowIsFocused)
void PluginView::windowAndViewFramesChanged(const IntRect& windowFrameInScreenCoordinates, const IntRect& viewFrameInWindowCoordinates)
{
- if (!m_plugin)
+ if (!m_isInitialized || !m_plugin)
return;
m_plugin->windowAndViewFramesChanged(windowFrameInScreenCoordinates, viewFrameInWindowCoordinates);
@@ -461,8 +461,8 @@ void PluginView::initializePlugin()
#if PLATFORM(MAC)
PlatformLayer* PluginView::platformLayer() const
{
- // The plug-in can be null here if it failed to initialize or hasn't yet been initialized.
- if (!m_plugin)
+ // The plug-in can be null here if it failed to initialize.
+ if (!m_isInitialized || !m_plugin)
return 0;
return m_plugin->pluginLayer();
@@ -472,9 +472,9 @@ PlatformLayer* PluginView::platformLayer() const
JSObject* PluginView::scriptObject(JSGlobalObject* globalObject)
{
// The plug-in can be null here if it failed to initialize.
- if (!m_plugin)
+ if (!m_isInitialized || !m_plugin)
return 0;
-
+
NPObject* scriptableNPObject = m_plugin->pluginScriptableNPObject();
if (!scriptableNPObject)
return 0;
@@ -488,7 +488,7 @@ JSObject* PluginView::scriptObject(JSGlobalObject* globalObject)
void PluginView::privateBrowsingStateChanged(bool privateBrowsingEnabled)
{
// The plug-in can be null here if it failed to initialize.
- if (!m_plugin)
+ if (!m_isInitialized || !m_plugin)
return;
m_plugin->privateBrowsingStateChanged(privateBrowsingEnabled);
@@ -537,7 +537,7 @@ void PluginView::setParent(ScrollView* scrollView)
void PluginView::handleEvent(Event* event)
{
- if (!m_plugin)
+ if (!m_isInitialized || !m_plugin)
return;
const WebEvent* currentEvent = WebPage::currentEvent();
@@ -575,7 +575,7 @@ void PluginView::handleEvent(Event* event)
void PluginView::viewGeometryDidChange()
{
- if (!parent() || !m_plugin || !m_isInitialized)
+ if (!m_isInitialized || !m_plugin || !parent())
return;
// Get the frame rect in window coordinates.
@@ -797,7 +797,10 @@ void PluginView::invalidateRect(const IntRect& dirtyRect)
void PluginView::setFocus(bool hasFocus)
{
Widget::setFocus(hasFocus);
-
+
+ if (!m_isInitialized || !m_plugin)
+ return;
+
m_plugin->setFocus(hasFocus);
}
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list