From 063afcb5b0c0fc3bd59da95917bed48284f6605e Mon Sep 17 00:00:00 2001 From: "dmazzoni@chromium.org" Date: Thu, 29 Sep 2011 07:54:32 +0000 Subject: Rewrites renderer accessibility to not use WebAccessibilityCache. This fixes the primary underlying cause of a number of bugs where the browser's accessibility tree got out of sync with the renderer's accessibility tree, which makes the page seem not functional anymore. Splits renderer accessibility code out of render_view.cc into its own file. All code now uses the axID directly from WebCore::AccessibilityObject rather than WebAccessibilityCache, which can now be deleted. One implication of this is that the top-level node can now change its ID, so we introduce a new role ROLE_ROOT_WEB_AREA to distinguish it from an iframe's ROLE_WEB_AREA node. To solve the problem of getting out of sync, the renderer now maintains a tree of axIDs that reflects the state of the tree as of the most recent message sent to the browser. Whenever a new accessibility notification is posted, it refers to that tree to determine precisely what information needs to be sent to the browser, eliminating problems where the renderer was posting notifications about nodes that the browser didn't know about. BUG=93095,93232,92716,90787,90768 TEST=updated lots of tests Review URL: http://codereview.chromium.org/7966013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@103249 0039d316-1c4b-4281-b951-d872f2087c98 --- content/content_renderer.gypi | 2 ++ 1 file changed, 2 insertions(+) (limited to 'content/content_renderer.gypi') diff --git a/content/content_renderer.gypi b/content/content_renderer.gypi index e8a94e9..7d702a5 100644 --- a/content/content_renderer.gypi +++ b/content/content_renderer.gypi @@ -121,6 +121,8 @@ 'renderer/render_widget_fullscreen.h', 'renderer/render_widget_fullscreen_pepper.cc', 'renderer/render_widget_fullscreen_pepper.h', + 'renderer/renderer_accessibility.cc', + 'renderer/renderer_accessibility.h', 'renderer/renderer_glue.cc', 'renderer/renderer_main.cc', 'renderer/renderer_main_platform_delegate.h', -- cgit v1.1