Index: Source/modules/serviceworkers/ServiceWorkerContainer.cpp |
diff --git a/Source/modules/serviceworkers/ServiceWorkerContainer.cpp b/Source/modules/serviceworkers/ServiceWorkerContainer.cpp |
index f966de158b6a7b134acaf53c78bd0cc1b3b8990e..a34f7748184e6c31e2d037b800df954a000843ca 100644 |
--- a/Source/modules/serviceworkers/ServiceWorkerContainer.cpp |
+++ b/Source/modules/serviceworkers/ServiceWorkerContainer.cpp |
@@ -124,6 +124,7 @@ ScriptPromise ServiceWorkerContainer::registerServiceWorker(ScriptState* scriptS |
return promise; |
} |
+#ifdef DISABLE_SERVICEWORKER_UNREGISTER_RESOLVE_TO_BOOLEAN |
class UndefinedValue { |
public: |
typedef WebServiceWorkerRegistration WebType; |
@@ -140,6 +141,20 @@ public: |
private: |
UndefinedValue(); |
}; |
+#else |
+class BooleanValue { |
+public: |
+ typedef bool WebType; |
+ static bool take(ScriptPromiseResolver* resolver, WebType* boolean) |
+ { |
+ return *boolean; |
+ } |
+ static void dispose(WebType* boolean) { } |
+ |
+private: |
+ BooleanValue(); |
+}; |
+#endif |
ScriptPromise ServiceWorkerContainer::unregisterServiceWorker(ScriptState* scriptState, const String& pattern) |
{ |
@@ -167,8 +182,11 @@ ScriptPromise ServiceWorkerContainer::unregisterServiceWorker(ScriptState* scrip |
resolver->reject(DOMException::create(SecurityError, "The scope must match the current origin.")); |
return promise; |
} |
- |
+#ifdef DISABLE_SERVICEWORKER_UNREGISTER_RESOLVE_TO_BOOLEAN |
m_provider->unregisterServiceWorker(patternURL, new CallbackPromiseAdapter<UndefinedValue, ServiceWorkerError>(resolver)); |
+#else |
+ m_provider->unregisterServiceWorker(patternURL, new CallbackPromiseAdapter<BooleanValue, ServiceWorkerError>(resolver)); |
+#endif |
return promise; |
} |