summaryrefslogtreecommitdiffstats
path: root/content/browser/accessibility/browser_accessibility_manager_win.h
Commit message (Collapse)AuthorAgeFilesLines
* Replace OVERRIDE and FINAL with override and final in ↵anand.ratn2014-10-071-5/+5
| | | | | | | | | | content/browser/accessibility/[a-s]* BUG=417463 Review URL: https://codereview.chromium.org/634533003 Cr-Commit-Position: refs/heads/master@{#298473}
* Simplify access to LegacyRenderWidgetHostHWND.dmazzoni@chromium.org2014-07-261-20/+2
| | | | | | | | | | | | | | | | | | | | | Instead of giving BrowserAccessibilityManagerWin a pointer to a LegacyRenderWidgetHostHWND, which has been a source of problems due to complicated lifecycles, just have BAMW request the parent HWND and parent IAccessible from its delegate whenever needed, with the understanding that these may be NULL sometimes. Note: this change fixes a DrMemory UAF detected in the patch that migrated accessibility from RVH to RFH (codereview.chromium.org/273423004), and also fixes a potential concern in another fix to LegacyRenderWidgetHostHWND (codereview.chromium.org/387353004). BUG=368298,393665 Review URL: https://codereview.chromium.org/415633002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@285818 0039d316-1c4b-4281-b951-d872f2087c98
* More NVDA browse mode fixesdmazzoni@chromium.org2014-06-191-1/+4
| | | | | | | | | | | The previous change (https://codereview.chromium.org/332893004/) wasn't quite right. To avoid errors, we need to only fire focus and load events when the web view itself has focus, not say when the location bar has focus. And because there are transient periods when we can't fire events, we need to keep track of whether we need to fire a focus event with a flag and fire it later. BUG=368549 NOTRY=true Review URL: https://codereview.chromium.org/344573003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@278303 0039d316-1c4b-4281-b951-d872f2087c98
* Fix race in BrowserAccessibilityManagerWin creation.dmazzoni@chromium.org2014-06-131-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, BrowserAccessibilityManagerWin needed its parent HWND and parent IAccessible upon construction, and if RWHVA didn't have those, it didn't create the BAMW. This resulted in at least two races: * If an accessibility tree update came from the renderer but the BAMW wasn't created because the window wasn't available, the tree update would get discarded - possibly leading to an assertion failure / renderer crash later on the next update from being out of sync. * If we tried to create the BAMW before the LegacyRWHH existed, we would fall through and create a BAM instead of a BAMW, making that whole tab inaccessible. To fix both issues, we always create a BAMW when needed, and we update the BAMW with the LegacyRWHH as soon as it's available. BUG=372478,379019 NOTRY=true Review URL: https://codereview.chromium.org/329053004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@276950 0039d316-1c4b-4281-b951-d872f2087c98
* Make BrowserAccessibilityManager use AXTree (re-land).dmazzoni@chromium.org2014-04-211-7/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | This is the final step of migrating content/*/accessibility to make full use of the new infrastructure in ui/accessibility. Previously, BrowserAccessibilityManager owned the tree of BrowserAccessibility objects and handled making changes to the tree in response to messages from the renderer. Now, AXTree handles the updates from the renderer and notifies BrowserAccessibilityManager (via AXTreeDelegate) when it should create or destroy BrowserAccessibility objects, and when it should notify a BrowserAccessibility object that it's been modified. This makes the serialization/unserialization logic fully tested now, and greatly clarifies the semantics of when in the update cycle various notifications are called (e.g., PreInitialize and PostInitialize are now OnDataChanged and OnUpdateFinished). BUG=316726 NOTRY=true Review URL: https://codereview.chromium.org/234723003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@265021 0039d316-1c4b-4281-b951-d872f2087c98
* Revert of Make BrowserAccessibilityManager use AXTree. ↵ckocagil@chromium.org2014-04-211-9/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (https://codereview.chromium.org/234723003/) Reason for revert: Broke Linux ASan LSan Tests (2) See http://build.chromium.org/p/chromium.memory/builders/Linux%20ASan%20LSan%20Tests%20%282%29/builds/1774 Original issue's description: > Make BrowserAccessibilityManager use AXTree. > > This is the final step of migrating content/*/accessibility to make > full use of the new infrastructure in ui/accessibility. > > Previously, BrowserAccessibilityManager owned the tree of > BrowserAccessibility objects and handled making changes to the > tree in response to messages from the renderer. Now, AXTree > handles the updates from the renderer and notifies > BrowserAccessibilityManager (via AXTreeDelegate) when it > should create or destroy BrowserAccessibility objects, and when > it should notify a BrowserAccessibility object that it's been > modified. > > This makes the serialization/unserialization logic fully tested now, > and greatly clarifies the semantics of when in the update cycle > various notifications are called (e.g., PreInitialize and PostInitialize > are now OnDataChanged and OnUpdateFinished). > > BUG=316726 > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=264979 TBR=aboxhall@chromium.org,dtseng@chromium.org,thakis@chromium.org,dmazzoni@chromium.org NOTREECHECKS=true NOTRY=true BUG=316726 Review URL: https://codereview.chromium.org/244883003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@264982 0039d316-1c4b-4281-b951-d872f2087c98
* Make BrowserAccessibilityManager use AXTree.dmazzoni@chromium.org2014-04-211-7/+9
| | | | | | | | | | | | | | | | | | | | | | | | | This is the final step of migrating content/*/accessibility to make full use of the new infrastructure in ui/accessibility. Previously, BrowserAccessibilityManager owned the tree of BrowserAccessibility objects and handled making changes to the tree in response to messages from the renderer. Now, AXTree handles the updates from the renderer and notifies BrowserAccessibilityManager (via AXTreeDelegate) when it should create or destroy BrowserAccessibility objects, and when it should notify a BrowserAccessibility object that it's been modified. This makes the serialization/unserialization logic fully tested now, and greatly clarifies the semantics of when in the update cycle various notifications are called (e.g., PreInitialize and PostInitialize are now OnDataChanged and OnUpdateFinished). BUG=316726 Review URL: https://codereview.chromium.org/234723003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@264979 0039d316-1c4b-4281-b951-d872f2087c98
* Fire ax focus on root document when root changes.dmazzoni@chromium.org2014-04-081-0/+4
| | | | | | | | BUG=347448 Review URL: https://codereview.chromium.org/227773002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@262343 0039d316-1c4b-4281-b951-d872f2087c98
* Fire accessibility focus/blur events on root web document.dmazzoni@chromium.org2014-04-031-0/+2
| | | | | | | | | | | | | | When the aura Window containing the RWHVA gets or loses focus, we must fire the corresponding accessibility event on that object, which corresponds to the root "document" in the web hierarchy. This worked before the Aura switch because native HWNDs fired these events automatically. BUG=347448 Review URL: https://codereview.chromium.org/214243005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@261495 0039d316-1c4b-4281-b951-d872f2087c98
* Create a visible window with class name Chrome_RenderWidgetHostHWND which ↵ananta@chromium.org2014-02-071-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | corresponds to the bounds of the web contents. This is done to ensure that legacy drivers for trackpoints/trackpads and others which use track gestures for back forward navigations work. These drivers call the WindowFromPoint API and get the process name. For Chrome they look for the old Window class Chrome_RenderWidgetHostHWND. They use this to determine whether to send mouse wheels and special keyboard message for back forward navigations, etc. With Aura we don't have this window class anymore causing Chrome to not work well for a number of users. To workaround this in the shortterm, a dummy HWND with the Chrome_RenderWidgetHostHWND class name is created. This window is visible and handles mouse events. It is transparent to ensure that it does not need to draw. To ensure that we don't mess wit mouse events too much we set capture to the parent window as needed. This window also serves as the parent to windowless NPAPI plugins like Flash. Additionally the dummy accessibility window with this class name has been removed and the functionality has been consolidated into the newly added LegacyRenderWidgetHostHWND class which provides this functionality. BUG=326022,335941 R=cpu@chromium.org, scottmg@chromium.org, sky@chromium.org, cpu, scottmg TBR=jam Review URL: https://codereview.chromium.org/151083002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@249537 0039d316-1c4b-4281-b951-d872f2087c98
* Remove Chrome Frame code from BrowserAccessibilityManagerWin.grt@chromium.org2014-01-101-2/+0
| | | | | | | | | BUG=316496 R=dmazzoni@chromium.org Review URL: https://codereview.chromium.org/132313003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@244167 0039d316-1c4b-4281-b951-d872f2087c98
* Refactor content/ to use ui::AXNodeData instead of blink.dmazzoni@google.com2014-01-061-3/+3
| | | | | | | | | | | | This is a huge change, but it's all refactoring / renaming. There should be no new logic. BUG=316726 R=dtseng@chromium.org, jam@chromium.org, tsepez@chromium.org Review URL: https://codereview.chromium.org/116293005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@243187 0039d316-1c4b-4281-b951-d872f2087c98
* Support win aura screen reader workarounds on Win 8 too.dmazzoni@chromium.org2013-11-301-1/+5
| | | | | | | | | | | This also fixes a crash on all Win platforms due to incorrect HWND ownership. BUG=227026 Review URL: https://codereview.chromium.org/72863003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@237972 0039d316-1c4b-4281-b951-d872f2087c98
* Rename WebKit namespace to blink (part 3)abarth@chromium.org2013-11-071-1/+1
| | | | | | | | | | | This CL updates all references to the WebKit namespace in content. TBR=darin@chromium.org BUG=295096 Review URL: https://codereview.chromium.org/63253002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@233513 0039d316-1c4b-4281-b951-d872f2087c98
* Use fake HWND as root of Aura web accessibility tree.dmazzoni@chromium.org2013-10-181-0/+7
| | | | | | | | | | | | | | | This is an unfortunate hack until screen readers fix some bad assumptions they made about Chrome - specifically that every tab would be in its own HWND, and that the HWND for tabs would stay the same between Chrome versions. We should remove this as soon as it's no longer needed. BUG=227026 Review URL: https://codereview.chromium.org/23850006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@229297 0039d316-1c4b-4281-b951-d872f2087c98
* Use Blink accessibility enums in Chromiumdmazzoni@chromium.org2013-09-041-2/+2
| | | | | | | | | | | | | | | | | | | | This is a refactoring-only change! Eliminates enums for accessibility roles, states, and notifications and uses equivalent enums from Blink instead. Saves several giant switch statements, saves a few characters per line, and makes future changes to roles and states simpler. Another benefit is that you can search for a role, state, or event and find all of the places where it's used throughout the code at once. Also renames WebAccessibilityObject -> WebAXObject and notification -> event in the context of accessibility. BUG=269034 Review URL: https://chromiumcodereview.appspot.com/23651003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@221295 0039d316-1c4b-4281-b951-d872f2087c98
* Allow the IAccessible parent to be known late in the game.grt@chromium.org2013-05-251-0/+3
| | | | | | | | | | | | | | | | | In the case of a tab loading in the background, accessibility notifications may arrive from the renderer before the tab's WebContents is added to a WebView. In this case, the accessible parent isn't yet known. Handle this case by allowing the RWHVA's BrowserAccessibilityManager to be created without an accessible parent and then receive that parent (from a WebContentsImpl) when the WebContents is finally attached to a WebView. BUG=242524 R=dmazzoni@chromium.org Review URL: https://chromiumcodereview.appspot.com/15744014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@202247 0039d316-1c4b-4281-b951-d872f2087c98
* Rename confusing child_id to unique_id_windmazzoni@chromium.org2013-04-101-1/+12
| | | | | | | | | | | | | | | | Each BrowserAccessibility had a "child_id", which was confusing - the word "child" and "id" both have other meanings within accessibility. In this context, it's really an unique ID, that's only needed on Windows, that can be used to quickly access an object using the get_accChild function (which is where the "child" comes in, it should really be "descendant"). BUG=175156 Review URL: https://codereview.chromium.org/13770015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@193322 0039d316-1c4b-4281-b951-d872f2087c98
* Fix RenderWidgetHostViewAura's accessible parent.dmazzoni@chromium.org2013-03-201-4/+6
| | | | | | | | | | | | | | | views::WebView returns the accessible object from RenderWidgetHostViewAura as its own accessibility object. Hook up the reverse direction so that the accessible parent of RenderWidgetHostViewAura is the accessible object from the parent of the WebView. BUG=175156 Review URL: https://chromiumcodereview.appspot.com/12917018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@189195 0039d316-1c4b-4281-b951-d872f2087c98
* Connect RenderWidgetHostViewAura to BrowserAccessibilityManager.dmazzoni@chromium.org2013-03-151-9/+19
| | | | | | | | | | | | | | | | | | | | | | | This change doesn't completely make Aura/Win accessible, it just refactors BrowserAccessibilityManager a bit so that it can be used by both Win and AuraWin without convoluted typecasting. Specifically, the assumption before was that BrowserAccessibilityManager could be initialized with a parent gfx::NativeView that's the accessibility parent. That abstraction doesn't work in Aura - the parent accessible object is not the same as the parent HWND (and BrowserAccessibilityManagerWin needs both). So rather than trying to have the parent accessible object be a cross-platform concept, I just made it a platform-specific concept that the base class doesn't know about now. BUG=175156 Review URL: https://chromiumcodereview.appspot.com/12555004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@188335 0039d316-1c4b-4281-b951-d872f2087c98
* Move content\accessibility code into the content namespace.jam@chromium.org2012-10-241-1/+4
| | | | | | Review URL: https://codereview.chromium.org/11274020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@163897 0039d316-1c4b-4281-b951-d872f2087c98
* Remove #pragma once from contentajwong@chromium.org2012-07-111-1/+0
| | | | | | Review URL: https://chromiumcodereview.appspot.com/10696166 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@146071 0039d316-1c4b-4281-b951-d872f2087c98
* Refactor all accessibility code out of webkit/glue.dmazzoni@chromium.org2012-06-121-4/+1
| | | | | | | | | | | | | | | Moves the data definitions into content/common and the serialization code into content/renderer. There are no code changes here, this is just a refactoring. BUG=132129 TEST=none Review URL: https://chromiumcodereview.appspot.com/10544099 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@141768 0039d316-1c4b-4281-b951-d872f2087c98
* Post a notification when accessible scroll requests complete.dmazzoni@chromium.org2012-02-111-1/+11
| | | | | | | | | | | | | | | Later we'd like to make scrollTo synchronous, but this is a good solution in the interim: by posting a notification when an item moves, assistive technology will update their state rather than believing the scroll failed. BUG=104468 TEST=manual testing with accProbe Review URL: http://codereview.chromium.org/9370052 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@121580 0039d316-1c4b-4281-b951-d872f2087c98
* Cleanup: Remove unneeded forward declarations in content/browser.thestig@chromium.org2011-11-101-1/+0
| | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/8499042 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@109363 0039d316-1c4b-4281-b951-d872f2087c98
* Re-land: Move browser accessibility code from chrome to content.dmazzoni@chromium.org2011-06-251-0/+48
| | | | | | | | | BUG=85932 TEST=none Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=90435 Review URL: http://codereview.chromium.org/7233022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@90495 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 90435 - Re-land: Move browser accessibility code from chrome to content.brettw@chromium.org2011-06-241-48/+0
| | | | | | | | | | | | | | This caused a legitimate check deps failure er/accessibility/browser_accessibility_cocoa.mm depending on ui/base/l10n BUG=85932 TEST=none Review URL: http://codereview.chromium.org/7233022 TBR=dmazzoni@chromium.org Review URL: http://codereview.chromium.org/7235008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@90438 0039d316-1c4b-4281-b951-d872f2087c98
* Re-land: Move browser accessibility code from chrome to content.dmazzoni@chromium.org2011-06-241-0/+48
| | | | | | | | BUG=85932 TEST=none Review URL: http://codereview.chromium.org/7233022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@90435 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 90265 - Move browser accessibility code from chrome to content.dmazzoni@chromium.org2011-06-231-48/+0
| | | | | | | | | | | BUG=85932 TEST=none Review URL: http://codereview.chromium.org/7233022 TBR=dmazzoni@chromium.org Review URL: http://codereview.chromium.org/7247022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@90279 0039d316-1c4b-4281-b951-d872f2087c98
* Move browser accessibility code from chrome to content.dmazzoni@chromium.org2011-06-231-0/+48
BUG=85932 TEST=none Review URL: http://codereview.chromium.org/7233022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@90265 0039d316-1c4b-4281-b951-d872f2087c98