| 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
|
|
|
|
|