Index: third_party/WebKit/Source/modules/serviceworkers/NavigationPreloadCallbacks.cpp |
diff --git a/third_party/WebKit/Source/modules/serviceworkers/NavigationPreloadCallbacks.cpp b/third_party/WebKit/Source/modules/serviceworkers/NavigationPreloadCallbacks.cpp |
index 4a9e0366b952f9532f31bcc0dae1066771ca6f74..ac7afe3395cca5b34823716ace826a1eb057da9b 100644 |
--- a/third_party/WebKit/Source/modules/serviceworkers/NavigationPreloadCallbacks.cpp |
+++ b/third_party/WebKit/Source/modules/serviceworkers/NavigationPreloadCallbacks.cpp |
@@ -6,7 +6,9 @@ |
#include "bindings/core/v8/ScriptPromiseResolver.h" |
#include "core/dom/DOMException.h" |
+#include "modules/serviceworkers/NavigationPreloadState.h" |
#include "modules/serviceworkers/ServiceWorkerError.h" |
+#include "public/platform/modules/serviceworker/WebNavigationPreloadState.h" |
namespace blink { |
@@ -33,4 +35,32 @@ void EnableNavigationPreloadCallbacks::onError( |
m_resolver->reject(ServiceWorkerError::take(m_resolver.get(), error)); |
} |
+GetNavigationPreloadStateCallbacks::GetNavigationPreloadStateCallbacks( |
+ ScriptPromiseResolver* resolver) |
+ : m_resolver(resolver) { |
+ DCHECK(m_resolver); |
+} |
+ |
+GetNavigationPreloadStateCallbacks::~GetNavigationPreloadStateCallbacks() {} |
+ |
+void GetNavigationPreloadStateCallbacks::onSuccess( |
+ const WebNavigationPreloadState& state) { |
+ if (!m_resolver->getExecutionContext() || |
+ m_resolver->getExecutionContext()->activeDOMObjectsAreStopped()) |
+ return; |
+ NavigationPreloadState dict; |
+ dict.setEnabled(state.enabled); |
+ if (!state.headerValue.isNull()) |
+ dict.setHeaderValue(state.headerValue); |
+ m_resolver->resolve(dict); |
+} |
+ |
+void GetNavigationPreloadStateCallbacks::onError( |
+ const WebServiceWorkerError& error) { |
+ if (!m_resolver->getExecutionContext() || |
+ m_resolver->getExecutionContext()->activeDOMObjectsAreStopped()) |
+ return; |
+ m_resolver->reject(ServiceWorkerError::take(m_resolver.get(), error)); |
+} |
+ |
} // namespace blink |