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

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

Issue 2681783003: Since SafeBrowsingNavigationObserverManager cleans up navigation events every two minutes, if downl… (Closed)
Patch Set: Created 3 years, 10 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 b3d0c3055a480d446ce44a76baadd218e8faae1d..1321c434b7b99b86fd636dcc22899fd7980b180a 100644
--- a/chrome/browser/safe_browsing/safe_browsing_navigation_observer_manager.h
+++ b/chrome/browser/safe_browsing/safe_browsing_navigation_observer_manager.h
@@ -6,10 +6,12 @@
#define CHROME_BROWSER_SAFE_BROWSING_SAFE_BROWSING_NAVIGATION_OBSERVER_MANAGER_H_
#include "base/feature_list.h"
+#include "base/supports_user_data.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 "third_party/protobuf/src/google/protobuf/repeated_field.h"
#include "url/gurl.h"
class Profile;
@@ -20,6 +22,20 @@ class SafeBrowsingNavigationObserver;
struct NavigationEvent;
struct ResolvedIPAddress;
+typedef google::protobuf::RepeatedPtrField<safe_browsing::ReferrerChainEntry>
+ ReferrerChain;
+
+// User data stored in DownloadItem for referrer chain information.
+class ReferrerChainData : public base::SupportsUserData::Data {
+ public:
+ explicit ReferrerChainData(std::unique_ptr<ReferrerChain> referrer_chain);
+ ~ReferrerChainData() override;
+ ReferrerChain* GetReferrerChain();
+
+ private:
+ std::unique_ptr<ReferrerChain> referrer_chain_;
+};
+
// Manager class for SafeBrowsingNavigationObserver, which is in charge of
// cleaning up stale navigation events, and identifying landing page/landing
// referrer for a specific download.
@@ -32,7 +48,6 @@ class SafeBrowsingNavigationObserverManager
public base::RefCountedThreadSafe<SafeBrowsingNavigationObserverManager> {
public:
static const base::Feature kDownloadAttribution;
- typedef std::vector<std::unique_ptr<ReferrerChainEntry>> ReferrerChain;
// For UMA histogram counting. Do NOT change order.
enum AttributionResult {

Powered by Google App Engine
This is Rietveld 408576698