Index: third_party/WebKit/Source/modules/serviceworkers/ServiceWorkerClient.cpp |
diff --git a/third_party/WebKit/Source/modules/serviceworkers/ServiceWorkerClient.cpp b/third_party/WebKit/Source/modules/serviceworkers/ServiceWorkerClient.cpp |
index 198f6e2afa25966372a7abc900bdd58a6a5852f6..faeda840003cc0b663a946b4ac1e3f30a38a6ede 100644 |
--- a/third_party/WebKit/Source/modules/serviceworkers/ServiceWorkerClient.cpp |
+++ b/third_party/WebKit/Source/modules/serviceworkers/ServiceWorkerClient.cpp |
@@ -3,6 +3,7 @@ |
// found in the LICENSE file. |
#include "modules/serviceworkers/ServiceWorkerClient.h" |
+#include "modules/serviceworkers/ServiceWorkerWindowClient.h" |
#include "bindings/core/v8/CallbackPromiseAdapter.h" |
#include "bindings/core/v8/ExceptionState.h" |
@@ -14,6 +15,25 @@ |
namespace blink { |
+ServiceWorkerClient* ServiceWorkerClient::take(ScriptPromiseResolver*, PassOwnPtr<WebServiceWorkerClientInfo> webClient) |
+{ |
+ if (!webClient) |
+ return nullptr; |
+ |
+ switch (webClient->clientType) { |
+ case WebServiceWorkerClientTypeWindow: |
+ return ServiceWorkerWindowClient::create(*webClient); |
+ case WebServiceWorkerClientTypeWorker: |
+ case WebServiceWorkerClientTypeSharedWorker: |
+ return ServiceWorkerClient::create(*webClient); |
+ case WebServiceWorkerClientTypeLast: |
+ ASSERT_NOT_REACHED(); |
+ return nullptr; |
+ } |
+ ASSERT_NOT_REACHED(); |
+ return nullptr; |
+} |
+ |
ServiceWorkerClient* ServiceWorkerClient::create(const WebServiceWorkerClientInfo& info) |
{ |
return new ServiceWorkerClient(info); |