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 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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 ServiceWorkerRegistration* registration, | 60 ServiceWorkerRegistration* registration, |
61 ServiceWorkerVersion* version) | 61 ServiceWorkerVersion* version) |
62 : context_(context), | 62 : context_(context), |
63 sender_(sender), | 63 sender_(sender), |
64 thread_id_(thread_id), | 64 thread_id_(thread_id), |
65 handle_id_(context.get() ? context->GetNewServiceWorkerHandleId() : -1), | 65 handle_id_(context.get() ? context->GetNewServiceWorkerHandleId() : -1), |
| 66 ref_count_(1), |
66 registration_(registration), | 67 registration_(registration), |
67 version_(version) { | 68 version_(version) { |
68 version_->AddListener(this); | 69 version_->AddListener(this); |
69 } | 70 } |
70 | 71 |
71 ServiceWorkerHandle::~ServiceWorkerHandle() { | 72 ServiceWorkerHandle::~ServiceWorkerHandle() { |
72 version_->RemoveListener(this); | 73 version_->RemoveListener(this); |
73 // TODO(kinuko): At this point we can discard the registration if | 74 // TODO(kinuko): At this point we can discard the registration if |
74 // all documents/handles that have a reference to the registration is | 75 // all documents/handles that have a reference to the registration is |
75 // closed or freed up, but could also keep it alive in cache | 76 // closed or freed up, but could also keep it alive in cache |
(...skipping 29 matching lines...) Expand all Loading... |
105 | 106 |
106 ServiceWorkerObjectInfo ServiceWorkerHandle::GetObjectInfo() { | 107 ServiceWorkerObjectInfo ServiceWorkerHandle::GetObjectInfo() { |
107 ServiceWorkerObjectInfo info; | 108 ServiceWorkerObjectInfo info; |
108 info.handle_id = handle_id_; | 109 info.handle_id = handle_id_; |
109 info.scope = registration_->pattern(); | 110 info.scope = registration_->pattern(); |
110 info.url = registration_->script_url(); | 111 info.url = registration_->script_url(); |
111 info.state = GetWebServiceWorkerState(version_); | 112 info.state = GetWebServiceWorkerState(version_); |
112 return info; | 113 return info; |
113 } | 114 } |
114 | 115 |
| 116 void ServiceWorkerHandle::IncrementRefCount() { |
| 117 DCHECK_GT(ref_count_, 0); |
| 118 ++ref_count_; |
| 119 } |
| 120 |
| 121 void ServiceWorkerHandle::DecrementRefCount() { |
| 122 DCHECK_GE(ref_count_, 0); |
| 123 --ref_count_; |
| 124 } |
| 125 |
115 } // namespace content | 126 } // namespace content |
OLD | NEW |