| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 60 #include "public/platform/modules/notifications/WebNotificationData.h" | 60 #include "public/platform/modules/notifications/WebNotificationData.h" |
| 61 #include "public/platform/modules/serviceworker/WebServiceWorkerEventResult.h" | 61 #include "public/platform/modules/serviceworker/WebServiceWorkerEventResult.h" |
| 62 #include "public/platform/modules/serviceworker/WebServiceWorkerRequest.h" | 62 #include "public/platform/modules/serviceworker/WebServiceWorkerRequest.h" |
| 63 #include "public/web/WebSerializedScriptValue.h" | 63 #include "public/web/WebSerializedScriptValue.h" |
| 64 #include "public/web/modules/serviceworker/WebServiceWorkerContextClient.h" | 64 #include "public/web/modules/serviceworker/WebServiceWorkerContextClient.h" |
| 65 #include "web/WebEmbeddedWorkerImpl.h" | 65 #include "web/WebEmbeddedWorkerImpl.h" |
| 66 #include "wtf/Assertions.h" | 66 #include "wtf/Assertions.h" |
| 67 #include "wtf/Functional.h" | 67 #include "wtf/Functional.h" |
| 68 #include "wtf/PassOwnPtr.h" | 68 #include "wtf/PassOwnPtr.h" |
| 69 | 69 |
| 70 #include <utility> |
| 71 |
| 70 namespace blink { | 72 namespace blink { |
| 71 | 73 |
| 72 RawPtr<ServiceWorkerGlobalScopeProxy> ServiceWorkerGlobalScopeProxy::create(WebE
mbeddedWorkerImpl& embeddedWorker, Document& document, WebServiceWorkerContextCl
ient& client) | 74 RawPtr<ServiceWorkerGlobalScopeProxy> ServiceWorkerGlobalScopeProxy::create(WebE
mbeddedWorkerImpl& embeddedWorker, Document& document, WebServiceWorkerContextCl
ient& client) |
| 73 { | 75 { |
| 74 return new ServiceWorkerGlobalScopeProxy(embeddedWorker, document, client); | 76 return new ServiceWorkerGlobalScopeProxy(embeddedWorker, document, client); |
| 75 } | 77 } |
| 76 | 78 |
| 77 ServiceWorkerGlobalScopeProxy::~ServiceWorkerGlobalScopeProxy() | 79 ServiceWorkerGlobalScopeProxy::~ServiceWorkerGlobalScopeProxy() |
| 78 { | 80 { |
| 79 // Verify that the proxy has been detached. | 81 // Verify that the proxy has been detached. |
| 80 DCHECK(!m_embeddedWorker); | 82 DCHECK(!m_embeddedWorker); |
| 81 } | 83 } |
| 82 | 84 |
| 83 DEFINE_TRACE(ServiceWorkerGlobalScopeProxy) | 85 DEFINE_TRACE(ServiceWorkerGlobalScopeProxy) |
| 84 { | 86 { |
| 85 visitor->trace(m_document); | 87 visitor->trace(m_document); |
| 86 visitor->trace(m_workerGlobalScope); | 88 visitor->trace(m_workerGlobalScope); |
| 87 } | 89 } |
| 88 | 90 |
| 89 void ServiceWorkerGlobalScopeProxy::setRegistration(WebPassOwnPtr<WebServiceWork
erRegistration::Handle> handle) | 91 void ServiceWorkerGlobalScopeProxy::setRegistration(std::unique_ptr<WebServiceWo
rkerRegistration::Handle> handle) |
| 90 { | 92 { |
| 91 workerGlobalScope()->setRegistration(handle); | 93 workerGlobalScope()->setRegistration(std::move(handle)); |
| 92 } | 94 } |
| 93 | 95 |
| 94 void ServiceWorkerGlobalScopeProxy::dispatchActivateEvent(int eventID) | 96 void ServiceWorkerGlobalScopeProxy::dispatchActivateEvent(int eventID) |
| 95 { | 97 { |
| 96 WaitUntilObserver* observer = WaitUntilObserver::create(workerGlobalScope(),
WaitUntilObserver::Activate, eventID); | 98 WaitUntilObserver* observer = WaitUntilObserver::create(workerGlobalScope(),
WaitUntilObserver::Activate, eventID); |
| 97 RawPtr<Event> event(ExtendableEvent::create(EventTypeNames::activate, Extend
ableEventInit(), observer)); | 99 RawPtr<Event> event(ExtendableEvent::create(EventTypeNames::activate, Extend
ableEventInit(), observer)); |
| 98 workerGlobalScope()->dispatchExtendableEvent(event.release(), observer); | 100 workerGlobalScope()->dispatchExtendableEvent(event.release(), observer); |
| 99 } | 101 } |
| 100 | 102 |
| 101 void ServiceWorkerGlobalScopeProxy::dispatchExtendableMessageEvent(int eventID,
const WebString& message, const WebSecurityOrigin& sourceOrigin, const WebMessag
ePortChannelArray& webChannels, const WebServiceWorkerClientInfo& client) | 103 void ServiceWorkerGlobalScopeProxy::dispatchExtendableMessageEvent(int eventID,
const WebString& message, const WebSecurityOrigin& sourceOrigin, const WebMessag
ePortChannelArray& webChannels, const WebServiceWorkerClientInfo& client) |
| 102 { | 104 { |
| 103 DCHECK(RuntimeEnabledFeatures::serviceWorkerExtendableMessageEventEnabled())
; | 105 DCHECK(RuntimeEnabledFeatures::serviceWorkerExtendableMessageEventEnabled())
; |
| 104 | 106 |
| 105 WebSerializedScriptValue value = WebSerializedScriptValue::fromString(messag
e); | 107 WebSerializedScriptValue value = WebSerializedScriptValue::fromString(messag
e); |
| 106 MessagePortArray* ports = MessagePort::toMessagePortArray(m_workerGlobalScop
e, webChannels); | 108 MessagePortArray* ports = MessagePort::toMessagePortArray(m_workerGlobalScop
e, webChannels); |
| 107 String origin; | 109 String origin; |
| 108 if (!sourceOrigin.isUnique()) | 110 if (!sourceOrigin.isUnique()) |
| 109 origin = sourceOrigin.toString(); | 111 origin = sourceOrigin.toString(); |
| 110 ServiceWorkerClient* source = nullptr; | 112 ServiceWorkerClient* source = nullptr; |
| 111 if (client.clientType == WebServiceWorkerClientTypeWindow) | 113 if (client.clientType == WebServiceWorkerClientTypeWindow) |
| 112 source = ServiceWorkerWindowClient::create(client); | 114 source = ServiceWorkerWindowClient::create(client); |
| 113 else | 115 else |
| 114 source = ServiceWorkerClient::create(client); | 116 source = ServiceWorkerClient::create(client); |
| 115 WaitUntilObserver* observer = WaitUntilObserver::create(workerGlobalScope(),
WaitUntilObserver::Message, eventID); | 117 WaitUntilObserver* observer = WaitUntilObserver::create(workerGlobalScope(),
WaitUntilObserver::Message, eventID); |
| 116 | 118 |
| 117 RawPtr<Event> event(ExtendableMessageEvent::create(value, origin, ports, sou
rce, observer)); | 119 RawPtr<Event> event(ExtendableMessageEvent::create(value, origin, ports, sou
rce, observer)); |
| 118 workerGlobalScope()->dispatchExtendableEvent(event.release(), observer); | 120 workerGlobalScope()->dispatchExtendableEvent(event.release(), observer); |
| 119 } | 121 } |
| 120 | 122 |
| 121 void ServiceWorkerGlobalScopeProxy::dispatchExtendableMessageEvent(int eventID,
const WebString& message, const WebSecurityOrigin& sourceOrigin, const WebMessag
ePortChannelArray& webChannels, WebPassOwnPtr<WebServiceWorker::Handle> handle) | 123 void ServiceWorkerGlobalScopeProxy::dispatchExtendableMessageEvent(int eventID,
const WebString& message, const WebSecurityOrigin& sourceOrigin, const WebMessag
ePortChannelArray& webChannels, std::unique_ptr<WebServiceWorker::Handle> handle
) |
| 122 { | 124 { |
| 123 DCHECK(RuntimeEnabledFeatures::serviceWorkerExtendableMessageEventEnabled())
; | 125 DCHECK(RuntimeEnabledFeatures::serviceWorkerExtendableMessageEventEnabled())
; |
| 124 | 126 |
| 125 WebSerializedScriptValue value = WebSerializedScriptValue::fromString(messag
e); | 127 WebSerializedScriptValue value = WebSerializedScriptValue::fromString(messag
e); |
| 126 MessagePortArray* ports = MessagePort::toMessagePortArray(m_workerGlobalScop
e, webChannels); | 128 MessagePortArray* ports = MessagePort::toMessagePortArray(m_workerGlobalScop
e, webChannels); |
| 127 String origin; | 129 String origin; |
| 128 if (!sourceOrigin.isUnique()) | 130 if (!sourceOrigin.isUnique()) |
| 129 origin = sourceOrigin.toString(); | 131 origin = sourceOrigin.toString(); |
| 130 ServiceWorker* source = ServiceWorker::from(m_workerGlobalScope->getExecutio
nContext(), handle.release()); | 132 ServiceWorker* source = ServiceWorker::from(m_workerGlobalScope->getExecutio
nContext(), adoptPtr(handle.release())); |
| 131 WaitUntilObserver* observer = WaitUntilObserver::create(workerGlobalScope(),
WaitUntilObserver::Message, eventID); | 133 WaitUntilObserver* observer = WaitUntilObserver::create(workerGlobalScope(),
WaitUntilObserver::Message, eventID); |
| 132 | 134 |
| 133 RawPtr<Event> event(ExtendableMessageEvent::create(value, origin, ports, sou
rce, observer)); | 135 RawPtr<Event> event(ExtendableMessageEvent::create(value, origin, ports, sou
rce, observer)); |
| 134 workerGlobalScope()->dispatchExtendableEvent(event.release(), observer); | 136 workerGlobalScope()->dispatchExtendableEvent(event.release(), observer); |
| 135 } | 137 } |
| 136 | 138 |
| 137 void ServiceWorkerGlobalScopeProxy::dispatchFetchEvent(int eventID, const WebSer
viceWorkerRequest& webRequest) | 139 void ServiceWorkerGlobalScopeProxy::dispatchFetchEvent(int eventID, const WebSer
viceWorkerRequest& webRequest) |
| 138 { | 140 { |
| 139 dispatchFetchEventImpl(eventID, webRequest, EventTypeNames::fetch); | 141 dispatchFetchEventImpl(eventID, webRequest, EventTypeNames::fetch); |
| 140 } | 142 } |
| (...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 302 eventInit.setCancelable(true); | 304 eventInit.setCancelable(true); |
| 303 eventInit.setRequest(request); | 305 eventInit.setRequest(request); |
| 304 eventInit.setClientId(webRequest.isMainResourceLoad() ? WebString() : webReq
uest.clientId()); | 306 eventInit.setClientId(webRequest.isMainResourceLoad() ? WebString() : webReq
uest.clientId()); |
| 305 eventInit.setIsReload(webRequest.isReload()); | 307 eventInit.setIsReload(webRequest.isReload()); |
| 306 RawPtr<FetchEvent> fetchEvent(FetchEvent::create(eventTypeName, eventInit, o
bserver)); | 308 RawPtr<FetchEvent> fetchEvent(FetchEvent::create(eventTypeName, eventInit, o
bserver)); |
| 307 DispatchEventResult dispatchResult = workerGlobalScope()->dispatchEvent(fetc
hEvent.release()); | 309 DispatchEventResult dispatchResult = workerGlobalScope()->dispatchEvent(fetc
hEvent.release()); |
| 308 observer->didDispatchEvent(dispatchResult); | 310 observer->didDispatchEvent(dispatchResult); |
| 309 } | 311 } |
| 310 | 312 |
| 311 } // namespace blink | 313 } // namespace blink |
| OLD | NEW |