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/child/service_worker/web_service_worker_registration_impl.h" | 5 #include "content/child/service_worker/web_service_worker_registration_impl.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/macros.h" | 9 #include "base/macros.h" |
10 #include "base/memory/ptr_util.h" | 10 #include "base/memory/ptr_util.h" |
11 #include "content/child/service_worker/service_worker_dispatcher.h" | 11 #include "content/child/service_worker/service_worker_dispatcher.h" |
12 #include "content/child/service_worker/service_worker_registration_handle_refere
nce.h" | 12 #include "content/child/service_worker/service_worker_registration_handle_refere
nce.h" |
13 #include "content/child/service_worker/web_service_worker_impl.h" | 13 #include "content/child/service_worker/web_service_worker_impl.h" |
14 #include "content/child/service_worker/web_service_worker_provider_impl.h" | 14 #include "content/child/service_worker/web_service_worker_provider_impl.h" |
15 #include "content/common/service_worker/service_worker_types.h" | 15 #include "content/common/service_worker/service_worker_types.h" |
| 16 #include "third_party/WebKit/public/platform/modules/serviceworker/WebNavigation
PreloadState.h" |
16 #include "third_party/WebKit/public/platform/modules/serviceworker/WebServiceWor
kerError.h" | 17 #include "third_party/WebKit/public/platform/modules/serviceworker/WebServiceWor
kerError.h" |
17 #include "third_party/WebKit/public/platform/modules/serviceworker/WebServiceWor
kerRegistrationProxy.h" | 18 #include "third_party/WebKit/public/platform/modules/serviceworker/WebServiceWor
kerRegistrationProxy.h" |
18 | 19 |
19 namespace content { | 20 namespace content { |
20 | 21 |
21 namespace { | 22 namespace { |
22 | 23 |
23 class HandleImpl : public blink::WebServiceWorkerRegistration::Handle { | 24 class HandleImpl : public blink::WebServiceWorkerRegistration::Handle { |
24 public: | 25 public: |
25 explicit HandleImpl( | 26 explicit HandleImpl( |
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
153 WebServiceWorkerProviderImpl* provider_impl = | 154 WebServiceWorkerProviderImpl* provider_impl = |
154 static_cast<WebServiceWorkerProviderImpl*>(provider); | 155 static_cast<WebServiceWorkerProviderImpl*>(provider); |
155 ServiceWorkerDispatcher* dispatcher = | 156 ServiceWorkerDispatcher* dispatcher = |
156 ServiceWorkerDispatcher::GetThreadSpecificInstance(); | 157 ServiceWorkerDispatcher::GetThreadSpecificInstance(); |
157 DCHECK(dispatcher); | 158 DCHECK(dispatcher); |
158 dispatcher->EnableNavigationPreload(provider_impl->provider_id(), | 159 dispatcher->EnableNavigationPreload(provider_impl->provider_id(), |
159 registration_id(), enable, | 160 registration_id(), enable, |
160 std::move(callbacks)); | 161 std::move(callbacks)); |
161 } | 162 } |
162 | 163 |
| 164 void WebServiceWorkerRegistrationImpl::getNavigationPreloadState( |
| 165 blink::WebServiceWorkerProvider* provider, |
| 166 std::unique_ptr<WebGetNavigationPreloadStateCallbacks> callbacks) { |
| 167 WebServiceWorkerProviderImpl* provider_impl = |
| 168 static_cast<WebServiceWorkerProviderImpl*>(provider); |
| 169 ServiceWorkerDispatcher* dispatcher = |
| 170 ServiceWorkerDispatcher::GetThreadSpecificInstance(); |
| 171 DCHECK(dispatcher); |
| 172 dispatcher->GetNavigationPreloadState( |
| 173 provider_impl->provider_id(), registration_id(), std::move(callbacks)); |
| 174 } |
| 175 |
163 int64_t WebServiceWorkerRegistrationImpl::registration_id() const { | 176 int64_t WebServiceWorkerRegistrationImpl::registration_id() const { |
164 return handle_ref_->registration_id(); | 177 return handle_ref_->registration_id(); |
165 } | 178 } |
166 | 179 |
167 // static | 180 // static |
168 std::unique_ptr<blink::WebServiceWorkerRegistration::Handle> | 181 std::unique_ptr<blink::WebServiceWorkerRegistration::Handle> |
169 WebServiceWorkerRegistrationImpl::CreateHandle( | 182 WebServiceWorkerRegistrationImpl::CreateHandle( |
170 const scoped_refptr<WebServiceWorkerRegistrationImpl>& registration) { | 183 const scoped_refptr<WebServiceWorkerRegistrationImpl>& registration) { |
171 if (!registration) | 184 if (!registration) |
172 return nullptr; | 185 return nullptr; |
173 return base::MakeUnique<HandleImpl>(registration); | 186 return base::MakeUnique<HandleImpl>(registration); |
174 } | 187 } |
175 | 188 |
176 blink::WebServiceWorkerRegistration::Handle* | 189 blink::WebServiceWorkerRegistration::Handle* |
177 WebServiceWorkerRegistrationImpl::CreateLeakyHandle( | 190 WebServiceWorkerRegistrationImpl::CreateLeakyHandle( |
178 const scoped_refptr<WebServiceWorkerRegistrationImpl>& registration) { | 191 const scoped_refptr<WebServiceWorkerRegistrationImpl>& registration) { |
179 if (!registration) | 192 if (!registration) |
180 return nullptr; | 193 return nullptr; |
181 return new HandleImpl(registration); | 194 return new HandleImpl(registration); |
182 } | 195 } |
183 | 196 |
184 WebServiceWorkerRegistrationImpl::~WebServiceWorkerRegistrationImpl() { | 197 WebServiceWorkerRegistrationImpl::~WebServiceWorkerRegistrationImpl() { |
185 ServiceWorkerDispatcher* dispatcher = | 198 ServiceWorkerDispatcher* dispatcher = |
186 ServiceWorkerDispatcher::GetThreadSpecificInstance(); | 199 ServiceWorkerDispatcher::GetThreadSpecificInstance(); |
187 if (dispatcher) | 200 if (dispatcher) |
188 dispatcher->RemoveServiceWorkerRegistration(handle_ref_->handle_id()); | 201 dispatcher->RemoveServiceWorkerRegistration(handle_ref_->handle_id()); |
189 } | 202 } |
190 | 203 |
191 } // namespace content | 204 } // namespace content |
OLD | NEW |