| Index: chrome/browser/safe_browsing/safe_browsing_navigation_observer_manager.cc
|
| diff --git a/chrome/browser/safe_browsing/safe_browsing_navigation_observer_manager.cc b/chrome/browser/safe_browsing/safe_browsing_navigation_observer_manager.cc
|
| index 989f7d61eeea3d07bb96d6bae1f4048edbd7b7b8..0d14f782777934a9c1bd803b3106d17f4901fd4d 100644
|
| --- a/chrome/browser/safe_browsing/safe_browsing_navigation_observer_manager.cc
|
| +++ b/chrome/browser/safe_browsing/safe_browsing_navigation_observer_manager.cc
|
| @@ -9,10 +9,15 @@
|
| #include "base/strings/stringprintf.h"
|
| #include "base/time/time.h"
|
| #include "base/timer/timer.h"
|
| +#include "chrome/browser/browser_process.h"
|
| #include "chrome/browser/chrome_notification_types.h"
|
| +#include "chrome/browser/profiles/profile.h"
|
| #include "chrome/browser/safe_browsing/safe_browsing_navigation_observer.h"
|
| +#include "chrome/browser/safe_browsing/safe_browsing_service.h"
|
| #include "chrome/browser/sessions/session_tab_helper.h"
|
| #include "chrome/browser/tab_contents/retargeting_details.h"
|
| +#include "chrome/common/pref_names.h"
|
| +#include "components/prefs/pref_service.h"
|
| #include "content/public/browser/navigation_details.h"
|
| #include "content/public/browser/notification_service.h"
|
| #include "content/public/browser/notification_types.h"
|
| @@ -47,10 +52,13 @@ static const double kUserGestureTTLInSecond = 1.0;
|
| // navigation related records that happened 2 minutes ago are considered as
|
| // expired. So we clean up these navigation footprints every 2 minutes.
|
| static const double kNavigationFootprintTTLInSecond = 120.0;
|
| -// The number of user gestures we trace back for download attribution.
|
| -static const int kDownloadAttributionUserGestureLimit = 2;
|
|
|
| // static
|
| +const base::Feature
|
| +SafeBrowsingNavigationObserverManager::kDownloadAttribution {
|
| + "DownloadAttribution", base::FEATURE_DISABLED_BY_DEFAULT
|
| +};
|
| +// static
|
| bool SafeBrowsingNavigationObserverManager::IsUserGestureExpired(
|
| const base::Time& timestamp) {
|
| return IsEventExpired(timestamp, kUserGestureTTLInSecond);
|
| @@ -66,12 +74,23 @@ GURL SafeBrowsingNavigationObserverManager::ClearEmptyRef(const GURL& url) {
|
| return url;
|
| }
|
|
|
| +// static
|
| +bool SafeBrowsingNavigationObserverManager::IsEnabledAndReady(
|
| + Profile* profile) {
|
| + return base::FeatureList::IsEnabled(
|
| + SafeBrowsingNavigationObserverManager::kDownloadAttribution) &&
|
| + profile->GetPrefs()->GetBoolean(prefs::kSafeBrowsingEnabled) &&
|
| + g_browser_process->safe_browsing_service() &&
|
| + g_browser_process->safe_browsing_service()->navigation_observer_manager();
|
| +}
|
| +
|
| SafeBrowsingNavigationObserverManager::SafeBrowsingNavigationObserverManager() {
|
| registrar_.Add(this, chrome::NOTIFICATION_RETARGETING,
|
| content::NotificationService::AllSources());
|
|
|
| - // TODO(jialiul): call ScheduleNextCleanUpAfterInterval() when this class is
|
| - // ready to be hooked into SafeBrowsingService.
|
| + // Schedule clean up in 2 minutes.
|
| + ScheduleNextCleanUpAfterInterval(
|
| + base::TimeDelta::FromSecondsD(kNavigationFootprintTTLInSecond));
|
| }
|
|
|
| void SafeBrowsingNavigationObserverManager::RecordNavigationEvent(
|
| @@ -208,29 +227,6 @@ SafeBrowsingNavigationObserverManager::IdentifyReferrerChain(
|
| return result;
|
| }
|
|
|
| -void SafeBrowsingNavigationObserverManager::
|
| - AddReferrerChainToClientDownloadRequest(
|
| - const GURL& download_url,
|
| - content::WebContents* source_contents,
|
| - ClientDownloadRequest* out_request) {
|
| - int download_tab_id = SessionTabHelper::IdForTab(source_contents);
|
| - UMA_HISTOGRAM_BOOLEAN(
|
| - "SafeBrowsing.ReferrerHasInvalidTabID.DownloadAttribution",
|
| - download_tab_id == -1);
|
| - std::vector<ReferrerChainEntry> attribution_chain;
|
| - AttributionResult result = IdentifyReferrerChain(
|
| - download_url, download_tab_id, kDownloadAttributionUserGestureLimit,
|
| - &attribution_chain);
|
| - UMA_HISTOGRAM_COUNTS_100(
|
| - "SafeBrowsing.ReferrerURLChainSize.DownloadAttribution",
|
| - attribution_chain.size());
|
| - UMA_HISTOGRAM_ENUMERATION(
|
| - "SafeBrowsing.ReferrerAttributionResult.DownloadAttribution", result,
|
| - SafeBrowsingNavigationObserverManager::ATTRIBUTION_FAILURE_TYPE_MAX);
|
| - for (auto entry : attribution_chain)
|
| - *out_request->add_referrer_chain() = entry;
|
| -}
|
| -
|
| SafeBrowsingNavigationObserverManager::
|
| ~SafeBrowsingNavigationObserverManager() {}
|
|
|
|
|