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

Unified Diff: webkit/glue/webaccessibility.h

Issue 2031004: Revert 46567 - Reimplement accessibility of web content by caching the entire... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 10 years, 7 months 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
« no previous file with comments | « third_party/iaccessible2/iaccessible2.gyp ('k') | webkit/glue/webaccessibility.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webkit/glue/webaccessibility.h
===================================================================
--- webkit/glue/webaccessibility.h (revision 46641)
+++ webkit/glue/webaccessibility.h (working copy)
@@ -1,16 +1,11 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef WEBKIT_GLUE_WEBACCESSIBILITY_H_
#define WEBKIT_GLUE_WEBACCESSIBILITY_H_
-#include <vector>
-
#include "base/string16.h"
-#include "third_party/WebKit/WebKit/chromium/public/WebAccessibilityObject.h"
-#include "third_party/WebKit/WebKit/chromium/public/WebAccessibilityRole.h"
-#include "third_party/WebKit/WebKit/chromium/public/WebRect.h"
namespace WebKit {
class WebAccessibilityCache;
@@ -18,15 +13,62 @@
namespace webkit_glue {
-// A compact representation of the accessibility information for a
-// single web object, in a form that can be serialized and sent from
-// the renderer process to the browser process.
-struct WebAccessibility {
+class WebAccessibility {
public:
- // An alphabetical enumeration of accessibility roles.
+ // This defines an enumeration of IDs that can uniquely identify a call to a
+ // specific accessibility information function. Should match the support
+ // implemented in WebKit and GlueAccessibilityObject (functions marked with
+ // return value E_NOTIMPL in WebKit are also excluded).
+ enum Function {
+ FUNCTION_NONE = 0,
+
+ // Supported accessibility information retrieval functions.
+ FUNCTION_DODEFAULTACTION,
+ FUNCTION_HITTEST,
+ FUNCTION_LOCATION,
+ FUNCTION_NAVIGATE,
+ FUNCTION_GETCHILD,
+ FUNCTION_CHILDCOUNT,
+ FUNCTION_DEFAULTACTION,
+ FUNCTION_DESCRIPTION,
+ FUNCTION_GETFOCUSEDCHILD,
+ FUNCTION_HELPTEXT,
+ FUNCTION_KEYBOARDSHORTCUT,
+ FUNCTION_NAME,
+ FUNCTION_GETPARENT,
+ FUNCTION_ROLE,
+ FUNCTION_STATE,
+ FUNCTION_VALUE
+
+ // The deprecated put_accName and put_accValue (IAccessible) are not
+ // supported here, nor is accSelect, get_accHelpTopic and get_accSelection
+ // (matching WebKit's support for IAccessible).
+ };
+
+ // This defines an enumeration of navigation directions based on (but
+ // independent of) the MSAA Navigation Constants. However, to avoid the use of
+ // COM in our Glue layer, we use this as a substitute with a one-to-one
+ // conversion between Browser side (has COM) and Glue.
+ enum Direction {
+ DIRECTION_NONE = 0,
+
+ // Valid directions.
+ DIRECTION_UP,
+ DIRECTION_DOWN,
+ DIRECTION_LEFT,
+ DIRECTION_RIGHT,
+ DIRECTION_NEXT,
+ DIRECTION_PREVIOUS,
+ DIRECTION_FIRSTCHILD,
+ DIRECTION_LASTCHILD
+ };
+
+ // This defines an enumeration (in alphabetical order) of the supported
+ // accessibility roles in our Glue layer (used in
+ // GlueAccessibilityObject::Role). Any interface using roles must provide a
+ // conversion to its own roles (see e.g. BrowserAccessibility::get_accRole and
+ // BrowserAccessibility::MSAARole).
enum Role {
- ROLE_NONE = 0,
-
ROLE_APPLICATION,
ROLE_CELL,
ROLE_CHECKBUTTON,
@@ -57,14 +99,14 @@
ROLE_TABLE,
ROLE_TEXT,
ROLE_TOOLBAR,
- ROLE_TOOLTIP,
- NUM_ROLES
+ ROLE_TOOLTIP
};
- // An alphabetical enumeration of accessibility states.
- // A state bitmask is formed by shifting 1 to the left by each state,
- // for example:
- // int mask = (1 << STATE_CHECKED) | (1 << STATE_FOCUSED);
+ // This defines an enumeration (in alphabetical order) of the supported
+ // accessibility states in our Glue layer (used in
+ // GlueAccessibilityObject::State). Any interface using states must provide a
+ // conversion to its own states (see e.g. BrowserAccessibility::get_accState
+ // and BrowserAccessibility::MSAAState).
enum State {
STATE_CHECKED,
STATE_FOCUSABLE,
@@ -81,32 +123,58 @@
STATE_UNAVAILABLE
};
- // Empty constructor, for serialization.
- WebAccessibility();
+ enum ReturnCode {
+ RETURNCODE_TRUE, // MSAA S_OK
+ RETURNCODE_FALSE, // MSAA S_FALSE
+ RETURNCODE_FAIL // E_FAIL
+ };
- // Construct from a WebAccessibilityObject. Recursively creates child
- // nodes as needed to complete the tree. Adds |src| to |cache| and
- // stores its cache ID.
- WebAccessibility(const WebKit::WebAccessibilityObject& src,
- WebKit::WebAccessibilityCache* cache);
+ // Parameters structure to hold a union of the possible accessibility function
+ // INPUT variables, with the unused fields always set to default value. Used
+ // in ViewMsg_GetAccessibilityInfo, as only parameter.
+ struct InParams {
+ // Identifier to uniquely distinguish which instance of accessibility
+ // information is being called upon on the renderer side.
+ int object_id;
- // Initialize an already-created struct, same as the constructor a
- void Init(const WebKit::WebAccessibilityObject& src,
- WebKit::WebAccessibilityCache* cache);
+ // Identifier to resolve which accessibility information retrieval function
+ // is being called.
+ int function_id;
- // This is a simple serializable struct. All member variables should be
- // copyable.
- int32 id;
- string16 name;
- string16 value;
- string16 action;
- string16 description;
- string16 help;
- string16 shortcut;
- Role role;
- uint32 state;
- WebKit::WebRect location;
- std::vector<WebAccessibility> children;
+ // Id of accessible child, whose information is being requested.
+ int child_id;
+
+ // LONG input parameters, used differently depending on the function called.
+ long input_long1;
+ long input_long2;
+ };
+
+ // Parameters structure to hold a union of the possible accessibility function
+ // OUTPUT variables, with the unused fields always set to default value. Used
+ // in ViewHostMsg_GetAccessibilityInfoResponse, as only parameter.
+ struct OutParams {
+ // Identifier to uniquely distinguish which instance of accessibility
+ // information is being called upon on the renderer side.
+ int object_id;
+
+ // LONG output parameters, used differently depending on the function
+ // called. [output_long1] can in some cases be set to -1 to indicate that
+ // the child object found by the called IAccessible function is not a simple
+ // object.
+ long output_long1;
+ long output_long2;
+ long output_long3;
+ long output_long4;
+
+ // String output parameter.
+ string16 output_string;
+
+ // Return code of the accessibility function call.
+ int32 return_code;
+ };
+
+ static int32 GetAccObjInfo(WebKit::WebAccessibilityCache* cache,
+ const InParams& in_params, OutParams* out_params);
};
} // namespace webkit_glue
« no previous file with comments | « third_party/iaccessible2/iaccessible2.gyp ('k') | webkit/glue/webaccessibility.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698