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

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

Issue 8983012: Get rid of content::NavigationController in cc file and use "using" instead. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 years, 11 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) 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 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
148 #include "chrome/browser/download/download_shelf.h" 148 #include "chrome/browser/download/download_shelf.h"
149 #endif 149 #endif
150 150
151 using automation::Error; 151 using automation::Error;
152 using automation::ErrorCode; 152 using automation::ErrorCode;
153 using automation_util::SendErrorIfModalDialogActive; 153 using automation_util::SendErrorIfModalDialogActive;
154 using content::BrowserThread; 154 using content::BrowserThread;
155 using content::ChildProcessHost; 155 using content::ChildProcessHost;
156 using content::DownloadItem; 156 using content::DownloadItem;
157 using content::DownloadManager; 157 using content::DownloadManager;
158 using content::NavigationController;
158 using content::NavigationEntry; 159 using content::NavigationEntry;
159 using content::PluginService; 160 using content::PluginService;
160 using content::OpenURLParams; 161 using content::OpenURLParams;
161 using content::Referrer; 162 using content::Referrer;
162 using content::SSLStatus; 163 using content::SSLStatus;
163 using content::WebContents; 164 using content::WebContents;
164 165
165 namespace { 166 namespace {
166 167
167 void SendMouseClick(int flags) { 168 void SendMouseClick(int flags) {
(...skipping 396 matching lines...) Expand 10 before | Expand all | Expand 10 after
564 if (browser_tracker_->ContainsHandle(handle)) { 565 if (browser_tracker_->ContainsHandle(handle)) {
565 Browser* browser = browser_tracker_->GetResource(handle); 566 Browser* browser = browser_tracker_->GetResource(handle);
566 *active_tab_index = browser->active_index(); 567 *active_tab_index = browser->active_index();
567 } 568 }
568 } 569 }
569 570
570 void TestingAutomationProvider::CloseTab(int tab_handle, 571 void TestingAutomationProvider::CloseTab(int tab_handle,
571 bool wait_until_closed, 572 bool wait_until_closed,
572 IPC::Message* reply_message) { 573 IPC::Message* reply_message) {
573 if (tab_tracker_->ContainsHandle(tab_handle)) { 574 if (tab_tracker_->ContainsHandle(tab_handle)) {
574 content::NavigationController* controller = 575 NavigationController* controller = tab_tracker_->GetResource(tab_handle);
575 tab_tracker_->GetResource(tab_handle);
576 int index; 576 int index;
577 Browser* browser = Browser::GetBrowserForController(controller, &index); 577 Browser* browser = Browser::GetBrowserForController(controller, &index);
578 DCHECK(browser); 578 DCHECK(browser);
579 new TabClosedNotificationObserver(this, wait_until_closed, reply_message); 579 new TabClosedNotificationObserver(this, wait_until_closed, reply_message);
580 browser->CloseTabContents(controller->GetWebContents()); 580 browser->CloseTabContents(controller->GetWebContents());
581 return; 581 return;
582 } 582 }
583 583
584 AutomationMsg_CloseTab::WriteReplyParams(reply_message, false); 584 AutomationMsg_CloseTab::WriteReplyParams(reply_message, false);
585 Send(reply_message); 585 Send(reply_message);
(...skipping 21 matching lines...) Expand all
607 int handle, bool* success) { 607 int handle, bool* success) {
608 WebContents* contents = tab_tracker_->ContainsHandle(handle) ? 608 WebContents* contents = tab_tracker_->ContainsHandle(handle) ?
609 tab_tracker_->GetResource(handle)->GetWebContents() : NULL; 609 tab_tracker_->GetResource(handle)->GetWebContents() : NULL;
610 automation_util::DeleteCookie(url, cookie_name, contents, success); 610 automation_util::DeleteCookie(url, cookie_name, contents, success);
611 } 611 }
612 612
613 void TestingAutomationProvider::ShowCollectedCookiesDialog( 613 void TestingAutomationProvider::ShowCollectedCookiesDialog(
614 int handle, bool* success) { 614 int handle, bool* success) {
615 *success = false; 615 *success = false;
616 if (tab_tracker_->ContainsHandle(handle)) { 616 if (tab_tracker_->ContainsHandle(handle)) {
617 content::NavigationController* controller = 617 NavigationController* controller = tab_tracker_->GetResource(handle);
618 tab_tracker_->GetResource(handle);
619 WebContents* tab_contents = controller->GetWebContents(); 618 WebContents* tab_contents = controller->GetWebContents();
620 Browser* browser = Browser::GetBrowserForController(controller, NULL); 619 Browser* browser = Browser::GetBrowserForController(controller, NULL);
621 browser->ShowCollectedCookiesDialog( 620 browser->ShowCollectedCookiesDialog(
622 TabContentsWrapper::GetCurrentWrapperForContents(tab_contents)); 621 TabContentsWrapper::GetCurrentWrapperForContents(tab_contents));
623 *success = true; 622 *success = true;
624 } 623 }
625 } 624 }
626 625
627 void TestingAutomationProvider::NavigateToURLBlockUntilNavigationsComplete( 626 void TestingAutomationProvider::NavigateToURLBlockUntilNavigationsComplete(
628 int handle, const GURL& url, int number_of_navigations, 627 int handle, const GURL& url, int number_of_navigations,
629 IPC::Message* reply_message) { 628 IPC::Message* reply_message) {
630 if (tab_tracker_->ContainsHandle(handle)) { 629 if (tab_tracker_->ContainsHandle(handle)) {
631 content::NavigationController* tab = tab_tracker_->GetResource(handle); 630 NavigationController* tab = tab_tracker_->GetResource(handle);
632 631
633 // Simulate what a user would do. Activate the tab and then navigate. 632 // Simulate what a user would do. Activate the tab and then navigate.
634 // We could allow navigating in a background tab in future. 633 // We could allow navigating in a background tab in future.
635 Browser* browser = FindAndActivateTab(tab); 634 Browser* browser = FindAndActivateTab(tab);
636 635
637 if (browser) { 636 if (browser) {
638 new NavigationNotificationObserver(tab, this, reply_message, 637 new NavigationNotificationObserver(tab, this, reply_message,
639 number_of_navigations, false, false); 638 number_of_navigations, false, false);
640 639
641 // TODO(darin): avoid conversion to GURL. 640 // TODO(darin): avoid conversion to GURL.
(...skipping 16 matching lines...) Expand all
658 } 657 }
659 658
660 void TestingAutomationProvider::NavigationAsyncWithDisposition( 659 void TestingAutomationProvider::NavigationAsyncWithDisposition(
661 int handle, 660 int handle,
662 const GURL& url, 661 const GURL& url,
663 WindowOpenDisposition disposition, 662 WindowOpenDisposition disposition,
664 bool* status) { 663 bool* status) {
665 *status = false; 664 *status = false;
666 665
667 if (tab_tracker_->ContainsHandle(handle)) { 666 if (tab_tracker_->ContainsHandle(handle)) {
668 content::NavigationController* tab = tab_tracker_->GetResource(handle); 667 NavigationController* tab = tab_tracker_->GetResource(handle);
669 668
670 // Simulate what a user would do. Activate the tab and then navigate. 669 // Simulate what a user would do. Activate the tab and then navigate.
671 // We could allow navigating in a background tab in future. 670 // We could allow navigating in a background tab in future.
672 Browser* browser = FindAndActivateTab(tab); 671 Browser* browser = FindAndActivateTab(tab);
673 672
674 if (browser) { 673 if (browser) {
675 // Don't add any listener unless a callback mechanism is desired. 674 // Don't add any listener unless a callback mechanism is desired.
676 // TODO(vibhor): Do this if such a requirement arises in future. 675 // TODO(vibhor): Do this if such a requirement arises in future.
677 OpenURLParams params( 676 OpenURLParams params(
678 url, Referrer(), disposition, content::PAGE_TRANSITION_TYPED, false); 677 url, Referrer(), disposition, content::PAGE_TRANSITION_TYPED, false);
679 browser->OpenURL(params); 678 browser->OpenURL(params);
680 *status = true; 679 *status = true;
681 } 680 }
682 } 681 }
683 } 682 }
684 683
685 void TestingAutomationProvider::Reload(int handle, 684 void TestingAutomationProvider::Reload(int handle,
686 IPC::Message* reply_message) { 685 IPC::Message* reply_message) {
687 if (tab_tracker_->ContainsHandle(handle)) { 686 if (tab_tracker_->ContainsHandle(handle)) {
688 content::NavigationController* tab = tab_tracker_->GetResource(handle); 687 NavigationController* tab = tab_tracker_->GetResource(handle);
689 Browser* browser = FindAndActivateTab(tab); 688 Browser* browser = FindAndActivateTab(tab);
690 if (browser && browser->command_updater()->IsCommandEnabled(IDC_RELOAD)) { 689 if (browser && browser->command_updater()->IsCommandEnabled(IDC_RELOAD)) {
691 new NavigationNotificationObserver( 690 new NavigationNotificationObserver(
692 tab, this, reply_message, 1, false, false); 691 tab, this, reply_message, 1, false, false);
693 browser->Reload(CURRENT_TAB); 692 browser->Reload(CURRENT_TAB);
694 return; 693 return;
695 } 694 }
696 } 695 }
697 696
698 AutomationMsg_Reload::WriteReplyParams( 697 AutomationMsg_Reload::WriteReplyParams(
699 reply_message, AUTOMATION_MSG_NAVIGATION_ERROR); 698 reply_message, AUTOMATION_MSG_NAVIGATION_ERROR);
700 Send(reply_message); 699 Send(reply_message);
701 } 700 }
702 701
703 void TestingAutomationProvider::SetAuth(int tab_handle, 702 void TestingAutomationProvider::SetAuth(int tab_handle,
704 const std::wstring& username, 703 const std::wstring& username,
705 const std::wstring& password, 704 const std::wstring& password,
706 IPC::Message* reply_message) { 705 IPC::Message* reply_message) {
707 if (tab_tracker_->ContainsHandle(tab_handle)) { 706 if (tab_tracker_->ContainsHandle(tab_handle)) {
708 content::NavigationController* tab = tab_tracker_->GetResource(tab_handle); 707 NavigationController* tab = tab_tracker_->GetResource(tab_handle);
709 LoginHandlerMap::iterator iter = login_handler_map_.find(tab); 708 LoginHandlerMap::iterator iter = login_handler_map_.find(tab);
710 709
711 if (iter != login_handler_map_.end()) { 710 if (iter != login_handler_map_.end()) {
712 // If auth is needed again after this, assume login has failed. This is 711 // If auth is needed again after this, assume login has failed. This is
713 // not strictly correct, because a navigation can require both proxy and 712 // not strictly correct, because a navigation can require both proxy and
714 // server auth, but it should be OK for now. 713 // server auth, but it should be OK for now.
715 LoginHandler* handler = iter->second; 714 LoginHandler* handler = iter->second;
716 new NavigationNotificationObserver( 715 new NavigationNotificationObserver(
717 tab, this, reply_message, 1, false, false); 716 tab, this, reply_message, 1, false, false);
718 handler->SetAuth(WideToUTF16Hack(username), WideToUTF16Hack(password)); 717 handler->SetAuth(WideToUTF16Hack(username), WideToUTF16Hack(password));
719 return; 718 return;
720 } 719 }
721 } 720 }
722 721
723 AutomationMsg_SetAuth::WriteReplyParams( 722 AutomationMsg_SetAuth::WriteReplyParams(
724 reply_message, AUTOMATION_MSG_NAVIGATION_AUTH_NEEDED); 723 reply_message, AUTOMATION_MSG_NAVIGATION_AUTH_NEEDED);
725 Send(reply_message); 724 Send(reply_message);
726 } 725 }
727 726
728 void TestingAutomationProvider::CancelAuth(int tab_handle, 727 void TestingAutomationProvider::CancelAuth(int tab_handle,
729 IPC::Message* reply_message) { 728 IPC::Message* reply_message) {
730 if (tab_tracker_->ContainsHandle(tab_handle)) { 729 if (tab_tracker_->ContainsHandle(tab_handle)) {
731 content::NavigationController* tab = tab_tracker_->GetResource(tab_handle); 730 NavigationController* tab = tab_tracker_->GetResource(tab_handle);
732 LoginHandlerMap::iterator iter = login_handler_map_.find(tab); 731 LoginHandlerMap::iterator iter = login_handler_map_.find(tab);
733 732
734 if (iter != login_handler_map_.end()) { 733 if (iter != login_handler_map_.end()) {
735 // If auth is needed again after this, something is screwy. 734 // If auth is needed again after this, something is screwy.
736 LoginHandler* handler = iter->second; 735 LoginHandler* handler = iter->second;
737 new NavigationNotificationObserver( 736 new NavigationNotificationObserver(
738 tab, this, reply_message, 1, false, false); 737 tab, this, reply_message, 1, false, false);
739 handler->CancelAuth(); 738 handler->CancelAuth();
740 return; 739 return;
741 } 740 }
742 } 741 }
743 742
744 AutomationMsg_CancelAuth::WriteReplyParams( 743 AutomationMsg_CancelAuth::WriteReplyParams(
745 reply_message, AUTOMATION_MSG_NAVIGATION_AUTH_NEEDED); 744 reply_message, AUTOMATION_MSG_NAVIGATION_AUTH_NEEDED);
746 Send(reply_message); 745 Send(reply_message);
747 } 746 }
748 747
749 void TestingAutomationProvider::NeedsAuth(int tab_handle, bool* needs_auth) { 748 void TestingAutomationProvider::NeedsAuth(int tab_handle, bool* needs_auth) {
750 *needs_auth = false; 749 *needs_auth = false;
751 750
752 if (tab_tracker_->ContainsHandle(tab_handle)) { 751 if (tab_tracker_->ContainsHandle(tab_handle)) {
753 content::NavigationController* tab = tab_tracker_->GetResource(tab_handle); 752 NavigationController* tab = tab_tracker_->GetResource(tab_handle);
754 LoginHandlerMap::iterator iter = login_handler_map_.find(tab); 753 LoginHandlerMap::iterator iter = login_handler_map_.find(tab);
755 754
756 if (iter != login_handler_map_.end()) { 755 if (iter != login_handler_map_.end()) {
757 // The LoginHandler will be in our map IFF the tab needs auth. 756 // The LoginHandler will be in our map IFF the tab needs auth.
758 *needs_auth = true; 757 *needs_auth = true;
759 } 758 }
760 } 759 }
761 } 760 }
762 761
763 void TestingAutomationProvider::GetRedirectsFrom(int tab_handle, 762 void TestingAutomationProvider::GetRedirectsFrom(int tab_handle,
764 const GURL& source_url, 763 const GURL& source_url,
765 IPC::Message* reply_message) { 764 IPC::Message* reply_message) {
766 if (redirect_query_) { 765 if (redirect_query_) {
767 LOG(ERROR) << "Can only handle one redirect query at once."; 766 LOG(ERROR) << "Can only handle one redirect query at once.";
768 } else if (tab_tracker_->ContainsHandle(tab_handle)) { 767 } else if (tab_tracker_->ContainsHandle(tab_handle)) {
769 content::NavigationController* tab = tab_tracker_->GetResource(tab_handle); 768 NavigationController* tab = tab_tracker_->GetResource(tab_handle);
770 Profile* profile = Profile::FromBrowserContext(tab->GetBrowserContext()); 769 Profile* profile = Profile::FromBrowserContext(tab->GetBrowserContext());
771 HistoryService* history_service = 770 HistoryService* history_service =
772 profile->GetHistoryService(Profile::EXPLICIT_ACCESS); 771 profile->GetHistoryService(Profile::EXPLICIT_ACCESS);
773 772
774 DCHECK(history_service) << "Tab " << tab_handle << "'s profile " << 773 DCHECK(history_service) << "Tab " << tab_handle << "'s profile " <<
775 "has no history service"; 774 "has no history service";
776 if (history_service) { 775 if (history_service) {
777 DCHECK(!reply_message_); 776 DCHECK(!reply_message_);
778 reply_message_ = reply_message; 777 reply_message_ = reply_message;
779 // Schedule a history query for redirects. The response will be sent 778 // Schedule a history query for redirects. The response will be sent
(...skipping 499 matching lines...) Expand 10 before | Expand all | Expand 10 after
1279 if (rph) 1278 if (rph)
1280 *process_id = base::GetProcId(rph->GetHandle()); 1279 *process_id = base::GetProcId(rph->GetHandle());
1281 } 1280 }
1282 } 1281 }
1283 1282
1284 void TestingAutomationProvider::GetTabTitle(int handle, 1283 void TestingAutomationProvider::GetTabTitle(int handle,
1285 int* title_string_size, 1284 int* title_string_size,
1286 std::wstring* title) { 1285 std::wstring* title) {
1287 *title_string_size = -1; // -1 is the error code 1286 *title_string_size = -1; // -1 is the error code
1288 if (tab_tracker_->ContainsHandle(handle)) { 1287 if (tab_tracker_->ContainsHandle(handle)) {
1289 content::NavigationController* tab = tab_tracker_->GetResource(handle); 1288 NavigationController* tab = tab_tracker_->GetResource(handle);
1290 NavigationEntry* entry = tab->GetActiveEntry(); 1289 NavigationEntry* entry = tab->GetActiveEntry();
1291 if (entry != NULL) { 1290 if (entry != NULL) {
1292 *title = UTF16ToWideHack(entry->GetTitleForDisplay("")); 1291 *title = UTF16ToWideHack(entry->GetTitleForDisplay(""));
1293 } else { 1292 } else {
1294 *title = std::wstring(); 1293 *title = std::wstring();
1295 } 1294 }
1296 *title_string_size = static_cast<int>(title->size()); 1295 *title_string_size = static_cast<int>(title->size());
1297 } 1296 }
1298 } 1297 }
1299 1298
1300 void TestingAutomationProvider::GetTabIndex(int handle, int* tabstrip_index) { 1299 void TestingAutomationProvider::GetTabIndex(int handle, int* tabstrip_index) {
1301 *tabstrip_index = -1; // -1 is the error code 1300 *tabstrip_index = -1; // -1 is the error code
1302 1301
1303 if (tab_tracker_->ContainsHandle(handle)) { 1302 if (tab_tracker_->ContainsHandle(handle)) {
1304 content::NavigationController* tab = tab_tracker_->GetResource(handle); 1303 NavigationController* tab = tab_tracker_->GetResource(handle);
1305 Browser* browser = Browser::GetBrowserForController(tab, NULL); 1304 Browser* browser = Browser::GetBrowserForController(tab, NULL);
1306 *tabstrip_index = browser->tabstrip_model()->GetIndexOfController(tab); 1305 *tabstrip_index = browser->tabstrip_model()->GetIndexOfController(tab);
1307 } 1306 }
1308 } 1307 }
1309 1308
1310 void TestingAutomationProvider::GetTabURL(int handle, 1309 void TestingAutomationProvider::GetTabURL(int handle,
1311 bool* success, 1310 bool* success,
1312 GURL* url) { 1311 GURL* url) {
1313 *success = false; 1312 *success = false;
1314 if (tab_tracker_->ContainsHandle(handle)) { 1313 if (tab_tracker_->ContainsHandle(handle)) {
1315 content::NavigationController* tab = tab_tracker_->GetResource(handle); 1314 NavigationController* tab = tab_tracker_->GetResource(handle);
1316 // Return what the user would see in the location bar. 1315 // Return what the user would see in the location bar.
1317 *url = tab->GetActiveEntry()->GetVirtualURL(); 1316 *url = tab->GetActiveEntry()->GetVirtualURL();
1318 *success = true; 1317 *success = true;
1319 } 1318 }
1320 } 1319 }
1321 1320
1322 void TestingAutomationProvider::GetShelfVisibility(int handle, bool* visible) { 1321 void TestingAutomationProvider::GetShelfVisibility(int handle, bool* visible) {
1323 *visible = false; 1322 *visible = false;
1324 1323
1325 if (browser_tracker_->ContainsHandle(handle)) { 1324 if (browser_tracker_->ContainsHandle(handle)) {
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
1394 new DomOperationMessageSender(this, reply_message, false); 1393 new DomOperationMessageSender(this, reply_message, false);
1395 ExecuteJavascriptInRenderViewFrame(WideToUTF16Hack(frame_xpath), 1394 ExecuteJavascriptInRenderViewFrame(WideToUTF16Hack(frame_xpath),
1396 WideToUTF16Hack(script), reply_message, 1395 WideToUTF16Hack(script), reply_message,
1397 web_contents->GetRenderViewHost()); 1396 web_contents->GetRenderViewHost());
1398 } 1397 }
1399 1398
1400 void TestingAutomationProvider::GetConstrainedWindowCount(int handle, 1399 void TestingAutomationProvider::GetConstrainedWindowCount(int handle,
1401 int* count) { 1400 int* count) {
1402 *count = -1; // -1 is the error code 1401 *count = -1; // -1 is the error code
1403 if (tab_tracker_->ContainsHandle(handle)) { 1402 if (tab_tracker_->ContainsHandle(handle)) {
1404 content::NavigationController* nav_controller = tab_tracker_->GetResource(ha ndle); 1403 NavigationController* nav_controller = tab_tracker_->GetResource(handle);
1405 WebContents* web_contents = nav_controller->GetWebContents(); 1404 WebContents* web_contents = nav_controller->GetWebContents();
1406 if (web_contents) { 1405 if (web_contents) {
1407 TabContentsWrapper* wrapper = 1406 TabContentsWrapper* wrapper =
1408 TabContentsWrapper::GetCurrentWrapperForContents(web_contents); 1407 TabContentsWrapper::GetCurrentWrapperForContents(web_contents);
1409 if (wrapper) { 1408 if (wrapper) {
1410 *count = static_cast<int>(wrapper->constrained_window_tab_helper()-> 1409 *count = static_cast<int>(wrapper->constrained_window_tab_helper()->
1411 constrained_window_count()); 1410 constrained_window_count());
1412 } 1411 }
1413 } 1412 }
1414 } 1413 }
1415 } 1414 }
1416 1415
1417 void TestingAutomationProvider::HandleInspectElementRequest( 1416 void TestingAutomationProvider::HandleInspectElementRequest(
1418 int handle, int x, int y, IPC::Message* reply_message) { 1417 int handle, int x, int y, IPC::Message* reply_message) {
1419 WebContents* web_contents = GetWebContentsForHandle(handle, NULL); 1418 WebContents* web_contents = GetWebContentsForHandle(handle, NULL);
1420 if (web_contents) { 1419 if (web_contents) {
1421 DCHECK(!reply_message_); 1420 DCHECK(!reply_message_);
1422 reply_message_ = reply_message; 1421 reply_message_ = reply_message;
1423 1422
1424 DevToolsWindow::InspectElement(web_contents->GetRenderViewHost(), x, y); 1423 DevToolsWindow::InspectElement(web_contents->GetRenderViewHost(), x, y);
1425 } else { 1424 } else {
1426 AutomationMsg_InspectElement::WriteReplyParams(reply_message, -1); 1425 AutomationMsg_InspectElement::WriteReplyParams(reply_message, -1);
1427 Send(reply_message); 1426 Send(reply_message);
1428 } 1427 }
1429 } 1428 }
1430 1429
1431 void TestingAutomationProvider::GetDownloadDirectory( 1430 void TestingAutomationProvider::GetDownloadDirectory(
1432 int handle, FilePath* download_directory) { 1431 int handle, FilePath* download_directory) {
1433 if (tab_tracker_->ContainsHandle(handle)) { 1432 if (tab_tracker_->ContainsHandle(handle)) {
1434 content::NavigationController* tab = tab_tracker_->GetResource(handle); 1433 NavigationController* tab = tab_tracker_->GetResource(handle);
1435 DownloadManager* dlm = tab->GetBrowserContext()->GetDownloadManager(); 1434 DownloadManager* dlm = tab->GetBrowserContext()->GetDownloadManager();
1436 *download_directory = 1435 *download_directory =
1437 DownloadPrefs::FromDownloadManager(dlm)->download_path(); 1436 DownloadPrefs::FromDownloadManager(dlm)->download_path();
1438 } 1437 }
1439 } 1438 }
1440 1439
1441 // Sample json input: { "command": "OpenNewBrowserWindowWithNewProfile" } 1440 // Sample json input: { "command": "OpenNewBrowserWindowWithNewProfile" }
1442 // Sample output: {} 1441 // Sample output: {}
1443 void TestingAutomationProvider::OpenNewBrowserWindowWithNewProfile( 1442 void TestingAutomationProvider::OpenNewBrowserWindowWithNewProfile(
1444 base::DictionaryValue* args, IPC::Message* reply_message) { 1443 base::DictionaryValue* args, IPC::Message* reply_message) {
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
1518 return; 1517 return;
1519 } 1518 }
1520 } 1519 }
1521 } 1520 }
1522 1521
1523 void TestingAutomationProvider::ShowInterstitialPage( 1522 void TestingAutomationProvider::ShowInterstitialPage(
1524 int tab_handle, 1523 int tab_handle,
1525 const std::string& html_text, 1524 const std::string& html_text,
1526 IPC::Message* reply_message) { 1525 IPC::Message* reply_message) {
1527 if (tab_tracker_->ContainsHandle(tab_handle)) { 1526 if (tab_tracker_->ContainsHandle(tab_handle)) {
1528 content::NavigationController* controller = 1527 NavigationController* controller = tab_tracker_->GetResource(tab_handle);
1529 tab_tracker_->GetResource(tab_handle);
1530 WebContents* web_contents = controller->GetWebContents(); 1528 WebContents* web_contents = controller->GetWebContents();
1531 1529
1532 new NavigationNotificationObserver(controller, this, reply_message, 1, 1530 new NavigationNotificationObserver(controller, this, reply_message, 1,
1533 false, false); 1531 false, false);
1534 1532
1535 AutomationInterstitialPage* interstitial = 1533 AutomationInterstitialPage* interstitial =
1536 new AutomationInterstitialPage(static_cast<TabContents*>(web_contents), 1534 new AutomationInterstitialPage(static_cast<TabContents*>(web_contents),
1537 GURL("about:interstitial"), 1535 GURL("about:interstitial"),
1538 html_text); 1536 html_text);
1539 interstitial->Show(); 1537 interstitial->Show();
(...skipping 12 matching lines...) Expand all
1552 if (web_contents && web_contents->GetInterstitialPage()) { 1550 if (web_contents && web_contents->GetInterstitialPage()) {
1553 web_contents->GetInterstitialPage()->DontProceed(); 1551 web_contents->GetInterstitialPage()->DontProceed();
1554 *success = true; 1552 *success = true;
1555 } 1553 }
1556 } 1554 }
1557 1555
1558 void TestingAutomationProvider::WaitForTabToBeRestored( 1556 void TestingAutomationProvider::WaitForTabToBeRestored(
1559 int tab_handle, 1557 int tab_handle,
1560 IPC::Message* reply_message) { 1558 IPC::Message* reply_message) {
1561 if (tab_tracker_->ContainsHandle(tab_handle)) { 1559 if (tab_tracker_->ContainsHandle(tab_handle)) {
1562 content::NavigationController* tab = tab_tracker_->GetResource(tab_handle); 1560 NavigationController* tab = tab_tracker_->GetResource(tab_handle);
1563 restore_tracker_.reset( 1561 restore_tracker_.reset(
1564 new NavigationControllerRestoredObserver(this, tab, reply_message)); 1562 new NavigationControllerRestoredObserver(this, tab, reply_message));
1565 } else { 1563 } else {
1566 AutomationMsg_WaitForTabToBeRestored::WriteReplyParams( 1564 AutomationMsg_WaitForTabToBeRestored::WriteReplyParams(
1567 reply_message, false); 1565 reply_message, false);
1568 Send(reply_message); 1566 Send(reply_message);
1569 } 1567 }
1570 } 1568 }
1571 1569
1572 void TestingAutomationProvider::GetSecurityState( 1570 void TestingAutomationProvider::GetSecurityState(
1573 int handle, 1571 int handle,
1574 bool* success, 1572 bool* success,
1575 content::SecurityStyle* security_style, 1573 content::SecurityStyle* security_style,
1576 net::CertStatus* ssl_cert_status, 1574 net::CertStatus* ssl_cert_status,
1577 int* insecure_content_status) { 1575 int* insecure_content_status) {
1578 if (tab_tracker_->ContainsHandle(handle)) { 1576 if (tab_tracker_->ContainsHandle(handle)) {
1579 content::NavigationController* tab = tab_tracker_->GetResource(handle); 1577 NavigationController* tab = tab_tracker_->GetResource(handle);
1580 NavigationEntry* entry = tab->GetActiveEntry(); 1578 NavigationEntry* entry = tab->GetActiveEntry();
1581 *success = true; 1579 *success = true;
1582 *security_style = entry->GetSSL().security_style; 1580 *security_style = entry->GetSSL().security_style;
1583 *ssl_cert_status = entry->GetSSL().cert_status; 1581 *ssl_cert_status = entry->GetSSL().cert_status;
1584 *insecure_content_status = entry->GetSSL().content_status; 1582 *insecure_content_status = entry->GetSSL().content_status;
1585 } else { 1583 } else {
1586 *success = false; 1584 *success = false;
1587 *security_style = content::SECURITY_STYLE_UNKNOWN; 1585 *security_style = content::SECURITY_STYLE_UNKNOWN;
1588 *ssl_cert_status = 0; 1586 *ssl_cert_status = 0;
1589 *insecure_content_status = 0; 1587 *insecure_content_status = 0;
1590 } 1588 }
1591 } 1589 }
1592 1590
1593 void TestingAutomationProvider::GetPageType( 1591 void TestingAutomationProvider::GetPageType(
1594 int handle, 1592 int handle,
1595 bool* success, 1593 bool* success,
1596 content::PageType* page_type) { 1594 content::PageType* page_type) {
1597 if (tab_tracker_->ContainsHandle(handle)) { 1595 if (tab_tracker_->ContainsHandle(handle)) {
1598 content::NavigationController* tab = tab_tracker_->GetResource(handle); 1596 NavigationController* tab = tab_tracker_->GetResource(handle);
1599 NavigationEntry* entry = tab->GetActiveEntry(); 1597 NavigationEntry* entry = tab->GetActiveEntry();
1600 *page_type = entry->GetPageType(); 1598 *page_type = entry->GetPageType();
1601 *success = true; 1599 *success = true;
1602 // In order to return the proper result when an interstitial is shown and 1600 // In order to return the proper result when an interstitial is shown and
1603 // no navigation entry were created for it we need to ask the TabContents. 1601 // no navigation entry were created for it we need to ask the TabContents.
1604 if (*page_type == content::PAGE_TYPE_NORMAL && 1602 if (*page_type == content::PAGE_TYPE_NORMAL &&
1605 tab->GetWebContents()->ShowingInterstitialPage()) 1603 tab->GetWebContents()->ShowingInterstitialPage())
1606 *page_type = content::PAGE_TYPE_INTERSTITIAL; 1604 *page_type = content::PAGE_TYPE_INTERSTITIAL;
1607 } else { 1605 } else {
1608 *success = false; 1606 *success = false;
1609 *page_type = content::PAGE_TYPE_NORMAL; 1607 *page_type = content::PAGE_TYPE_NORMAL;
1610 } 1608 }
1611 } 1609 }
1612 1610
1613 void TestingAutomationProvider::GetMetricEventDuration( 1611 void TestingAutomationProvider::GetMetricEventDuration(
1614 const std::string& event_name, 1612 const std::string& event_name,
1615 int* duration_ms) { 1613 int* duration_ms) {
1616 *duration_ms = metric_event_duration_observer_->GetEventDurationMs( 1614 *duration_ms = metric_event_duration_observer_->GetEventDurationMs(
1617 event_name); 1615 event_name);
1618 } 1616 }
1619 1617
1620 void TestingAutomationProvider::ActionOnSSLBlockingPage( 1618 void TestingAutomationProvider::ActionOnSSLBlockingPage(
1621 int handle, 1619 int handle,
1622 bool proceed, 1620 bool proceed,
1623 IPC::Message* reply_message) { 1621 IPC::Message* reply_message) {
1624 if (tab_tracker_->ContainsHandle(handle)) { 1622 if (tab_tracker_->ContainsHandle(handle)) {
1625 content::NavigationController* tab = tab_tracker_->GetResource(handle); 1623 NavigationController* tab = tab_tracker_->GetResource(handle);
1626 NavigationEntry* entry = tab->GetActiveEntry(); 1624 NavigationEntry* entry = tab->GetActiveEntry();
1627 if (entry->GetPageType() == content::PAGE_TYPE_INTERSTITIAL) { 1625 if (entry->GetPageType() == content::PAGE_TYPE_INTERSTITIAL) {
1628 WebContents* web_contents = tab->GetWebContents(); 1626 WebContents* web_contents = tab->GetWebContents();
1629 InterstitialPage* ssl_blocking_page = 1627 InterstitialPage* ssl_blocking_page =
1630 InterstitialPage::GetInterstitialPage( 1628 InterstitialPage::GetInterstitialPage(
1631 static_cast<TabContents*>(web_contents)); 1629 static_cast<TabContents*>(web_contents));
1632 if (ssl_blocking_page) { 1630 if (ssl_blocking_page) {
1633 if (proceed) { 1631 if (proceed) {
1634 new NavigationNotificationObserver(tab, this, reply_message, 1, 1632 new NavigationNotificationObserver(tab, this, reply_message, 1,
1635 false, false); 1633 false, false);
(...skipping 30 matching lines...) Expand all
1666 *menu_item_enabled = false; 1664 *menu_item_enabled = false;
1667 if (browser_tracker_->ContainsHandle(browser_handle)) { 1665 if (browser_tracker_->ContainsHandle(browser_handle)) {
1668 Browser* browser = browser_tracker_->GetResource(browser_handle); 1666 Browser* browser = browser_tracker_->GetResource(browser_handle);
1669 *menu_item_enabled = 1667 *menu_item_enabled =
1670 browser->command_updater()->IsCommandEnabled(message_num); 1668 browser->command_updater()->IsCommandEnabled(message_num);
1671 } 1669 }
1672 } 1670 }
1673 1671
1674 void TestingAutomationProvider::PrintNow(int tab_handle, 1672 void TestingAutomationProvider::PrintNow(int tab_handle,
1675 IPC::Message* reply_message) { 1673 IPC::Message* reply_message) {
1676 content::NavigationController* tab = NULL; 1674 NavigationController* tab = NULL;
1677 WebContents* web_contents = GetWebContentsForHandle(tab_handle, &tab); 1675 WebContents* web_contents = GetWebContentsForHandle(tab_handle, &tab);
1678 if (web_contents) { 1676 if (web_contents) {
1679 FindAndActivateTab(tab); 1677 FindAndActivateTab(tab);
1680 1678
1681 content::NotificationObserver* observer = 1679 content::NotificationObserver* observer =
1682 new DocumentPrintedNotificationObserver(this, reply_message); 1680 new DocumentPrintedNotificationObserver(this, reply_message);
1683 1681
1684 TabContentsWrapper* wrapper = 1682 TabContentsWrapper* wrapper =
1685 TabContentsWrapper::GetCurrentWrapperForContents(web_contents); 1683 TabContentsWrapper::GetCurrentWrapperForContents(web_contents);
1686 if (!wrapper->print_view_manager()->PrintNow()) { 1684 if (!wrapper->print_view_manager()->PrintNow()) {
(...skipping 20 matching lines...) Expand all
1707 save_type > SavePackage::SAVE_AS_COMPLETE_HTML) { 1705 save_type > SavePackage::SAVE_AS_COMPLETE_HTML) {
1708 *success = false; 1706 *success = false;
1709 return; 1707 return;
1710 } 1708 }
1711 1709
1712 if (!tab_tracker_->ContainsHandle(tab_handle)) { 1710 if (!tab_tracker_->ContainsHandle(tab_handle)) {
1713 *success = false; 1711 *success = false;
1714 return; 1712 return;
1715 } 1713 }
1716 1714
1717 content::NavigationController* nav = tab_tracker_->GetResource(tab_handle); 1715 NavigationController* nav = tab_tracker_->GetResource(tab_handle);
1718 Browser* browser = FindAndActivateTab(nav); 1716 Browser* browser = FindAndActivateTab(nav);
1719 if (!browser->command_updater()->IsCommandEnabled(IDC_SAVE_PAGE)) { 1717 if (!browser->command_updater()->IsCommandEnabled(IDC_SAVE_PAGE)) {
1720 *success = false; 1718 *success = false;
1721 return; 1719 return;
1722 } 1720 }
1723 1721
1724 nav->GetWebContents()->SavePage(file_name, dir_path, save_type); 1722 nav->GetWebContents()->SavePage(file_name, dir_path, save_type);
1725 *success = true; 1723 *success = true;
1726 } 1724 }
1727 1725
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after
1966 *success = true; 1964 *success = true;
1967 } 1965 }
1968 } 1966 }
1969 } 1967 }
1970 *success = false; 1968 *success = false;
1971 } 1969 }
1972 1970
1973 void TestingAutomationProvider::GetInfoBarCount(int handle, size_t* count) { 1971 void TestingAutomationProvider::GetInfoBarCount(int handle, size_t* count) {
1974 *count = static_cast<size_t>(-1); // -1 means error. 1972 *count = static_cast<size_t>(-1); // -1 means error.
1975 if (tab_tracker_->ContainsHandle(handle)) { 1973 if (tab_tracker_->ContainsHandle(handle)) {
1976 content::NavigationController* nav_controller = 1974 NavigationController* nav_controller = tab_tracker_->GetResource(handle);
1977 tab_tracker_->GetResource(handle);
1978 if (nav_controller) { 1975 if (nav_controller) {
1979 TabContentsWrapper* wrapper = 1976 TabContentsWrapper* wrapper =
1980 TabContentsWrapper::GetCurrentWrapperForContents( 1977 TabContentsWrapper::GetCurrentWrapperForContents(
1981 nav_controller->GetWebContents()); 1978 nav_controller->GetWebContents());
1982 *count = wrapper->infobar_tab_helper()->infobar_count(); 1979 *count = wrapper->infobar_tab_helper()->infobar_count();
1983 } 1980 }
1984 } 1981 }
1985 } 1982 }
1986 1983
1987 void TestingAutomationProvider::ClickInfoBarAccept( 1984 void TestingAutomationProvider::ClickInfoBarAccept(
1988 int handle, 1985 int handle,
1989 size_t info_bar_index, 1986 size_t info_bar_index,
1990 bool wait_for_navigation, 1987 bool wait_for_navigation,
1991 IPC::Message* reply_message) { 1988 IPC::Message* reply_message) {
1992 bool success = false; 1989 bool success = false;
1993 if (tab_tracker_->ContainsHandle(handle)) { 1990 if (tab_tracker_->ContainsHandle(handle)) {
1994 content::NavigationController* nav_controller = 1991 NavigationController* nav_controller = tab_tracker_->GetResource(handle);
1995 tab_tracker_->GetResource(handle);
1996 if (nav_controller) { 1992 if (nav_controller) {
1997 InfoBarTabHelper* infobar_helper = 1993 InfoBarTabHelper* infobar_helper =
1998 TabContentsWrapper::GetCurrentWrapperForContents( 1994 TabContentsWrapper::GetCurrentWrapperForContents(
1999 nav_controller->GetWebContents())->infobar_tab_helper(); 1995 nav_controller->GetWebContents())->infobar_tab_helper();
2000 if (info_bar_index < infobar_helper->infobar_count()) { 1996 if (info_bar_index < infobar_helper->infobar_count()) {
2001 if (wait_for_navigation) { 1997 if (wait_for_navigation) {
2002 new NavigationNotificationObserver(nav_controller, this, 1998 new NavigationNotificationObserver(nav_controller, this,
2003 reply_message, 1, false, false); 1999 reply_message, 1, false, false);
2004 } 2000 }
2005 InfoBarDelegate* delegate = 2001 InfoBarDelegate* delegate =
(...skipping 18 matching lines...) Expand all
2024 void TestingAutomationProvider::GetLastNavigationTime( 2020 void TestingAutomationProvider::GetLastNavigationTime(
2025 int handle, 2021 int handle,
2026 int64* last_navigation_time) { 2022 int64* last_navigation_time) {
2027 base::Time time(tab_tracker_->GetLastNavigationTime(handle)); 2023 base::Time time(tab_tracker_->GetLastNavigationTime(handle));
2028 *last_navigation_time = time.ToInternalValue(); 2024 *last_navigation_time = time.ToInternalValue();
2029 } 2025 }
2030 2026
2031 void TestingAutomationProvider::WaitForNavigation(int handle, 2027 void TestingAutomationProvider::WaitForNavigation(int handle,
2032 int64 last_navigation_time, 2028 int64 last_navigation_time,
2033 IPC::Message* reply_message) { 2029 IPC::Message* reply_message) {
2034 content::NavigationController* controller = tab_tracker_->GetResource(handle); 2030 NavigationController* controller = tab_tracker_->GetResource(handle);
2035 base::Time time(tab_tracker_->GetLastNavigationTime(handle)); 2031 base::Time time(tab_tracker_->GetLastNavigationTime(handle));
2036 2032
2037 if (time.ToInternalValue() > last_navigation_time || !controller) { 2033 if (time.ToInternalValue() > last_navigation_time || !controller) {
2038 AutomationMsg_WaitForNavigation::WriteReplyParams(reply_message, 2034 AutomationMsg_WaitForNavigation::WriteReplyParams(reply_message,
2039 controller == NULL ? AUTOMATION_MSG_NAVIGATION_ERROR : 2035 controller == NULL ? AUTOMATION_MSG_NAVIGATION_ERROR :
2040 AUTOMATION_MSG_NAVIGATION_SUCCESS); 2036 AUTOMATION_MSG_NAVIGATION_SUCCESS);
2041 Send(reply_message); 2037 Send(reply_message);
2042 return; 2038 return;
2043 } 2039 }
2044 2040
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
2155 return; 2151 return;
2156 } 2152 }
2157 2153
2158 // Set up an observer (it will delete itself). 2154 // Set up an observer (it will delete itself).
2159 new AppModalDialogShownObserver(this, reply_message); 2155 new AppModalDialogShownObserver(this, reply_message);
2160 } 2156 }
2161 2157
2162 void TestingAutomationProvider::GoBackBlockUntilNavigationsComplete( 2158 void TestingAutomationProvider::GoBackBlockUntilNavigationsComplete(
2163 int handle, int number_of_navigations, IPC::Message* reply_message) { 2159 int handle, int number_of_navigations, IPC::Message* reply_message) {
2164 if (tab_tracker_->ContainsHandle(handle)) { 2160 if (tab_tracker_->ContainsHandle(handle)) {
2165 content::NavigationController* tab = tab_tracker_->GetResource(handle); 2161 NavigationController* tab = tab_tracker_->GetResource(handle);
2166 Browser* browser = FindAndActivateTab(tab); 2162 Browser* browser = FindAndActivateTab(tab);
2167 if (browser && browser->command_updater()->IsCommandEnabled(IDC_BACK)) { 2163 if (browser && browser->command_updater()->IsCommandEnabled(IDC_BACK)) {
2168 new NavigationNotificationObserver(tab, this, reply_message, 2164 new NavigationNotificationObserver(tab, this, reply_message,
2169 number_of_navigations, false, false); 2165 number_of_navigations, false, false);
2170 browser->GoBack(CURRENT_TAB); 2166 browser->GoBack(CURRENT_TAB);
2171 return; 2167 return;
2172 } 2168 }
2173 } 2169 }
2174 2170
2175 AutomationMsg_GoBackBlockUntilNavigationsComplete::WriteReplyParams( 2171 AutomationMsg_GoBackBlockUntilNavigationsComplete::WriteReplyParams(
2176 reply_message, AUTOMATION_MSG_NAVIGATION_ERROR); 2172 reply_message, AUTOMATION_MSG_NAVIGATION_ERROR);
2177 Send(reply_message); 2173 Send(reply_message);
2178 } 2174 }
2179 2175
2180 void TestingAutomationProvider::GoForwardBlockUntilNavigationsComplete( 2176 void TestingAutomationProvider::GoForwardBlockUntilNavigationsComplete(
2181 int handle, int number_of_navigations, IPC::Message* reply_message) { 2177 int handle, int number_of_navigations, IPC::Message* reply_message) {
2182 if (tab_tracker_->ContainsHandle(handle)) { 2178 if (tab_tracker_->ContainsHandle(handle)) {
2183 content::NavigationController* tab = tab_tracker_->GetResource(handle); 2179 NavigationController* tab = tab_tracker_->GetResource(handle);
2184 Browser* browser = FindAndActivateTab(tab); 2180 Browser* browser = FindAndActivateTab(tab);
2185 if (browser && browser->command_updater()->IsCommandEnabled(IDC_FORWARD)) { 2181 if (browser && browser->command_updater()->IsCommandEnabled(IDC_FORWARD)) {
2186 new NavigationNotificationObserver(tab, this, reply_message, 2182 new NavigationNotificationObserver(tab, this, reply_message,
2187 number_of_navigations, false, false); 2183 number_of_navigations, false, false);
2188 browser->GoForward(CURRENT_TAB); 2184 browser->GoForward(CURRENT_TAB);
2189 return; 2185 return;
2190 } 2186 }
2191 } 2187 }
2192 2188
2193 AutomationMsg_GoForwardBlockUntilNavigationsComplete::WriteReplyParams( 2189 AutomationMsg_GoForwardBlockUntilNavigationsComplete::WriteReplyParams(
(...skipping 22 matching lines...) Expand all
2216 else 2212 else
2217 browser->window()->GetDownloadShelf()->Close(); 2213 browser->window()->GetDownloadShelf()->Close();
2218 #endif 2214 #endif
2219 } 2215 }
2220 } 2216 }
2221 } 2217 }
2222 2218
2223 void TestingAutomationProvider::GetBlockedPopupCount(int handle, int* count) { 2219 void TestingAutomationProvider::GetBlockedPopupCount(int handle, int* count) {
2224 *count = -1; // -1 is the error code 2220 *count = -1; // -1 is the error code
2225 if (tab_tracker_->ContainsHandle(handle)) { 2221 if (tab_tracker_->ContainsHandle(handle)) {
2226 content::NavigationController* nav_controller = 2222 NavigationController* nav_controller = tab_tracker_->GetResource(handle);
2227 tab_tracker_->GetResource(handle);
2228 TabContentsWrapper* tab_contents = 2223 TabContentsWrapper* tab_contents =
2229 TabContentsWrapper::GetCurrentWrapperForContents( 2224 TabContentsWrapper::GetCurrentWrapperForContents(
2230 nav_controller->GetWebContents()); 2225 nav_controller->GetWebContents());
2231 if (tab_contents) { 2226 if (tab_contents) {
2232 BlockedContentTabHelper* blocked_content = 2227 BlockedContentTabHelper* blocked_content =
2233 tab_contents->blocked_content_tab_helper(); 2228 tab_contents->blocked_content_tab_helper();
2234 *count = static_cast<int>(blocked_content->GetBlockedContentsCount()); 2229 *count = static_cast<int>(blocked_content->GetBlockedContentsCount());
2235 } 2230 }
2236 } 2231 }
2237 } 2232 }
(...skipping 734 matching lines...) Expand 10 before | Expand all | Expand 10 after
2972 IPC::Message* reply_message) { 2967 IPC::Message* reply_message) {
2973 AutomationJSONReply reply(this, reply_message); 2968 AutomationJSONReply reply(this, reply_message);
2974 int tab_index; 2969 int tab_index;
2975 TabContents* tab_contents = NULL; 2970 TabContents* tab_contents = NULL;
2976 if (!args->GetInteger("tab_index", &tab_index) || 2971 if (!args->GetInteger("tab_index", &tab_index) ||
2977 !(tab_contents = browser->GetTabContentsAt(tab_index))) { 2972 !(tab_contents = browser->GetTabContentsAt(tab_index))) {
2978 reply.SendError("tab_index missing or invalid."); 2973 reply.SendError("tab_index missing or invalid.");
2979 return; 2974 return;
2980 } 2975 }
2981 scoped_ptr<DictionaryValue> return_value(new DictionaryValue); 2976 scoped_ptr<DictionaryValue> return_value(new DictionaryValue);
2982 const content::NavigationController& controller = 2977 const NavigationController& controller = tab_contents->GetController();
2983 tab_contents->GetController();
2984 NavigationEntry* nav_entry = controller.GetActiveEntry(); 2978 NavigationEntry* nav_entry = controller.GetActiveEntry();
2985 DCHECK(nav_entry); 2979 DCHECK(nav_entry);
2986 2980
2987 // Security info. 2981 // Security info.
2988 DictionaryValue* ssl = new DictionaryValue; 2982 DictionaryValue* ssl = new DictionaryValue;
2989 std::map<content::SecurityStyle, std::string> style_to_string; 2983 std::map<content::SecurityStyle, std::string> style_to_string;
2990 style_to_string[content::SECURITY_STYLE_UNKNOWN] = "SECURITY_STYLE_UNKNOWN"; 2984 style_to_string[content::SECURITY_STYLE_UNKNOWN] = "SECURITY_STYLE_UNKNOWN";
2991 style_to_string[content::SECURITY_STYLE_UNAUTHENTICATED] = 2985 style_to_string[content::SECURITY_STYLE_UNAUTHENTICATED] =
2992 "SECURITY_STYLE_UNAUTHENTICATED"; 2986 "SECURITY_STYLE_UNAUTHENTICATED";
2993 style_to_string[content::SECURITY_STYLE_AUTHENTICATION_BROKEN] = 2987 style_to_string[content::SECURITY_STYLE_AUTHENTICATION_BROKEN] =
(...skipping 543 matching lines...) Expand 10 before | Expand all | Expand 10 after
3537 AutocompleteEditModel* model = loc_bar->location_entry()->model(); 3531 AutocompleteEditModel* model = loc_bar->location_entry()->model();
3538 model->OnUpOrDownKeyPressed(count); 3532 model->OnUpOrDownKeyPressed(count);
3539 reply.SendSuccess(NULL); 3533 reply.SendSuccess(NULL);
3540 } 3534 }
3541 3535
3542 // Sample json input: { "command": "OmniboxAcceptInput" } 3536 // Sample json input: { "command": "OmniboxAcceptInput" }
3543 void TestingAutomationProvider::OmniboxAcceptInput( 3537 void TestingAutomationProvider::OmniboxAcceptInput(
3544 Browser* browser, 3538 Browser* browser,
3545 DictionaryValue* args, 3539 DictionaryValue* args,
3546 IPC::Message* reply_message) { 3540 IPC::Message* reply_message) {
3547 content::NavigationController& controller = 3541 NavigationController& controller =
3548 browser->GetSelectedWebContents()->GetController(); 3542 browser->GetSelectedWebContents()->GetController();
3549 new OmniboxAcceptNotificationObserver(&controller, this, reply_message); 3543 new OmniboxAcceptNotificationObserver(&controller, this, reply_message);
3550 browser->window()->GetLocationBar()->AcceptInput(); 3544 browser->window()->GetLocationBar()->AcceptInput();
3551 } 3545 }
3552 3546
3553 // Sample json input: { "command": "GetInstantInfo" } 3547 // Sample json input: { "command": "GetInstantInfo" }
3554 void TestingAutomationProvider::GetInstantInfo(Browser* browser, 3548 void TestingAutomationProvider::GetInstantInfo(Browser* browser,
3555 DictionaryValue* args, 3549 DictionaryValue* args,
3556 IPC::Message* reply_message) { 3550 IPC::Message* reply_message) {
3557 DictionaryValue* info = new DictionaryValue; 3551 DictionaryValue* info = new DictionaryValue;
(...skipping 2629 matching lines...) Expand 10 before | Expand all | Expand 10 after
6187 IPC::Message* reply_message) { 6181 IPC::Message* reply_message) {
6188 if (SendErrorIfModalDialogActive(this, reply_message)) 6182 if (SendErrorIfModalDialogActive(this, reply_message))
6189 return; 6183 return;
6190 6184
6191 TabContents* tab_contents; 6185 TabContents* tab_contents;
6192 std::string error; 6186 std::string error;
6193 if (!GetTabFromJSONArgs(args, &tab_contents, &error)) { 6187 if (!GetTabFromJSONArgs(args, &tab_contents, &error)) {
6194 AutomationJSONReply(this, reply_message).SendError(error); 6188 AutomationJSONReply(this, reply_message).SendError(error);
6195 return; 6189 return;
6196 } 6190 }
6197 content::NavigationController& controller = tab_contents->GetController(); 6191 NavigationController& controller = tab_contents->GetController();
6198 if (!controller.CanGoForward()) { 6192 if (!controller.CanGoForward()) {
6199 DictionaryValue dict; 6193 DictionaryValue dict;
6200 dict.SetBoolean("did_go_forward", false); 6194 dict.SetBoolean("did_go_forward", false);
6201 AutomationJSONReply(this, reply_message).SendSuccess(&dict); 6195 AutomationJSONReply(this, reply_message).SendSuccess(&dict);
6202 return; 6196 return;
6203 } 6197 }
6204 new NavigationNotificationObserver(&controller, this, reply_message, 6198 new NavigationNotificationObserver(&controller, this, reply_message,
6205 1, false, true); 6199 1, false, true);
6206 controller.GoForward(); 6200 controller.GoForward();
6207 } 6201 }
6208 6202
6209 void TestingAutomationProvider::GoBack( 6203 void TestingAutomationProvider::GoBack(
6210 DictionaryValue* args, 6204 DictionaryValue* args,
6211 IPC::Message* reply_message) { 6205 IPC::Message* reply_message) {
6212 if (SendErrorIfModalDialogActive(this, reply_message)) 6206 if (SendErrorIfModalDialogActive(this, reply_message))
6213 return; 6207 return;
6214 6208
6215 TabContents* tab_contents; 6209 TabContents* tab_contents;
6216 std::string error; 6210 std::string error;
6217 if (!GetTabFromJSONArgs(args, &tab_contents, &error)) { 6211 if (!GetTabFromJSONArgs(args, &tab_contents, &error)) {
6218 AutomationJSONReply(this, reply_message).SendError(error); 6212 AutomationJSONReply(this, reply_message).SendError(error);
6219 return; 6213 return;
6220 } 6214 }
6221 content::NavigationController& controller = tab_contents->GetController(); 6215 NavigationController& controller = tab_contents->GetController();
6222 if (!controller.CanGoBack()) { 6216 if (!controller.CanGoBack()) {
6223 DictionaryValue dict; 6217 DictionaryValue dict;
6224 dict.SetBoolean("did_go_back", false); 6218 dict.SetBoolean("did_go_back", false);
6225 AutomationJSONReply(this, reply_message).SendSuccess(&dict); 6219 AutomationJSONReply(this, reply_message).SendSuccess(&dict);
6226 return; 6220 return;
6227 } 6221 }
6228 new NavigationNotificationObserver(&controller, this, reply_message, 6222 new NavigationNotificationObserver(&controller, this, reply_message,
6229 1, false, true); 6223 1, false, true);
6230 controller.GoBack(); 6224 controller.GoBack();
6231 } 6225 }
6232 6226
6233 void TestingAutomationProvider::ReloadJSON( 6227 void TestingAutomationProvider::ReloadJSON(
6234 DictionaryValue* args, 6228 DictionaryValue* args,
6235 IPC::Message* reply_message) { 6229 IPC::Message* reply_message) {
6236 if (SendErrorIfModalDialogActive(this, reply_message)) 6230 if (SendErrorIfModalDialogActive(this, reply_message))
6237 return; 6231 return;
6238 6232
6239 TabContents* tab_contents; 6233 TabContents* tab_contents;
6240 std::string error; 6234 std::string error;
6241 if (!GetTabFromJSONArgs(args, &tab_contents, &error)) { 6235 if (!GetTabFromJSONArgs(args, &tab_contents, &error)) {
6242 AutomationJSONReply(this, reply_message).SendError(error); 6236 AutomationJSONReply(this, reply_message).SendError(error);
6243 return; 6237 return;
6244 } 6238 }
6245 content::NavigationController& controller = tab_contents->GetController(); 6239 NavigationController& controller = tab_contents->GetController();
6246 new NavigationNotificationObserver(&controller, this, reply_message, 6240 new NavigationNotificationObserver(&controller, this, reply_message,
6247 1, false, true); 6241 1, false, true);
6248 controller.Reload(false); 6242 controller.Reload(false);
6249 } 6243 }
6250 6244
6251 void TestingAutomationProvider::CaptureEntirePageJSON( 6245 void TestingAutomationProvider::CaptureEntirePageJSON(
6252 DictionaryValue* args, 6246 DictionaryValue* args,
6253 IPC::Message* reply_message) { 6247 IPC::Message* reply_message) {
6254 if (SendErrorIfModalDialogActive(this, reply_message)) 6248 if (SendErrorIfModalDialogActive(this, reply_message))
6255 return; 6249 return;
(...skipping 308 matching lines...) Expand 10 before | Expand all | Expand 10 after
6564 void TestingAutomationProvider::WaitForInfoBarCount( 6558 void TestingAutomationProvider::WaitForInfoBarCount(
6565 int tab_handle, 6559 int tab_handle,
6566 size_t target_count, 6560 size_t target_count,
6567 IPC::Message* reply_message) { 6561 IPC::Message* reply_message) {
6568 if (!tab_tracker_->ContainsHandle(tab_handle)) { 6562 if (!tab_tracker_->ContainsHandle(tab_handle)) {
6569 AutomationMsg_WaitForInfoBarCount::WriteReplyParams(reply_message_, false); 6563 AutomationMsg_WaitForInfoBarCount::WriteReplyParams(reply_message_, false);
6570 Send(reply_message_); 6564 Send(reply_message_);
6571 return; 6565 return;
6572 } 6566 }
6573 6567
6574 content::NavigationController* controller = 6568 NavigationController* controller = tab_tracker_->GetResource(tab_handle);
6575 tab_tracker_->GetResource(tab_handle);
6576 if (!controller) { 6569 if (!controller) {
6577 AutomationMsg_WaitForInfoBarCount::WriteReplyParams(reply_message_, false); 6570 AutomationMsg_WaitForInfoBarCount::WriteReplyParams(reply_message_, false);
6578 Send(reply_message_); 6571 Send(reply_message_);
6579 return; 6572 return;
6580 } 6573 }
6581 6574
6582 // The delegate will delete itself. 6575 // The delegate will delete itself.
6583 new InfoBarCountObserver(this, reply_message, 6576 new InfoBarCountObserver(this, reply_message,
6584 TabContentsWrapper::GetCurrentWrapperForContents( 6577 TabContentsWrapper::GetCurrentWrapperForContents(
6585 controller->GetWebContents()), target_count); 6578 controller->GetWebContents()), target_count);
6586 } 6579 }
6587 6580
6588 // Gets the current used encoding name of the page in the specified tab. 6581 // Gets the current used encoding name of the page in the specified tab.
6589 void TestingAutomationProvider::GetPageCurrentEncoding( 6582 void TestingAutomationProvider::GetPageCurrentEncoding(
6590 int tab_handle, std::string* current_encoding) { 6583 int tab_handle, std::string* current_encoding) {
6591 if (tab_tracker_->ContainsHandle(tab_handle)) { 6584 if (tab_tracker_->ContainsHandle(tab_handle)) {
6592 content::NavigationController* nav = tab_tracker_->GetResource(tab_handle); 6585 NavigationController* nav = tab_tracker_->GetResource(tab_handle);
6593 Browser* browser = FindAndActivateTab(nav); 6586 Browser* browser = FindAndActivateTab(nav);
6594 if (browser->command_updater()->IsCommandEnabled(IDC_ENCODING_MENU)) 6587 if (browser->command_updater()->IsCommandEnabled(IDC_ENCODING_MENU))
6595 *current_encoding = nav->GetWebContents()->GetEncoding(); 6588 *current_encoding = nav->GetWebContents()->GetEncoding();
6596 } 6589 }
6597 } 6590 }
6598 6591
6599 void TestingAutomationProvider::ShutdownSessionService(int handle, 6592 void TestingAutomationProvider::ShutdownSessionService(int handle,
6600 bool* result) { 6593 bool* result) {
6601 if (browser_tracker_->ContainsHandle(handle)) { 6594 if (browser_tracker_->ContainsHandle(handle)) {
6602 Browser* browser = browser_tracker_->GetResource(handle); 6595 Browser* browser = browser_tracker_->GetResource(handle);
(...skipping 25 matching lines...) Expand all
6628 setting); 6621 setting);
6629 } 6622 }
6630 *success = true; 6623 *success = true;
6631 } 6624 }
6632 } 6625 }
6633 6626
6634 void TestingAutomationProvider::LoadBlockedPlugins(int tab_handle, 6627 void TestingAutomationProvider::LoadBlockedPlugins(int tab_handle,
6635 bool* success) { 6628 bool* success) {
6636 *success = false; 6629 *success = false;
6637 if (tab_tracker_->ContainsHandle(tab_handle)) { 6630 if (tab_tracker_->ContainsHandle(tab_handle)) {
6638 content::NavigationController* nav = tab_tracker_->GetResource(tab_handle); 6631 NavigationController* nav = tab_tracker_->GetResource(tab_handle);
6639 if (!nav) 6632 if (!nav)
6640 return; 6633 return;
6641 WebContents* contents = nav->GetWebContents(); 6634 WebContents* contents = nav->GetWebContents();
6642 if (!contents) 6635 if (!contents)
6643 return; 6636 return;
6644 RenderViewHost* host = contents->GetRenderViewHost(); 6637 RenderViewHost* host = contents->GetRenderViewHost();
6645 host->Send(new ChromeViewMsg_LoadBlockedPlugins(host->routing_id())); 6638 host->Send(new ChromeViewMsg_LoadBlockedPlugins(host->routing_id()));
6646 *success = true; 6639 *success = true;
6647 } 6640 }
6648 } 6641 }
6649 6642
6650 void TestingAutomationProvider::ResetToDefaultTheme() { 6643 void TestingAutomationProvider::ResetToDefaultTheme() {
6651 ThemeServiceFactory::GetForProfile(profile_)->UseDefaultTheme(); 6644 ThemeServiceFactory::GetForProfile(profile_)->UseDefaultTheme();
6652 } 6645 }
6653 6646
6654 void TestingAutomationProvider::WaitForProcessLauncherThreadToGoIdle( 6647 void TestingAutomationProvider::WaitForProcessLauncherThreadToGoIdle(
6655 IPC::Message* reply_message) { 6648 IPC::Message* reply_message) {
6656 new WaitForProcessLauncherThreadToGoIdleObserver(this, reply_message); 6649 new WaitForProcessLauncherThreadToGoIdleObserver(this, reply_message);
6657 } 6650 }
6658 6651
6659 void TestingAutomationProvider::GetParentBrowserOfTab(int tab_handle, 6652 void TestingAutomationProvider::GetParentBrowserOfTab(int tab_handle,
6660 int* browser_handle, 6653 int* browser_handle,
6661 bool* success) { 6654 bool* success) {
6662 *success = false; 6655 *success = false;
6663 if (tab_tracker_->ContainsHandle(tab_handle)) { 6656 if (tab_tracker_->ContainsHandle(tab_handle)) {
6664 content::NavigationController* controller = 6657 NavigationController* controller = tab_tracker_->GetResource(tab_handle);
6665 tab_tracker_->GetResource(tab_handle);
6666 int index; 6658 int index;
6667 Browser* browser = Browser::GetBrowserForController(controller, &index); 6659 Browser* browser = Browser::GetBrowserForController(controller, &index);
6668 if (browser) { 6660 if (browser) {
6669 *browser_handle = browser_tracker_->Add(browser); 6661 *browser_handle = browser_tracker_->Add(browser);
6670 *success = true; 6662 *success = true;
6671 } 6663 }
6672 } 6664 }
6673 } 6665 }
6674 6666
6675 // TODO(brettw) change this to accept GURLs when history supports it 6667 // TODO(brettw) change this to accept GURLs when history supports it
(...skipping 16 matching lines...) Expand all
6692 6684
6693 Send(reply_message_); 6685 Send(reply_message_);
6694 redirect_query_ = 0; 6686 redirect_query_ = 0;
6695 reply_message_ = NULL; 6687 reply_message_ = NULL;
6696 } 6688 }
6697 6689
6698 void TestingAutomationProvider::OnRemoveProvider() { 6690 void TestingAutomationProvider::OnRemoveProvider() {
6699 if (g_browser_process) 6691 if (g_browser_process)
6700 g_browser_process->GetAutomationProviderList()->RemoveProvider(this); 6692 g_browser_process->GetAutomationProviderList()->RemoveProvider(this);
6701 } 6693 }
OLDNEW
« no previous file with comments | « chrome/browser/automation/automation_tab_tracker.cc ('k') | chrome/browser/browser_focus_uitest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698