| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "content/browser/service_worker/service_worker_handle.h" | 5 #include "content/browser/service_worker/service_worker_handle.h" |
| 6 | 6 |
| 7 #include "content/browser/service_worker/service_worker_context_core.h" | 7 #include "content/browser/service_worker/service_worker_context_core.h" |
| 8 #include "content/browser/service_worker/service_worker_registration.h" | 8 #include "content/browser/service_worker/service_worker_registration.h" |
| 9 #include "content/common/service_worker/service_worker_messages.h" | 9 #include "content/common/service_worker/service_worker_messages.h" |
| 10 #include "ipc/ipc_sender.h" | 10 #include "ipc/ipc_sender.h" |
| (...skipping 25 matching lines...) Expand all Loading... |
| 36 NOTREACHED() << version->status(); | 36 NOTREACHED() << version->status(); |
| 37 return blink::WebServiceWorkerStateUnknown; | 37 return blink::WebServiceWorkerStateUnknown; |
| 38 } | 38 } |
| 39 | 39 |
| 40 } // namespace | 40 } // namespace |
| 41 | 41 |
| 42 scoped_ptr<ServiceWorkerHandle> ServiceWorkerHandle::Create( | 42 scoped_ptr<ServiceWorkerHandle> ServiceWorkerHandle::Create( |
| 43 base::WeakPtr<ServiceWorkerContextCore> context, | 43 base::WeakPtr<ServiceWorkerContextCore> context, |
| 44 IPC::Sender* sender, | 44 IPC::Sender* sender, |
| 45 int thread_id, | 45 int thread_id, |
| 46 int provider_id, |
| 46 ServiceWorkerVersion* version) { | 47 ServiceWorkerVersion* version) { |
| 47 if (!context || !version) | 48 if (!context || !version) |
| 48 return scoped_ptr<ServiceWorkerHandle>(); | 49 return scoped_ptr<ServiceWorkerHandle>(); |
| 49 ServiceWorkerRegistration* registration = | 50 ServiceWorkerRegistration* registration = |
| 50 context->GetLiveRegistration(version->registration_id()); | 51 context->GetLiveRegistration(version->registration_id()); |
| 51 return make_scoped_ptr( | 52 return make_scoped_ptr(new ServiceWorkerHandle( |
| 52 new ServiceWorkerHandle(context, sender, thread_id, | 53 context, sender, thread_id, provider_id, registration, version)); |
| 53 registration, version)); | |
| 54 } | 54 } |
| 55 | 55 |
| 56 ServiceWorkerHandle::ServiceWorkerHandle( | 56 ServiceWorkerHandle::ServiceWorkerHandle( |
| 57 base::WeakPtr<ServiceWorkerContextCore> context, | 57 base::WeakPtr<ServiceWorkerContextCore> context, |
| 58 IPC::Sender* sender, | 58 IPC::Sender* sender, |
| 59 int thread_id, | 59 int thread_id, |
| 60 int provider_id, |
| 60 ServiceWorkerRegistration* registration, | 61 ServiceWorkerRegistration* registration, |
| 61 ServiceWorkerVersion* version) | 62 ServiceWorkerVersion* version) |
| 62 : context_(context), | 63 : context_(context), |
| 63 sender_(sender), | 64 sender_(sender), |
| 64 thread_id_(thread_id), | 65 thread_id_(thread_id), |
| 66 provider_id_(provider_id), |
| 65 handle_id_(context.get() ? context->GetNewServiceWorkerHandleId() : -1), | 67 handle_id_(context.get() ? context->GetNewServiceWorkerHandleId() : -1), |
| 66 ref_count_(1), | 68 ref_count_(1), |
| 67 registration_(registration), | 69 registration_(registration), |
| 68 version_(version) { | 70 version_(version) { |
| 69 version_->AddListener(this); | 71 version_->AddListener(this); |
| 70 } | 72 } |
| 71 | 73 |
| 72 ServiceWorkerHandle::~ServiceWorkerHandle() { | 74 ServiceWorkerHandle::~ServiceWorkerHandle() { |
| 73 version_->RemoveListener(this); | 75 version_->RemoveListener(this); |
| 74 // TODO(kinuko): At this point we can discard the registration if | 76 // TODO(kinuko): At this point we can discard the registration if |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 117 DCHECK_GT(ref_count_, 0); | 119 DCHECK_GT(ref_count_, 0); |
| 118 ++ref_count_; | 120 ++ref_count_; |
| 119 } | 121 } |
| 120 | 122 |
| 121 void ServiceWorkerHandle::DecrementRefCount() { | 123 void ServiceWorkerHandle::DecrementRefCount() { |
| 122 DCHECK_GE(ref_count_, 0); | 124 DCHECK_GE(ref_count_, 0); |
| 123 --ref_count_; | 125 --ref_count_; |
| 124 } | 126 } |
| 125 | 127 |
| 126 } // namespace content | 128 } // namespace content |
| OLD | NEW |