[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