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

Unified Diff: content/browser/service_worker/service_worker_provider_host.cc

Issue 1257553002: [Proof-of-concept] PlzNavigate and Service Worker Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Pass navigation_provider_id Created 5 years, 5 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/browser/service_worker/service_worker_provider_host.cc
diff --git a/content/browser/service_worker/service_worker_provider_host.cc b/content/browser/service_worker/service_worker_provider_host.cc
index 9a0346bccde50403623dbf295ee09f6957f57dec..f19241f964f366e5fa76fd15c3a1dde352a2ed4f 100644
--- a/content/browser/service_worker/service_worker_provider_host.cc
+++ b/content/browser/service_worker/service_worker_provider_host.cc
@@ -4,6 +4,7 @@
#include "content/browser/service_worker/service_worker_provider_host.h"
+#include "base/command_line.h"
#include "base/guid.h"
#include "base/stl_util.h"
#include "content/browser/frame_host/frame_tree.h"
@@ -26,6 +27,7 @@
#include "content/public/browser/render_widget_host_view.h"
#include "content/public/browser/web_contents.h"
#include "content/public/common/child_process_host.h"
+#include "content/public/common/content_switches.h"
namespace content {
@@ -58,6 +60,9 @@ ServiceWorkerClientInfo FocusOnUIThread(int render_process_id,
} // anonymous namespace
+// PlzNavigate:
+int ServiceWorkerProviderHost::kVirtualProcessIDForNavigationRequest = -2;
+
ServiceWorkerProviderHost::OneShotGetReadyCallback::OneShotGetReadyCallback(
const GetRegistrationForReadyCallback& callback)
: callback(callback),
@@ -86,6 +91,12 @@ ServiceWorkerProviderHost::ServiceWorkerProviderHost(
DCHECK_NE(ChildProcessHost::kInvalidUniqueID, render_process_id_);
DCHECK_NE(SERVICE_WORKER_PROVIDER_UNKNOWN, provider_type_);
DCHECK_NE(SERVICE_WORKER_PROVIDER_FOR_SANDBOXED_FRAME, provider_type_);
+
+ // PlzNavigate:
+ if (render_process_id == kVirtualProcessIDForNavigationRequest) {
+ CHECK(base::CommandLine::ForCurrentProcess()->HasSwitch(
+ switches::kEnableBrowserSideNavigation));
+ }
if (provider_type_ == SERVICE_WORKER_PROVIDER_FOR_CONTROLLER) {
// Actual thread id is set when the service worker context gets started.
render_thread_id_ = kInvalidEmbeddedWorkerThreadId;
@@ -515,7 +526,8 @@ void ServiceWorkerProviderHost::CompleteCrossSiteTransfer(
int new_provider_id,
ServiceWorkerProviderType new_provider_type,
ServiceWorkerDispatcherHost* new_dispatcher_host) {
- DCHECK_EQ(ChildProcessHost::kInvalidUniqueID, render_process_id_);
+ DCHECK(render_process_id_ == ChildProcessHost::kInvalidUniqueID ||
+ render_process_id_ == kVirtualProcessIDForNavigationRequest);
DCHECK_NE(ChildProcessHost::kInvalidUniqueID, new_process_id);
DCHECK_NE(MSG_ROUTING_NONE, new_frame_id);

Powered by Google App Engine
This is Rietveld 408576698