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

Side by Side Diff: chrome/browser/captive_portal/captive_portal_service.cc

Issue 318213002: Add custom interstitial for captive portals. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Expand browser tests Created 6 years 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) 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 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
187 backoff_policy.always_use_initial_delay = true; 187 backoff_policy.always_use_initial_delay = true;
188 } 188 }
189 189
190 CaptivePortalService::CaptivePortalService(Profile* profile) 190 CaptivePortalService::CaptivePortalService(Profile* profile)
191 : profile_(profile), 191 : profile_(profile),
192 state_(STATE_IDLE), 192 state_(STATE_IDLE),
193 captive_portal_detector_(profile->GetRequestContext()), 193 captive_portal_detector_(profile->GetRequestContext()),
194 enabled_(false), 194 enabled_(false),
195 last_detection_result_(captive_portal::RESULT_INTERNET_CONNECTED), 195 last_detection_result_(captive_portal::RESULT_INTERNET_CONNECTED),
196 num_checks_with_same_result_(0), 196 num_checks_with_same_result_(0),
197 test_url_(captive_portal::CaptivePortalDetector::kDefaultURL) { 197 test_url_(captive_portal::CaptivePortalDetector::kDefaultURL),
198 portal_detection_enabled_(true) {
198 // The order matters here: 199 // The order matters here:
199 // |resolve_errors_with_web_service_| must be initialized and |backoff_entry_| 200 // |resolve_errors_with_web_service_| must be initialized and |backoff_entry_|
200 // created before the call to UpdateEnabledState. 201 // created before the call to UpdateEnabledState.
201 resolve_errors_with_web_service_.Init( 202 resolve_errors_with_web_service_.Init(
202 prefs::kAlternateErrorPagesEnabled, 203 prefs::kAlternateErrorPagesEnabled,
203 profile_->GetPrefs(), 204 profile_->GetPrefs(),
204 base::Bind(&CaptivePortalService::UpdateEnabledState, 205 base::Bind(&CaptivePortalService::UpdateEnabledState,
205 base::Unretained(this))); 206 base::Unretained(this)));
206 ResetBackoffEntry(last_detection_result_); 207 ResetBackoffEntry(last_detection_result_);
207 208
208 UpdateEnabledState(); 209 UpdateEnabledState();
209 } 210 }
210 211
211 CaptivePortalService::~CaptivePortalService() { 212 CaptivePortalService::~CaptivePortalService() {
212 } 213 }
213 214
215 void CaptivePortalService::SetPortalDetectionEnabledForTest(bool enabled) {
216 portal_detection_enabled_ = enabled;
217 }
218
214 void CaptivePortalService::DetectCaptivePortal() { 219 void CaptivePortalService::DetectCaptivePortal() {
215 DCHECK(CalledOnValidThread()); 220 DCHECK(CalledOnValidThread());
216 221
222 // Detection should be disabled only in tests.
223 if (!portal_detection_enabled_)
224 return;
225
217 // If a request is pending or running, do nothing. 226 // If a request is pending or running, do nothing.
218 if (state_ == STATE_CHECKING_FOR_PORTAL || state_ == STATE_TIMER_RUNNING) 227 if (state_ == STATE_CHECKING_FOR_PORTAL || state_ == STATE_TIMER_RUNNING)
219 return; 228 return;
220 229
221 base::TimeDelta time_until_next_check = backoff_entry_->GetTimeUntilRelease(); 230 base::TimeDelta time_until_next_check = backoff_entry_->GetTimeUntilRelease();
222 231
223 // Start asynchronously. 232 // Start asynchronously.
224 state_ = STATE_TIMER_RUNNING; 233 state_ = STATE_TIMER_RUNNING;
225 check_captive_portal_timer_.Start( 234 check_captive_portal_timer_.Start(
226 FROM_HERE, 235 FROM_HERE,
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
390 return time_ticks_for_testing_; 399 return time_ticks_for_testing_;
391 } 400 }
392 401
393 bool CaptivePortalService::DetectionInProgress() const { 402 bool CaptivePortalService::DetectionInProgress() const {
394 return state_ == STATE_CHECKING_FOR_PORTAL; 403 return state_ == STATE_CHECKING_FOR_PORTAL;
395 } 404 }
396 405
397 bool CaptivePortalService::TimerRunning() const { 406 bool CaptivePortalService::TimerRunning() const {
398 return check_captive_portal_timer_.IsRunning(); 407 return check_captive_portal_timer_.IsRunning();
399 } 408 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698