Commit 2fbd78eb authored by Arthur Hemery's avatar Arthur Hemery Committed by Commit Bot

[bfcache] Pages using geolocation are not cached by default.

Geolocation support with BackForwardCache is now controlled by a chrome
flag variation, similar to what exists with ServiceWorker support.

Bug: 1015377
Change-Id: I4cc1fc5adef0a6bbb2281eb674276723eadf50b2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1864801Reviewed-by: default avatarArthur Sonzogni <arthursonzogni@chromium.org>
Reviewed-by: default avatarAlexander Timin <altimin@chromium.org>
Commit-Queue: Arthur Hemery <ahemery@chromium.org>
Cr-Commit-Position: refs/heads/master@{#706998}
parent 71d9b7d6
...@@ -1345,15 +1345,15 @@ const FeatureEntry::FeatureVariation kQuietNotificationPromptsVariations[] = { ...@@ -1345,15 +1345,15 @@ const FeatureEntry::FeatureVariation kQuietNotificationPromptsVariations[] = {
}; };
#endif // !OS_ANDROID #endif // !OS_ANDROID
// TODO(crbug.com/991082): Remove after proper service worker support for // TODO(crbug.com/991082,1015377): Remove after proper support for back-forward
// back-forward cache is implemented. // cache is implemented.
const FeatureEntry::FeatureParam kBackForwardCache_ServiceWorkerSupport[] = { const FeatureEntry::FeatureParam kBackForwardCache_ExtendedSupport[] = {
{"service_worker_supported", "true"}, {"experimental extended supported feature set", "true"},
}; };
const FeatureEntry::FeatureVariation kBackForwardCacheVariations[] = { const FeatureEntry::FeatureVariation kBackForwardCacheVariations[] = {
{" even for ServiceWorker-controlled pages", {"experimental extended supported feature set",
kBackForwardCache_ServiceWorkerSupport, 1, nullptr}, kBackForwardCache_ExtendedSupport, 1, nullptr},
}; };
#if defined(OS_CHROMEOS) #if defined(OS_CHROMEOS)
......
...@@ -2176,7 +2176,7 @@ class BackForwardCacheBrowserTestWithServiceWorkerEnabled ...@@ -2176,7 +2176,7 @@ class BackForwardCacheBrowserTestWithServiceWorkerEnabled
protected: protected:
base::FieldTrialParams GetFeatureParams() override { base::FieldTrialParams GetFeatureParams() override {
return {{"service_worker_supported", "true"}}; return {{"experimental extended supported feature set", "true"}};
} }
}; };
...@@ -2279,6 +2279,10 @@ class GeolocationBackForwardCacheBrowserTest ...@@ -2279,6 +2279,10 @@ class GeolocationBackForwardCacheBrowserTest
protected: protected:
GeolocationBackForwardCacheBrowserTest() : geo_override_(0.0, 0.0) {} GeolocationBackForwardCacheBrowserTest() : geo_override_(0.0, 0.0) {}
base::FieldTrialParams GetFeatureParams() override {
return {{"experimental extended supported feature set", "true"}};
}
device::ScopedGeolocationOverrider geo_override_; device::ScopedGeolocationOverrider geo_override_;
}; };
......
...@@ -75,10 +75,11 @@ void SetPageFrozenImpl( ...@@ -75,10 +75,11 @@ void SetPageFrozenImpl(
} }
} }
bool IsServiceWorkerSupported() { bool IsExtendedSupportEnabled() {
static constexpr base::FeatureParam<bool> service_worker_supported( static constexpr base::FeatureParam<bool> extended_support_enabled(
&features::kBackForwardCache, "service_worker_supported", false); &features::kBackForwardCache,
return service_worker_supported.Get(); "experimental extended supported feature set", false);
return extended_support_enabled.Get();
} }
uint64_t GetDisallowedFeatures() { uint64_t GetDisallowedFeatures() {
...@@ -114,10 +115,13 @@ uint64_t GetDisallowedFeatures() { ...@@ -114,10 +115,13 @@ uint64_t GetDisallowedFeatures() {
uint64_t result = kAlwaysDisallowedFeatures; uint64_t result = kAlwaysDisallowedFeatures;
if (!IsServiceWorkerSupported()) { if (!IsExtendedSupportEnabled()) {
result |= result |=
ToFeatureBit(WebSchedulerTrackedFeature::kServiceWorkerControlledPage); ToFeatureBit(WebSchedulerTrackedFeature::kServiceWorkerControlledPage);
result |= ToFeatureBit(
WebSchedulerTrackedFeature::kRequestedGeolocationPermission);
} }
return result; return result;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment