[SCM] WebKit Debian packaging branch, webkit-1.1, updated. upstream/1.1.21-584-g1e41756

eric at webkit.org eric at webkit.org
Fri Feb 26 22:16:33 UTC 2010


The following commit has been merged in the webkit-1.1 branch:
commit a9c9547bad3d5e53b8ff1962734a7cd2ecc08be7
Author: eric at webkit.org <eric at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Wed Feb 10 04:01:48 2010 +0000

    2010-02-09  Chris Guillory  <ctguil at google.com>
    
            Reviewed by Darin Fisher.
    
            [Chromium] Notify ChromeClientChromium of 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-09  Chris Guillory  <ctguil at google.com>
    
            Reviewed by Darin Fisher.
    
            [Chromium] Add function for accessibility object state change notifications.
    
            https://bugs.webkit.org/show_bug.cgi?id=34464
    
            * gyp_webkit:
            * public/WebViewClient.h:
            (WebKit::WebViewClient::didChangeAccessibilityObjectState):
            * src/ChromeClientImpl.cpp:
            (WebKit::ChromeClientImpl::didChangeAccessibilityObjectState):
            * src/ChromeClientImpl.h:
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@54584 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 24c6a40..c9c4c49 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,16 @@
+2010-02-09  Chris Guillory  <ctguil at google.com>
+
+        Reviewed by Darin Fisher.
+
+        [Chromium] Notify ChromeClientChromium of 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-09  Kwang Yul Seo  <skyul at company100.net>
 
         Reviewed by Adam Barth.
diff --git a/WebCore/accessibility/chromium/AXObjectCacheChromium.cpp b/WebCore/accessibility/chromium/AXObjectCacheChromium.cpp
index a97dfe2..4118c63 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,17 @@ void AXObjectCache::attachWrapper(AccessibilityObject*)
     // In Chromium, AccessibilityObjects are wrapped lazily.
 }
 
-void AXObjectCache::postPlatformNotification(AccessibilityObject*, AXNotification)
+void AXObjectCache::postPlatformNotification(AccessibilityObject* obj, AXNotification notification)
 {
+    if (notification != AXCheckedStateChanged)
+        return;
+
+    if (!obj || !obj->document() || !obj->documentFrameView())
+        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..fc42250 100644
--- a/WebCore/page/chromium/ChromeClientChromium.h
+++ b/WebCore/page/chromium/ChromeClientChromium.h
@@ -35,20 +35,24 @@
 #include <wtf/Forward.h>
 
 namespace WebCore {
-    class IntRect;
-    class PopupContainer;
+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;
-    };
+// 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 5d7ef52..552e1e6 100644
--- a/WebKit/chromium/ChangeLog
+++ b/WebKit/chromium/ChangeLog
@@ -1,3 +1,18 @@
+2010-02-09  Chris Guillory  <ctguil at google.com>
+
+        Reviewed by Darin Fisher.
+
+        [Chromium] Add function for accessibility object state change notifications.
+        
+        https://bugs.webkit.org/show_bug.cgi?id=34464
+
+        * gyp_webkit:
+        * public/WebViewClient.h:
+        (WebKit::WebViewClient::didChangeAccessibilityObjectState):
+        * src/ChromeClientImpl.cpp:
+        (WebKit::ChromeClientImpl::didChangeAccessibilityObjectState):
+        * src/ChromeClientImpl.h:
+
 2010-02-09  Mikhail Naganov  <mnaganov at chromium.org>
 
         Reviewed by Pavel Feldman.
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..ce2f00c 100644
--- a/WebKit/chromium/src/ChromeClientImpl.cpp
+++ b/WebKit/chromium/src/ChromeClientImpl.cpp
@@ -659,6 +659,14 @@ 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