Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(138)

Side by Side Diff: chrome/browser/automation/testing_automation_provider.cc

Issue 8890026: Allow chromedriver to set local state preferences. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: ... Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/automation/testing_automation_provider.h" 5 #include "chrome/browser/automation/testing_automation_provider.h"
6 6
7 #include <map> 7 #include <map>
8 #include <set> 8 #include <set>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
(...skipping 2233 matching lines...) Expand 10 before | Expand all | Expand 10 after
2244 handler_map["WaitForAllTabsToStopLoading"] = 2244 handler_map["WaitForAllTabsToStopLoading"] =
2245 &TestingAutomationProvider::WaitForAllViewsToStopLoading; 2245 &TestingAutomationProvider::WaitForAllViewsToStopLoading;
2246 handler_map["GetIndicesFromTab"] = 2246 handler_map["GetIndicesFromTab"] =
2247 &TestingAutomationProvider::GetIndicesFromTab; 2247 &TestingAutomationProvider::GetIndicesFromTab;
2248 handler_map["NavigateToURL"] = 2248 handler_map["NavigateToURL"] =
2249 &TestingAutomationProvider::NavigateToURL; 2249 &TestingAutomationProvider::NavigateToURL;
2250 handler_map["GetLocalStatePrefsInfo"] = 2250 handler_map["GetLocalStatePrefsInfo"] =
2251 &TestingAutomationProvider::GetLocalStatePrefsInfo; 2251 &TestingAutomationProvider::GetLocalStatePrefsInfo;
2252 handler_map["SetLocalStatePrefs"] = 2252 handler_map["SetLocalStatePrefs"] =
2253 &TestingAutomationProvider::SetLocalStatePrefs; 2253 &TestingAutomationProvider::SetLocalStatePrefs;
2254 handler_map["GetPrefsInfo"] = &TestingAutomationProvider::GetPrefsInfo;
2255 handler_map["SetPrefs"] = &TestingAutomationProvider::SetPrefs;
2254 handler_map["ExecuteJavascript"] = 2256 handler_map["ExecuteJavascript"] =
2255 &TestingAutomationProvider::ExecuteJavascriptJSON; 2257 &TestingAutomationProvider::ExecuteJavascriptJSON;
2256 handler_map["ExecuteJavascriptInRenderView"] = 2258 handler_map["ExecuteJavascriptInRenderView"] =
2257 &TestingAutomationProvider::ExecuteJavascriptInRenderView; 2259 &TestingAutomationProvider::ExecuteJavascriptInRenderView;
2258 handler_map["GoForward"] = 2260 handler_map["GoForward"] =
2259 &TestingAutomationProvider::GoForward; 2261 &TestingAutomationProvider::GoForward;
2260 handler_map["GoBack"] = 2262 handler_map["GoBack"] =
2261 &TestingAutomationProvider::GoBack; 2263 &TestingAutomationProvider::GoBack;
2262 handler_map["Reload"] = 2264 handler_map["Reload"] =
2263 &TestingAutomationProvider::ReloadJSON; 2265 &TestingAutomationProvider::ReloadJSON;
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
2430 2432
2431 browser_handler_map["LoadSearchEngineInfo"] = 2433 browser_handler_map["LoadSearchEngineInfo"] =
2432 &TestingAutomationProvider::LoadSearchEngineInfo; 2434 &TestingAutomationProvider::LoadSearchEngineInfo;
2433 browser_handler_map["GetSearchEngineInfo"] = 2435 browser_handler_map["GetSearchEngineInfo"] =
2434 &TestingAutomationProvider::GetSearchEngineInfo; 2436 &TestingAutomationProvider::GetSearchEngineInfo;
2435 browser_handler_map["AddOrEditSearchEngine"] = 2437 browser_handler_map["AddOrEditSearchEngine"] =
2436 &TestingAutomationProvider::AddOrEditSearchEngine; 2438 &TestingAutomationProvider::AddOrEditSearchEngine;
2437 browser_handler_map["PerformActionOnSearchEngine"] = 2439 browser_handler_map["PerformActionOnSearchEngine"] =
2438 &TestingAutomationProvider::PerformActionOnSearchEngine; 2440 &TestingAutomationProvider::PerformActionOnSearchEngine;
2439 2441
2440 browser_handler_map["GetPrefsInfo"] =
2441 &TestingAutomationProvider::GetPrefsInfo;
2442 browser_handler_map["SetPrefs"] = &TestingAutomationProvider::SetPrefs;
2443
2444 browser_handler_map["SetWindowDimensions"] = 2442 browser_handler_map["SetWindowDimensions"] =
2445 &TestingAutomationProvider::SetWindowDimensions; 2443 &TestingAutomationProvider::SetWindowDimensions;
2446 2444
2447 browser_handler_map["GetDownloadsInfo"] = 2445 browser_handler_map["GetDownloadsInfo"] =
2448 &TestingAutomationProvider::GetDownloadsInfo; 2446 &TestingAutomationProvider::GetDownloadsInfo;
2449 browser_handler_map["WaitForAllDownloadsToComplete"] = 2447 browser_handler_map["WaitForAllDownloadsToComplete"] =
2450 &TestingAutomationProvider::WaitForAllDownloadsToComplete; 2448 &TestingAutomationProvider::WaitForAllDownloadsToComplete;
2451 browser_handler_map["PerformActionOnDownload"] = 2449 browser_handler_map["PerformActionOnDownload"] =
2452 &TestingAutomationProvider::PerformActionOnDownload; 2450 &TestingAutomationProvider::PerformActionOnDownload;
2453 2451
(...skipping 920 matching lines...) Expand 10 before | Expand all | Expand 10 after
3374 pref_service->Set(path.c_str(), *val); 3372 pref_service->Set(path.c_str(), *val);
3375 } 3373 }
3376 } else { 3374 } else {
3377 reply.SendError("no pref path or value given."); 3375 reply.SendError("no pref path or value given.");
3378 return; 3376 return;
3379 } 3377 }
3380 3378
3381 reply.SendSuccess(NULL); 3379 reply.SendSuccess(NULL);
3382 } 3380 }
3383 3381
3384 // Sample json input: { "command": "GetPrefsInfo" } 3382 // Sample json input: { "command": "GetPrefsInfo", "windex": 0 }
3385 // Refer chrome/test/pyautolib/prefs_info.py for sample json output. 3383 // Refer chrome/test/pyautolib/prefs_info.py for sample json output.
3386 void TestingAutomationProvider::GetPrefsInfo(Browser* browser, 3384 void TestingAutomationProvider::GetPrefsInfo(DictionaryValue* args,
3387 DictionaryValue* args,
3388 IPC::Message* reply_message) { 3385 IPC::Message* reply_message) {
3386 AutomationJSONReply reply(this, reply_message);
3387 Browser* browser;
3388 std::string error_msg;
3389 if (!GetBrowserFromJSONArgs(args, &browser, &error_msg)) {
3390 reply.SendError(error_msg);
3391 return;
3392 }
3389 DictionaryValue* items = browser->profile()->GetPrefs()-> 3393 DictionaryValue* items = browser->profile()->GetPrefs()->
3390 GetPreferenceValues(); 3394 GetPreferenceValues();
3391 3395
3392 scoped_ptr<DictionaryValue> return_value(new DictionaryValue); 3396 scoped_ptr<DictionaryValue> return_value(new DictionaryValue);
3393 return_value->Set("prefs", items); // return_value owns items. 3397 return_value->Set("prefs", items); // return_value owns items.
3394 AutomationJSONReply(this, reply_message).SendSuccess(return_value.get()); 3398 reply.SendSuccess(return_value.get());
3395 } 3399 }
3396 3400
3397 // Sample json input: { "command": "SetPrefs", "path": path, "value": value } 3401 // Sample json input:
3398 void TestingAutomationProvider::SetPrefs(Browser* browser, 3402 // { "command": "SetPrefs",
3399 DictionaryValue* args, 3403 // "windex": 0,
3404 // "path": path,
3405 // "value": value }
3406 void TestingAutomationProvider::SetPrefs(DictionaryValue* args,
3400 IPC::Message* reply_message) { 3407 IPC::Message* reply_message) {
3408 AutomationJSONReply reply(this, reply_message);
3409 Browser* browser;
3410 std::string error_msg;
3411 if (!GetBrowserFromJSONArgs(args, &browser, &error_msg)) {
3412 reply.SendError(error_msg);
3413 return;
3414 }
3401 std::string path; 3415 std::string path;
3402 Value* val; 3416 Value* val;
3403 AutomationJSONReply reply(this, reply_message);
3404 if (args->GetString("path", &path) && args->Get("value", &val)) { 3417 if (args->GetString("path", &path) && args->Get("value", &val)) {
3405 PrefService* pref_service = browser->profile()->GetPrefs(); 3418 PrefService* pref_service = browser->profile()->GetPrefs();
3406 const PrefService::Preference* pref = 3419 const PrefService::Preference* pref =
3407 pref_service->FindPreference(path.c_str()); 3420 pref_service->FindPreference(path.c_str());
3408 if (!pref) { // Not a registered pref. 3421 if (!pref) { // Not a registered pref.
3409 reply.SendError("pref not registered."); 3422 reply.SendError("pref not registered.");
3410 return; 3423 return;
3411 } else if (pref->IsManaged()) { // Do not attempt to change a managed pref. 3424 } else if (pref->IsManaged()) { // Do not attempt to change a managed pref.
3412 reply.SendError("pref is managed. cannot be changed."); 3425 reply.SendError("pref is managed. cannot be changed.");
3413 return; 3426 return;
(...skipping 3232 matching lines...) Expand 10 before | Expand all | Expand 10 after
6646 6659
6647 Send(reply_message_); 6660 Send(reply_message_);
6648 redirect_query_ = 0; 6661 redirect_query_ = 0;
6649 reply_message_ = NULL; 6662 reply_message_ = NULL;
6650 } 6663 }
6651 6664
6652 void TestingAutomationProvider::OnRemoveProvider() { 6665 void TestingAutomationProvider::OnRemoveProvider() {
6653 if (g_browser_process) 6666 if (g_browser_process)
6654 g_browser_process->GetAutomationProviderList()->RemoveProvider(this); 6667 g_browser_process->GetAutomationProviderList()->RemoveProvider(this);
6655 } 6668 }
OLDNEW
« no previous file with comments | « chrome/browser/automation/testing_automation_provider.h ('k') | chrome/test/automation/automation_json_requests.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698