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 | 7 |
8 #include "base/basictypes.h" | 8 #include "base/basictypes.h" |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
109 // captive portal. | 109 // captive portal. |
110 const char* const kInternetConnectedTitle = "Title Of Awesomeness"; | 110 const char* const kInternetConnectedTitle = "Title Of Awesomeness"; |
111 | 111 |
112 // A URL request job that hangs until FailJobs() is called. Started jobs | 112 // A URL request job that hangs until FailJobs() is called. Started jobs |
113 // are stored in a static class variable containing a linked list so that | 113 // are stored in a static class variable containing a linked list so that |
114 // FailJobs() can locate them. | 114 // FailJobs() can locate them. |
115 class URLRequestTimeoutOnDemandJob : public net::URLRequestJob, | 115 class URLRequestTimeoutOnDemandJob : public net::URLRequestJob, |
116 public base::NonThreadSafe { | 116 public base::NonThreadSafe { |
117 public: | 117 public: |
118 // net::URLRequestJob: | 118 // net::URLRequestJob: |
119 virtual void Start() OVERRIDE; | 119 virtual void Start() override; |
120 | 120 |
121 // All the public static methods below can be called on any thread. | 121 // All the public static methods below can be called on any thread. |
122 | 122 |
123 // Waits for exactly |num_jobs|. | 123 // Waits for exactly |num_jobs|. |
124 static void WaitForJobs(int num_jobs); | 124 static void WaitForJobs(int num_jobs); |
125 | 125 |
126 // Fails all active URLRequestTimeoutOnDemandJobs with connection timeouts. | 126 // Fails all active URLRequestTimeoutOnDemandJobs with connection timeouts. |
127 // There are expected to be exactly |expected_num_jobs| waiting for | 127 // There are expected to be exactly |expected_num_jobs| waiting for |
128 // failure. The only way to gaurantee this is with an earlier call to | 128 // failure. The only way to gaurantee this is with an earlier call to |
129 // WaitForJobs, so makes sure there has been a matching WaitForJobs call. | 129 // WaitForJobs, so makes sure there has been a matching WaitForJobs call. |
(...skipping 385 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
515 int NumNavigationsForTab(WebContents* web_contents) const; | 515 int NumNavigationsForTab(WebContents* web_contents) const; |
516 | 516 |
517 // The number of LOAD_STOP events since |this| was created. | 517 // The number of LOAD_STOP events since |this| was created. |
518 int num_navigations() const { return num_navigations_; } | 518 int num_navigations() const { return num_navigations_; } |
519 | 519 |
520 private: | 520 private: |
521 typedef std::map<const WebContents*, int> TabNavigationMap; | 521 typedef std::map<const WebContents*, int> TabNavigationMap; |
522 | 522 |
523 // content::NotificationObserver: | 523 // content::NotificationObserver: |
524 virtual void Observe(int type, const content::NotificationSource& source, | 524 virtual void Observe(int type, const content::NotificationSource& source, |
525 const content::NotificationDetails& details) OVERRIDE; | 525 const content::NotificationDetails& details) override; |
526 | 526 |
527 int num_navigations_; | 527 int num_navigations_; |
528 | 528 |
529 // Map of how many times each tab has navigated since |this| was created. | 529 // Map of how many times each tab has navigated since |this| was created. |
530 TabNavigationMap tab_navigation_map_; | 530 TabNavigationMap tab_navigation_map_; |
531 | 531 |
532 // Total number of navigations to wait for. Value only matters when | 532 // Total number of navigations to wait for. Value only matters when |
533 // |waiting_for_navigation_| is true. | 533 // |waiting_for_navigation_| is true. |
534 int num_navigations_to_wait_for_; | 534 int num_navigations_to_wait_for_; |
535 | 535 |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
605 FailLoadsAfterLoginObserver(); | 605 FailLoadsAfterLoginObserver(); |
606 virtual ~FailLoadsAfterLoginObserver(); | 606 virtual ~FailLoadsAfterLoginObserver(); |
607 | 607 |
608 void WaitForNavigations(); | 608 void WaitForNavigations(); |
609 | 609 |
610 private: | 610 private: |
611 typedef std::set<const WebContents*> TabSet; | 611 typedef std::set<const WebContents*> TabSet; |
612 | 612 |
613 // content::NotificationObserver: | 613 // content::NotificationObserver: |
614 virtual void Observe(int type, const content::NotificationSource& source, | 614 virtual void Observe(int type, const content::NotificationSource& source, |
615 const content::NotificationDetails& details) OVERRIDE; | 615 const content::NotificationDetails& details) override; |
616 | 616 |
617 // The set of tabs that need to be navigated. This is the set of loading | 617 // The set of tabs that need to be navigated. This is the set of loading |
618 // tabs when the observer is created. | 618 // tabs when the observer is created. |
619 TabSet tabs_needing_navigation_; | 619 TabSet tabs_needing_navigation_; |
620 | 620 |
621 // Number of tabs that have stopped navigating with the expected title. These | 621 // Number of tabs that have stopped navigating with the expected title. These |
622 // are expected not to be navigated again. | 622 // are expected not to be navigated again. |
623 TabSet tabs_navigated_to_final_destination_; | 623 TabSet tabs_navigated_to_final_destination_; |
624 | 624 |
625 // True if WaitForNavigations has been called, until | 625 // True if WaitForNavigations has been called, until |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
695 int num_results_received() const { return num_results_received_; } | 695 int num_results_received() const { return num_results_received_; } |
696 | 696 |
697 CaptivePortalResult captive_portal_result() const { | 697 CaptivePortalResult captive_portal_result() const { |
698 return captive_portal_result_; | 698 return captive_portal_result_; |
699 } | 699 } |
700 | 700 |
701 private: | 701 private: |
702 // Records results and exits the message loop, if needed. | 702 // Records results and exits the message loop, if needed. |
703 virtual void Observe(int type, | 703 virtual void Observe(int type, |
704 const content::NotificationSource& source, | 704 const content::NotificationSource& source, |
705 const content::NotificationDetails& details) OVERRIDE; | 705 const content::NotificationDetails& details) override; |
706 | 706 |
707 // Number of times OnPortalResult has been called since construction. | 707 // Number of times OnPortalResult has been called since construction. |
708 int num_results_received_; | 708 int num_results_received_; |
709 | 709 |
710 // If WaitForResults was called, the total number of updates for which to | 710 // If WaitForResults was called, the total number of updates for which to |
711 // wait. Value doesn't matter when |waiting_for_result_| is false. | 711 // wait. Value doesn't matter when |waiting_for_result_| is false. |
712 int num_results_to_wait_for_; | 712 int num_results_to_wait_for_; |
713 | 713 |
714 bool waiting_for_result_; | 714 bool waiting_for_result_; |
715 | 715 |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
792 transport_security_state->AddHSTS(host, expiry, include_subdomains); | 792 transport_security_state->AddHSTS(host, expiry, include_subdomains); |
793 } | 793 } |
794 | 794 |
795 } // namespace | 795 } // namespace |
796 | 796 |
797 class CaptivePortalBrowserTest : public InProcessBrowserTest { | 797 class CaptivePortalBrowserTest : public InProcessBrowserTest { |
798 public: | 798 public: |
799 CaptivePortalBrowserTest(); | 799 CaptivePortalBrowserTest(); |
800 | 800 |
801 // InProcessBrowserTest: | 801 // InProcessBrowserTest: |
802 virtual void SetUpOnMainThread() OVERRIDE; | 802 virtual void SetUpOnMainThread() override; |
803 virtual void TearDownOnMainThread() OVERRIDE; | 803 virtual void TearDownOnMainThread() override; |
804 | 804 |
805 // Sets the captive portal checking preference. Does not affect the command | 805 // Sets the captive portal checking preference. Does not affect the command |
806 // line flag, which is set in SetUpCommandLine. | 806 // line flag, which is set in SetUpCommandLine. |
807 void EnableCaptivePortalDetection(Profile* profile, bool enabled); | 807 void EnableCaptivePortalDetection(Profile* profile, bool enabled); |
808 | 808 |
809 // Sets up the captive portal service for the given profile so that | 809 // Sets up the captive portal service for the given profile so that |
810 // all checks go to |test_url|. Also disables all timers. | 810 // all checks go to |test_url|. Also disables all timers. |
811 void SetUpCaptivePortalService(Profile* profile, const GURL& test_url); | 811 void SetUpCaptivePortalService(Profile* profile, const GURL& test_url); |
812 | 812 |
813 // Returns true if |browser|'s profile is currently running a captive portal | 813 // Returns true if |browser|'s profile is currently running a captive portal |
(...skipping 1390 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2204 content::BrowserThread::PostTask( | 2204 content::BrowserThread::PostTask( |
2205 content::BrowserThread::IO, FROM_HERE, | 2205 content::BrowserThread::IO, FROM_HERE, |
2206 base::Bind(&AddHstsHost, | 2206 base::Bind(&AddHstsHost, |
2207 make_scoped_refptr(browser()->profile()->GetRequestContext()), | 2207 make_scoped_refptr(browser()->profile()->GetRequestContext()), |
2208 http_timeout_url.host())); | 2208 http_timeout_url.host())); |
2209 | 2209 |
2210 SlowLoadBehindCaptivePortal(browser(), true, http_timeout_url, 1, 1); | 2210 SlowLoadBehindCaptivePortal(browser(), true, http_timeout_url, 1, 1); |
2211 Login(browser(), 1, 0); | 2211 Login(browser(), 1, 0); |
2212 FailLoadsAfterLogin(browser(), 1); | 2212 FailLoadsAfterLogin(browser(), 1); |
2213 } | 2213 } |
OLD | NEW |