1 // Copyright 2014 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_BROWSER_EXTENSIONS_API_AUTOMATION_INTERNAL_AUTOMATION_INTERNAL_API_H_ 6 #define CHROME_BROWSER_EXTENSIONS_API_AUTOMATION_INTERNAL_AUTOMATION_INTERNAL_API_H_ 7 8 #include "chrome/browser/extensions/chrome_extension_function.h" 9 #include "content/public/browser/web_contents_observer.h" 10 #include "content/public/browser/web_contents_user_data.h" 11 12 namespace content { 13 struct AXEventNotificationDetails; 14 } // namespace content 15 16 namespace extensions { 17 class AutomationActionAdapter; 18 19 namespace api { 20 namespace automation_internal { 21 namespace PerformAction { 22 struct Params; 23 } // namespace PerformAction 24 } // namespace automation_internal 25 } // namespace api 26 } // namespace extensions 27 28 namespace ui { 29 struct AXNodeData; 30 } 31 32 namespace extensions { 33 34 // Implementation of the chrome.automation API. 35 class AutomationInternalEnableTabFunction 36 : public ChromeUIThreadExtensionFunction { 37 DECLARE_EXTENSION_FUNCTION("automationInternal.enableTab", 38 AUTOMATIONINTERNAL_ENABLETAB) 39 protected: 40 virtual ~AutomationInternalEnableTabFunction() {} 41 42 virtual ExtensionFunction::ResponseAction Run() OVERRIDE; 43 }; 44 45 class AutomationInternalPerformActionFunction 46 : public UIThreadExtensionFunction { 47 DECLARE_EXTENSION_FUNCTION("automationInternal.performAction", 48 AUTOMATIONINTERNAL_PERFORMACTION) 49 protected: 50 virtual ~AutomationInternalPerformActionFunction() {} 51 52 virtual ExtensionFunction::ResponseAction Run() OVERRIDE; 53 54 private: 55 // Helper function to route an action to an action adapter. 56 ExtensionFunction::ResponseAction RouteActionToAdapter( 57 api::automation_internal::PerformAction::Params* params, 58 AutomationActionAdapter* adapter); 59 }; 60 61 class AutomationInternalEnableDesktopFunction 62 : public UIThreadExtensionFunction { 63 DECLARE_EXTENSION_FUNCTION("automationInternal.enableDesktop", 64 AUTOMATIONINTERNAL_ENABLEDESKTOP) 65 protected: 66 virtual ~AutomationInternalEnableDesktopFunction() {} 67 68 virtual ResponseAction Run() OVERRIDE; 69 }; 70 71 } // namespace extensions 72 73 #endif // CHROME_BROWSER_EXTENSIONS_API_AUTOMATION_INTERNAL_AUTOMATION_INTERNAL_API_H_ 74