| Index: chrome/browser/accessibility/browser_accessibility_manager_win.h
|
| ===================================================================
|
| --- chrome/browser/accessibility/browser_accessibility_manager_win.h (revision 61758)
|
| +++ chrome/browser/accessibility/browser_accessibility_manager_win.h (working copy)
|
| @@ -6,141 +6,45 @@
|
| #define CHROME_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_MANAGER_WIN_H_
|
| #pragma once
|
|
|
| -#include <atlbase.h>
|
| -#include <atlcom.h>
|
| #include <oleacc.h>
|
|
|
| -#include <hash_map>
|
| -#include <vector>
|
| -
|
| -#include "chrome/browser/accessibility/browser_accessibility_manager.h"
|
| -#include "base/hash_tables.h"
|
| #include "base/scoped_comptr_win.h"
|
| -#include "base/scoped_ptr.h"
|
| +#include "chrome/browser/accessibility/browser_accessibility_manager.h"
|
| +#include "chrome/common/render_messages_params.h"
|
| #include "webkit/glue/webaccessibility.h"
|
|
|
| class BrowserAccessibilityWin;
|
| struct ViewHostMsg_AccessibilityNotification_Params;
|
|
|
| -class BrowserAccessibilityWinFactory {
|
| - public:
|
| - virtual ~BrowserAccessibilityWinFactory() {}
|
| +using webkit_glue::WebAccessibility;
|
|
|
| - // Create an instance of BrowserAccessibilityWin and return a new
|
| - // reference to it.
|
| - virtual BrowserAccessibilityWin* Create();
|
| -};
|
| -
|
| // Manages a tree of BrowserAccessibilityWin objects.
|
| class BrowserAccessibilityManagerWin : public BrowserAccessibilityManager {
|
| public:
|
| - BrowserAccessibilityManagerWin(
|
| - HWND parent_window,
|
| - const webkit_glue::WebAccessibility& src,
|
| - BrowserAccessibilityDelegate* delegate,
|
| - BrowserAccessibilityWinFactory* factory =
|
| - new BrowserAccessibilityWinFactory());
|
| -
|
| virtual ~BrowserAccessibilityManagerWin();
|
|
|
| - // Return a pointer to the root of the tree, does not make a new reference.
|
| - BrowserAccessibilityWin* GetRoot();
|
| -
|
| - // Removes the BrowserAccessibilityWin child_id from the manager.
|
| - void Remove(LONG child_id);
|
| -
|
| - // Return a pointer to the object corresponding to the given child_id,
|
| - // does not make a new reference.
|
| - BrowserAccessibilityWin* GetFromChildID(LONG child_id);
|
| -
|
| // Get a the default IAccessible for the parent window, does not make a
|
| // new reference.
|
| IAccessible* GetParentWindowIAccessible();
|
|
|
| - // Return the object that has focus, if it's a descandant of the
|
| - // given root (inclusive). Does not make a new reference.
|
| - BrowserAccessibilityWin* GetFocus(BrowserAccessibilityWin* root);
|
| + // BrowserAccessibilityManager methods
|
| + virtual void NotifyAccessibilityEvent(
|
| + ViewHostMsg_AccessibilityNotification_Params::NotificationType n,
|
| + BrowserAccessibility* node);
|
|
|
| - // Tell the renderer to set focus to this node.
|
| - void SetFocus(const BrowserAccessibilityWin& node);
|
| -
|
| - // Tell the renderer to do the default action for this node.
|
| - void DoDefaultAction(const BrowserAccessibilityWin& node);
|
| -
|
| - // BrowserAccessibilityManager Methods
|
| - virtual void GotFocus();
|
| - virtual IAccessible* GetRootAccessible();
|
| - virtual void OnAccessibilityObjectStateChange(
|
| - const webkit_glue::WebAccessibility& acc_obj);
|
| - virtual void OnAccessibilityObjectChildrenChange(
|
| - const webkit_glue::WebAccessibility& acc_obj);
|
| - virtual void OnAccessibilityObjectFocusChange(
|
| - const webkit_glue::WebAccessibility& acc_obj);
|
| - virtual void OnAccessibilityObjectLoadComplete(
|
| - const webkit_glue::WebAccessibility& acc_obj);
|
| - virtual void OnAccessibilityObjectValueChange(
|
| - const webkit_glue::WebAccessibility& acc_obj);
|
| - virtual void OnAccessibilityObjectTextChange(
|
| - const webkit_glue::WebAccessibility& acc_obj);
|
| -
|
| private:
|
| - // Recursively compare the IDs of our subtree to a new subtree received
|
| - // from the renderer and return true if their IDs match exactly.
|
| - bool CanModifyTreeInPlace(
|
| - BrowserAccessibilityWin* current_root,
|
| - const webkit_glue::WebAccessibility& new_root);
|
| + BrowserAccessibilityManagerWin(
|
| + HWND parent_window,
|
| + const WebAccessibility& src,
|
| + BrowserAccessibilityDelegate* delegate,
|
| + BrowserAccessibilityFactory* factory);
|
|
|
| - // Recursively modify a subtree (by reinitializing) to match a new
|
| - // subtree received from the renderer process. Should only be called
|
| - // if CanModifyTreeInPlace returned true.
|
| - void ModifyTreeInPlace(
|
| - BrowserAccessibilityWin* current_root,
|
| - const webkit_glue::WebAccessibility& new_root);
|
| -
|
| - // Update the accessibility tree with an updated WebAccessibility tree or
|
| - // subtree received from the renderer process. First attempts to modify
|
| - // the tree in place, and if that fails, replaces the entire subtree.
|
| - // Returns the updated node or NULL if no node was updated.
|
| - BrowserAccessibilityWin* UpdateTree(
|
| - const webkit_glue::WebAccessibility& acc_obj);
|
| -
|
| - // Returns the next MSAA child id.
|
| - static LONG GetNextChildID();
|
| -
|
| - // Recursively build a tree of BrowserAccessibilityWin objects from
|
| - // the WebAccessibility tree received from the renderer process.
|
| - BrowserAccessibilityWin* CreateAccessibilityTree(
|
| - BrowserAccessibilityWin* parent,
|
| - int child_id,
|
| - const webkit_glue::WebAccessibility& src,
|
| - int index_in_parent);
|
| -
|
| - // The object that can perform actions on our behalf.
|
| - BrowserAccessibilityDelegate* delegate_;
|
| -
|
| - // Factory to create BrowserAccessibility objects (for dependency injection).
|
| - scoped_ptr<BrowserAccessibilityWinFactory> factory_;
|
| -
|
| // A default IAccessible instance for the parent window.
|
| ScopedComPtr<IAccessible> window_iaccessible_;
|
|
|
| - // The root of the tree of IAccessible objects and the element that
|
| - // currently has focus, if any.
|
| - BrowserAccessibilityWin* root_;
|
| - BrowserAccessibilityWin* focus_;
|
| + // Give BrowserAccessibilityManager::Create access to our constructor.
|
| + friend class BrowserAccessibilityManager;
|
|
|
| - // A mapping from the IDs of objects in the renderer, to the child IDs
|
| - // we use internally here.
|
| - base::hash_map<int, LONG> renderer_id_to_child_id_map_;
|
| -
|
| - // A mapping from child IDs to BrowserAccessibilityWin objects.
|
| - base::hash_map<LONG, BrowserAccessibilityWin*> child_id_map_;
|
| -
|
| - // The next child ID to use; static so that they're global to the process.
|
| - // Screen readers cache these IDs to see if they've seen the same object
|
| - // before so we should avoid reusing them within the same project.
|
| - static LONG next_child_id_;
|
| -
|
| DISALLOW_COPY_AND_ASSIGN(BrowserAccessibilityManagerWin);
|
| };
|
|
|
|
|