Chromium Code Reviews| Index: third_party/WebKit/Source/modules/serviceworkers/NavigationPreloadManager.cpp |
| diff --git a/third_party/WebKit/Source/modules/serviceworkers/NavigationPreloadManager.cpp b/third_party/WebKit/Source/modules/serviceworkers/NavigationPreloadManager.cpp |
| index 9d2a79c8be0dbd4f836b0e09599dc2d4ceb7e34f..ec724c9e5dd3383075afeed5ebbc58060062e0db 100644 |
| --- a/third_party/WebKit/Source/modules/serviceworkers/NavigationPreloadManager.cpp |
| +++ b/third_party/WebKit/Source/modules/serviceworkers/NavigationPreloadManager.cpp |
| @@ -4,6 +4,7 @@ |
| #include "modules/serviceworkers/NavigationPreloadManager.h" |
| +#include "bindings/core/v8/CallbackPromiseAdapter.h" |
| #include "core/dom/DOMException.h" |
| #include "modules/serviceworkers/NavigationPreloadCallbacks.h" |
| #include "modules/serviceworkers/ServiceWorkerContainerClient.h" |
| @@ -19,10 +20,20 @@ ScriptPromise NavigationPreloadManager::disable(ScriptState* scriptState) { |
| return setEnabled(false, scriptState); |
| } |
| -ScriptPromise NavigationPreloadManager::setHeaderValue(ScriptState*, |
| +ScriptPromise NavigationPreloadManager::setHeaderValue(ScriptState* scriptState, |
| const String& value) { |
|
horo
2016/10/31 03:32:52
It is not written in the spec yet, but I think we
falken
2016/10/31 08:32:08
Done. I used IsValidHttpHeaderValue which looks li
|
| - NOTIMPLEMENTED(); |
| - return ScriptPromise(); |
| + ServiceWorkerContainerClient* client = |
| + ServiceWorkerContainerClient::from(m_registration->getExecutionContext()); |
| + if (!client || !client->provider()) { |
| + return ScriptPromise::rejectWithDOMException( |
| + scriptState, DOMException::create(InvalidStateError, "No provider.")); |
| + } |
| + ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState); |
| + ScriptPromise promise = resolver->promise(); |
| + m_registration->webRegistration()->setNavigationPreloadHeader( |
| + value, client->provider(), |
| + wrapUnique(new SetNavigationPreloadHeaderCallbacks(resolver))); |
| + return promise; |
| } |
| ScriptPromise NavigationPreloadManager::getState(ScriptState* scriptState) { |