Index: chrome/browser/safe_browsing/safe_browsing_navigation_observer_manager.h |
diff --git a/chrome/browser/safe_browsing/safe_browsing_navigation_observer_manager.h b/chrome/browser/safe_browsing/safe_browsing_navigation_observer_manager.h |
index 7a47da80686063e0fd9b2982324e4b36188cd2aa..9bfcfa1bb44a54f993475f9e472ace0c546b2ed0 100644 |
--- a/chrome/browser/safe_browsing/safe_browsing_navigation_observer_manager.h |
+++ b/chrome/browser/safe_browsing/safe_browsing_navigation_observer_manager.h |
@@ -5,12 +5,15 @@ |
#ifndef CHROME_BROWSER_SAFE_BROWSING_SAFE_BROWSING_NAVIGATION_OBSERVER_MANAGER_H_ |
#define CHROME_BROWSER_SAFE_BROWSING_SAFE_BROWSING_NAVIGATION_OBSERVER_MANAGER_H_ |
+#include "base/feature_list.h" |
#include "chrome/common/safe_browsing/csd.pb.h" |
#include "content/public/browser/notification_observer.h" |
#include "content/public/browser/notification_registrar.h" |
#include "content/public/browser/web_contents_observer.h" |
#include "url/gurl.h" |
+class Profile; |
+ |
namespace safe_browsing { |
class SafeBrowsingNavigationObserver; |
@@ -28,6 +31,8 @@ class SafeBrowsingNavigationObserverManager |
: public content::NotificationObserver, |
public base::RefCountedThreadSafe<SafeBrowsingNavigationObserverManager> { |
public: |
+ static const base::Feature kDownloadAttribution; |
+ |
// For UMA histogram counting. Do NOT change order. |
enum AttributionResult { |
SUCCESS = 1, // Identified referrer chain is not empty. |
@@ -43,12 +48,18 @@ class SafeBrowsingNavigationObserverManager |
// Helper function to check if user gesture is older than |
// kUserGestureTTLInSecond. |
static bool IsUserGestureExpired(const base::Time& timestamp); |
+ |
// Helper function to strip empty ref fragment from a URL. Many pages |
// end up with a "#" at the end of their URLs due to navigation triggered by |
// href="#" and javascript onclick function. We don't want to have separate |
// entries for these cases in the maps. |
static GURL ClearEmptyRef(const GURL& url); |
+ // Checks if we should enable observing navigations for safe browsing purpose. |
+ // Return true if the safe browsing service and the download attribution |
+ // feature are both enabled, and safe browsing service is initialized. |
+ static bool IsEnabledAndReady(Profile* profile); |
+ |
SafeBrowsingNavigationObserverManager(); |
// Add |nav_event| to |navigation_map_| based on |nav_event_key|. Object |
@@ -80,15 +91,6 @@ class SafeBrowsingNavigationObserverManager |
int user_gesture_count_limit, |
std::vector<ReferrerChainEntry>* out_referrer_chain); |
- // Identify and add referrer chain info of a download to ClientDownloadRequest |
- // proto. This function also record UMA stats of download attribution result. |
- // TODO(jialiul): This function will be moved to DownloadProtectionService |
- // class shortly. |
- void AddReferrerChainToClientDownloadRequest( |
- const GURL& download_url, |
- content::WebContents* source_contents, |
- ClientDownloadRequest* out_request); |
- |
private: |
friend class base::RefCountedThreadSafe< |
SafeBrowsingNavigationObserverManager>; |