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 <map> | 5 #include <map> |
6 #include <set> | 6 #include <set> |
7 #include <string> | 7 #include <string> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/base_switches.h" | 10 #include "base/base_switches.h" |
(...skipping 301 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
312 | 312 |
313 // There shouldn't be any extra jobs. | 313 // There shouldn't be any extra jobs. |
314 EXPECT_LE(num_jobs_started_, num_jobs_to_wait_for_); | 314 EXPECT_LE(num_jobs_started_, num_jobs_to_wait_for_); |
315 | 315 |
316 // Should never be greater, but if it is, go ahead and exit the message loop | 316 // Should never be greater, but if it is, go ahead and exit the message loop |
317 // to try and avoid hanging. | 317 // to try and avoid hanging. |
318 if (num_jobs_started_ >= num_jobs_to_wait_for_) { | 318 if (num_jobs_started_ >= num_jobs_to_wait_for_) { |
319 last_num_jobs_to_wait_for_ = num_jobs_to_wait_for_; | 319 last_num_jobs_to_wait_for_ = num_jobs_to_wait_for_; |
320 num_jobs_to_wait_for_ = 0; | 320 num_jobs_to_wait_for_ = 0; |
321 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, | 321 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, |
322 base::MessageLoop::QuitClosure()); | 322 base::MessageLoop::QuitWhenIdleClosure()); |
323 } | 323 } |
324 } | 324 } |
325 | 325 |
326 // static | 326 // static |
327 void URLRequestTimeoutOnDemandJob::FailOrAbandonJobsOnIOThread( | 327 void URLRequestTimeoutOnDemandJob::FailOrAbandonJobsOnIOThread( |
328 int expected_num_jobs, | 328 int expected_num_jobs, |
329 EndJobOperation end_job_operation, | 329 EndJobOperation end_job_operation, |
330 const net::SSLInfo& ssl_info) { | 330 const net::SSLInfo& ssl_info) { |
331 ASSERT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 331 ASSERT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
332 ASSERT_LT(0, expected_num_jobs); | 332 ASSERT_LT(0, expected_num_jobs); |
(...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
644 const content::NotificationSource& source, | 644 const content::NotificationSource& source, |
645 const content::NotificationDetails& details) { | 645 const content::NotificationDetails& details) { |
646 ASSERT_EQ(type, content::NOTIFICATION_LOAD_STOP); | 646 ASSERT_EQ(type, content::NOTIFICATION_LOAD_STOP); |
647 content::NavigationController* controller = | 647 content::NavigationController* controller = |
648 content::Source<content::NavigationController>(source).ptr(); | 648 content::Source<content::NavigationController>(source).ptr(); |
649 ++num_navigations_; | 649 ++num_navigations_; |
650 ++tab_navigation_map_[controller->GetWebContents()]; | 650 ++tab_navigation_map_[controller->GetWebContents()]; |
651 if (waiting_for_navigation_ && | 651 if (waiting_for_navigation_ && |
652 num_navigations_to_wait_for_ == num_navigations_) { | 652 num_navigations_to_wait_for_ == num_navigations_) { |
653 waiting_for_navigation_ = false; | 653 waiting_for_navigation_ = false; |
654 base::MessageLoopForUI::current()->Quit(); | 654 base::MessageLoopForUI::current()->QuitWhenIdle(); |
655 } | 655 } |
656 } | 656 } |
657 | 657 |
658 // This observer creates a list of loading tabs, and then waits for them all | 658 // This observer creates a list of loading tabs, and then waits for them all |
659 // to stop loading and have the kInternetConnectedTitle. | 659 // to stop loading and have the kInternetConnectedTitle. |
660 // | 660 // |
661 // This is for the specific purpose of observing tabs time out after logging in | 661 // This is for the specific purpose of observing tabs time out after logging in |
662 // to a captive portal, which will then cause them to reload. | 662 // to a captive portal, which will then cause them to reload. |
663 // MultiNavigationObserver is insufficient for this because there may or may not | 663 // MultiNavigationObserver is insufficient for this because there may or may not |
664 // be a LOAD_STOP event between the timeout and the reload. | 664 // be a LOAD_STOP event between the timeout and the reload. |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
734 ASSERT_EQ(0u, tabs_navigated_to_final_destination_.count(contents)); | 734 ASSERT_EQ(0u, tabs_navigated_to_final_destination_.count(contents)); |
735 | 735 |
736 if (contents->GetTitle() != base::ASCIIToUTF16(kInternetConnectedTitle)) | 736 if (contents->GetTitle() != base::ASCIIToUTF16(kInternetConnectedTitle)) |
737 return; | 737 return; |
738 tabs_navigated_to_final_destination_.insert(contents); | 738 tabs_navigated_to_final_destination_.insert(contents); |
739 | 739 |
740 if (waiting_for_navigation_ && | 740 if (waiting_for_navigation_ && |
741 tabs_needing_navigation_.size() == | 741 tabs_needing_navigation_.size() == |
742 tabs_navigated_to_final_destination_.size()) { | 742 tabs_navigated_to_final_destination_.size()) { |
743 waiting_for_navigation_ = false; | 743 waiting_for_navigation_ = false; |
744 base::MessageLoopForUI::current()->Quit(); | 744 base::MessageLoopForUI::current()->QuitWhenIdle(); |
745 } | 745 } |
746 } | 746 } |
747 | 747 |
748 // An observer for watching the CaptivePortalService. It tracks the last | 748 // An observer for watching the CaptivePortalService. It tracks the last |
749 // received result and the total number of received results. | 749 // received result and the total number of received results. |
750 class CaptivePortalObserver : public content::NotificationObserver { | 750 class CaptivePortalObserver : public content::NotificationObserver { |
751 public: | 751 public: |
752 explicit CaptivePortalObserver(Profile* profile); | 752 explicit CaptivePortalObserver(Profile* profile); |
753 | 753 |
754 // Runs the message loop until exactly |update_count| captive portal | 754 // Runs the message loop until exactly |update_count| captive portal |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
828 EXPECT_EQ(captive_portal_result_, results->previous_result); | 828 EXPECT_EQ(captive_portal_result_, results->previous_result); |
829 EXPECT_EQ(captive_portal_service_->last_detection_result(), | 829 EXPECT_EQ(captive_portal_service_->last_detection_result(), |
830 results->result); | 830 results->result); |
831 | 831 |
832 captive_portal_result_ = results->result; | 832 captive_portal_result_ = results->result; |
833 ++num_results_received_; | 833 ++num_results_received_; |
834 | 834 |
835 if (waiting_for_result_ && | 835 if (waiting_for_result_ && |
836 num_results_to_wait_for_ == num_results_received_) { | 836 num_results_to_wait_for_ == num_results_received_) { |
837 waiting_for_result_ = false; | 837 waiting_for_result_ = false; |
838 base::MessageLoop::current()->Quit(); | 838 base::MessageLoop::current()->QuitWhenIdle(); |
839 } | 839 } |
840 } | 840 } |
841 | 841 |
842 // This observer waits for the SSLErrorHandler to start an interstitial timer | 842 // This observer waits for the SSLErrorHandler to start an interstitial timer |
843 // for the given web contents. | 843 // for the given web contents. |
844 class SSLInterstitialTimerObserver { | 844 class SSLInterstitialTimerObserver { |
845 public: | 845 public: |
846 explicit SSLInterstitialTimerObserver(content::WebContents* web_contents); | 846 explicit SSLInterstitialTimerObserver(content::WebContents* web_contents); |
847 ~SSLInterstitialTimerObserver(); | 847 ~SSLInterstitialTimerObserver(); |
848 | 848 |
(...skipping 2022 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2871 | 2871 |
2872 EXPECT_EQ(CaptivePortalTabReloader::STATE_NEEDS_RELOAD, | 2872 EXPECT_EQ(CaptivePortalTabReloader::STATE_NEEDS_RELOAD, |
2873 GetStateOfTabReloaderAt(browser(), broken_tab_index)); | 2873 GetStateOfTabReloaderAt(browser(), broken_tab_index)); |
2874 | 2874 |
2875 WaitForInterstitialAttach(broken_tab_contents); | 2875 WaitForInterstitialAttach(broken_tab_contents); |
2876 portal_observer.WaitForResults(1); | 2876 portal_observer.WaitForResults(1); |
2877 | 2877 |
2878 EXPECT_EQ(SSLBlockingPage::kTypeForTesting, | 2878 EXPECT_EQ(SSLBlockingPage::kTypeForTesting, |
2879 GetInterstitialType(broken_tab_contents)); | 2879 GetInterstitialType(broken_tab_contents)); |
2880 } | 2880 } |
OLD | NEW |