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

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

Issue 10828245: Final set of conversions of automation calls to the JSON interface. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 8 years, 4 months 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 391 matching lines...) Expand 10 before | Expand all | Expand 10 after
402 IPC_MESSAGE_HANDLER_DELAY_REPLY(AutomationMsg_DomOperation, 402 IPC_MESSAGE_HANDLER_DELAY_REPLY(AutomationMsg_DomOperation,
403 ExecuteJavascript) 403 ExecuteJavascript)
404 IPC_MESSAGE_HANDLER_DELAY_REPLY(AutomationMsg_OpenNewBrowserWindowOfType, 404 IPC_MESSAGE_HANDLER_DELAY_REPLY(AutomationMsg_OpenNewBrowserWindowOfType,
405 OpenNewBrowserWindowOfType) 405 OpenNewBrowserWindowOfType)
406 IPC_MESSAGE_HANDLER(AutomationMsg_WindowForBrowser, GetWindowForBrowser) 406 IPC_MESSAGE_HANDLER(AutomationMsg_WindowForBrowser, GetWindowForBrowser)
407 IPC_MESSAGE_HANDLER(AutomationMsg_GetMetricEventDuration, 407 IPC_MESSAGE_HANDLER(AutomationMsg_GetMetricEventDuration,
408 GetMetricEventDuration) 408 GetMetricEventDuration)
409 IPC_MESSAGE_HANDLER(AutomationMsg_BringBrowserToFront, BringBrowserToFront) 409 IPC_MESSAGE_HANDLER(AutomationMsg_BringBrowserToFront, BringBrowserToFront)
410 IPC_MESSAGE_HANDLER(AutomationMsg_FindWindowVisibility, 410 IPC_MESSAGE_HANDLER(AutomationMsg_FindWindowVisibility,
411 GetFindWindowVisibility) 411 GetFindWindowVisibility)
412 IPC_MESSAGE_HANDLER(AutomationMsg_BookmarkBarVisibility,
413 GetBookmarkBarVisibility)
414 IPC_MESSAGE_HANDLER(AutomationMsg_GetBookmarksAsJSON,
415 GetBookmarksAsJSON)
416 IPC_MESSAGE_HANDLER_DELAY_REPLY(AutomationMsg_WaitForBookmarkModelToLoad, 412 IPC_MESSAGE_HANDLER_DELAY_REPLY(AutomationMsg_WaitForBookmarkModelToLoad,
417 WaitForBookmarkModelToLoad) 413 WaitForBookmarkModelToLoad)
418 IPC_MESSAGE_HANDLER(AutomationMsg_AddBookmarkGroup,
419 AddBookmarkGroup)
420 IPC_MESSAGE_HANDLER(AutomationMsg_AddBookmarkURL,
421 AddBookmarkURL)
422 IPC_MESSAGE_HANDLER(AutomationMsg_ReparentBookmark,
423 ReparentBookmark)
424 IPC_MESSAGE_HANDLER(AutomationMsg_SetBookmarkTitle,
425 SetBookmarkTitle)
426 IPC_MESSAGE_HANDLER(AutomationMsg_SetBookmarkURL,
427 SetBookmarkURL)
428 IPC_MESSAGE_HANDLER(AutomationMsg_RemoveBookmark,
429 RemoveBookmark)
430 IPC_MESSAGE_HANDLER_DELAY_REPLY( 414 IPC_MESSAGE_HANDLER_DELAY_REPLY(
431 AutomationMsg_WaitForBrowserWindowCountToBecome, 415 AutomationMsg_WaitForBrowserWindowCountToBecome,
432 WaitForBrowserWindowCountToBecome) 416 WaitForBrowserWindowCountToBecome)
433 IPC_MESSAGE_HANDLER_DELAY_REPLY( 417 IPC_MESSAGE_HANDLER_DELAY_REPLY(
434 AutomationMsg_GoBackBlockUntilNavigationsComplete, 418 AutomationMsg_GoBackBlockUntilNavigationsComplete,
435 GoBackBlockUntilNavigationsComplete) 419 GoBackBlockUntilNavigationsComplete)
436 IPC_MESSAGE_HANDLER_DELAY_REPLY( 420 IPC_MESSAGE_HANDLER_DELAY_REPLY(
437 AutomationMsg_GoForwardBlockUntilNavigationsComplete, 421 AutomationMsg_GoForwardBlockUntilNavigationsComplete,
438 GoForwardBlockUntilNavigationsComplete) 422 GoForwardBlockUntilNavigationsComplete)
439 IPC_MESSAGE_HANDLER_DELAY_REPLY(AutomationMsg_SendJSONRequest, 423 IPC_MESSAGE_HANDLER_DELAY_REPLY(AutomationMsg_SendJSONRequest,
(...skipping 823 matching lines...) Expand 10 before | Expand all | Expand 10 after
1263 Browser* browser = browser_tracker_->GetResource(handle); 1247 Browser* browser = browser_tracker_->GetResource(handle);
1264 if (browser) { 1248 if (browser) {
1265 FindBarTesting* find_bar = 1249 FindBarTesting* find_bar =
1266 browser->GetFindBarController()->find_bar()->GetFindBarTesting(); 1250 browser->GetFindBarController()->find_bar()->GetFindBarTesting();
1267 find_bar->GetFindBarWindowInfo(NULL, visible); 1251 find_bar->GetFindBarWindowInfo(NULL, visible);
1268 } 1252 }
1269 } 1253 }
1270 1254
1271 // Bookmark bar visibility is based on the pref (e.g. is it in the toolbar). 1255 // Bookmark bar visibility is based on the pref (e.g. is it in the toolbar).
1272 // Presence in the NTP is signalled in |detached|. 1256 // Presence in the NTP is signalled in |detached|.
1273 void TestingAutomationProvider::GetBookmarkBarVisibility(int handle, 1257 void TestingAutomationProvider::GetBookmarkBarStatus(
1274 bool* visible, 1258 DictionaryValue* args,
1275 bool* animating, 1259 IPC::Message* reply_message) {
1276 bool* detached) { 1260 AutomationJSONReply reply(this, reply_message);
1277 *visible = false; 1261 Browser* browser;
1278 *animating = false; 1262 std::string error_msg;
1279 1263 if (!GetBrowserFromJSONArgs(args, &browser, &error_msg)) {
1280 if (browser_tracker_->ContainsHandle(handle)) { 1264 reply.SendError(error_msg);
1281 Browser* browser = browser_tracker_->GetResource(handle); 1265 return;
1282 if (browser) {
1283 // browser->window()->IsBookmarkBarVisible() is not consistent across
1284 // platforms. bookmark_bar_state() also follows prefs::kShowBookmarkBar
1285 // and has a shared implementation on all platforms.
1286 *visible = browser->bookmark_bar_state() == BookmarkBar::SHOW;
1287 *animating = browser->window()->IsBookmarkBarAnimating();
1288 *detached = browser->bookmark_bar_state() == BookmarkBar::DETACHED;
1289 }
1290 } 1266 }
1267 // browser->window()->IsBookmarkBarVisible() is not consistent across
1268 // platforms. bookmark_bar_state() also follows prefs::kShowBookmarkBar
1269 // and has a shared implementation on all platforms.
1270 DictionaryValue dict;
1271 dict.SetBoolean("visible",
1272 browser->bookmark_bar_state() == BookmarkBar::SHOW);
1273 dict.SetBoolean("animating", browser->window()->IsBookmarkBarAnimating());
1274 dict.SetBoolean("detached",
1275 browser->bookmark_bar_state() == BookmarkBar::DETACHED);
1276 reply.SendSuccess(&dict);
1291 } 1277 }
1292 1278
1293 void TestingAutomationProvider::GetBookmarksAsJSON( 1279 void TestingAutomationProvider::GetBookmarksAsJSON(
1294 int handle, 1280 DictionaryValue* args,
1295 std::string* bookmarks_as_json, 1281 IPC::Message* reply_message) {
1296 bool* success) { 1282 AutomationJSONReply reply(this, reply_message);
1297 *success = false; 1283 Browser* browser;
1298 if (browser_tracker_->ContainsHandle(handle)) { 1284 std::string error_msg, bookmarks_as_json;
1299 Browser* browser = browser_tracker_->GetResource(handle); 1285 if (!GetBrowserFromJSONArgs(args, &browser, &error_msg)) {
1300 if (browser) { 1286 reply.SendError(error_msg);
1301 BookmarkModel* bookmark_model = 1287 return;
1302 BookmarkModelFactory::GetForProfile(browser->profile());
1303 if (!bookmark_model->IsLoaded()) {
1304 return;
1305 }
1306 scoped_refptr<BookmarkStorage> storage(new BookmarkStorage(
1307 browser->profile(), bookmark_model));
1308 *success = storage->SerializeData(bookmarks_as_json);
1309 }
1310 } 1288 }
1289 BookmarkModel* bookmark_model =
1290 BookmarkModelFactory::GetForProfile(browser->profile());
1291 if (!bookmark_model->IsLoaded()) {
1292 reply.SendError("Bookmark model is not loaded");
1293 return;
1294 }
1295 scoped_refptr<BookmarkStorage> storage(
1296 new BookmarkStorage(browser->profile(), bookmark_model));
1297 if (!storage->SerializeData(&bookmarks_as_json)) {
1298 reply.SendError("Failed to serialize bookmarks");
1299 return;
1300 }
1301 DictionaryValue dict;
1302 dict.SetString("bookmarks_as_json", bookmarks_as_json);
1303 reply.SendSuccess(&dict);
1311 } 1304 }
1312 1305
1313 void TestingAutomationProvider::WaitForBookmarkModelToLoad( 1306 void TestingAutomationProvider::WaitForBookmarkModelToLoad(
1314 int handle, 1307 int handle,
1315 IPC::Message* reply_message) { 1308 IPC::Message* reply_message) {
1316 if (browser_tracker_->ContainsHandle(handle)) { 1309 if (browser_tracker_->ContainsHandle(handle)) {
1317 Browser* browser = browser_tracker_->GetResource(handle); 1310 Browser* browser = browser_tracker_->GetResource(handle);
1318 BookmarkModel* model = 1311 BookmarkModel* model =
1319 BookmarkModelFactory::GetForProfile(browser->profile()); 1312 BookmarkModelFactory::GetForProfile(browser->profile());
1313 AutomationProviderBookmarkModelObserver* observer =
1314 new AutomationProviderBookmarkModelObserver(this, reply_message,
1315 model, false);
1320 if (model->IsLoaded()) { 1316 if (model->IsLoaded()) {
1317 observer->ReleaseReply();
1318 delete observer;
1321 AutomationMsg_WaitForBookmarkModelToLoad::WriteReplyParams( 1319 AutomationMsg_WaitForBookmarkModelToLoad::WriteReplyParams(
1322 reply_message, true); 1320 reply_message, true);
1323 Send(reply_message); 1321 Send(reply_message);
1324 } else {
1325 // The observer will delete itself when done.
1326 new AutomationProviderBookmarkModelObserver(this, reply_message,
1327 model);
1328 } 1322 }
1329 } 1323 }
1330 } 1324 }
1331 1325
1332 void TestingAutomationProvider::AddBookmarkGroup(int handle, 1326 void TestingAutomationProvider::WaitForBookmarkModelToLoadJSON(
1333 int64 parent_id, 1327 DictionaryValue* args,
1334 int index, 1328 IPC::Message* reply_message) {
1335 std::wstring title, 1329 Browser* browser;
1336 bool* success) { 1330 std::string error_msg, bookmarks_as_json;
1337 if (browser_tracker_->ContainsHandle(handle)) { 1331 if (!GetBrowserFromJSONArgs(args, &browser, &error_msg)) {
1338 Browser* browser = browser_tracker_->GetResource(handle); 1332 AutomationJSONReply(this, reply_message).SendError(error_msg);
1339 if (browser) { 1333 return;
1340 BookmarkModel* model = 1334 }
1341 BookmarkModelFactory::GetForProfile(browser->profile()); 1335 BookmarkModel* model =
1342 if (!model->IsLoaded()) { 1336 BookmarkModelFactory::GetForProfile(browser->profile());
1343 *success = false; 1337 AutomationProviderBookmarkModelObserver* observer =
1344 return; 1338 new AutomationProviderBookmarkModelObserver(this, reply_message, model,
1345 } 1339 true);
1346 const BookmarkNode* parent = model->GetNodeByID(parent_id); 1340 if (model->IsLoaded()) {
1347 DCHECK(parent); 1341 observer->ReleaseReply();
1348 if (parent) { 1342 delete observer;
1349 const BookmarkNode* child = model->AddFolder(parent, index, 1343 AutomationJSONReply(this, reply_message).SendSuccess(NULL);
1350 WideToUTF16Hack(title)); 1344 return;
1351 DCHECK(child); 1345 }
1352 if (child) 1346 }
1353 *success = true; 1347
1354 } 1348 void TestingAutomationProvider::AddBookmark(
1355 } 1349 DictionaryValue* args,
1356 } 1350 IPC::Message* reply_message) {
1357 *success = false; 1351 AutomationJSONReply reply(this, reply_message);
1358 } 1352 Browser* browser;
1359 1353 std::string error_msg, url;
1360 void TestingAutomationProvider::AddBookmarkURL(int handle, 1354 string16 title;
1361 int64 parent_id, 1355 int parent_id, index;
1362 int index, 1356 bool folder;
1363 std::wstring title, 1357 if (!GetBrowserFromJSONArgs(args, &browser, &error_msg)) {
1364 const GURL& url, 1358 reply.SendError(error_msg);
1365 bool* success) { 1359 return;
1366 if (browser_tracker_->ContainsHandle(handle)) { 1360 }
1367 Browser* browser = browser_tracker_->GetResource(handle); 1361 if (!args->GetBoolean("is_folder", &folder)) {
1368 if (browser) { 1362 reply.SendError("'is_folder' missing or invalid");
1369 BookmarkModel* model = 1363 return;
1370 BookmarkModelFactory::GetForProfile(browser->profile()); 1364 }
1371 if (!model->IsLoaded()) { 1365 if (!folder && !args->GetString("url", &url)) {
1372 *success = false; 1366 reply.SendError("'url' missing or invalid");
1373 return; 1367 return;
1374 } 1368 }
1375 const BookmarkNode* parent = model->GetNodeByID(parent_id); 1369 if (!args->GetInteger("parent_id", &parent_id)) {
1376 DCHECK(parent); 1370 reply.SendError("'parent_id' missing or invalid");
1377 if (parent) { 1371 return;
1378 const BookmarkNode* child = model->AddURL(parent, index, 1372 }
1379 WideToUTF16Hack(title), url); 1373 if (!args->GetInteger("index", &index)) {
1380 DCHECK(child); 1374 reply.SendError("'index' missing or invalid");
1381 if (child) 1375 return;
1382 *success = true; 1376 }
1383 } 1377 if (!args->GetString("title", &title)) {
1384 } 1378 reply.SendError("'title' missing or invalid");
1385 } 1379 return;
1386 *success = false; 1380 }
1387 } 1381 BookmarkModel* model =
1388 1382 BookmarkModelFactory::GetForProfile(browser->profile());
1389 void TestingAutomationProvider::ReparentBookmark(int handle, 1383 if (!model->IsLoaded()) {
1390 int64 id, 1384 reply.SendError("Bookmark model is not loaded");
1391 int64 new_parent_id, 1385 return;
1392 int index, 1386 }
1393 bool* success) { 1387 const BookmarkNode* parent = model->GetNodeByID(parent_id);
1394 if (browser_tracker_->ContainsHandle(handle)) { 1388 if (!parent) {
1395 Browser* browser = browser_tracker_->GetResource(handle); 1389 reply.SendError("Failed to get parent bookmark node");
1396 if (browser) { 1390 return;
1397 BookmarkModel* model = 1391 }
1398 BookmarkModelFactory::GetForProfile(browser->profile()); 1392 const BookmarkNode* child;
1399 if (!model->IsLoaded()) { 1393 if (folder) {
1400 *success = false; 1394 child = model->AddFolder(parent, index, title);
1401 return; 1395 } else {
1402 } 1396 child = model->AddURL(parent, index, title, GURL(url));
1403 const BookmarkNode* node = model->GetNodeByID(id); 1397 }
1404 DCHECK(node); 1398 if (!child) {
1405 const BookmarkNode* new_parent = model->GetNodeByID(new_parent_id); 1399 reply.SendError("Failed to add bookmark");
1406 DCHECK(new_parent); 1400 return;
1407 if (node && new_parent) { 1401 }
1408 model->Move(node, new_parent, index); 1402 reply.SendSuccess(NULL);
1409 *success = true; 1403 }
1410 } 1404
1411 } 1405 void TestingAutomationProvider::ReparentBookmark(DictionaryValue* args,
1412 } 1406 IPC::Message* reply_message) {
1413 *success = false; 1407 AutomationJSONReply reply(this, reply_message);
1414 } 1408 Browser* browser;
1415 1409 std::string error_msg;
1416 void TestingAutomationProvider::SetBookmarkTitle(int handle, 1410 int new_parent_id, id, index;
1417 int64 id, 1411 if (!GetBrowserFromJSONArgs(args, &browser, &error_msg)) {
1418 std::wstring title, 1412 reply.SendError(error_msg);
1419 bool* success) { 1413 return;
1420 if (browser_tracker_->ContainsHandle(handle)) { 1414 }
1421 Browser* browser = browser_tracker_->GetResource(handle); 1415 if (!args->GetInteger("id", &id)) {
1422 if (browser) { 1416 reply.SendError("'id' missing or invalid");
1423 BookmarkModel* model = 1417 return;
1424 BookmarkModelFactory::GetForProfile(browser->profile()); 1418 }
1425 if (!model->IsLoaded()) { 1419 if (!args->GetInteger("new_parent_id", &new_parent_id)) {
1426 *success = false; 1420 reply.SendError("'new_parent_id' missing or invalid");
1427 return; 1421 return;
1428 } 1422 }
1429 const BookmarkNode* node = model->GetNodeByID(id); 1423 if (!args->GetInteger("index", &index)) {
1430 DCHECK(node); 1424 reply.SendError("'index' missing or invalid");
1431 if (node) { 1425 return;
1432 model->SetTitle(node, WideToUTF16Hack(title)); 1426 }
1433 *success = true; 1427 BookmarkModel* model =
1434 } 1428 BookmarkModelFactory::GetForProfile(browser->profile());
1435 } 1429 if (!model->IsLoaded()) {
1436 } 1430 reply.SendError("Bookmark model is not loaded");
1437 *success = false; 1431 return;
1438 } 1432 }
1439 1433 const BookmarkNode* node = model->GetNodeByID(id);
1440 void TestingAutomationProvider::SetBookmarkURL(int handle, 1434 const BookmarkNode* new_parent = model->GetNodeByID(new_parent_id);
1441 int64 id, 1435 if (!node) {
1442 const GURL& url, 1436 reply.SendError("Failed to get bookmark node");
1443 bool* success) { 1437 return;
1444 if (browser_tracker_->ContainsHandle(handle)) { 1438 }
1445 Browser* browser = browser_tracker_->GetResource(handle); 1439 if (!new_parent) {
1446 if (browser) { 1440 reply.SendError("Failed to get new parent bookmark node");
1447 BookmarkModel* model = 1441 return;
1448 BookmarkModelFactory::GetForProfile(browser->profile()); 1442 }
1449 if (!model->IsLoaded()) { 1443 model->Move(node, new_parent, index);
1450 *success = false; 1444 reply.SendSuccess(NULL);
1451 return; 1445 }
1452 } 1446
1453 const BookmarkNode* node = model->GetNodeByID(id); 1447 void TestingAutomationProvider::SetBookmarkTitle(DictionaryValue* args,
1454 DCHECK(node); 1448 IPC::Message* reply_message) {
1455 if (node) { 1449 AutomationJSONReply reply(this, reply_message);
1456 model->SetURL(node, url); 1450 Browser* browser;
1457 *success = true; 1451 std::string error_msg;
1458 } 1452 string16 title;
1459 } 1453 int id;
1460 } 1454 if (!GetBrowserFromJSONArgs(args, &browser, &error_msg)) {
1461 *success = false; 1455 reply.SendError(error_msg);
1462 } 1456 return;
1463 1457 }
1464 void TestingAutomationProvider::RemoveBookmark(int handle, 1458 if (!args->GetInteger("id", &id)) {
1465 int64 id, 1459 reply.SendError("'id' missing or invalid");
1466 bool* success) { 1460 return;
1467 if (browser_tracker_->ContainsHandle(handle)) { 1461 }
1468 Browser* browser = browser_tracker_->GetResource(handle); 1462 if (!args->GetString("title", &title)) {
1469 if (browser) { 1463 reply.SendError("'title' missing or invalid");
1470 BookmarkModel* model = 1464 return;
1471 BookmarkModelFactory::GetForProfile(browser->profile()); 1465 }
1472 if (!model->IsLoaded()) { 1466 BookmarkModel* model =
1473 *success = false; 1467 BookmarkModelFactory::GetForProfile(browser->profile());
1474 return; 1468 if (!model->IsLoaded()) {
1475 } 1469 reply.SendError("Bookmark model is not loaded");
1476 const BookmarkNode* node = model->GetNodeByID(id); 1470 return;
1477 DCHECK(node); 1471 }
1478 if (node) { 1472 const BookmarkNode* node = model->GetNodeByID(id);
1479 const BookmarkNode* parent = node->parent(); 1473 if (!node) {
1480 DCHECK(parent); 1474 reply.SendError("Failed to get bookmark node");
1481 model->Remove(parent, parent->GetIndexOf(node)); 1475 return;
1482 *success = true; 1476 }
1483 } 1477 model->SetTitle(node, title);
1484 } 1478 reply.SendSuccess(NULL);
1485 } 1479 }
1486 *success = false; 1480
1481 void TestingAutomationProvider::SetBookmarkURL(DictionaryValue* args,
1482 IPC::Message* reply_message) {
1483 AutomationJSONReply reply(this, reply_message);
1484 Browser* browser;
1485 std::string error_msg, url;
1486 int id;
1487 if (!GetBrowserFromJSONArgs(args, &browser, &error_msg)) {
1488 reply.SendError(error_msg);
1489 return;
1490 }
1491 if (!args->GetInteger("id", &id)) {
1492 reply.SendError("'id' missing or invalid");
1493 return;
1494 }
1495 if (!args->GetString("url", &url)) {
1496 reply.SendError("'url' missing or invalid");
1497 return;
1498 }
1499 BookmarkModel* model =
1500 BookmarkModelFactory::GetForProfile(browser->profile());
1501 if (!model->IsLoaded()) {
1502 reply.SendError("Bookmark model is not loaded");
1503 return;
1504 }
1505 const BookmarkNode* node = model->GetNodeByID(id);
1506 if (!node) {
1507 reply.SendError("Failed to get bookmark node");
1508 return;
1509 }
1510 model->SetURL(node, GURL(url));
1511 reply.SendSuccess(NULL);
1512 }
1513
1514 void TestingAutomationProvider::RemoveBookmark(DictionaryValue* args,
1515 IPC::Message* reply_message) {
1516 AutomationJSONReply reply(this, reply_message);
1517 Browser* browser;
1518 std::string error_msg;
1519 int id;
1520 if (!GetBrowserFromJSONArgs(args, &browser, &error_msg)) {
1521 reply.SendError(error_msg);
1522 return;
1523 }
1524 if (!args->GetInteger("id", &id)) {
1525 reply.SendError("'id' missing or invalid");
1526 return;
1527 }
1528 BookmarkModel* model =
1529 BookmarkModelFactory::GetForProfile(browser->profile());
1530 if (!model->IsLoaded()) {
1531 reply.SendError("Bookmark model is not loaded");
1532 return;
1533 }
1534 const BookmarkNode* node = model->GetNodeByID(id);
1535 if (!node) {
1536 reply.SendError("Failed to get bookmark node");
1537 return;
1538 }
1539 const BookmarkNode* parent = node->parent();
1540 if (!parent) {
1541 reply.SendError("Failed to get parent bookmark node");
1542 return;
1543 }
1544 model->Remove(parent, parent->GetIndexOf(node));
1545 reply.SendSuccess(NULL);
1487 } 1546 }
1488 1547
1489 void TestingAutomationProvider::WaitForBrowserWindowCountToBecome( 1548 void TestingAutomationProvider::WaitForBrowserWindowCountToBecome(
1490 int target_count, 1549 int target_count,
1491 IPC::Message* reply_message) { 1550 IPC::Message* reply_message) {
1492 if (static_cast<int>(BrowserList::size()) == target_count) { 1551 if (static_cast<int>(BrowserList::size()) == target_count) {
1493 AutomationMsg_WaitForBrowserWindowCountToBecome::WriteReplyParams( 1552 AutomationMsg_WaitForBrowserWindowCountToBecome::WriteReplyParams(
1494 reply_message, true); 1553 reply_message, true);
1495 Send(reply_message); 1554 Send(reply_message);
1496 return; 1555 return;
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
1605 handler_map_["DeleteCookie"] = 1664 handler_map_["DeleteCookie"] =
1606 &TestingAutomationProvider::DeleteCookieJSON; 1665 &TestingAutomationProvider::DeleteCookieJSON;
1607 handler_map_["SetCookie"] = 1666 handler_map_["SetCookie"] =
1608 &TestingAutomationProvider::SetCookieJSON; 1667 &TestingAutomationProvider::SetCookieJSON;
1609 handler_map_["GetCookiesInBrowserContext"] = 1668 handler_map_["GetCookiesInBrowserContext"] =
1610 &TestingAutomationProvider::GetCookiesInBrowserContext; 1669 &TestingAutomationProvider::GetCookiesInBrowserContext;
1611 handler_map_["DeleteCookieInBrowserContext"] = 1670 handler_map_["DeleteCookieInBrowserContext"] =
1612 &TestingAutomationProvider::DeleteCookieInBrowserContext; 1671 &TestingAutomationProvider::DeleteCookieInBrowserContext;
1613 handler_map_["SetCookieInBrowserContext"] = 1672 handler_map_["SetCookieInBrowserContext"] =
1614 &TestingAutomationProvider::SetCookieInBrowserContext; 1673 &TestingAutomationProvider::SetCookieInBrowserContext;
1674
1675 handler_map_["WaitForBookmarkModelToLoad"] =
1676 &TestingAutomationProvider::WaitForBookmarkModelToLoadJSON;
1677 handler_map_["GetBookmarksAsJSON"] =
1678 &TestingAutomationProvider::GetBookmarksAsJSON;
1679 handler_map_["GetBookmarkBarStatus"] =
1680 &TestingAutomationProvider::GetBookmarkBarStatus;
1681 handler_map_["AddBookmark"] =
1682 &TestingAutomationProvider::AddBookmark;
1683 handler_map_["ReparentBookmark"] =
1684 &TestingAutomationProvider::ReparentBookmark;
1685 handler_map_["SetBookmarkTitle"] =
1686 &TestingAutomationProvider::SetBookmarkTitle;
1687 handler_map_["SetBookmarkURL"] =
1688 &TestingAutomationProvider::SetBookmarkURL;
1689 handler_map_["RemoveBookmark"] =
1690 &TestingAutomationProvider::RemoveBookmark;
1691
1615 handler_map_["GetTabIds"] = 1692 handler_map_["GetTabIds"] =
1616 &TestingAutomationProvider::GetTabIds; 1693 &TestingAutomationProvider::GetTabIds;
1617 handler_map_["GetViews"] = 1694 handler_map_["GetViews"] =
1618 &TestingAutomationProvider::GetViews; 1695 &TestingAutomationProvider::GetViews;
1619 handler_map_["IsTabIdValid"] = 1696 handler_map_["IsTabIdValid"] =
1620 &TestingAutomationProvider::IsTabIdValid; 1697 &TestingAutomationProvider::IsTabIdValid;
1621 handler_map_["DoesAutomationObjectExist"] = 1698 handler_map_["DoesAutomationObjectExist"] =
1622 &TestingAutomationProvider::DoesAutomationObjectExist; 1699 &TestingAutomationProvider::DoesAutomationObjectExist;
1623 handler_map_["CloseTab"] = 1700 handler_map_["CloseTab"] =
1624 &TestingAutomationProvider::CloseTabJSON; 1701 &TestingAutomationProvider::CloseTabJSON;
(...skipping 5540 matching lines...) Expand 10 before | Expand all | Expand 10 after
7165 void TestingAutomationProvider::OnRemoveProvider() { 7242 void TestingAutomationProvider::OnRemoveProvider() {
7166 if (g_browser_process) 7243 if (g_browser_process)
7167 g_browser_process->GetAutomationProviderList()->RemoveProvider(this); 7244 g_browser_process->GetAutomationProviderList()->RemoveProvider(this);
7168 } 7245 }
7169 7246
7170 void TestingAutomationProvider::EnsureTabSelected(Browser* browser, 7247 void TestingAutomationProvider::EnsureTabSelected(Browser* browser,
7171 WebContents* tab) { 7248 WebContents* tab) {
7172 if (chrome::GetActiveWebContents(browser) != tab) 7249 if (chrome::GetActiveWebContents(browser) != tab)
7173 chrome::ActivateTabAt(browser, chrome::GetIndexOfTab(browser, tab), true); 7250 chrome::ActivateTabAt(browser, chrome::GetIndexOfTab(browser, tab), true);
7174 } 7251 }
OLDNEW
« no previous file with comments | « chrome/browser/automation/testing_automation_provider.h ('k') | chrome/common/automation_messages_internal.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698