| Index: chrome/browser/extensions/api/tabs/tabs_api.h
|
| diff --git a/chrome/browser/extensions/api/tabs/tabs.h b/chrome/browser/extensions/api/tabs/tabs_api.h
|
| similarity index 50%
|
| rename from chrome/browser/extensions/api/tabs/tabs.h
|
| rename to chrome/browser/extensions/api/tabs/tabs_api.h
|
| index 5011c3f18b02368872cf493f3ca23b8cca8bf709..db362ccd70ffe5d5a207281a3515c8657c061a34 100644
|
| --- a/chrome/browser/extensions/api/tabs/tabs.h
|
| +++ b/chrome/browser/extensions/api/tabs/tabs_api.h
|
| @@ -2,14 +2,16 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -#ifndef CHROME_BROWSER_EXTENSIONS_API_TABS_TABS_H__
|
| -#define CHROME_BROWSER_EXTENSIONS_API_TABS_TABS_H__
|
| +#ifndef CHROME_BROWSER_EXTENSIONS_API_TABS_TABS_API_H_
|
| +#define CHROME_BROWSER_EXTENSIONS_API_TABS_TABS_API_H_
|
|
|
| #include <string>
|
| #include <vector>
|
|
|
| #include "base/compiler_specific.h"
|
| #include "chrome/browser/extensions/extension_function.h"
|
| +#include "chrome/common/extensions/extension_resource.h"
|
| +#include "chrome/common/extensions/user_script.h"
|
| #include "content/public/browser/notification_observer.h"
|
| #include "content/public/browser/notification_registrar.h"
|
| #include "googleurl/src/gurl.h"
|
| @@ -27,33 +29,41 @@ namespace content {
|
| class WebContents;
|
| }
|
|
|
| +namespace extensions {
|
| +namespace api {
|
| +namespace tabs {
|
| +struct InjectDetails;
|
| +} // namespace tabs
|
| +} // namespace api
|
| +} // namespace extensions
|
| +
|
| namespace skia {
|
| class PlatformBitmap;
|
| }
|
|
|
| // Windows
|
| -class GetWindowFunction : public SyncExtensionFunction {
|
| - virtual ~GetWindowFunction() {}
|
| +class WindowsGetFunction : public SyncExtensionFunction {
|
| + virtual ~WindowsGetFunction() {}
|
| virtual bool RunImpl() OVERRIDE;
|
| DECLARE_EXTENSION_FUNCTION_NAME("windows.get")
|
| };
|
| -class GetCurrentWindowFunction : public SyncExtensionFunction {
|
| - virtual ~GetCurrentWindowFunction() {}
|
| +class WindowsGetCurrentFunction : public SyncExtensionFunction {
|
| + virtual ~WindowsGetCurrentFunction() {}
|
| virtual bool RunImpl() OVERRIDE;
|
| DECLARE_EXTENSION_FUNCTION_NAME("windows.getCurrent")
|
| };
|
| -class GetLastFocusedWindowFunction : public SyncExtensionFunction {
|
| - virtual ~GetLastFocusedWindowFunction() {}
|
| +class WindowsGetLastFocusedFunction : public SyncExtensionFunction {
|
| + virtual ~WindowsGetLastFocusedFunction() {}
|
| virtual bool RunImpl() OVERRIDE;
|
| DECLARE_EXTENSION_FUNCTION_NAME("windows.getLastFocused")
|
| };
|
| -class GetAllWindowsFunction : public SyncExtensionFunction {
|
| - virtual ~GetAllWindowsFunction() {}
|
| +class WindowsGetAllFunction : public SyncExtensionFunction {
|
| + virtual ~WindowsGetAllFunction() {}
|
| virtual bool RunImpl() OVERRIDE;
|
| DECLARE_EXTENSION_FUNCTION_NAME("windows.getAll")
|
| };
|
| -class CreateWindowFunction : public SyncExtensionFunction {
|
| - virtual ~CreateWindowFunction() {}
|
| +class WindowsCreateFunction : public SyncExtensionFunction {
|
| + virtual ~WindowsCreateFunction() {}
|
| virtual bool RunImpl() OVERRIDE;
|
| // Returns whether the window should be created in incognito mode.
|
| // |urls| is the list of urls to open. If we are creating an incognito window,
|
| @@ -66,64 +76,64 @@ class CreateWindowFunction : public SyncExtensionFunction {
|
| bool* is_error);
|
| DECLARE_EXTENSION_FUNCTION_NAME("windows.create")
|
| };
|
| -class UpdateWindowFunction : public SyncExtensionFunction {
|
| - virtual ~UpdateWindowFunction() {}
|
| +class WindowsUpdateFunction : public SyncExtensionFunction {
|
| + virtual ~WindowsUpdateFunction() {}
|
| virtual bool RunImpl() OVERRIDE;
|
| DECLARE_EXTENSION_FUNCTION_NAME("windows.update")
|
| };
|
| -class RemoveWindowFunction : public SyncExtensionFunction {
|
| - virtual ~RemoveWindowFunction() {}
|
| +class WindowsRemoveFunction : public SyncExtensionFunction {
|
| + virtual ~WindowsRemoveFunction() {}
|
| virtual bool RunImpl() OVERRIDE;
|
| DECLARE_EXTENSION_FUNCTION_NAME("windows.remove")
|
| };
|
|
|
| // Tabs
|
| -class GetTabFunction : public SyncExtensionFunction {
|
| - virtual ~GetTabFunction() {}
|
| +class TabsGetFunction : public SyncExtensionFunction {
|
| + virtual ~TabsGetFunction() {}
|
| virtual bool RunImpl() OVERRIDE;
|
| DECLARE_EXTENSION_FUNCTION_NAME("tabs.get")
|
| };
|
| -class GetCurrentTabFunction : public SyncExtensionFunction {
|
| - virtual ~GetCurrentTabFunction() {}
|
| +class TabsGetCurrentFunction : public SyncExtensionFunction {
|
| + virtual ~TabsGetCurrentFunction() {}
|
| virtual bool RunImpl() OVERRIDE;
|
| DECLARE_EXTENSION_FUNCTION_NAME("tabs.getCurrent")
|
| };
|
| -class GetSelectedTabFunction : public SyncExtensionFunction {
|
| - virtual ~GetSelectedTabFunction() {}
|
| +class TabsGetSelectedFunction : public SyncExtensionFunction {
|
| + virtual ~TabsGetSelectedFunction() {}
|
| virtual bool RunImpl() OVERRIDE;
|
| DECLARE_EXTENSION_FUNCTION_NAME("tabs.getSelected")
|
| };
|
| -class GetAllTabsInWindowFunction : public SyncExtensionFunction {
|
| - virtual ~GetAllTabsInWindowFunction() {}
|
| +class TabsGetAllInWindowFunction : public SyncExtensionFunction {
|
| + virtual ~TabsGetAllInWindowFunction() {}
|
| virtual bool RunImpl() OVERRIDE;
|
| DECLARE_EXTENSION_FUNCTION_NAME("tabs.getAllInWindow")
|
| };
|
| -class QueryTabsFunction : public SyncExtensionFunction {
|
| - virtual ~QueryTabsFunction() {}
|
| +class TabsQueryFunction : public SyncExtensionFunction {
|
| + virtual ~TabsQueryFunction() {}
|
| virtual bool RunImpl() OVERRIDE;
|
| DECLARE_EXTENSION_FUNCTION_NAME("tabs.query")
|
| };
|
| -class CreateTabFunction : public SyncExtensionFunction {
|
| - virtual ~CreateTabFunction() {}
|
| +class TabsCreateFunction : public SyncExtensionFunction {
|
| + virtual ~TabsCreateFunction() {}
|
| virtual bool RunImpl() OVERRIDE;
|
| DECLARE_EXTENSION_FUNCTION_NAME("tabs.create")
|
| };
|
| -class DuplicateTabFunction : public SyncExtensionFunction {
|
| - virtual ~DuplicateTabFunction() {}
|
| +class TabsDuplicateFunction : public SyncExtensionFunction {
|
| + virtual ~TabsDuplicateFunction() {}
|
| virtual bool RunImpl() OVERRIDE;
|
| DECLARE_EXTENSION_FUNCTION_NAME("tabs.duplicate")
|
| };
|
| -class HighlightTabsFunction : public SyncExtensionFunction {
|
| - virtual ~HighlightTabsFunction() {}
|
| +class TabsHighlightFunction : public SyncExtensionFunction {
|
| + virtual ~TabsHighlightFunction() {}
|
| virtual bool RunImpl() OVERRIDE;
|
| DECLARE_EXTENSION_FUNCTION_NAME("tabs.highlight")
|
| };
|
| -class UpdateTabFunction : public AsyncExtensionFunction {
|
| +class TabsUpdateFunction : public AsyncExtensionFunction {
|
| public:
|
| - UpdateTabFunction();
|
| + TabsUpdateFunction();
|
|
|
| protected:
|
| - virtual ~UpdateTabFunction() {}
|
| + virtual ~TabsUpdateFunction() {}
|
| virtual bool UpdateURLIfPresent(base::DictionaryValue* update_props,
|
| int tab_id,
|
| bool* is_async);
|
| @@ -140,25 +150,25 @@ class UpdateTabFunction : public AsyncExtensionFunction {
|
|
|
| DECLARE_EXTENSION_FUNCTION_NAME("tabs.update")
|
| };
|
| -class MoveTabsFunction : public SyncExtensionFunction {
|
| - virtual ~MoveTabsFunction() {}
|
| +class TabsMoveFunction : public SyncExtensionFunction {
|
| + virtual ~TabsMoveFunction() {}
|
| virtual bool RunImpl() OVERRIDE;
|
| DECLARE_EXTENSION_FUNCTION_NAME("tabs.move")
|
| };
|
| -class ReloadTabFunction : public SyncExtensionFunction {
|
| - virtual ~ReloadTabFunction() {}
|
| +class TabsReloadFunction : public SyncExtensionFunction {
|
| + virtual ~TabsReloadFunction() {}
|
| virtual bool RunImpl() OVERRIDE;
|
| DECLARE_EXTENSION_FUNCTION_NAME("tabs.reload")
|
| };
|
| -class RemoveTabsFunction : public SyncExtensionFunction {
|
| - virtual ~RemoveTabsFunction() {}
|
| +class TabsRemoveFunction : public SyncExtensionFunction {
|
| + virtual ~TabsRemoveFunction() {}
|
| virtual bool RunImpl() OVERRIDE;
|
| DECLARE_EXTENSION_FUNCTION_NAME("tabs.remove")
|
| };
|
| -class DetectTabLanguageFunction : public AsyncExtensionFunction,
|
| +class TabsDetectLanguageFunction : public AsyncExtensionFunction,
|
| public content::NotificationObserver {
|
| private:
|
| - virtual ~DetectTabLanguageFunction() {}
|
| + virtual ~TabsDetectLanguageFunction() {}
|
| virtual bool RunImpl() OVERRIDE;
|
|
|
| virtual void Observe(int type,
|
| @@ -168,7 +178,7 @@ class DetectTabLanguageFunction : public AsyncExtensionFunction,
|
| content::NotificationRegistrar registrar_;
|
| DECLARE_EXTENSION_FUNCTION_NAME("tabs.detectLanguage")
|
| };
|
| -class CaptureVisibleTabFunction : public AsyncExtensionFunction,
|
| +class TabsCaptureVisibleTabFunction : public AsyncExtensionFunction,
|
| public content::NotificationObserver {
|
| public:
|
| static void RegisterUserPrefs(PrefServiceSyncable* service);
|
| @@ -182,7 +192,7 @@ class CaptureVisibleTabFunction : public AsyncExtensionFunction,
|
| // The default quality setting used when encoding jpegs.
|
| static const int kDefaultQuality;
|
|
|
| - virtual ~CaptureVisibleTabFunction() {}
|
| + virtual ~TabsCaptureVisibleTabFunction() {}
|
| virtual bool RunImpl() OVERRIDE;
|
| virtual bool GetTabToCapture(content::WebContents** web_contents);
|
| virtual void Observe(int type,
|
| @@ -205,4 +215,76 @@ class CaptureVisibleTabFunction : public AsyncExtensionFunction,
|
| DECLARE_EXTENSION_FUNCTION_NAME("tabs.captureVisibleTab")
|
| };
|
|
|
| -#endif // CHROME_BROWSER_EXTENSIONS_API_TABS_TABS_H__
|
| +// Implement API call tabs.executeScript and tabs.insertCSS.
|
| +class ExecuteCodeInTabFunction : public AsyncExtensionFunction {
|
| + public:
|
| + ExecuteCodeInTabFunction();
|
| +
|
| + protected:
|
| + virtual ~ExecuteCodeInTabFunction();
|
| +
|
| + // ExtensionFunction:
|
| + virtual bool HasPermission() OVERRIDE;
|
| + virtual bool RunImpl() OVERRIDE;
|
| +
|
| + // Message handler.
|
| + virtual void OnExecuteCodeFinished(const std::string& error,
|
| + int32 on_page_id,
|
| + const GURL& on_url,
|
| + const ListValue& script_result);
|
| +
|
| + private:
|
| + // Initialize the |execute_tab_id_| and |details_| if they haven't already
|
| + // been. Returns whether initialization was successful.
|
| + bool Init();
|
| +
|
| + // Called when contents from the file whose path is specified in JSON
|
| + // arguments has been loaded.
|
| + void DidLoadFile(bool success, const std::string& data);
|
| +
|
| + // Runs on FILE thread. Loads message bundles for the extension and
|
| + // localizes the CSS data. Calls back DidLoadAndLocalizeFile on the UI thread.
|
| + void LocalizeCSS(
|
| + const std::string& data,
|
| + const std::string& extension_id,
|
| + const FilePath& extension_path,
|
| + const std::string& extension_default_locale);
|
| +
|
| + // Called when contents from the loaded file have been localized.
|
| + void DidLoadAndLocalizeFile(bool success, const std::string& data);
|
| +
|
| + // Run in UI thread. Code string contains the code to be executed. Returns
|
| + // true on success. If true is returned, this does an AddRef.
|
| + bool Execute(const std::string& code_string);
|
| +
|
| + // Id of tab which executes code.
|
| + int execute_tab_id_;
|
| +
|
| + // The injection details.
|
| + scoped_ptr<extensions::api::tabs::InjectDetails> details_;
|
| +
|
| + // Contains extension resource built from path of file which is
|
| + // specified in JSON arguments.
|
| + ExtensionResource resource_;
|
| +};
|
| +
|
| +class TabsExecuteScriptFunction : public ExecuteCodeInTabFunction {
|
| + private:
|
| + virtual ~TabsExecuteScriptFunction() {}
|
| +
|
| + virtual void OnExecuteCodeFinished(const std::string& error,
|
| + int32 on_page_id,
|
| + const GURL& on_url,
|
| + const ListValue& script_result) OVERRIDE;
|
| +
|
| + DECLARE_EXTENSION_FUNCTION_NAME("tabs.executeScript")
|
| +};
|
| +
|
| +class TabsInsertCSSFunction : public ExecuteCodeInTabFunction {
|
| + private:
|
| + virtual ~TabsInsertCSSFunction() {}
|
| +
|
| + DECLARE_EXTENSION_FUNCTION_NAME("tabs.insertCSS")
|
| +};
|
| +
|
| +#endif // CHROME_BROWSER_EXTENSIONS_API_TABS_TABS_API_H_
|
|
|