OLD | NEW |
---|---|
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 } |
OLD | NEW |