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 "base/basictypes.h" | 5 #include "base/basictypes.h" |
6 #include "base/memory/weak_ptr.h" | 6 #include "base/memory/weak_ptr.h" |
7 #include "base/thread_task_runner_handle.h" | 7 #include "base/thread_task_runner_handle.h" |
8 #include "content/browser/service_worker/service_worker_context_core.h" | 8 #include "content/browser/service_worker/service_worker_context_core.h" |
9 #include "content/browser/service_worker/service_worker_provider_host.h" | 9 #include "content/browser/service_worker/service_worker_provider_host.h" |
10 #include "content/browser/service_worker/service_worker_register_job.h" | 10 #include "content/browser/service_worker/service_worker_register_job.h" |
(...skipping 18 matching lines...) Expand all Loading... |
29 base::ThreadTaskRunnerHandle::Get(), | 29 base::ThreadTaskRunnerHandle::Get(), |
30 base::ThreadTaskRunnerHandle::Get(), | 30 base::ThreadTaskRunnerHandle::Get(), |
31 base::ThreadTaskRunnerHandle::Get(), | 31 base::ThreadTaskRunnerHandle::Get(), |
32 NULL, | 32 NULL, |
33 NULL, | 33 NULL, |
34 NULL)); | 34 NULL)); |
35 | 35 |
36 scope_ = GURL("http://www.example.com/"); | 36 scope_ = GURL("http://www.example.com/"); |
37 script_url_ = GURL("http://www.example.com/service_worker.js"); | 37 script_url_ = GURL("http://www.example.com/service_worker.js"); |
38 registration_ = new ServiceWorkerRegistration( | 38 registration_ = new ServiceWorkerRegistration( |
39 scope_, script_url_, 1L, context_->AsWeakPtr()); | 39 scope_, 1L, context_->AsWeakPtr()); |
40 version_ = new ServiceWorkerVersion( | 40 version_ = new ServiceWorkerVersion( |
41 registration_, | 41 registration_, script_url_, 1L, context_->AsWeakPtr()); |
42 1L, context_->AsWeakPtr()); | |
43 | 42 |
44 // Prepare provider hosts (for the same process). | 43 // Prepare provider hosts (for the same process). |
45 scoped_ptr<ServiceWorkerProviderHost> host1(new ServiceWorkerProviderHost( | 44 scoped_ptr<ServiceWorkerProviderHost> host1(new ServiceWorkerProviderHost( |
46 kRenderProcessId, 1 /* provider_id */, | 45 kRenderProcessId, 1 /* provider_id */, |
47 context_->AsWeakPtr(), NULL)); | 46 context_->AsWeakPtr(), NULL)); |
48 scoped_ptr<ServiceWorkerProviderHost> host2(new ServiceWorkerProviderHost( | 47 scoped_ptr<ServiceWorkerProviderHost> host2(new ServiceWorkerProviderHost( |
49 kRenderProcessId, 2 /* provider_id */, | 48 kRenderProcessId, 2 /* provider_id */, |
50 context_->AsWeakPtr(), NULL)); | 49 context_->AsWeakPtr(), NULL)); |
51 provider_host1_ = host1->AsWeakPtr(); | 50 provider_host1_ = host1->AsWeakPtr(); |
52 provider_host2_ = host2->AsWeakPtr(); | 51 provider_host2_ = host2->AsWeakPtr(); |
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
188 VerifyVersionAttributes(provider_host2_, NULL, NULL, NULL); | 187 VerifyVersionAttributes(provider_host2_, NULL, NULL, NULL); |
189 } | 188 } |
190 | 189 |
191 TEST_F(ServiceWorkerProviderHostTest, | 190 TEST_F(ServiceWorkerProviderHostTest, |
192 ObserveVersionAttributesChanged_MultipleVersions) { | 191 ObserveVersionAttributesChanged_MultipleVersions) { |
193 provider_host1_->AssociateRegistration(registration_); | 192 provider_host1_->AssociateRegistration(registration_); |
194 provider_host2_->AssociateRegistration(registration_); | 193 provider_host2_->AssociateRegistration(registration_); |
195 VerifyVersionAttributes(provider_host1_, NULL, NULL, NULL); | 194 VerifyVersionAttributes(provider_host1_, NULL, NULL, NULL); |
196 VerifyVersionAttributes(provider_host2_, NULL, NULL, NULL); | 195 VerifyVersionAttributes(provider_host2_, NULL, NULL, NULL); |
197 | 196 |
198 scoped_refptr<ServiceWorkerVersion> version1 = | 197 scoped_refptr<ServiceWorkerVersion> version1 = new ServiceWorkerVersion( |
199 new ServiceWorkerVersion(registration_, 10L, context_->AsWeakPtr()); | 198 registration_, script_url_, 10L, context_->AsWeakPtr()); |
200 scoped_refptr<ServiceWorkerVersion> version2 = | 199 scoped_refptr<ServiceWorkerVersion> version2 = new ServiceWorkerVersion( |
201 new ServiceWorkerVersion(registration_, 20L, context_->AsWeakPtr()); | 200 registration_, script_url_, 20L, context_->AsWeakPtr()); |
202 | 201 |
203 registration_->SetInstallingVersion(version1); | 202 registration_->SetInstallingVersion(version1); |
204 VerifyVersionAttributes(provider_host1_, version1, NULL, NULL); | 203 VerifyVersionAttributes(provider_host1_, version1, NULL, NULL); |
205 VerifyVersionAttributes(provider_host2_, version1, NULL, NULL); | 204 VerifyVersionAttributes(provider_host2_, version1, NULL, NULL); |
206 | 205 |
207 registration_->SetWaitingVersion(version1); | 206 registration_->SetWaitingVersion(version1); |
208 VerifyVersionAttributes(provider_host1_, NULL, version1, NULL); | 207 VerifyVersionAttributes(provider_host1_, NULL, version1, NULL); |
209 VerifyVersionAttributes(provider_host2_, NULL, version1, NULL); | 208 VerifyVersionAttributes(provider_host2_, NULL, version1, NULL); |
210 | 209 |
211 registration_->SetInstallingVersion(version2); | 210 registration_->SetInstallingVersion(version2); |
212 VerifyVersionAttributes(provider_host1_, version2, version1, NULL); | 211 VerifyVersionAttributes(provider_host1_, version2, version1, NULL); |
213 VerifyVersionAttributes(provider_host2_, version2, version1, NULL); | 212 VerifyVersionAttributes(provider_host2_, version2, version1, NULL); |
214 | 213 |
215 // Disassociating the registration should clear all version attributes. | 214 // Disassociating the registration should clear all version attributes. |
216 provider_host2_->UnassociateRegistration(); | 215 provider_host2_->UnassociateRegistration(); |
217 VerifyVersionAttributes(provider_host1_, version2, version1, NULL); | 216 VerifyVersionAttributes(provider_host1_, version2, version1, NULL); |
218 VerifyVersionAttributes(provider_host2_, NULL, NULL, NULL); | 217 VerifyVersionAttributes(provider_host2_, NULL, NULL, NULL); |
219 | 218 |
220 // Shouldn't notify the disassociated provider of the change. | 219 // Shouldn't notify the disassociated provider of the change. |
221 registration_->SetActiveVersion(version1); | 220 registration_->SetActiveVersion(version1); |
222 VerifyVersionAttributes(provider_host1_, version2, NULL, version1); | 221 VerifyVersionAttributes(provider_host1_, version2, NULL, version1); |
223 VerifyVersionAttributes(provider_host2_, NULL, NULL, NULL); | 222 VerifyVersionAttributes(provider_host2_, NULL, NULL, NULL); |
224 | 223 |
225 registration_->SetActiveVersion(version2); | 224 registration_->SetActiveVersion(version2); |
226 VerifyVersionAttributes(provider_host1_, NULL, NULL, version2); | 225 VerifyVersionAttributes(provider_host1_, NULL, NULL, version2); |
227 VerifyVersionAttributes(provider_host2_, NULL, NULL, NULL); | 226 VerifyVersionAttributes(provider_host2_, NULL, NULL, NULL); |
228 } | 227 } |
229 | 228 |
230 } // namespace content | 229 } // namespace content |
OLD | NEW |