[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