// Copyright 2018 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_SAFE_BROWSING_CONTENT_BROWSER_TRIGGERS_SUSPICIOUS_SITE_TRIGGER_H_ #define COMPONENTS_SAFE_BROWSING_CONTENT_BROWSER_TRIGGERS_SUSPICIOUS_SITE_TRIGGER_H_ #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" #include "base/task/sequenced_task_runner.h" #include "content/public/browser/web_contents_observer.h" #include "content/public/browser/web_contents_user_data.h" class PrefService; namespace history { class HistoryService; } namespace network { class SharedURLLoaderFactory; } // namespace network namespace safe_browsing { class ReferrerChainProvider; class TriggerManager; // Metric for tracking what the Suspicious Site trigger does on each event. extern const char kSuspiciousSiteTriggerEventMetricName[]; // Local metric for tracking how often reports from this trigger are rejected // by the trigger manager, and for what reason. extern const char kSuspiciousSiteTriggerReportRejectionTestMetricName[]; // Local metric for tracking the state of the trigger when the report delay // timer fires. extern const char kSuspiciousSiteTriggerReportDelayStateTestMetricName[]; // Tracks events this trigger listens for or actions it performs. These values // are written to logs. New enum values can be added, but existing enums must // never be renumbered or deleted and reused. enum class SuspiciousSiteTriggerEvent { … }; // Notify a suspicious site trigger on a particular tab that a suspicious site // was detected. |web_contents_getter| specifies the tab where the site was // detected. // Must be called on UI thread. void NotifySuspiciousSiteTriggerDetected( const base::RepeatingCallback<content::WebContents*()>& web_contents_getter); // This class watches tab-level events such as the start and end of a page // load, and also listens for events from the SuspiciousSiteURLThrottle that // indicate there was a hit on the suspicious site list. This trigger is // repsonsible for creating reports about the page at the right time, based on // the sequence of such events. class SuspiciousSiteTrigger : public content::WebContentsObserver, public content::WebContentsUserData<SuspiciousSiteTrigger> { … }; } // namespace safe_browsing #endif // COMPONENTS_SAFE_BROWSING_CONTENT_BROWSER_TRIGGERS_SUSPICIOUS_SITE_TRIGGER_H_