Home | History | Annotate | Download | only in automation_internal
      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