[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

commit-queue at webkit.org commit-queue at webkit.org
Wed Dec 22 13:38:49 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 7ec7807afb71cafd7d6e321534313ece4c0f7bef
Author: commit-queue at webkit.org <commit-queue at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Wed Sep 22 08:58:55 2010 +0000

    2010-09-22  Chris Guillory   <chris.guillory at google.com>
    
            Reviewed by Chris Fleizach.
    
            Crash due to bad cast in AXObjectCacheChromium.cpp.
            https://bugs.webkit.org/show_bug.cgi?id=46237
    
            * accessibility/chromium/AXObjectCacheChromium.cpp:
            (WebCore::AXObjectCache::postPlatformNotification):
            * page/ChromeClient.h:
            (WebCore::ChromeClient::postAccessibilityNotification):
            (WebCore::ChromeClient::didChangeAccessibilityObjectState):
            (WebCore::ChromeClient::didChangeAccessibilityObjectChildren):
            * page/chromium/ChromeClientChromium.h:
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@68031 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 04b5815..80fdebb 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,18 @@
+2010-09-22  Chris Guillory   <chris.guillory at google.com>
+
+        Reviewed by Chris Fleizach.
+
+        Crash due to bad cast in AXObjectCacheChromium.cpp.
+        https://bugs.webkit.org/show_bug.cgi?id=46237
+
+        * accessibility/chromium/AXObjectCacheChromium.cpp:
+        (WebCore::AXObjectCache::postPlatformNotification):
+        * page/ChromeClient.h:
+        (WebCore::ChromeClient::postAccessibilityNotification):
+        (WebCore::ChromeClient::didChangeAccessibilityObjectState):
+        (WebCore::ChromeClient::didChangeAccessibilityObjectChildren):
+        * page/chromium/ChromeClientChromium.h:
+
 2010-09-22  Chris Rogers  <crogers at google.com>
 
         Reviewed by James Robinson.
diff --git a/WebCore/accessibility/chromium/AXObjectCacheChromium.cpp b/WebCore/accessibility/chromium/AXObjectCacheChromium.cpp
index 3ff0837..93c748e 100644
--- a/WebCore/accessibility/chromium/AXObjectCacheChromium.cpp
+++ b/WebCore/accessibility/chromium/AXObjectCacheChromium.cpp
@@ -28,20 +28,11 @@
 #include "AXObjectCache.h"
 #include "AccessibilityObject.h"
 #include "Chrome.h"
-#include "ChromeClientChromium.h"
+#include "ChromeClient.h"
 #include "FrameView.h"
 
 namespace WebCore {
 
-static ChromeClientChromium* toChromeClientChromium(FrameView* view)
-{
-    Page* page = view->frame() ? view->frame()->page() : 0;
-    if (!page)
-        return 0;
-
-    return static_cast<ChromeClientChromium*>(page->chrome()->client());
-}
-
 void AXObjectCache::detachWrapper(AccessibilityObject* obj)
 {
     // In Chromium, AccessibilityObjects are wrapped lazily.
@@ -56,10 +47,10 @@ void AXObjectCache::attachWrapper(AccessibilityObject*)
 
 void AXObjectCache::postPlatformNotification(AccessibilityObject* obj, AXNotification notification)
 {
-    if (!obj || !obj->document() || !obj->documentFrameView())
+    if (!obj || !obj->document() || !obj->documentFrameView() || !obj->documentFrameView()->frame() || !obj->documentFrameView()->frame()->page())
         return;
 
-    ChromeClientChromium* client = toChromeClientChromium(obj->documentFrameView());
+    ChromeClient* client = obj->documentFrameView()->frame()->page()->chrome()->client();
     if (!client)
         return;
 
diff --git a/WebCore/page/ChromeClient.h b/WebCore/page/ChromeClient.h
index bd9de6b..5175858 100644
--- a/WebCore/page/ChromeClient.h
+++ b/WebCore/page/ChromeClient.h
@@ -21,6 +21,7 @@
 #ifndef ChromeClient_h
 #define ChromeClient_h
 
+#include "AXObjectCache.h"
 #include "Console.h"
 #include "Cursor.h"
 #include "FocusDirection.h"
@@ -46,6 +47,7 @@ class NSResponder;
 
 namespace WebCore {
 
+    class AccessibilityObject;
     class Element;
     class FileChooser;
     class FloatRect;
@@ -268,6 +270,10 @@ namespace WebCore {
         virtual PassRefPtr<PopupMenu> createPopupMenu(PopupMenuClient*) const = 0;
         virtual PassRefPtr<SearchPopupMenu> createSearchPopupMenu(PopupMenuClient*) const = 0;
 
+        virtual void postAccessibilityNotification(AccessibilityObject*, AXObjectCache::AXNotification) { }
+        virtual void didChangeAccessibilityObjectState(AccessibilityObject*) { }
+        virtual void didChangeAccessibilityObjectChildren(AccessibilityObject*) { }
+
     protected:
         virtual ~ChromeClient() { }
     };
diff --git a/WebCore/page/chromium/ChromeClientChromium.h b/WebCore/page/chromium/ChromeClientChromium.h
index 44e005f..02e2a94 100644
--- a/WebCore/page/chromium/ChromeClientChromium.h
+++ b/WebCore/page/chromium/ChromeClientChromium.h
@@ -31,12 +31,10 @@
 #ifndef ChromeClientChromium_h
 #define ChromeClientChromium_h
 
-#include "AXObjectCache.h"
 #include "ChromeClient.h"
 #include <wtf/Forward.h>
 
 namespace WebCore {
-class AccessibilityObject;
 class IntRect;
 class PopupContainer;
 
@@ -53,15 +51,6 @@ public:
                              
     // Notifies the client a popup was closed.
     virtual void popupClosed(PopupContainer* popupContainer) = 0;
-
-    // Notifies embedder that the state of an accessibility object has changed.
-    virtual void didChangeAccessibilityObjectState(AccessibilityObject*) = 0;
-    
-    // Notified embedder that the children of an accessibility object has changed.
-    virtual void didChangeAccessibilityObjectChildren(AccessibilityObject*) = 0;
-    
-    // Notifies embedder about an accessibility notification.
-    virtual void postAccessibilityNotification(AccessibilityObject*, AXObjectCache::AXNotification) = 0;
 };
 
 } // namespace WebCore

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list