| // Copyright (c) 2012 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 CHROME_COMMON_AUTOMATION_CONSTANTS_H__ |
| #define CHROME_COMMON_AUTOMATION_CONSTANTS_H__ |
| #pragma once |
| |
| #include <string> |
| |
| namespace automation { |
| |
| // JSON value labels for proxy settings that are passed in via |
| // AutomationMsg_SetProxyConfig. These are here since they are used by both |
| // AutomationProvider and AutomationProxy. |
| extern const char kJSONProxyAutoconfig[]; |
| extern const char kJSONProxyNoProxy[]; |
| extern const char kJSONProxyPacUrl[]; |
| extern const char kJSONProxyPacMandatory[]; |
| extern const char kJSONProxyBypassList[]; |
| extern const char kJSONProxyServer[]; |
| |
| // When passing the kTestingChannelID switch to the browser, prepend |
| // this prefix to the channel id to enable the named testing interface. |
| // Named testing interface is used when you want to connect an |
| // AutomationProxy to an already-running browser instance. |
| extern const char kNamedInterfacePrefix[]; |
| |
| // Amount of time to wait before querying the browser. |
| static const int kSleepTime = 250; |
| |
| // Recognized by the AutomationProvider's SendWebKeyboardEventToSelectedTab |
| // command. Specifies the type of the keyboard event. |
| enum KeyEventTypes { |
| kRawKeyDownType = 0, |
| kKeyDownType, |
| kCharType, |
| kKeyUpType, |
| }; |
| |
| // Recognized by the AutomationProvider's SendWebKeyboardEventToSelectedTab |
| // command. Specifies masks to be used in constructing keyboard event modifiers. |
| enum KeyModifierMasks { |
| kShiftKeyMask = 1 << 0, |
| kControlKeyMask = 1 << 1, |
| kAltKeyMask = 1 << 2, |
| kMetaKeyMask = 1 << 3, |
| kNumLockKeyMask = 1 << 4, |
| }; |
| |
| // Recognized by the AutomationProvider's ProcessWebMouseEvent command. |
| enum MouseEventType { |
| kMouseDown = 0, |
| kMouseUp, |
| kMouseMove, |
| kMouseEnter, |
| kMouseLeave, |
| kContextMenu, |
| }; |
| |
| enum MouseButton { |
| kLeftButton = 0, |
| kMiddleButton, |
| kRightButton, |
| kNoButton, |
| }; |
| |
| // The current version of ChromeDriver automation supported by Chrome. |
| // This needs to be incremented for each change to ChromeDriver automation that |
| // is not backwards compatible. Some examples of this would be: |
| // - SendJSONRequest or Hello IPC messages change |
| // - The interface for an individual ChromeDriver automation call changes in an |
| // incompatible way |
| // TODO(kkania): Investigate a better backwards compatible automation solution. |
| extern const int kChromeDriverAutomationVersion; |
| |
| // Automation error codes. These provide the client a simple way |
| // to detect certain types of errors it may be interested in handling. |
| // The error code values must stay consistent across compatible versions. |
| enum ErrorCode { |
| // An unknown error occurred. |
| kUnknownError = 0, |
| // Trying to operate on a JavaScript modal dialog when none is open. |
| kNoJavaScriptModalDialogOpen = 1, |
| // An open modal dialog blocked the operation. The operation may have |
| // partially completed. |
| kBlockedByModalDialog = 2, |
| // An ID was supplied that is invalid or does not refer to an existing object. |
| kInvalidId = 3, |
| }; |
| |
| // Represents an automation error. Each error has a code and an error message. |
| class Error { |
| public: |
| // Creates an invalid error. |
| Error(); |
| |
| // Creates an error for the given code. A default message for the given code |
| // will be used as the error message. |
| explicit Error(ErrorCode code); |
| |
| // Creates an error for the given message. The |kUnknownError| type will |
| // be used. |
| explicit Error(const std::string& error_msg); |
| |
| // Creates an error for the given code and message. |
| Error(ErrorCode code, const std::string& error_msg); |
| |
| virtual ~Error(); |
| |
| ErrorCode code() const; |
| const std::string& message() const; |
| |
| private: |
| ErrorCode code_; |
| std::string message_; |
| }; |
| |
| } // namespace automation |
| |
| // Used by AutomationProxy, declared here so that other headers don't need |
| // to include automation_proxy.h. |
| enum AutomationLaunchResult { |
| AUTOMATION_LAUNCH_RESULT_INVALID = -1, |
| AUTOMATION_SUCCESS, |
| AUTOMATION_TIMEOUT, |
| AUTOMATION_VERSION_MISMATCH, |
| AUTOMATION_CREATE_TAB_FAILED, |
| AUTOMATION_SERVER_CRASHED, |
| AUTOMATION_CHANNEL_ERROR, |
| }; |
| |
| enum AutomationMsg_NavigationResponseValues { |
| AUTOMATION_MSG_NAVIGATION_ERROR = 0, |
| AUTOMATION_MSG_NAVIGATION_SUCCESS, |
| AUTOMATION_MSG_NAVIGATION_AUTH_NEEDED, |
| AUTOMATION_MSG_NAVIGATION_BLOCKED_BY_MODAL_DIALOG, |
| }; |
| |
| // Used in the AutomationMsg_GetExtensionProperty to identify which extension |
| // property should be retrieved, instead of having separate messages for each |
| // property. |
| enum AutomationMsg_DEPRECATED_ExtensionProperty { |
| AUTOMATION_MSG_EXTENSION_ID = 0, |
| AUTOMATION_MSG_EXTENSION_NAME, |
| AUTOMATION_MSG_EXTENSION_VERSION, |
| AUTOMATION_MSG_EXTENSION_BROWSER_ACTION_INDEX, |
| }; |
| |
| // Specifies the font size on a page which is requested by an automation |
| // client. |
| enum AutomationPageFontSize { |
| SMALLEST_FONT = 8, |
| SMALL_FONT = 12, |
| MEDIUM_FONT = 16, |
| LARGE_FONT = 24, |
| LARGEST_FONT = 36 |
| }; |
| |
| enum FindInPageDirection { BACK = 0, FWD = 1 }; |
| enum FindInPageCase { IGNORE_CASE = 0, CASE_SENSITIVE = 1 }; |
| |
| #endif // CHROME_COMMON_AUTOMATION_CONSTANTS_H__ |