• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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:
~AutomationInternalEnableTabFunction()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:
~AutomationInternalPerformActionFunction()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:
~AutomationInternalEnableDesktopFunction()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