// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef COMPONENTS_CAPTIVE_PORTAL_CONTENT_CAPTIVE_PORTAL_TAB_RELOADER_H_ #define COMPONENTS_CAPTIVE_PORTAL_CONTENT_CAPTIVE_PORTAL_TAB_RELOADER_H_ #include "base/compiler_specific.h" #include "base/functional/callback_forward.h" #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" #include "base/time/time.h" #include "base/timer/timer.h" #include "components/captive_portal/content/captive_portal_service.h" #include "components/captive_portal/core/captive_portal_types.h" #include "net/dns/public/resolve_error_info.h" namespace content { class WebContents; } namespace net { class SSLInfo; } class CaptivePortalBrowserTest; class CaptivePortalForPrerenderingTest; namespace captive_portal { // Keeps track of whether a tab has encountered a navigation error caused by a // captive portal. Also triggers captive portal checks when a page load may // have been broken or be taking longer due to a captive portal. All methods // may only be called on the UI thread. // // Only supports SSL main frames which end at error pages as a result of // captive portals, since these make for a particularly bad user experience. // Non-SSL requests are intercepted by captive portals, which take users to the // login page. SSL requests, however, may be silently blackholed, or result // in a variety of error pages, and will continue to do so if a user tries to // reload them. class CaptivePortalTabReloader { … }; } // namespace captive_portal #endif // COMPONENTS_CAPTIVE_PORTAL_CONTENT_CAPTIVE_PORTAL_TAB_RELOADER_H_