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

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: 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 397 matching lines...) Expand 10 before | Expand all | Expand 10 after
408 WaitForTabToBeRestored) 408 WaitForTabToBeRestored)
409 IPC_MESSAGE_HANDLER(AutomationMsg_GetSecurityState, GetSecurityState) 409 IPC_MESSAGE_HANDLER(AutomationMsg_GetSecurityState, GetSecurityState)
410 IPC_MESSAGE_HANDLER(AutomationMsg_GetPageType, GetPageType) 410 IPC_MESSAGE_HANDLER(AutomationMsg_GetPageType, GetPageType)
411 IPC_MESSAGE_HANDLER(AutomationMsg_GetMetricEventDuration, 411 IPC_MESSAGE_HANDLER(AutomationMsg_GetMetricEventDuration,
412 GetMetricEventDuration) 412 GetMetricEventDuration)
413 IPC_MESSAGE_HANDLER_DELAY_REPLY(AutomationMsg_ActionOnSSLBlockingPage, 413 IPC_MESSAGE_HANDLER_DELAY_REPLY(AutomationMsg_ActionOnSSLBlockingPage,
414 ActionOnSSLBlockingPage) 414 ActionOnSSLBlockingPage)
415 IPC_MESSAGE_HANDLER(AutomationMsg_BringBrowserToFront, BringBrowserToFront) 415 IPC_MESSAGE_HANDLER(AutomationMsg_BringBrowserToFront, BringBrowserToFront)
416 IPC_MESSAGE_HANDLER(AutomationMsg_FindWindowVisibility, 416 IPC_MESSAGE_HANDLER(AutomationMsg_FindWindowVisibility,
417 GetFindWindowVisibility) 417 GetFindWindowVisibility)
418 IPC_MESSAGE_HANDLER(AutomationMsg_BookmarkBarVisibility,
419 GetBookmarkBarVisibility)
420 IPC_MESSAGE_HANDLER(AutomationMsg_GetBookmarksAsJSON,
421 GetBookmarksAsJSON)
422 IPC_MESSAGE_HANDLER_DELAY_REPLY(AutomationMsg_WaitForBookmarkModelToLoad, 418 IPC_MESSAGE_HANDLER_DELAY_REPLY(AutomationMsg_WaitForBookmarkModelToLoad,
423 WaitForBookmarkModelToLoad) 419 WaitForBookmarkModelToLoad)
424 IPC_MESSAGE_HANDLER(AutomationMsg_AddBookmarkGroup,
425 AddBookmarkGroup)
426 IPC_MESSAGE_HANDLER(AutomationMsg_AddBookmarkURL,
427 AddBookmarkURL)
428 IPC_MESSAGE_HANDLER(AutomationMsg_ReparentBookmark,
429 ReparentBookmark)
430 IPC_MESSAGE_HANDLER(AutomationMsg_SetBookmarkTitle,
431 SetBookmarkTitle)
432 IPC_MESSAGE_HANDLER(AutomationMsg_SetBookmarkURL,
433 SetBookmarkURL)
434 IPC_MESSAGE_HANDLER(AutomationMsg_RemoveBookmark,
435 RemoveBookmark)
436 IPC_MESSAGE_HANDLER_DELAY_REPLY( 420 IPC_MESSAGE_HANDLER_DELAY_REPLY(
437 AutomationMsg_WaitForBrowserWindowCountToBecome, 421 AutomationMsg_WaitForBrowserWindowCountToBecome,
438 WaitForBrowserWindowCountToBecome) 422 WaitForBrowserWindowCountToBecome)
439 IPC_MESSAGE_HANDLER_DELAY_REPLY( 423 IPC_MESSAGE_HANDLER_DELAY_REPLY(
440 AutomationMsg_GoBackBlockUntilNavigationsComplete, 424 AutomationMsg_GoBackBlockUntilNavigationsComplete,
441 GoBackBlockUntilNavigationsComplete) 425 GoBackBlockUntilNavigationsComplete)
442 IPC_MESSAGE_HANDLER_DELAY_REPLY( 426 IPC_MESSAGE_HANDLER_DELAY_REPLY(
443 AutomationMsg_GoForwardBlockUntilNavigationsComplete, 427 AutomationMsg_GoForwardBlockUntilNavigationsComplete,
444 GoForwardBlockUntilNavigationsComplete) 428 GoForwardBlockUntilNavigationsComplete)
445 IPC_MESSAGE_HANDLER_DELAY_REPLY(AutomationMsg_SendJSONRequest, 429 IPC_MESSAGE_HANDLER_DELAY_REPLY(AutomationMsg_SendJSONRequest,
(...skipping 911 matching lines...) Expand 10 before | Expand all | Expand 10 after
1357 Browser* browser = browser_tracker_->GetResource(handle); 1341 Browser* browser = browser_tracker_->GetResource(handle);
1358 if (browser) { 1342 if (browser) {
1359 FindBarTesting* find_bar = 1343 FindBarTesting* find_bar =
1360 browser->GetFindBarController()->find_bar()->GetFindBarTesting(); 1344 browser->GetFindBarController()->find_bar()->GetFindBarTesting();
1361 find_bar->GetFindBarWindowInfo(NULL, visible); 1345 find_bar->GetFindBarWindowInfo(NULL, visible);
1362 } 1346 }
1363 } 1347 }
1364 1348
1365 // Bookmark bar visibility is based on the pref (e.g. is it in the toolbar). 1349 // Bookmark bar visibility is based on the pref (e.g. is it in the toolbar).
1366 // Presence in the NTP is signalled in |detached|. 1350 // Presence in the NTP is signalled in |detached|.
1367 void TestingAutomationProvider::GetBookmarkBarVisibility(int handle, 1351 void TestingAutomationProvider::GetBookmarkBarStatus(
1368 bool* visible, 1352 DictionaryValue* args,
1369 bool* animating, 1353 IPC::Message* reply_message) {
1370 bool* detached) { 1354 AutomationJSONReply reply(this, reply_message);
1371 *visible = false; 1355 Browser* browser;
1372 *animating = false; 1356 std::string error_msg;
1373 1357 if (!GetBrowserFromJSONArgs(args, &browser, &error_msg)) {
1374 if (browser_tracker_->ContainsHandle(handle)) { 1358 reply.SendError(error_msg);
1375 Browser* browser = browser_tracker_->GetResource(handle); 1359 return;
1376 if (browser) {
1377 // browser->window()->IsBookmarkBarVisible() is not consistent across
1378 // platforms. bookmark_bar_state() also follows prefs::kShowBookmarkBar
1379 // and has a shared implementation on all platforms.
1380 *visible = browser->bookmark_bar_state() == BookmarkBar::SHOW;
1381 *animating = browser->window()->IsBookmarkBarAnimating();
1382 *detached = browser->bookmark_bar_state() == BookmarkBar::DETACHED;
1383 }
1384 } 1360 }
1361 // browser->window()->IsBookmarkBarVisible() is not consistent across
1362 // platforms. bookmark_bar_state() also follows prefs::kShowBookmarkBar
1363 // and has a shared implementation on all platforms.
1364 DictionaryValue dict;
1365 dict.SetBoolean("visible",
1366 browser->bookmark_bar_state() == BookmarkBar::SHOW);
1367 dict.SetBoolean("animating", browser->window()->IsBookmarkBarAnimating());
1368 dict.SetBoolean("detached",
1369 browser->bookmark_bar_state() == BookmarkBar::DETACHED);
1370 reply.SendSuccess(&dict);
1385 } 1371 }
1386 1372
1387 void TestingAutomationProvider::GetBookmarksAsJSON( 1373 void TestingAutomationProvider::GetBookmarksAsJSON(
1388 int handle, 1374 DictionaryValue* args,
1389 std::string* bookmarks_as_json, 1375 IPC::Message* reply_message) {
1390 bool* success) { 1376 AutomationJSONReply reply(this, reply_message);
1391 *success = false; 1377 Browser* browser;
1392 if (browser_tracker_->ContainsHandle(handle)) { 1378 std::string error_msg, bookmarks_as_json;
1393 Browser* browser = browser_tracker_->GetResource(handle); 1379 if (!GetBrowserFromJSONArgs(args, &browser, &error_msg)) {
1394 if (browser) { 1380 reply.SendError(error_msg);
1395 BookmarkModel* bookmark_model = 1381 return;
1396 BookmarkModelFactory::GetForProfile(browser->profile());
1397 if (!bookmark_model->IsLoaded()) {
1398 return;
1399 }
1400 scoped_refptr<BookmarkStorage> storage(new BookmarkStorage(
1401 browser->profile(), bookmark_model));
1402 *success = storage->SerializeData(bookmarks_as_json);
1403 }
1404 } 1382 }
1383 BookmarkModel* bookmark_model =
1384 BookmarkModelFactory::GetForProfile(browser->profile());
1385 if (!bookmark_model->IsLoaded()) {
1386 reply.SendError("Bookmark model is not loaded");
1387 return;
1388 }
1389 scoped_refptr<BookmarkStorage> storage(
1390 new BookmarkStorage(browser->profile(), bookmark_model));
1391 if (!storage->SerializeData(&bookmarks_as_json)) {
1392 reply.SendError("Failed to serialize bookmarks");
1393 return;
1394 }
1395 DictionaryValue dict;
1396 dict.SetString("bookmarks_as_json", bookmarks_as_json);
1397 reply.SendSuccess(&dict);
1405 } 1398 }
1406 1399
1407 void TestingAutomationProvider::WaitForBookmarkModelToLoad( 1400 void TestingAutomationProvider::WaitForBookmarkModelToLoad(
Nirnimesh 2012/08/10 04:34:20 Is this used anywhere other than pyauto?
craigdh 2012/08/10 18:08:04 Yep, looks like it's used by sync tests. I actuall
1408 int handle, 1401 int handle,
1409 IPC::Message* reply_message) { 1402 IPC::Message* reply_message) {
1410 if (browser_tracker_->ContainsHandle(handle)) { 1403 if (browser_tracker_->ContainsHandle(handle)) {
1411 Browser* browser = browser_tracker_->GetResource(handle); 1404 Browser* browser = browser_tracker_->GetResource(handle);
1412 BookmarkModel* model = 1405 BookmarkModel* model =
1413 BookmarkModelFactory::GetForProfile(browser->profile()); 1406 BookmarkModelFactory::GetForProfile(browser->profile());
1407 AutomationProviderBookmarkModelObserver* observer =
1408 new AutomationProviderBookmarkModelObserver(this, reply_message,
1409 model, false);
1414 if (model->IsLoaded()) { 1410 if (model->IsLoaded()) {
1411 observer->ReleaseReply();
1412 delete observer;
1415 AutomationMsg_WaitForBookmarkModelToLoad::WriteReplyParams( 1413 AutomationMsg_WaitForBookmarkModelToLoad::WriteReplyParams(
1416 reply_message, true); 1414 reply_message, true);
1417 Send(reply_message); 1415 Send(reply_message);
1418 } else {
1419 // The observer will delete itself when done.
1420 new AutomationProviderBookmarkModelObserver(this, reply_message,
1421 model);
1422 } 1416 }
1423 } 1417 }
1424 } 1418 }
1425 1419
1426 void TestingAutomationProvider::AddBookmarkGroup(int handle, 1420 void TestingAutomationProvider::WaitForBookmarkModelToLoadJSON(
1427 int64 parent_id, 1421 DictionaryValue* args,
1428 int index, 1422 IPC::Message* reply_message) {
1429 std::wstring title, 1423 Browser* browser;
1430 bool* success) { 1424 std::string error_msg, bookmarks_as_json;
1431 if (browser_tracker_->ContainsHandle(handle)) { 1425 if (!GetBrowserFromJSONArgs(args, &browser, &error_msg)) {
1432 Browser* browser = browser_tracker_->GetResource(handle); 1426 AutomationJSONReply(this, reply_message).SendError(error_msg);
1433 if (browser) { 1427 return;
1434 BookmarkModel* model = 1428 }
1435 BookmarkModelFactory::GetForProfile(browser->profile()); 1429 BookmarkModel* model =
1436 if (!model->IsLoaded()) { 1430 BookmarkModelFactory::GetForProfile(browser->profile());
1437 *success = false; 1431 AutomationProviderBookmarkModelObserver* observer =
1438 return; 1432 new AutomationProviderBookmarkModelObserver(this, reply_message, model,
1439 } 1433 true);
1440 const BookmarkNode* parent = model->GetNodeByID(parent_id); 1434 if (model->IsLoaded()) {
1441 DCHECK(parent); 1435 observer->ReleaseReply();
1442 if (parent) { 1436 delete observer;
1443 const BookmarkNode* child = model->AddFolder(parent, index, 1437 AutomationJSONReply(this, reply_message).SendSuccess(NULL);
1444 WideToUTF16Hack(title)); 1438 return;
1445 DCHECK(child); 1439 }
1446 if (child) 1440 }
1447 *success = true; 1441
1448 } 1442 void TestingAutomationProvider::AddBookmark(
1449 } 1443 DictionaryValue* args,
1450 } 1444 IPC::Message* reply_message) {
1451 *success = false; 1445 AutomationJSONReply reply(this, reply_message);
1452 } 1446 Browser* browser;
1453 1447 std::string error_msg, url;
1454 void TestingAutomationProvider::AddBookmarkURL(int handle, 1448 string16 title;
1455 int64 parent_id, 1449 int parent_id, index;
1456 int index, 1450 bool folder;
1457 std::wstring title, 1451 if (!GetBrowserFromJSONArgs(args, &browser, &error_msg)) {
1458 const GURL& url, 1452 reply.SendError(error_msg);
1459 bool* success) { 1453 return;
1460 if (browser_tracker_->ContainsHandle(handle)) { 1454 }
1461 Browser* browser = browser_tracker_->GetResource(handle); 1455 if (!args->GetBoolean("is_folder", &folder)) {
1462 if (browser) { 1456 reply.SendError("'is_folder' missing or invalid");
1463 BookmarkModel* model = 1457 return;
1464 BookmarkModelFactory::GetForProfile(browser->profile()); 1458 }
1465 if (!model->IsLoaded()) { 1459 if (!folder && !args->GetString("url", &url)) {
1466 *success = false; 1460 reply.SendError("'url' missing or invalid");
1467 return; 1461 return;
1468 } 1462 }
1469 const BookmarkNode* parent = model->GetNodeByID(parent_id); 1463 if (!args->GetInteger("parent_id", &parent_id)) {
1470 DCHECK(parent); 1464 reply.SendError("'parent_id' missing or invalid");
1471 if (parent) { 1465 return;
1472 const BookmarkNode* child = model->AddURL(parent, index, 1466 }
1473 WideToUTF16Hack(title), url); 1467 if (!args->GetInteger("index", &index)) {
1474 DCHECK(child); 1468 reply.SendError("'index' missing or invalid");
1475 if (child) 1469 return;
1476 *success = true; 1470 }
1477 } 1471 if (!args->GetString("title", &title)) {
1478 } 1472 reply.SendError("'title' missing or invalid");
1479 } 1473 return;
1480 *success = false; 1474 }
1481 } 1475 BookmarkModel* model =
1482 1476 BookmarkModelFactory::GetForProfile(browser->profile());
1483 void TestingAutomationProvider::ReparentBookmark(int handle, 1477 if (!model->IsLoaded()) {
1484 int64 id, 1478 reply.SendError("Bookmark model is not loaded");
1485 int64 new_parent_id, 1479 return;
1486 int index, 1480 }
1487 bool* success) { 1481 const BookmarkNode* parent = model->GetNodeByID(parent_id);
1488 if (browser_tracker_->ContainsHandle(handle)) { 1482 if (!parent) {
1489 Browser* browser = browser_tracker_->GetResource(handle); 1483 reply.SendError("Failed to get parent bookmark node");
1490 if (browser) { 1484 return;
1491 BookmarkModel* model = 1485 }
1492 BookmarkModelFactory::GetForProfile(browser->profile()); 1486 const BookmarkNode* child;
1493 if (!model->IsLoaded()) { 1487 if (folder) {
1494 *success = false; 1488 child = model->AddFolder(parent, index, title);
1495 return; 1489 } else {
1496 } 1490 child = model->AddURL(parent, index, title, GURL(url));
1497 const BookmarkNode* node = model->GetNodeByID(id); 1491 }
1498 DCHECK(node); 1492 if (!child) {
1499 const BookmarkNode* new_parent = model->GetNodeByID(new_parent_id); 1493 reply.SendError("Failed to add bookmark");
1500 DCHECK(new_parent); 1494 return;
1501 if (node && new_parent) { 1495 }
1502 model->Move(node, new_parent, index); 1496 reply.SendSuccess(NULL);
1503 *success = true; 1497 }
1504 } 1498
1505 } 1499 void TestingAutomationProvider::ReparentBookmark(DictionaryValue* args,
1506 } 1500 IPC::Message* reply_message) {
1507 *success = false; 1501 AutomationJSONReply reply(this, reply_message);
1508 } 1502 Browser* browser;
1509 1503 std::string error_msg;
1510 void TestingAutomationProvider::SetBookmarkTitle(int handle, 1504 int new_parent_id, id, index;
1511 int64 id, 1505 if (!GetBrowserFromJSONArgs(args, &browser, &error_msg)) {
1512 std::wstring title, 1506 reply.SendError(error_msg);
1513 bool* success) { 1507 return;
1514 if (browser_tracker_->ContainsHandle(handle)) { 1508 }
1515 Browser* browser = browser_tracker_->GetResource(handle); 1509 if (!args->GetInteger("id", &id)) {
1516 if (browser) { 1510 reply.SendError("'id' missing or invalid");
1517 BookmarkModel* model = 1511 return;
1518 BookmarkModelFactory::GetForProfile(browser->profile()); 1512 }
1519 if (!model->IsLoaded()) { 1513 if (!args->GetInteger("new_parent_id", &new_parent_id)) {
1520 *success = false; 1514 reply.SendError("'new_parent_id' missing or invalid");
1521 return; 1515 return;
1522 } 1516 }
1523 const BookmarkNode* node = model->GetNodeByID(id); 1517 if (!args->GetInteger("index", &index)) {
1524 DCHECK(node); 1518 reply.SendError("'index' missing or invalid");
1525 if (node) { 1519 return;
1526 model->SetTitle(node, WideToUTF16Hack(title)); 1520 }
1527 *success = true; 1521 BookmarkModel* model =
1528 } 1522 BookmarkModelFactory::GetForProfile(browser->profile());
1529 } 1523 if (!model->IsLoaded()) {
1530 } 1524 reply.SendError("Bookmark model is not loaded");
1531 *success = false; 1525 return;
1532 } 1526 }
1533 1527 const BookmarkNode* node = model->GetNodeByID(id);
1534 void TestingAutomationProvider::SetBookmarkURL(int handle, 1528 const BookmarkNode* new_parent = model->GetNodeByID(new_parent_id);
1535 int64 id, 1529 if (!node) {
1536 const GURL& url, 1530 reply.SendError("Failed to get bookmark node");
1537 bool* success) { 1531 return;
1538 if (browser_tracker_->ContainsHandle(handle)) { 1532 }
1539 Browser* browser = browser_tracker_->GetResource(handle); 1533 if (!new_parent) {
1540 if (browser) { 1534 reply.SendError("Failed to get new parent bookmark node");
1541 BookmarkModel* model = 1535 return;
1542 BookmarkModelFactory::GetForProfile(browser->profile()); 1536 }
1543 if (!model->IsLoaded()) { 1537 model->Move(node, new_parent, index);
1544 *success = false; 1538 reply.SendSuccess(NULL);
1545 return; 1539 }
1546 } 1540
1547 const BookmarkNode* node = model->GetNodeByID(id); 1541 void TestingAutomationProvider::SetBookmarkTitle(DictionaryValue* args,
1548 DCHECK(node); 1542 IPC::Message* reply_message) {
1549 if (node) { 1543 AutomationJSONReply reply(this, reply_message);
1550 model->SetURL(node, url); 1544 Browser* browser;
1551 *success = true; 1545 std::string error_msg;
1552 } 1546 string16 title;
1553 } 1547 int id;
1554 } 1548 if (!GetBrowserFromJSONArgs(args, &browser, &error_msg)) {
1555 *success = false; 1549 reply.SendError(error_msg);
1556 } 1550 return;
1557 1551 }
1558 void TestingAutomationProvider::RemoveBookmark(int handle, 1552 if (!args->GetInteger("id", &id)) {
1559 int64 id, 1553 reply.SendError("'id' missing or invalid");
1560 bool* success) { 1554 return;
1561 if (browser_tracker_->ContainsHandle(handle)) { 1555 }
1562 Browser* browser = browser_tracker_->GetResource(handle); 1556 if (!args->GetString("title", &title)) {
1563 if (browser) { 1557 reply.SendError("'title' missing or invalid");
1564 BookmarkModel* model = 1558 return;
1565 BookmarkModelFactory::GetForProfile(browser->profile()); 1559 }
1566 if (!model->IsLoaded()) { 1560 BookmarkModel* model =
1567 *success = false; 1561 BookmarkModelFactory::GetForProfile(browser->profile());
1568 return; 1562 if (!model->IsLoaded()) {
1569 } 1563 reply.SendError("Bookmark model is not loaded");
1570 const BookmarkNode* node = model->GetNodeByID(id); 1564 return;
1571 DCHECK(node); 1565 }
1572 if (node) { 1566 const BookmarkNode* node = model->GetNodeByID(id);
1573 const BookmarkNode* parent = node->parent(); 1567 if (!node) {
1574 DCHECK(parent); 1568 reply.SendError("Failed to get bookmark node");
1575 model->Remove(parent, parent->GetIndexOf(node)); 1569 return;
1576 *success = true; 1570 }
1577 } 1571 model->SetTitle(node, title);
1578 } 1572 reply.SendSuccess(NULL);
1579 } 1573 }
1580 *success = false; 1574
1575 void TestingAutomationProvider::SetBookmarkURL(DictionaryValue* args,
1576 IPC::Message* reply_message) {
1577 AutomationJSONReply reply(this, reply_message);
1578 Browser* browser;
1579 std::string error_msg, url;
1580 int id;
1581 if (!GetBrowserFromJSONArgs(args, &browser, &error_msg)) {
1582 reply.SendError(error_msg);
1583 return;
1584 }
1585 if (!args->GetInteger("id", &id)) {
1586 reply.SendError("'id' missing or invalid");
1587 return;
1588 }
1589 if (!args->GetString("url", &url)) {
1590 reply.SendError("'url' missing or invalid");
1591 return;
1592 }
1593 BookmarkModel* model =
1594 BookmarkModelFactory::GetForProfile(browser->profile());
1595 if (!model->IsLoaded()) {
1596 reply.SendError("Bookmark model is not loaded");
1597 return;
1598 }
1599 const BookmarkNode* node = model->GetNodeByID(id);
1600 if (!node) {
1601 reply.SendError("Failed to get bookmark node");
1602 return;
1603 }
1604 model->SetURL(node, GURL(url));
1605 reply.SendSuccess(NULL);
1606 }
1607
1608 void TestingAutomationProvider::RemoveBookmark(DictionaryValue* args,
1609 IPC::Message* reply_message) {
1610 AutomationJSONReply reply(this, reply_message);
1611 Browser* browser;
1612 std::string error_msg;
1613 int id;
1614 if (!GetBrowserFromJSONArgs(args, &browser, &error_msg)) {
1615 reply.SendError(error_msg);
1616 return;
1617 }
1618 if (!args->GetInteger("id", &id)) {
1619 reply.SendError("'id' missing or invalid");
1620 return;
1621 }
1622 BookmarkModel* model =
1623 BookmarkModelFactory::GetForProfile(browser->profile());
1624 if (!model->IsLoaded()) {
1625 reply.SendError("Bookmark model is not loaded");
1626 return;
1627 }
1628 const BookmarkNode* node = model->GetNodeByID(id);
1629 if (!node) {
1630 reply.SendError("Failed to get bookmark node");
1631 return;
1632 }
1633 const BookmarkNode* parent = node->parent();
1634 if (!parent) {
1635 reply.SendError("Failed to get parent bookmark node");
1636 return;
1637 }
1638 model->Remove(parent, parent->GetIndexOf(node));
1639 reply.SendSuccess(NULL);
1581 } 1640 }
1582 1641
1583 void TestingAutomationProvider::WaitForBrowserWindowCountToBecome( 1642 void TestingAutomationProvider::WaitForBrowserWindowCountToBecome(
1584 int target_count, 1643 int target_count,
1585 IPC::Message* reply_message) { 1644 IPC::Message* reply_message) {
1586 if (static_cast<int>(BrowserList::size()) == target_count) { 1645 if (static_cast<int>(BrowserList::size()) == target_count) {
1587 AutomationMsg_WaitForBrowserWindowCountToBecome::WriteReplyParams( 1646 AutomationMsg_WaitForBrowserWindowCountToBecome::WriteReplyParams(
1588 reply_message, true); 1647 reply_message, true);
1589 Send(reply_message); 1648 Send(reply_message);
1590 return; 1649 return;
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
1699 handler_map_["DeleteCookie"] = 1758 handler_map_["DeleteCookie"] =
1700 &TestingAutomationProvider::DeleteCookieJSON; 1759 &TestingAutomationProvider::DeleteCookieJSON;
1701 handler_map_["SetCookie"] = 1760 handler_map_["SetCookie"] =
1702 &TestingAutomationProvider::SetCookieJSON; 1761 &TestingAutomationProvider::SetCookieJSON;
1703 handler_map_["GetCookiesInBrowserContext"] = 1762 handler_map_["GetCookiesInBrowserContext"] =
1704 &TestingAutomationProvider::GetCookiesInBrowserContext; 1763 &TestingAutomationProvider::GetCookiesInBrowserContext;
1705 handler_map_["DeleteCookieInBrowserContext"] = 1764 handler_map_["DeleteCookieInBrowserContext"] =
1706 &TestingAutomationProvider::DeleteCookieInBrowserContext; 1765 &TestingAutomationProvider::DeleteCookieInBrowserContext;
1707 handler_map_["SetCookieInBrowserContext"] = 1766 handler_map_["SetCookieInBrowserContext"] =
1708 &TestingAutomationProvider::SetCookieInBrowserContext; 1767 &TestingAutomationProvider::SetCookieInBrowserContext;
1768
1769 handler_map_["WaitForBookmarkModelToLoad"] =
1770 &TestingAutomationProvider::WaitForBookmarkModelToLoadJSON;
1771 handler_map_["GetBookmarksAsJSON"] =
1772 &TestingAutomationProvider::GetBookmarksAsJSON;
1773 handler_map_["GetBookmarkBarStatus"] =
1774 &TestingAutomationProvider::GetBookmarkBarStatus;
1775 handler_map_["AddBookmark"] =
1776 &TestingAutomationProvider::AddBookmark;
1777 handler_map_["ReparentBookmark"] =
1778 &TestingAutomationProvider::ReparentBookmark;
1779 handler_map_["SetBookmarkTitle"] =
1780 &TestingAutomationProvider::SetBookmarkTitle;
1781 handler_map_["SetBookmarkURL"] =
1782 &TestingAutomationProvider::SetBookmarkURL;
1783 handler_map_["RemoveBookmark"] =
1784 &TestingAutomationProvider::RemoveBookmark;
1785
1709 handler_map_["GetTabIds"] = 1786 handler_map_["GetTabIds"] =
1710 &TestingAutomationProvider::GetTabIds; 1787 &TestingAutomationProvider::GetTabIds;
1711 handler_map_["GetViews"] = 1788 handler_map_["GetViews"] =
1712 &TestingAutomationProvider::GetViews; 1789 &TestingAutomationProvider::GetViews;
1713 handler_map_["IsTabIdValid"] = 1790 handler_map_["IsTabIdValid"] =
1714 &TestingAutomationProvider::IsTabIdValid; 1791 &TestingAutomationProvider::IsTabIdValid;
1715 handler_map_["DoesAutomationObjectExist"] = 1792 handler_map_["DoesAutomationObjectExist"] =
1716 &TestingAutomationProvider::DoesAutomationObjectExist; 1793 &TestingAutomationProvider::DoesAutomationObjectExist;
1717 handler_map_["CloseTab"] = 1794 handler_map_["CloseTab"] =
1718 &TestingAutomationProvider::CloseTabJSON; 1795 &TestingAutomationProvider::CloseTabJSON;
(...skipping 5458 matching lines...) Expand 10 before | Expand all | Expand 10 after
7177 void TestingAutomationProvider::OnRemoveProvider() { 7254 void TestingAutomationProvider::OnRemoveProvider() {
7178 if (g_browser_process) 7255 if (g_browser_process)
7179 g_browser_process->GetAutomationProviderList()->RemoveProvider(this); 7256 g_browser_process->GetAutomationProviderList()->RemoveProvider(this);
7180 } 7257 }
7181 7258
7182 void TestingAutomationProvider::EnsureTabSelected(Browser* browser, 7259 void TestingAutomationProvider::EnsureTabSelected(Browser* browser,
7183 WebContents* tab) { 7260 WebContents* tab) {
7184 if (chrome::GetActiveWebContents(browser) != tab) 7261 if (chrome::GetActiveWebContents(browser) != tab)
7185 chrome::ActivateTabAt(browser, chrome::GetIndexOfTab(browser, tab), true); 7262 chrome::ActivateTabAt(browser, chrome::GetIndexOfTab(browser, tab), true);
7186 } 7263 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698