[SCM] WebKit Debian packaging branch, webkit-1.1, updated. upstream/1.1.20-204-g221d8e8

darin at chromium.org darin at chromium.org
Wed Feb 10 22:14:36 UTC 2010


The following commit has been merged in the webkit-1.1 branch:
commit 1036f08a9d31ee91e8392eb6664b1f21715aad31
Author: darin at chromium.org <darin at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Thu Feb 4 20:16:17 2010 +0000

    2010-02-04  Chris Guillory  <chris.guillory at google.com>
    
            Reviewed by Darin Fisher.
    
            [Chromium] Notify ChromeClientChromium of AccessibilityObject state
            change notifications.
    
            https://bugs.webkit.org/show_bug.cgi?id=34464
    
            * accessibility/chromium/AXObjectCacheChromium.cpp:
            (WebCore::toChromeClientChromium):
            (WebCore::AXObjectCache::postPlatformNotification):
            * page/chromium/ChromeClientChromium.h:
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@54364 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 655d521..2e5652b 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,17 @@
+2010-02-04  Chris Guillory  <chris.guillory at google.com>
+
+        Reviewed by Darin Fisher.
+
+        [Chromium] Notify ChromeClientChromium of AccessibilityObject state
+        change notifications.
+        
+        https://bugs.webkit.org/show_bug.cgi?id=34464
+
+        * accessibility/chromium/AXObjectCacheChromium.cpp:
+        (WebCore::toChromeClientChromium):
+        (WebCore::AXObjectCache::postPlatformNotification):
+        * page/chromium/ChromeClientChromium.h:
+
 2010-02-04  Stephen White  <senorblanco at chromium.org>
 
         Unreviewed, build fix for Chromium.
diff --git a/WebCore/accessibility/chromium/AXObjectCacheChromium.cpp b/WebCore/accessibility/chromium/AXObjectCacheChromium.cpp
index a97dfe2..37769b1 100644
--- a/WebCore/accessibility/chromium/AXObjectCacheChromium.cpp
+++ b/WebCore/accessibility/chromium/AXObjectCacheChromium.cpp
@@ -26,11 +26,22 @@
 
 #include "config.h"
 #include "AXObjectCache.h"
-
 #include "AccessibilityObject.h"
+#include "Chrome.h"
+#include "ChromeClientChromium.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.
@@ -43,8 +54,14 @@ void AXObjectCache::attachWrapper(AccessibilityObject*)
     // In Chromium, AccessibilityObjects are wrapped lazily.
 }
 
-void AXObjectCache::postPlatformNotification(AccessibilityObject*, AXNotification)
+void AXObjectCache::postPlatformNotification(AccessibilityObject* obj, AXNotification notification)
 {
+    if (!obj || !obj->documentFrameView() || notification != AXCheckedStateChanged)
+        return;
+
+    ChromeClientChromium* client = toChromeClientChromium(obj->documentFrameView());
+    if (client)
+        client->didChangeAccessibilityObjectState(obj);
 }
 
 void AXObjectCache::handleFocusedUIElementChanged(RenderObject*, RenderObject*)
diff --git a/WebCore/page/chromium/ChromeClientChromium.h b/WebCore/page/chromium/ChromeClientChromium.h
index f6689d3..c83ff26 100644
--- a/WebCore/page/chromium/ChromeClientChromium.h
+++ b/WebCore/page/chromium/ChromeClientChromium.h
@@ -35,20 +35,25 @@
 #include <wtf/Forward.h>
 
 namespace WebCore {
-    class IntRect;
-    class PopupContainer;
-
-    // Contains Chromium-specific extensions to the ChromeClient.  Only put
-    // things here that don't make sense for other ports.
-    class ChromeClientChromium : public ChromeClient {
-    public:
-        // Notifies the client of a new popup widget.  The client should place
-        // and size the widget with the given bounds, relative to the screen.
-        // If handleExternal is true, then drawing and input handling for the
-        // popup will be handled by the external embedder.
-        virtual void popupOpened(PopupContainer* popupContainer, const IntRect& bounds,
-                                 bool focusOnShow, bool handleExternal) = 0;
-    };
+
+class AccessibilityObject;
+class IntRect;
+class PopupContainer;
+
+// Contains Chromium-specific extensions to the ChromeClient.  Only put
+// things here that don't make sense for other ports.
+class ChromeClientChromium : public ChromeClient {
+public:
+    // Notifies the client of a new popup widget.  The client should place
+    // and size the widget with the given bounds, relative to the screen.
+    // If handleExternal is true, then drawing and input handling for the
+    // popup will be handled by the external embedder.
+    virtual void popupOpened(PopupContainer* popupContainer, const IntRect& bounds,
+                             bool focusOnShow, bool handleExternal) = 0;
+
+    // Notifies embedder that the state of an accessibility object has changed.
+    virtual void didChangeAccessibilityObjectState(AccessibilityObject*) = 0;
+};
 
 } // namespace WebCore
 
