| Index: chrome/browser/automation/automation_provider.cc
|
| ===================================================================
|
| --- chrome/browser/automation/automation_provider.cc (revision 132618)
|
| +++ chrome/browser/automation/automation_provider.cc (working copy)
|
| @@ -28,7 +28,6 @@
|
| #include "chrome/app/chrome_command_ids.h"
|
| #include "chrome/browser/autocomplete/autocomplete_edit.h"
|
| #include "chrome/browser/automation/automation_browser_tracker.h"
|
| -#include "chrome/browser/automation/automation_extension_tracker.h"
|
| #include "chrome/browser/automation/automation_provider_list.h"
|
| #include "chrome/browser/automation/automation_provider_observers.h"
|
| #include "chrome/browser/automation/automation_resource_message_filter.h"
|
| @@ -40,17 +39,6 @@
|
| #include "chrome/browser/browsing_data_remover.h"
|
| #include "chrome/browser/character_encoding.h"
|
| #include "chrome/browser/content_settings/host_content_settings_map.h"
|
| -#include "chrome/browser/extensions/crx_installer.h"
|
| -#include "chrome/browser/extensions/extension_browser_event_router.h"
|
| -#include "chrome/browser/extensions/extension_host.h"
|
| -#include "chrome/browser/extensions/extension_install_ui.h"
|
| -#include "chrome/browser/extensions/extension_message_service.h"
|
| -#include "chrome/browser/extensions/extension_service.h"
|
| -#include "chrome/browser/extensions/extension_system.h"
|
| -#include "chrome/browser/extensions/extension_tab_util.h"
|
| -#include "chrome/browser/extensions/extension_toolbar_model.h"
|
| -#include "chrome/browser/extensions/unpacked_installer.h"
|
| -#include "chrome/browser/extensions/user_script_master.h"
|
| #include "chrome/browser/net/url_request_mock_util.h"
|
| #include "chrome/browser/prefs/pref_service.h"
|
| #include "chrome/browser/printing/print_job.h"
|
| @@ -73,7 +61,6 @@
|
| #include "chrome/common/chrome_paths.h"
|
| #include "chrome/common/chrome_switches.h"
|
| #include "chrome/common/chrome_version_info.h"
|
| -#include "chrome/common/extensions/extension.h"
|
| #include "chrome/common/pref_names.h"
|
| #include "chrome/common/render_messages.h"
|
| #include "chrome/common/url_constants.h"
|
| @@ -182,13 +169,10 @@
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
|
|
| browser_tracker_.reset(new AutomationBrowserTracker(this));
|
| - extension_tracker_.reset(new AutomationExtensionTracker(this));
|
| tab_tracker_.reset(new AutomationTabTracker(this));
|
| window_tracker_.reset(new AutomationWindowTracker(this));
|
| new_tab_ui_load_observer_.reset(new NewTabUILoadObserver(this, profile));
|
| metric_event_duration_observer_.reset(new MetricEventDurationObserver());
|
| - extension_test_result_observer_.reset(
|
| - new ExtensionTestResultNotificationObserver(this));
|
|
|
| TRACE_EVENT_END_ETW("AutomationProvider::AutomationProvider", 0, "");
|
| }
|
| @@ -312,11 +296,6 @@
|
| return parent->GetIndexOfController(controller);
|
| }
|
|
|
| -int AutomationProvider::AddExtension(const Extension* extension) {
|
| - DCHECK(extension);
|
| - return extension_tracker_->Add(extension);
|
| -}
|
| -
|
| // TODO(phajdan.jr): move to TestingAutomationProvider.
|
| DictionaryValue* AutomationProvider::GetDictionaryFromDownloadItem(
|
| const DownloadItem* download) {
|
| @@ -354,32 +333,6 @@
|
| return dl_item_value;
|
| }
|
|
|
| -const Extension* AutomationProvider::GetExtension(int extension_handle) {
|
| - return extension_tracker_->GetResource(extension_handle);
|
| -}
|
| -
|
| -const Extension* AutomationProvider::GetEnabledExtension(int extension_handle) {
|
| - const Extension* extension =
|
| - extension_tracker_->GetResource(extension_handle);
|
| - ExtensionService* service = profile_->GetExtensionService();
|
| - if (extension && service &&
|
| - service->GetExtensionById(extension->id(), false))
|
| - return extension;
|
| - return NULL;
|
| -}
|
| -
|
| -const Extension* AutomationProvider::GetDisabledExtension(
|
| - int extension_handle) {
|
| - const Extension* extension =
|
| - extension_tracker_->GetResource(extension_handle);
|
| - ExtensionService* service = profile_->GetExtensionService();
|
| - if (extension && service &&
|
| - service->GetExtensionById(extension->id(), true) &&
|
| - !service->GetExtensionById(extension->id(), false))
|
| - return extension;
|
| - return NULL;
|
| -}
|
| -
|
| void AutomationProvider::OnChannelConnected(int pid) {
|
| is_connected_ = true;
|
|
|
| @@ -424,23 +377,6 @@
|
| IPC_MESSAGE_HANDLER(AutomationMsg_ReloadAsync, ReloadAsync)
|
| IPC_MESSAGE_HANDLER(AutomationMsg_StopAsync, StopAsync)
|
| IPC_MESSAGE_HANDLER(AutomationMsg_SetPageFontSize, OnSetPageFontSize)
|
| - IPC_MESSAGE_HANDLER_DELAY_REPLY(AutomationMsg_WaitForExtensionTestResult,
|
| - WaitForExtensionTestResult)
|
| - IPC_MESSAGE_HANDLER_DELAY_REPLY(AutomationMsg_InstallExtension,
|
| - InstallExtension)
|
| - IPC_MESSAGE_HANDLER(AutomationMsg_UninstallExtension,
|
| - UninstallExtension)
|
| - IPC_MESSAGE_HANDLER_DELAY_REPLY(AutomationMsg_EnableExtension,
|
| - EnableExtension)
|
| - IPC_MESSAGE_HANDLER(AutomationMsg_DisableExtension,
|
| - DisableExtension)
|
| - IPC_MESSAGE_HANDLER_DELAY_REPLY(
|
| - AutomationMsg_ExecuteExtensionActionInActiveTabAsync,
|
| - ExecuteExtensionActionInActiveTabAsync)
|
| - IPC_MESSAGE_HANDLER(AutomationMsg_MoveExtensionBrowserAction,
|
| - MoveExtensionBrowserAction)
|
| - IPC_MESSAGE_HANDLER(AutomationMsg_GetExtensionProperty,
|
| - GetExtensionProperty)
|
| IPC_MESSAGE_HANDLER(AutomationMsg_SaveAsAsync, SaveAsAsync)
|
| IPC_MESSAGE_HANDLER(AutomationMsg_RemoveBrowsingData, RemoveBrowsingData)
|
| IPC_MESSAGE_HANDLER(AutomationMsg_JavaScriptStressTestControl,
|
| @@ -818,194 +754,6 @@
|
| return NULL;
|
| }
|
|
|
| -void AutomationProvider::WaitForExtensionTestResult(
|
| - IPC::Message* reply_message) {
|
| - DCHECK(!reply_message_);
|
| - reply_message_ = reply_message;
|
| - // Call MaybeSendResult, because the result might have come in before
|
| - // we were waiting on it.
|
| - extension_test_result_observer_->MaybeSendResult();
|
| -}
|
| -
|
| -void AutomationProvider::InstallExtension(
|
| - const FilePath& extension_path, bool with_ui,
|
| - IPC::Message* reply_message) {
|
| - ExtensionService* service = profile_->GetExtensionService();
|
| - ExtensionProcessManager* manager = profile_->GetExtensionProcessManager();
|
| - if (service && manager) {
|
| - // The observer will delete itself when done.
|
| - new ExtensionReadyNotificationObserver(
|
| - manager,
|
| - service,
|
| - this,
|
| - AutomationMsg_InstallExtension::ID,
|
| - reply_message);
|
| -
|
| - if (extension_path.MatchesExtension(FILE_PATH_LITERAL(".crx"))) {
|
| - ExtensionInstallUI* client =
|
| - (with_ui ? new ExtensionInstallUI(profile_) : NULL);
|
| - scoped_refptr<CrxInstaller> installer(
|
| - CrxInstaller::Create(service, client));
|
| - if (!with_ui)
|
| - installer->set_allow_silent_install(true);
|
| - installer->set_install_cause(extension_misc::INSTALL_CAUSE_AUTOMATION);
|
| - installer->InstallCrx(extension_path);
|
| - } else {
|
| - scoped_refptr<extensions::UnpackedInstaller> installer(
|
| - extensions::UnpackedInstaller::Create(service));
|
| - installer->set_prompt_for_plugins(with_ui);
|
| - installer->Load(extension_path);
|
| - }
|
| - } else {
|
| - AutomationMsg_InstallExtension::WriteReplyParams(reply_message, 0);
|
| - Send(reply_message);
|
| - }
|
| -}
|
| -
|
| -void AutomationProvider::UninstallExtension(int extension_handle,
|
| - bool* success) {
|
| - *success = false;
|
| - const Extension* extension = GetExtension(extension_handle);
|
| - ExtensionService* service = profile_->GetExtensionService();
|
| - if (extension && service) {
|
| - ExtensionUnloadNotificationObserver observer;
|
| - service->UninstallExtension(extension->id(), false, NULL);
|
| - // The extension unload notification should have been sent synchronously
|
| - // with the uninstall. Just to be safe, check that it was received.
|
| - *success = observer.did_receive_unload_notification();
|
| - }
|
| -}
|
| -
|
| -void AutomationProvider::EnableExtension(int extension_handle,
|
| - IPC::Message* reply_message) {
|
| - const Extension* extension = GetDisabledExtension(extension_handle);
|
| - ExtensionService* service = profile_->GetExtensionService();
|
| - ExtensionProcessManager* manager = profile_->GetExtensionProcessManager();
|
| - // Only enable if this extension is disabled.
|
| - if (extension && service && manager) {
|
| - // The observer will delete itself when done.
|
| - new ExtensionReadyNotificationObserver(
|
| - manager,
|
| - service,
|
| - this,
|
| - AutomationMsg_EnableExtension::ID,
|
| - reply_message);
|
| - service->EnableExtension(extension->id());
|
| - } else {
|
| - AutomationMsg_EnableExtension::WriteReplyParams(reply_message, false);
|
| - Send(reply_message);
|
| - }
|
| -}
|
| -
|
| -void AutomationProvider::DisableExtension(int extension_handle,
|
| - bool* success) {
|
| - *success = false;
|
| - const Extension* extension = GetEnabledExtension(extension_handle);
|
| - ExtensionService* service = profile_->GetExtensionService();
|
| - if (extension && service) {
|
| - ExtensionUnloadNotificationObserver observer;
|
| - service->DisableExtension(extension->id(), Extension::DISABLE_USER_ACTION);
|
| - // The extension unload notification should have been sent synchronously
|
| - // with the disable. Just to be safe, check that it was received.
|
| - *success = observer.did_receive_unload_notification();
|
| - }
|
| -}
|
| -
|
| -void AutomationProvider::ExecuteExtensionActionInActiveTabAsync(
|
| - int extension_handle, int browser_handle,
|
| - IPC::Message* reply_message) {
|
| - bool success = false;
|
| - const Extension* extension = GetEnabledExtension(extension_handle);
|
| - ExtensionService* service = profile_->GetExtensionService();
|
| - ExtensionMessageService* message_service =
|
| - ExtensionSystem::Get(profile_)->message_service();
|
| - Browser* browser = browser_tracker_->GetResource(browser_handle);
|
| - if (extension && service && message_service && browser) {
|
| - int tab_id = ExtensionTabUtil::GetTabId(browser->GetSelectedWebContents());
|
| - if (extension->page_action()) {
|
| - service->browser_event_router()->PageActionExecuted(
|
| - browser->profile(), extension->id(), "action", tab_id, "", 1);
|
| - success = true;
|
| - } else if (extension->browser_action()) {
|
| - service->browser_event_router()->BrowserActionExecuted(
|
| - browser->profile(), extension->id(), browser);
|
| - success = true;
|
| - }
|
| - }
|
| - AutomationMsg_ExecuteExtensionActionInActiveTabAsync::WriteReplyParams(
|
| - reply_message, success);
|
| - Send(reply_message);
|
| -}
|
| -
|
| -void AutomationProvider::MoveExtensionBrowserAction(
|
| - int extension_handle, int index, bool* success) {
|
| - *success = false;
|
| - const Extension* extension = GetEnabledExtension(extension_handle);
|
| - ExtensionService* service = profile_->GetExtensionService();
|
| - if (extension && service) {
|
| - ExtensionToolbarModel* toolbar = service->toolbar_model();
|
| - if (toolbar) {
|
| - if (index >= 0 && index < static_cast<int>(toolbar->size())) {
|
| - toolbar->MoveBrowserAction(extension, index);
|
| - *success = true;
|
| - } else {
|
| - DLOG(WARNING) << "Attempted to move browser action to invalid index.";
|
| - }
|
| - }
|
| - }
|
| -}
|
| -
|
| -void AutomationProvider::GetExtensionProperty(
|
| - int extension_handle,
|
| - AutomationMsg_ExtensionProperty type,
|
| - bool* success,
|
| - std::string* value) {
|
| - *success = false;
|
| - const Extension* extension = GetExtension(extension_handle);
|
| - ExtensionService* service = profile_->GetExtensionService();
|
| - if (extension && service) {
|
| - ExtensionToolbarModel* toolbar = service->toolbar_model();
|
| - int found_index = -1;
|
| - int index = 0;
|
| - switch (type) {
|
| - case AUTOMATION_MSG_EXTENSION_ID:
|
| - *value = extension->id();
|
| - *success = true;
|
| - break;
|
| - case AUTOMATION_MSG_EXTENSION_NAME:
|
| - *value = extension->name();
|
| - *success = true;
|
| - break;
|
| - case AUTOMATION_MSG_EXTENSION_VERSION:
|
| - *value = extension->VersionString();
|
| - *success = true;
|
| - break;
|
| - case AUTOMATION_MSG_EXTENSION_BROWSER_ACTION_INDEX:
|
| - if (toolbar) {
|
| - for (ExtensionList::const_iterator iter = toolbar->begin();
|
| - iter != toolbar->end(); iter++) {
|
| - // Skip this extension if we are in incognito mode
|
| - // and it is not incognito-enabled.
|
| - if (profile_->IsOffTheRecord() &&
|
| - !service->IsIncognitoEnabled((*iter)->id()))
|
| - continue;
|
| - if (*iter == extension) {
|
| - found_index = index;
|
| - break;
|
| - }
|
| - index++;
|
| - }
|
| - *value = base::IntToString(found_index);
|
| - *success = true;
|
| - }
|
| - break;
|
| - default:
|
| - LOG(WARNING) << "Trying to get undefined extension property";
|
| - break;
|
| - }
|
| - }
|
| -}
|
| -
|
| void AutomationProvider::SaveAsAsync(int tab_handle) {
|
| NavigationController* tab = NULL;
|
| WebContents* web_contents = GetWebContentsForHandle(tab_handle, &tab);
|
|
|