• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef CHROME_COMMON_AUTOMATION_CONSTANTS_H__
6 #define CHROME_COMMON_AUTOMATION_CONSTANTS_H__
7 #pragma once
8 
9 namespace automation {
10 
11 // JSON value labels for proxy settings that are passed in via
12 // AutomationMsg_SetProxyConfig. These are here since they are used by both
13 // AutomationProvider and AutomationProxy.
14 extern const char kJSONProxyAutoconfig[];
15 extern const char kJSONProxyNoProxy[];
16 extern const char kJSONProxyPacUrl[];
17 extern const char kJSONProxyBypassList[];
18 extern const char kJSONProxyServer[];
19 
20 // When passing the kTestingChannelID switch to the browser, prepend
21 // this prefix to the channel id to enable the named testing interface.
22 // Named testing interface is used when you want to connect an
23 // AutomationProxy to an already-running browser instance.
24 extern const char kNamedInterfacePrefix[];
25 
26 // Amount of time to wait before querying the browser.
27 static const int kSleepTime = 250;
28 
29 // Recognized by the AutomationProvider's SendWebKeyboardEventToSelectedTab
30 // command. Specifies the type of the keyboard event.
31 enum KeyEventTypes {
32   kRawKeyDownType = 0,
33   kKeyDownType,
34   kCharType,
35   kKeyUpType,
36 };
37 
38 // Recognized by the AutomationProvider's SendWebKeyboardEventToSelectedTab
39 // command. Specifies masks to be used in constructing keyboard event modifiers.
40 enum KeyModifierMasks {
41   kShiftKeyMask   = 1 << 0,
42   kControlKeyMask = 1 << 1,
43   kAltKeyMask     = 1 << 2,
44   kMetaKeyMask    = 1 << 3,
45 };
46 
47 enum MouseButton {
48   kLeftButton = 0,
49   kMiddleButton,
50   kRightButton,
51 };
52 
53 // The current version of ChromeDriver automation supported by Chrome.
54 // This needs to be incremented for each change to ChromeDriver automation that
55 // is not backwards compatible. Some examples of this would be:
56 // - SendJSONRequest or Hello IPC messages change
57 // - The interface for an individual ChromeDriver automation call changes in an
58 //   incompatible way
59 // TODO(kkania): Investigate a better backwards compatible automation solution.
60 extern const int kChromeDriverAutomationVersion;
61 
62 }  // namespace automation
63 
64 // Used by AutomationProxy, declared here so that other headers don't need
65 // to include automation_proxy.h.
66 enum AutomationLaunchResult {
67   AUTOMATION_LAUNCH_RESULT_INVALID = -1,
68   AUTOMATION_SUCCESS,
69   AUTOMATION_TIMEOUT,
70   AUTOMATION_VERSION_MISMATCH,
71   AUTOMATION_CREATE_TAB_FAILED,
72   AUTOMATION_SERVER_CRASHED,
73 };
74 
75 enum AutomationMsg_NavigationResponseValues {
76   AUTOMATION_MSG_NAVIGATION_ERROR = 0,
77   AUTOMATION_MSG_NAVIGATION_SUCCESS,
78   AUTOMATION_MSG_NAVIGATION_AUTH_NEEDED,
79 };
80 
81 enum AutomationMsg_ExtensionResponseValues {
82   AUTOMATION_MSG_EXTENSION_INSTALL_SUCCEEDED = 0,
83   AUTOMATION_MSG_EXTENSION_INSTALL_FAILED
84 };
85 
86 // Used in the AutomationMsg_GetExtensionProperty to identify which extension
87 // property should be retrieved, instead of having separate messages for each
88 // property.
89 enum AutomationMsg_ExtensionProperty {
90   AUTOMATION_MSG_EXTENSION_ID = 0,
91   AUTOMATION_MSG_EXTENSION_NAME,
92   AUTOMATION_MSG_EXTENSION_VERSION,
93   AUTOMATION_MSG_EXTENSION_BROWSER_ACTION_INDEX,
94 };
95 
96 
97 #endif  // CHROME_COMMON_AUTOMATION_CONSTANTS_H__
98