diff --git a/WebKit/chromium/ChangeLog b/WebKit/chromium/ChangeLog
index 461d0f3..68b7a2c 100644
--- a/WebKit/chromium/ChangeLog
+++ b/WebKit/chromium/ChangeLog
@@ -1,3 +1,17 @@
+2010-02-04  Chris Guillory  <chris.guillory at google.com>
+
+        Reviewed by Darin Fisher.
+
+        [Chromium] Add function for AccessibilityObject state change notifications.
+        
+        https://bugs.webkit.org/show_bug.cgi?id=34464
+
+        * public/WebViewClient.h:
+        (WebKit::WebViewClient::didChangeAccessibilityObjectState):
+        * src/ChromeClientImpl.cpp:
+        (WebKit::ChromeClientImpl::didChangeAccessibilityObjectState):
+        * src/ChromeClientImpl.h:
+
 2010-02-04  Jeremy Moskovich  <jeremy at chromium.org>
 
         Reviewed by Darin Fisher.
diff --git a/WebKit/chromium/public/WebViewClient.h b/WebKit/chromium/public/WebViewClient.h
index 964d382..4d272bb 100644
--- a/WebKit/chromium/public/WebViewClient.h
+++ b/WebKit/chromium/public/WebViewClient.h
@@ -252,6 +252,9 @@ public:
     // accessibility object.
     virtual void focusAccessibilityObject(const WebAccessibilityObject&) { }
 
+    // Notifies embedder that the state of an accessibility object has changed.
+    virtual void didChangeAccessibilityObjectState(const WebAccessibilityObject&) { }
+
 
     // Developer tools -----------------------------------------------------
 
diff --git a/WebKit/chromium/src/ChromeClientImpl.cpp b/WebKit/chromium/src/ChromeClientImpl.cpp
index 9079094..a69e470 100644
--- a/WebKit/chromium/src/ChromeClientImpl.cpp
+++ b/WebKit/chromium/src/ChromeClientImpl.cpp
@@ -659,6 +659,13 @@ void ChromeClientImpl::getPopupMenuInfo(PopupContainer* popupContainer,
     info->items.swap(outputItems);
 }
 
+void ChromeClientImpl::didChangeAccessibilityObjectState(AccessibilityObject* obj)
+{
+    // Alert assistive technology about the accessibility object state change
+    if (obj)
+        m_webView->client()->didChangeAccessibilityObjectState(WebAccessibilityObject(obj));
+}
+
 #if ENABLE(NOTIFICATIONS)
 NotificationPresenter* ChromeClientImpl::notificationPresenter() const
 {
diff --git a/WebKit/chromium/src/ChromeClientImpl.h b/WebKit/chromium/src/ChromeClientImpl.h
index 5a1e9cc..9e8c2e3 100644
--- a/WebKit/chromium/src/ChromeClientImpl.h
+++ b/WebKit/chromium/src/ChromeClientImpl.h
@@ -34,6 +34,7 @@
 #include "ChromeClientChromium.h"
 
 namespace WebCore {
+class AccessibilityObject;
 class HTMLParserQuirks;
 class PopupContainer;
 class SecurityOrigin;
@@ -132,6 +133,7 @@ public:
                              const WebCore::IntRect& bounds,
                              bool activatable,
                              bool handleExternally);
+    virtual void didChangeAccessibilityObjectState(WebCore::AccessibilityObject*);
 
     // ChromeClientImpl:
     void setCursor(const WebCursorInfo& cursor);

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list