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

Unified Diff: content/child/service_worker/service_worker_network_provider.cc

Issue 2045383002: PlzNavigate: detect when a ServiceWorker is present (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed comments Created 4 years, 6 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: content/child/service_worker/service_worker_network_provider.cc
diff --git a/content/child/service_worker/service_worker_network_provider.cc b/content/child/service_worker/service_worker_network_provider.cc
index 5c883a0154ddb182d6ad680b5a4c77660f2b373f..0ad0365ddcc00c94a579d24c3c190d546068f1c7 100644
--- a/content/child/service_worker/service_worker_network_provider.cc
+++ b/content/child/service_worker/service_worker_network_provider.cc
@@ -7,7 +7,6 @@
#include "base/atomic_sequence_num.h"
#include "content/child/child_thread_impl.h"
#include "content/child/service_worker/service_worker_provider_context.h"
-#include "content/common/navigation_params.h"
#include "content/common/service_worker/service_worker_messages.h"
#include "content/common/service_worker/service_worker_utils.h"
#include "content/public/common/browser_side_navigation_policy.h"
@@ -58,34 +57,18 @@ ServiceWorkerNetworkProvider* ServiceWorkerNetworkProvider::FromDocumentState(
std::unique_ptr<ServiceWorkerNetworkProvider>
ServiceWorkerNetworkProvider::CreateForNavigation(
int route_id,
- const RequestNavigationParams& request_params,
blink::WebLocalFrame* frame,
bool content_initiated) {
- bool browser_side_navigation = IsBrowserSideNavigationEnabled();
- bool should_create_provider_for_window = false;
- int service_worker_provider_id = kInvalidServiceWorkerProviderId;
- std::unique_ptr<ServiceWorkerNetworkProvider> network_provider;
-
// Determine if a ServiceWorkerNetworkProvider should be created and properly
// initialized for the navigation. A default ServiceWorkerNetworkProvider
// will always be created since it is expected in a certain number of places,
// however it will have an invalid id.
- // PlzNavigate: |service_worker_provider_id| can be sent by the browser, if
- // it already created the SeviceWorkerProviderHost.
- if (browser_side_navigation && !content_initiated) {
- should_create_provider_for_window =
- request_params.should_create_service_worker;
- service_worker_provider_id = request_params.service_worker_provider_id;
- DCHECK(ServiceWorkerUtils::IsBrowserAssignedProviderId(
- service_worker_provider_id) ||
- service_worker_provider_id == kInvalidServiceWorkerProviderId);
- } else {
- should_create_provider_for_window =
- ((frame->effectiveSandboxFlags() & blink::WebSandboxFlags::Origin) !=
- blink::WebSandboxFlags::Origin);
- }
+ bool should_create_provider_for_window =
+ ((frame->effectiveSandboxFlags() & blink::WebSandboxFlags::Origin) !=
+ blink::WebSandboxFlags::Origin);
// Now create the ServiceWorkerNetworkProvider (with invalid id if needed).
+ std::unique_ptr<ServiceWorkerNetworkProvider> network_provider;
if (should_create_provider_for_window) {
// Ideally Document::isSecureContext would be called here, but the document
// is not created yet, and due to redirects the URL may change. So pass
@@ -94,20 +77,10 @@ ServiceWorkerNetworkProvider::CreateForNavigation(
// control the document.
const bool is_parent_frame_secure = IsFrameSecure(frame->parent());
- if (service_worker_provider_id == kInvalidServiceWorkerProviderId) {
- network_provider = std::unique_ptr<ServiceWorkerNetworkProvider>(
- new ServiceWorkerNetworkProvider(route_id,
- SERVICE_WORKER_PROVIDER_FOR_WINDOW,
- is_parent_frame_secure));
- } else {
- CHECK(browser_side_navigation);
- DCHECK(ServiceWorkerUtils::IsBrowserAssignedProviderId(
- service_worker_provider_id));
- network_provider = std::unique_ptr<ServiceWorkerNetworkProvider>(
- new ServiceWorkerNetworkProvider(
- route_id, SERVICE_WORKER_PROVIDER_FOR_WINDOW,
- service_worker_provider_id, is_parent_frame_secure));
- }
+ network_provider = std::unique_ptr<ServiceWorkerNetworkProvider>(
+ new ServiceWorkerNetworkProvider(route_id,
+ SERVICE_WORKER_PROVIDER_FOR_WINDOW,
+ is_parent_frame_secure));
} else {
network_provider = std::unique_ptr<ServiceWorkerNetworkProvider>(
new ServiceWorkerNetworkProvider());
@@ -118,11 +91,9 @@ ServiceWorkerNetworkProvider::CreateForNavigation(
ServiceWorkerNetworkProvider::ServiceWorkerNetworkProvider(
int route_id,
ServiceWorkerProviderType provider_type,
- int browser_provider_id,
bool is_parent_frame_secure)
- : provider_id_(browser_provider_id) {
- if (provider_id_ == kInvalidServiceWorkerProviderId)
- return;
+ : provider_id_(GetNextProviderId()) {
+ DCHECK(provider_id_ != kInvalidServiceWorkerProviderId);
if (!ChildThreadImpl::current())
return; // May be null in some tests.
context_ = new ServiceWorkerProviderContext(
@@ -132,15 +103,6 @@ ServiceWorkerNetworkProvider::ServiceWorkerNetworkProvider(
provider_id_, route_id, provider_type, is_parent_frame_secure));
}
-ServiceWorkerNetworkProvider::ServiceWorkerNetworkProvider(
- int route_id,
- ServiceWorkerProviderType provider_type,
- bool is_parent_frame_secure)
- : ServiceWorkerNetworkProvider(route_id,
- provider_type,
- GetNextProviderId(),
- is_parent_frame_secure) {}
-
ServiceWorkerNetworkProvider::ServiceWorkerNetworkProvider()
: provider_id_(kInvalidServiceWorkerProviderId) {}

Powered by Google App Engine
This is Rietveld 408576698