OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/browser/accessibility/browser_accessibility_manager_win.h" | 5 #include "content/browser/accessibility/browser_accessibility_manager_win.h" |
6 | 6 |
7 #include <atlbase.h> | 7 #include <atlbase.h> |
8 #include <atlapp.h> | 8 #include <atlapp.h> |
9 #include <atlcom.h> | 9 #include <atlcom.h> |
10 #include <atlcrack.h> | 10 #include <atlcrack.h> |
(...skipping 13 matching lines...) Expand all Loading... |
24 // one main HWND for a frame, or even for the whole desktop. So, we need a | 24 // one main HWND for a frame, or even for the whole desktop. So, we need a |
25 // fake HWND as the root of the accessibility tree for each tab. | 25 // fake HWND as the root of the accessibility tree for each tab. |
26 // We should get rid of this code when the latest two versions of all | 26 // We should get rid of this code when the latest two versions of all |
27 // supported screen readers no longer make this assumption. | 27 // supported screen readers no longer make this assumption. |
28 // | 28 // |
29 // This class implements a child HWND with zero size, that delegates its | 29 // This class implements a child HWND with zero size, that delegates its |
30 // accessibility implementation to the root of the BrowserAccessibilityManager | 30 // accessibility implementation to the root of the BrowserAccessibilityManager |
31 // tree. This HWND is hooked up as the parent of the root object in the | 31 // tree. This HWND is hooked up as the parent of the root object in the |
32 // BrowserAccessibilityManager tree, so when any accessibility client | 32 // BrowserAccessibilityManager tree, so when any accessibility client |
33 // calls ::WindowFromAccessibleObject, they get this HWND instead of the | 33 // calls ::WindowFromAccessibleObject, they get this HWND instead of the |
34 // DesktopWindowTreeHostWin. | 34 // DesktopRootWindowHostWin. |
35 class AccessibleHWND | 35 class AccessibleHWND |
36 : public ATL::CWindowImpl<AccessibleHWND, | 36 : public ATL::CWindowImpl<AccessibleHWND, |
37 ATL::CWindow, | 37 ATL::CWindow, |
38 ATL::CWinTraits<WS_CHILD> > { | 38 ATL::CWinTraits<WS_CHILD> > { |
39 public: | 39 public: |
40 // Unfortunately, some screen readers look for this exact window class | 40 // Unfortunately, some screen readers look for this exact window class |
41 // to enable certain features. It'd be great to remove this. | 41 // to enable certain features. It'd be great to remove this. |
42 DECLARE_WND_CLASS_EX(L"Chrome_RenderWidgetHostHWND", CS_DBLCLKS, 0); | 42 DECLARE_WND_CLASS_EX(L"Chrome_RenderWidgetHostHWND", CS_DBLCLKS, 0); |
43 | 43 |
44 BEGIN_MSG_MAP_EX(AccessibleHWND) | 44 BEGIN_MSG_MAP_EX(AccessibleHWND) |
(...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
292 unique_id_to_renderer_id_map_.find(unique_id_win); | 292 unique_id_to_renderer_id_map_.find(unique_id_win); |
293 if (iter != unique_id_to_renderer_id_map_.end()) { | 293 if (iter != unique_id_to_renderer_id_map_.end()) { |
294 BrowserAccessibility* result = GetFromRendererID(iter->second); | 294 BrowserAccessibility* result = GetFromRendererID(iter->second); |
295 if (result) | 295 if (result) |
296 return result->ToBrowserAccessibilityWin(); | 296 return result->ToBrowserAccessibilityWin(); |
297 } | 297 } |
298 return NULL; | 298 return NULL; |
299 } | 299 } |
300 | 300 |
301 } // namespace content | 301 } // namespace content |
OLD | NEW |