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/captive_portal/captive_portal_service.h" | 5 #include "chrome/browser/captive_portal/captive_portal_service.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
85 base::HistogramBase* result_duration_histogram = | 85 base::HistogramBase* result_duration_histogram = |
86 base::Histogram::FactoryTimeGet( | 86 base::Histogram::FactoryTimeGet( |
87 "CaptivePortal.ResultDuration." + CaptivePortalResultToString(result), | 87 "CaptivePortal.ResultDuration." + CaptivePortalResultToString(result), |
88 base::TimeDelta::FromSeconds(1), // min | 88 base::TimeDelta::FromSeconds(1), // min |
89 base::TimeDelta::FromHours(1), // max | 89 base::TimeDelta::FromHours(1), // max |
90 50, // bucket_count | 90 50, // bucket_count |
91 base::Histogram::kUmaTargetedHistogramFlag); | 91 base::Histogram::kUmaTargetedHistogramFlag); |
92 result_duration_histogram->AddTime(result_duration); | 92 result_duration_histogram->AddTime(result_duration); |
93 } | 93 } |
94 | 94 |
95 int GetHistogramEntryForDetectionResult( | 95 CaptivePortalDetectionResult GetHistogramEntryForDetectionResult( |
96 const captive_portal::CaptivePortalDetector::Results& results) { | 96 const captive_portal::CaptivePortalDetector::Results& results) { |
97 bool is_https = results.landing_url.SchemeIs("https"); | 97 bool is_https = results.landing_url.SchemeIs("https"); |
98 bool is_ip = results.landing_url.HostIsIPAddress(); | 98 bool is_ip = results.landing_url.HostIsIPAddress(); |
99 switch (results.result) { | 99 switch (results.result) { |
100 case captive_portal::RESULT_INTERNET_CONNECTED: | 100 case captive_portal::RESULT_INTERNET_CONNECTED: |
101 return DETECTION_RESULT_INTERNET_CONNECTED; | 101 return DETECTION_RESULT_INTERNET_CONNECTED; |
102 case captive_portal::RESULT_NO_RESPONSE: | 102 case captive_portal::RESULT_NO_RESPONSE: |
103 if (is_ip) { | 103 if (is_ip) { |
104 return is_https ? | 104 return is_https ? |
105 DETECTION_RESULT_NO_RESPONSE_HTTPS_LANDING_URL_IP_ADDRESS : | 105 DETECTION_RESULT_NO_RESPONSE_HTTPS_LANDING_URL_IP_ADDRESS : |
106 DETECTION_RESULT_NO_RESPONSE_IP_ADDRESS; | 106 DETECTION_RESULT_NO_RESPONSE_IP_ADDRESS; |
107 } | 107 } |
108 return is_https ? | 108 return is_https ? |
109 DETECTION_RESULT_NO_RESPONSE_HTTPS_LANDING_URL : | 109 DETECTION_RESULT_NO_RESPONSE_HTTPS_LANDING_URL : |
110 DETECTION_RESULT_NO_RESPONSE; | 110 DETECTION_RESULT_NO_RESPONSE; |
111 case captive_portal::RESULT_BEHIND_CAPTIVE_PORTAL: | 111 case captive_portal::RESULT_BEHIND_CAPTIVE_PORTAL: |
112 if (is_ip) { | 112 if (is_ip) { |
113 return is_https ? | 113 return is_https ? |
114 DETECTION_RESULT_BEHIND_CAPTIVE_PORTAL_HTTPS_LANDING_URL_IP_ADDRESS : | 114 DETECTION_RESULT_BEHIND_CAPTIVE_PORTAL_HTTPS_LANDING_URL_IP_ADDRESS : |
115 DETECTION_RESULT_BEHIND_CAPTIVE_PORTAL_IP_ADDRESS; | 115 DETECTION_RESULT_BEHIND_CAPTIVE_PORTAL_IP_ADDRESS; |
116 } | 116 } |
117 return is_https ? | 117 return is_https ? |
118 DETECTION_RESULT_BEHIND_CAPTIVE_PORTAL_HTTPS_LANDING_URL : | 118 DETECTION_RESULT_BEHIND_CAPTIVE_PORTAL_HTTPS_LANDING_URL : |
119 DETECTION_RESULT_BEHIND_CAPTIVE_PORTAL; | 119 DETECTION_RESULT_BEHIND_CAPTIVE_PORTAL; |
120 default: | 120 default: |
121 NOTREACHED(); | 121 NOTREACHED(); |
122 return -1; | 122 return DETECTION_RESULT_COUNT; |
123 } | 123 } |
124 } | 124 } |
125 | 125 |
126 bool ShouldDeferToNativeCaptivePortalDetection() { | 126 bool ShouldDeferToNativeCaptivePortalDetection() { |
127 // On Windows 8, defer to the native captive portal detection. OSX Lion and | 127 // On Windows 8, defer to the native captive portal detection. OSX Lion and |
128 // later also have captive portal detection, but experimentally, this code | 128 // later also have captive portal detection, but experimentally, this code |
129 // works in cases its does not. | 129 // works in cases its does not. |
130 // | 130 // |
131 // TODO(mmenke): Investigate how well Windows 8's captive portal detection | 131 // TODO(mmenke): Investigate how well Windows 8's captive portal detection |
132 // works. | 132 // works. |
(...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
416 return base::TimeTicks::Now(); | 416 return base::TimeTicks::Now(); |
417 } | 417 } |
418 | 418 |
419 bool CaptivePortalService::DetectionInProgress() const { | 419 bool CaptivePortalService::DetectionInProgress() const { |
420 return state_ == STATE_CHECKING_FOR_PORTAL; | 420 return state_ == STATE_CHECKING_FOR_PORTAL; |
421 } | 421 } |
422 | 422 |
423 bool CaptivePortalService::TimerRunning() const { | 423 bool CaptivePortalService::TimerRunning() const { |
424 return check_captive_portal_timer_.IsRunning(); | 424 return check_captive_portal_timer_.IsRunning(); |
425 } | 425 } |
OLD | NEW |