| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 "modules/serviceworkers/NavigationPreloadManager.h" | 5 #include "modules/serviceworkers/NavigationPreloadManager.h" |
| 6 | 6 |
| 7 #include "core/dom/DOMException.h" | 7 #include "core/dom/DOMException.h" |
| 8 #include "modules/serviceworkers/NavigationPreloadCallbacks.h" | 8 #include "modules/serviceworkers/NavigationPreloadCallbacks.h" |
| 9 #include "modules/serviceworkers/ServiceWorkerContainerClient.h" | 9 #include "modules/serviceworkers/ServiceWorkerContainerClient.h" |
| 10 #include "modules/serviceworkers/ServiceWorkerRegistration.h" | 10 #include "modules/serviceworkers/ServiceWorkerRegistration.h" |
| 11 | 11 |
| 12 namespace blink { | 12 namespace blink { |
| 13 | 13 |
| 14 ScriptPromise NavigationPreloadManager::enable(ScriptState* scriptState) { | 14 ScriptPromise NavigationPreloadManager::enable(ScriptState* scriptState) { |
| 15 return setEnabled(true, scriptState); | 15 return setEnabled(true, scriptState); |
| 16 } | 16 } |
| 17 | 17 |
| 18 ScriptPromise NavigationPreloadManager::disable(ScriptState* scriptState) { | 18 ScriptPromise NavigationPreloadManager::disable(ScriptState* scriptState) { |
| 19 return setEnabled(false, scriptState); | 19 return setEnabled(false, scriptState); |
| 20 } | 20 } |
| 21 | 21 |
| 22 ScriptPromise NavigationPreloadManager::setHeaderValue(ScriptState*, | 22 ScriptPromise NavigationPreloadManager::setHeaderValue(ScriptState*, |
| 23 const String& value) { | 23 const String& value) { |
| 24 NOTIMPLEMENTED(); | 24 NOTIMPLEMENTED(); |
| 25 return ScriptPromise(); | 25 return ScriptPromise(); |
| 26 } | 26 } |
| 27 | 27 |
| 28 ScriptPromise NavigationPreloadManager::getState(ScriptState*) { | 28 ScriptPromise NavigationPreloadManager::getState(ScriptState* scriptState) { |
| 29 NOTIMPLEMENTED(); | 29 ServiceWorkerContainerClient* client = |
| 30 return ScriptPromise(); | 30 ServiceWorkerContainerClient::from(m_registration->getExecutionContext()); |
| 31 if (!client || !client->provider()) { |
| 32 return ScriptPromise::rejectWithDOMException( |
| 33 scriptState, DOMException::create(InvalidStateError, "No provider.")); |
| 34 } |
| 35 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState); |
| 36 ScriptPromise promise = resolver->promise(); |
| 37 m_registration->webRegistration()->getNavigationPreloadState( |
| 38 client->provider(), |
| 39 wrapUnique(new GetNavigationPreloadStateCallbacks(resolver))); |
| 40 return promise; |
| 31 } | 41 } |
| 32 | 42 |
| 33 NavigationPreloadManager::NavigationPreloadManager( | 43 NavigationPreloadManager::NavigationPreloadManager( |
| 34 ServiceWorkerRegistration* registration) | 44 ServiceWorkerRegistration* registration) |
| 35 : m_registration(registration) {} | 45 : m_registration(registration) {} |
| 36 | 46 |
| 37 ScriptPromise NavigationPreloadManager::setEnabled(bool enable, | 47 ScriptPromise NavigationPreloadManager::setEnabled(bool enable, |
| 38 ScriptState* scriptState) { | 48 ScriptState* scriptState) { |
| 39 ServiceWorkerContainerClient* client = | 49 ServiceWorkerContainerClient* client = |
| 40 ServiceWorkerContainerClient::from(m_registration->getExecutionContext()); | 50 ServiceWorkerContainerClient::from(m_registration->getExecutionContext()); |
| 41 if (!client || !client->provider()) { | 51 if (!client || !client->provider()) { |
| 42 return ScriptPromise::rejectWithDOMException( | 52 return ScriptPromise::rejectWithDOMException( |
| 43 scriptState, DOMException::create(InvalidStateError, "No provider.")); | 53 scriptState, DOMException::create(InvalidStateError, "No provider.")); |
| 44 } | 54 } |
| 45 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState); | 55 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState); |
| 46 ScriptPromise promise = resolver->promise(); | 56 ScriptPromise promise = resolver->promise(); |
| 47 m_registration->webRegistration()->enableNavigationPreload( | 57 m_registration->webRegistration()->enableNavigationPreload( |
| 48 enable, client->provider(), | 58 enable, client->provider(), |
| 49 wrapUnique(new EnableNavigationPreloadCallbacks(resolver))); | 59 wrapUnique(new EnableNavigationPreloadCallbacks(resolver))); |
| 50 return promise; | 60 return promise; |
| 51 } | 61 } |
| 52 | 62 |
| 53 DEFINE_TRACE(NavigationPreloadManager) { | 63 DEFINE_TRACE(NavigationPreloadManager) { |
| 54 visitor->trace(m_registration); | 64 visitor->trace(m_registration); |
| 55 } | 65 } |
| 56 | 66 |
| 57 } // namespace blink | 67 } // namespace blink |
| OLD | NEW |