| Index: chrome/browser/automation/testing_automation_provider.cc
|
| ===================================================================
|
| --- chrome/browser/automation/testing_automation_provider.cc (revision 61074)
|
| +++ chrome/browser/automation/testing_automation_provider.cc (working copy)
|
| @@ -37,6 +37,7 @@
|
| #include "chrome/browser/extensions/extension_host.h"
|
| #include "chrome/browser/extensions/extensions_service.h"
|
| #include "chrome/browser/find_bar.h"
|
| +#include "chrome/browser/history/top_sites.h"
|
| #include "chrome/browser/location_bar.h"
|
| #include "chrome/browser/login_prompt.h"
|
| #include "chrome/browser/native_app_modal_dialog.h"
|
| @@ -2108,6 +2109,17 @@
|
| handler_map["FillAutoFillProfile"] =
|
| &TestingAutomationProvider::FillAutoFillProfile;
|
|
|
| + handler_map["GetNTPInfo"] =
|
| + &TestingAutomationProvider::GetNTPInfo;
|
| + handler_map["MoveNTPMostVisitedThumbnail"] =
|
| + &TestingAutomationProvider::MoveNTPMostVisitedThumbnail;
|
| + handler_map["RemoveNTPMostVisitedThumbnail"] =
|
| + &TestingAutomationProvider::RemoveNTPMostVisitedThumbnail;
|
| + handler_map["UnpinNTPMostVisitedThumbnail"] =
|
| + &TestingAutomationProvider::UnpinNTPMostVisitedThumbnail;
|
| + handler_map["RestoreAllNTPMostVisitedThumbnails"] =
|
| + &TestingAutomationProvider::RestoreAllNTPMostVisitedThumbnails;
|
| +
|
| if (handler_map.find(std::string(command)) != handler_map.end()) {
|
| (this->*handler_map[command])(browser, dict_value, reply_message);
|
| } else {
|
| @@ -3764,6 +3776,102 @@
|
| return credit_card_type_to_string;
|
| }
|
|
|
| +// Sample JSON input: { "command": "GetNTPInfo" }
|
| +// For output, refer to chrome/test/pyautolib/ntp_model.py.
|
| +void TestingAutomationProvider::GetNTPInfo(
|
| + Browser* browser,
|
| + DictionaryValue* args,
|
| + IPC::Message* reply_message) {
|
| + // This observer will delete itself.
|
| + new NTPInfoObserver(this, reply_message, &consumer_);
|
| +}
|
| +
|
| +void TestingAutomationProvider::MoveNTPMostVisitedThumbnail(
|
| + Browser* browser,
|
| + DictionaryValue* args,
|
| + IPC::Message* reply_message) {
|
| + AutomationJSONReply reply(this, reply_message);
|
| + std::string url, error;
|
| + int index, old_index;
|
| + if (!args->GetString("url", &url)) {
|
| + reply.SendError("No 'url' key.");
|
| + return;
|
| + }
|
| + if (!args->GetInteger("index", &index)) {
|
| + reply.SendError("No 'index' key.");
|
| + return;
|
| + }
|
| + if (!args->GetInteger("old_index", &old_index)) {
|
| + reply.SendError("No 'old_index' key");
|
| + return;
|
| + }
|
| + history::TopSites* top_sites = browser->profile()->GetTopSites();
|
| + if (!top_sites) {
|
| + reply.SendError("No TopSites.");
|
| + return;
|
| + }
|
| + GURL swapped;
|
| + // If thumbnail A is switching positions with a pinned thumbnail B, B
|
| + // should be pinned in the old index of A.
|
| + if (top_sites->GetPinnedURLAtIndex(index, &swapped)) {
|
| + top_sites->AddPinnedURL(swapped, old_index);
|
| + }
|
| + top_sites->AddPinnedURL(GURL(url), index);
|
| + reply.SendSuccess(NULL);
|
| +}
|
| +
|
| +void TestingAutomationProvider::RemoveNTPMostVisitedThumbnail(
|
| + Browser* browser,
|
| + DictionaryValue* args,
|
| + IPC::Message* reply_message) {
|
| + AutomationJSONReply reply(this, reply_message);
|
| + std::string url;
|
| + if (!args->GetString("url", &url)) {
|
| + reply.SendError("No 'url' key.");
|
| + return;
|
| + }
|
| + history::TopSites* top_sites = browser->profile()->GetTopSites();
|
| + if (!top_sites) {
|
| + reply.SendError("No TopSites.");
|
| + return;
|
| + }
|
| + top_sites->AddBlacklistedURL(GURL(url));
|
| + reply.SendSuccess(NULL);
|
| +}
|
| +
|
| +void TestingAutomationProvider::UnpinNTPMostVisitedThumbnail(
|
| + Browser* browser,
|
| + DictionaryValue* args,
|
| + IPC::Message* reply_message) {
|
| + AutomationJSONReply reply(this, reply_message);
|
| + std::string url;
|
| + if (!args->GetString("url", &url)) {
|
| + reply.SendError("No 'url' key.");
|
| + return;
|
| + }
|
| + history::TopSites* top_sites = browser->profile()->GetTopSites();
|
| + if (!top_sites) {
|
| + reply.SendError("No TopSites.");
|
| + return;
|
| + }
|
| + top_sites->RemovePinnedURL(GURL(url));
|
| + reply.SendSuccess(NULL);
|
| +}
|
| +
|
| +void TestingAutomationProvider::RestoreAllNTPMostVisitedThumbnails(
|
| + Browser* browser,
|
| + DictionaryValue* args,
|
| + IPC::Message* reply_message) {
|
| + AutomationJSONReply reply(this, reply_message);
|
| + history::TopSites* top_sites = browser->profile()->GetTopSites();
|
| + if (!top_sites) {
|
| + reply.SendError("No TopSites.");
|
| + return;
|
| + }
|
| + top_sites->ClearBlacklistedURLs();
|
| + reply.SendSuccess(NULL);
|
| +}
|
| +
|
| void TestingAutomationProvider::WaitForTabCountToBecome(
|
| int browser_handle,
|
| int target_tab_count,
|
|
|