Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2635)

Unified Diff: chrome/browser/safe_browsing/safe_browsing_navigation_observer_manager.h

Issue 2601303002: Wireup SafeBrowsingNavigationObserverManager to help PPAPI download attribution (Closed)
Patch Set: nit Created 3 years, 12 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 9bfcfa1bb44a54f993475f9e472ace0c546b2ed0..87abb017473d0abf8e7aaaef3c96d58873ffceef 100644
--- a/chrome/browser/safe_browsing/safe_browsing_navigation_observer_manager.h
+++ b/chrome/browser/safe_browsing/safe_browsing_navigation_observer_manager.h
@@ -85,12 +85,26 @@ class SafeBrowsingNavigationObserverManager
// |user_gesture_count_limit| number of user gestures. Then convert these
// identified NavigationEvents into ReferrerChainEntrys and append them to
// |out_referrer_chain|.
- AttributionResult IdentifyReferrerChain(
+ AttributionResult IdentifyReferrerChainForDownload(
const GURL& target_url,
int target_tab_id, // -1 if tab id is not valid
int user_gesture_count_limit,
std::vector<ReferrerChainEntry>* out_referrer_chain);
+ // Based on the |initiating_frame_url| and its associated |web_contents|,
+ // trace back the observed NavigationEvents in navigation_map_ to identify the
+ // sequence of navigations leading to this |initiating_frame_url|. If this
+ // initiating frame has a user gesture, we trace back with the coverage
+ // limited to |user_gesture_count_limit|-1 number of user gestures, otherwise
+ // we trace back |user_gesture_count_limit| number of user gestures. We then
+ // convert these identified NavigationEvents into ReferrerChainEntrys and
+ // append them to |out_referrer_chain|.
+ AttributionResult IdentifyReferrerChainForPPAPIDownload(
+ const GURL& initiating_frame_url,
+ content::WebContents* web_contents,
+ int user_gesture_count_limit,
+ std::vector<ReferrerChainEntry>* out_referrer_chain);
+
private:
friend class base::RefCountedThreadSafe<
SafeBrowsingNavigationObserverManager>;
@@ -162,6 +176,16 @@ class SafeBrowsingNavigationObserverManager
NavigationEvent* nav_event,
ReferrerChainEntry::URLType type);
+ // Helper function to get the remaining referrer chain when we've already
+ // traced back |current_user_gesture_count| number of user gestures.
+ // This function modifies the |out_referrer_chain| and |out_result|.
+ void GetRemainingReferrerChain(
+ NavigationEvent* last_nav_event_traced,
+ int current_user_gesture_count,
+ int user_gesture_count_limit,
+ std::vector<ReferrerChainEntry>* out_referrer_chain,
+ AttributionResult* out_result);
+
// navigation_map_ keeps track of all the observed navigations. This map is
// keyed on the resolved request url. In other words, in case of server
// redirects, its key is the last server redirect url, otherwise, it is the

Powered by Google App Engine
This is Rietveld 408576698