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

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

Issue 224733014: Introduce ServiceWorkerHandle for tracking WebServiceWorkerImpl reference (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 8 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 218fd94064de4ba2a364375a3a6cbc2f8270392a..79ef120f5a11cee9e68f9b3418f6c4b5ab24f5f7 100644
--- a/content/browser/service_worker/service_worker_provider_host.cc
+++ b/content/browser/service_worker/service_worker_provider_host.cc
@@ -6,6 +6,8 @@
#include "base/stl_util.h"
#include "content/browser/service_worker/service_worker_context_core.h"
+#include "content/browser/service_worker/service_worker_dispatcher_host.h"
+#include "content/browser/service_worker/service_worker_handle.h"
#include "content/browser/service_worker/service_worker_utils.h"
#include "content/browser/service_worker/service_worker_version.h"
@@ -13,10 +15,12 @@ namespace content {
ServiceWorkerProviderHost::ServiceWorkerProviderHost(
int process_id, int provider_id,
- base::WeakPtr<ServiceWorkerContextCore> context)
+ base::WeakPtr<ServiceWorkerContextCore> context,
+ ServiceWorkerDispatcherHost* dispatcher_host)
: process_id_(process_id),
provider_id_(provider_id),
- context_(context) {
+ context_(context),
+ dispatcher_host_(dispatcher_host) {
}
ServiceWorkerProviderHost::~ServiceWorkerProviderHost() {
@@ -42,13 +46,21 @@ void ServiceWorkerProviderHost::SetActiveVersion(
version->AddControllee(this);
if (previous_version)
previous_version->RemoveControllee(this);
+
+ dispatcher_host_->RegisterServiceWorkerHandle(
+ ServiceWorkerHandle::Create(context_, dispatcher_host_, version));
// TODO(kinuko): dispatch activechange event to the script clients.
+ // dispatcher_host_->Send(ServiceWorkerMsg_ActiveChangeEvent(...));
}
void ServiceWorkerProviderHost::SetPendingVersion(
ServiceWorkerVersion* version) {
pending_version_ = version;
+
+ dispatcher_host_->RegisterServiceWorkerHandle(
+ ServiceWorkerHandle::Create(context_, dispatcher_host_, version));
// TODO(kinuko): dispatch pendingchange event to the script clients.
+ // dispatcher_host_->Send(ServiceWorkerMsg_PendingChangeEvent(...));
}
bool ServiceWorkerProviderHost::SetHostedVersionId(int64 version_id) {

Powered by Google App Engine
This is Rietveld 408576698