Fix build break
[chromium-blink-merge.git] / chrome / browser / captive_portal / captive_portal_login_detector.h
blob17266e750e93e3f9e326b55f5d5e879bc93064a0
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
3 // found in the LICENSE file.
5 #ifndef CHROME_BROWSER_CAPTIVE_PORTAL_CAPTIVE_PORTAL_LOGIN_DETECTOR_H_
6 #define CHROME_BROWSER_CAPTIVE_PORTAL_CAPTIVE_PORTAL_LOGIN_DETECTOR_H_
8 #include "base/basictypes.h"
9 #include "chrome/browser/captive_portal/captive_portal_service.h"
11 class Profile;
13 namespace captive_portal {
15 // Triggers a captive portal test on navigations that may indicate a captive
16 // portal has been logged into. Currently only tracks if a page was opened
17 // at a captive portal tab's login page, and triggers checks every navigation
18 // until there's no longer a captive portal, relying on the
19 // CaptivePortalService's throttling to prevent excessive server load.
21 // TODO(mmenke): If a page has been broken by a captive portal, and it's
22 // successfully reloaded, trigger a captive portal check.
23 class CaptivePortalLoginDetector {
24 public:
25 explicit CaptivePortalLoginDetector(Profile* profile);
27 ~CaptivePortalLoginDetector();
29 void OnStoppedLoading();
30 void OnCaptivePortalResults(Result previous_result, Result result);
32 bool is_login_tab() const { return is_login_tab_; }
33 void SetIsLoginTab();
35 private:
36 Profile* profile_;
38 // True if this is a login tab. Set manually, automatically cleared once
39 // login is detected.
40 bool is_login_tab_;
42 // Page is on its first load since being tagged as a login tab. Used to
43 // prevent a second captive portal check on the first load of the login page.
44 bool first_login_tab_load_;
46 DISALLOW_COPY_AND_ASSIGN(CaptivePortalLoginDetector);
49 } // namespace captive_portal
51 #endif // CHROME_BROWSER_CAPTIVE_PORTAL_CAPTIVE_PORTAL_LOGIN_DETECTOR_H_