// 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. // // Classes for managing the SafeBrowsing interstitial pages. // // When a user is about to visit a page the SafeBrowsing system has deemed to // be malicious, either as malware or a phishing page, we show an interstitial // page with some options (go back, continue) to give the user a chance to avoid // the harmful page. // // The SafeBrowsingBlockingPage is created by the SafeBrowsingUIManager on the // UI thread when we've determined that a page is malicious. The operation of // the blocking page occurs on the UI thread, where it waits for the user to // make a decision about what to do: either go back or continue on. // // The blocking page forwards the result of the user's choice back to the // SafeBrowsingUIManager so that we can cancel the request for the new page, // or allow it to continue. // // A web page may contain several resources flagged as malware/phishing. This // results into more than one interstitial being shown. On the first unsafe // resource received we show an interstitial. Any subsequent unsafe resource // notifications while the first interstitial is showing is queued. If the user // decides to proceed in the first interstitial, we display all queued unsafe // resources in a new interstitial. #ifndef COMPONENTS_SAFE_BROWSING_CONTENT_BROWSER_SAFE_BROWSING_BLOCKING_PAGE_H_ #define COMPONENTS_SAFE_BROWSING_CONTENT_BROWSER_SAFE_BROWSING_BLOCKING_PAGE_H_ #include <map> #include "base/gtest_prod_util.h" #include "base/memory/raw_ptr.h" #include "components/safe_browsing/content/browser/base_blocking_page.h" #include "components/safe_browsing/content/browser/base_ui_manager.h" namespace history { class HistoryService; } namespace network { class SharedURLLoaderFactory; } namespace weblayer { class WebLayerSafeBrowsingBlockingPageFactory; } namespace safe_browsing { class SafeBrowsingNavigationObserverManager; class SafeBrowsingMetricsCollector; class ThreatDetails; class TriggerManager; class SafeBrowsingBlockingPage : public BaseBlockingPage { … }; } // namespace safe_browsing #endif // COMPONENTS_SAFE_BROWSING_CONTENT_BROWSER_SAFE_BROWSING_BLOCKING_PAGE_H_