summaryrefslogtreecommitdiff
path: root/chromium/components/previews/content/previews_decider_impl.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/components/previews/content/previews_decider_impl.cc')
-rw-r--r--chromium/components/previews/content/previews_decider_impl.cc18
1 files changed, 18 insertions, 0 deletions
diff --git a/chromium/components/previews/content/previews_decider_impl.cc b/chromium/components/previews/content/previews_decider_impl.cc
index ce9b27d96e6..47034fa9941 100644
--- a/chromium/components/previews/content/previews_decider_impl.cc
+++ b/chromium/components/previews/content/previews_decider_impl.cc
@@ -274,6 +274,18 @@ PreviewsEligibilityReason PreviewsDeciderImpl::DeterminePreviewEligibility(
// eligibility so that it will be available at commit time.
previews_data->set_navigation_ect(effective_connection_type_);
+ // Do not allow previews on any authenticated pages.
+ if (url.has_username() || url.has_password())
+ return PreviewsEligibilityReason::URL_HAS_BASIC_AUTH;
+
+ // Trigger the USER_RECENTLY_OPTED_OUT rule when a reload on a preview has
+ // occurred recently.
+ if (recent_preview_reload_time_ &&
+ recent_preview_reload_time_.value() + params::SingleOptOutDuration() >
+ clock_->Now()) {
+ return PreviewsEligibilityReason::USER_RECENTLY_OPTED_OUT;
+ }
+
// In the case that the user has chosen to ignore the normal blacklist rules
// (flags or interventions-internals), a preview should still not be served
// for 5 seconds after the last opt out. This allows "show original" to
@@ -536,4 +548,10 @@ void PreviewsDeciderImpl::SetEffectiveConnectionType(
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
effective_connection_type_ = effective_connection_type;
}
+
+void PreviewsDeciderImpl::AddPreviewReload() {
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+ recent_preview_reload_time_ = clock_->Now();
+}
+
} // namespace previews