Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(858)

Unified Diff: webkit/api/src/WebAccessibilityCacheImpl.h

Issue 348063: Introduce WebAccessibilityControllerImpl.... (Closed) Base URL: svn://chrome-svn.corp.google.com/chrome/trunk/src/
Patch Set: Licked clean. Created 11 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webkit/api/src/WebAccessibilityCacheImpl.h
===================================================================
--- webkit/api/src/WebAccessibilityCacheImpl.h (revision 30762)
+++ webkit/api/src/WebAccessibilityCacheImpl.h (working copy)
@@ -2,75 +2,67 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef WEBKIT_GLUE_WEBACCESSIBILITYMANAGER_IMPL_H_
-#define WEBKIT_GLUE_WEBACCESSIBILITYMANAGER_IMPL_H_
+#ifndef WebAccessibilityCacheImpl_h
+#define WebAccessibilityCacheImpl_h
-#include "base/hash_tables.h"
-#include "webkit/glue/webaccessibilitymanager.h"
+#include "WebAccessibilityCache.h"
+#include <wtf/HashMap.h>
+#include <wtf/RefPtr.h>
-class GlueAccessibilityObject;
+namespace WebCore {
+ class AccessibilityObjectWrapper;
darin (slow to review) 2009/11/04 19:17:15 nit: no indentation in namespaces now-a-days
dglazkov 2009/11/04 19:50:05 Done.
+}
-////////////////////////////////////////////////////////////////////////////////
-//
-// WebAccessibilityManagerImpl
-//
-//
-// Implements WebAccessibilityManager.
-// Responds to incoming accessibility requests from the browser side. Retrieves
-// the requested information from the active AccessibilityObject, through the
-// GlueAccessibilityObject.
-////////////////////////////////////////////////////////////////////////////////
+namespace WebKit {
-namespace webkit_glue {
+class WebAccessibilityCacheImpl : public WebKit::WebAccessibilityCache {
+public:
+ virtual void initialize(WebView* view);
+ virtual bool isInitialized() const { return m_initialized; }
-class WebAccessibilityManagerImpl : public WebAccessibilityManager {
- public:
- // From WebAccessibilityManager.
- bool GetAccObjInfo(WebKit::WebView* view,
- const WebAccessibility::InParams& in_params,
- WebAccessibility::OutParams* out_params);
- bool ClearAccObjMap(int acc_obj_id, bool clear_all);
- int FocusAccObj(const WebKit::WebAccessibilityObject& object);
+ virtual WebAccessibilityObject getObjectById(int);
+ virtual bool isValidId(int) const;
+ virtual int addOrGetId(const WebKit::WebAccessibilityObject&);
- protected:
- // Needed so WebAccessibilityManager::Create can call our constructor.
- friend class WebAccessibilityManager;
+ virtual void remove(int);
+ virtual void clear();
- // Constructor creates a new GlueAccessibilityObjectRoot, and initializes
- // the root |acc_obj_id_| to 1000, to avoid conflicts with platform-specific
- // child ids.
- WebAccessibilityManagerImpl();
- ~WebAccessibilityManagerImpl();
+protected:
+ friend class WebKit::WebAccessibilityCache;
- private:
- // From WebAccessibilityManager.
- bool InitAccObjRoot(WebKit::WebView* view);
+ WebAccessibilityCacheImpl();
+ ~WebAccessibilityCacheImpl();
- // Wrapper around the pointer that holds the root of the AccessibilityObject
- // tree, to allow the use of a scoped_refptr.
- struct GlueAccessibilityObjectRoot;
- GlueAccessibilityObjectRoot* root_;
+private:
+ // FIXME: This can be just part of Chromium's AccessibilityObjectWrapper.
+ class WeakHandle : public WebCore::AccessibilityObjectWrapper {
+ public:
+ static PassRefPtr<WeakHandle> create(WebCore::AccessibilityObject*);
+ virtual void detach();
+ private:
+ WeakHandle(WebCore::AccessibilityObject*);
+ };
- typedef base::hash_map<int, GlueAccessibilityObject*> IntToGlueAccObjMap;
- typedef base::hash_map<WebCore::AccessibilityObject*, int> AccObjToIntMap;
+ typedef HashMap<int, RefPtr<WeakHandle> > ObjectMap;
+ typedef HashMap<WebCore::AccessibilityObject*, int> IdMap;
- // Hashmap for cashing of elements in use by the AT, mapping id (int) to a
- // GlueAccessibilityObject pointer.
- IntToGlueAccObjMap int_to_glue_acc_obj_map_;
- // Hashmap for cashing of elements in use by the AT, mapping a
- // AccessibilityObject pointer to its id (int). Needed for reverse lookup,
- // to ensure unnecessary duplicate entries are not created in the
- // IntToGlueAccObjMap (above) and for focus changes in WebKit.
- AccObjToIntMap acc_obj_to_int_map_;
+ // Hashmap for caching of elements in use by the AT, mapping id (int) to
+ // WebAccessibilityObject.
+ ObjectMap m_objectMap;
+ // Hashmap for caching of elements in use by the AT, mapping a
+ // AccessibilityObject pointer to its id (int). Needed for reverse lookup,
+ // to ensure unnecessary duplicate entries are not created in the
+ // ObjectMap and for focus changes in WebKit.
+ IdMap m_idMap;
- // Unique identifier for retrieving an accessibility object from the page's
- // hashmaps. Id is always 0 for the root of the accessibility object
- // hierarchy (on a per-renderer process basis).
- int acc_obj_id_;
+ // Unique identifier for retrieving an accessibility object from the page's
+ // hashmaps. Id is always 0 for the root of the accessibility object
+ // hierarchy (on a per-renderer process basis).
+ int m_nextNewId;
- DISALLOW_COPY_AND_ASSIGN(WebAccessibilityManagerImpl);
+ bool m_initialized;
};
-} // namespace webkit_glue
+}
-#endif // WEBKIT_GLUE_WEBACCESSIBILITYMANAGER_IMPL_H_
+#endif

Powered by Google App Engine
This is Rietveld 408576698