Changeset 224000 in webkit
- Timestamp:
- Oct 25, 2017 7:57:08 PM (6 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r223999 r224000 1 2017-10-25 Chris Dumez <cdumez@apple.com> 2 3 messageEvent.source can also be a ServiceWorker 4 https://bugs.webkit.org/show_bug.cgi?id=178839 5 6 Reviewed by Brady Eidson. 7 8 messageEvent.source can also be a ServiceWorker: 9 - https://html.spec.whatwg.org/multipage/comms.html#messageeventsource 10 11 This enables calling postMessage() from a ServiceWorker via Bug 178794. 12 13 * dom/MessageEvent.cpp: 14 (WebCore::MessageEvent::source const): Deleted. 15 * dom/MessageEvent.h: 16 * dom/MessageEvent.idl: 17 1 18 2017-10-25 Ryosuke Niwa <rniwa@webkit.org> 2 19 -
trunk/Source/WebCore/dom/MessageEvent.cpp
r223849 r224000 151 151 } 152 152 153 EventTarget* MessageEvent::source() const154 {155 if (!m_source)156 return nullptr;157 158 return WTF::switchOn(m_source.value(),159 [] (const RefPtr<DOMWindow>& window) -> EventTarget* { return const_cast<DOMWindow*>(window.get()); },160 [] (const RefPtr<MessagePort>& messagePort) -> EventTarget* { return const_cast<MessagePort*>(messagePort.get()); }161 );162 }163 164 153 RefPtr<SerializedScriptValue> MessageEvent::trySerializeData(ExecState* exec) 165 154 { -
trunk/Source/WebCore/dom/MessageEvent.h
r210216 r224000 32 32 #include "MessagePort.h" 33 33 #include "SerializedScriptValue.h" 34 #include "ServiceWorker.h" 34 35 #include <bindings/ScriptValue.h> 35 36 #include <wtf/Variant.h> … … 39 40 class Blob; 40 41 42 #if ENABLE(SERVICE_WORKER) 43 using MessageEventSource = Variant<RefPtr<DOMWindow>, RefPtr<MessagePort>, RefPtr<ServiceWorker>>; 44 #else 41 45 using MessageEventSource = Variant<RefPtr<DOMWindow>, RefPtr<MessagePort>>; 46 #endif 42 47 43 48 class MessageEvent final : public Event { … … 65 70 const String& origin() const { return m_origin; } 66 71 const String& lastEventId() const { return m_lastEventId; } 67 EventTarget* source() const;72 const std::optional<MessageEventSource>& source() const { return m_source; } 68 73 const Vector<RefPtr<MessagePort>>& ports() const { return m_ports; } 69 74 -
trunk/Source/WebCore/dom/MessageEvent.idl
r213543 r224000 27 27 */ 28 28 29 #if defined(ENABLE_SERVICE_WORKER) && ENABLE_SERVICE_WORKER 30 typedef (DOMWindow or MessagePort or ServiceWorker) MessageEventSource; 31 #else 32 typedef (DOMWindow or MessagePort) MessageEventSource; 33 #endif 34 29 35 [ 30 36 Constructor(DOMString type, optional MessageEventInit eventInitDict), … … 34 40 readonly attribute USVString origin; 35 41 readonly attribute DOMString lastEventId; 36 readonly attribute EventTarget? source;42 readonly attribute MessageEventSource? source; 37 43 [CachedAttribute, CustomGetter] readonly attribute any data; 38 44 readonly attribute FrozenArray<MessagePort> ports; 39 45 40 46 [CallWith=ScriptState] void initMessageEvent(DOMString type, optional boolean bubbles = false, optional boolean cancelable = false, 41 optional any data = null, optional USVString originArg = "", optional DOMString lastEventId = "", optional (DOMWindow or MessagePort)? source = null,47 optional any data = null, optional USVString originArg = "", optional DOMString lastEventId = "", optional MessageEventSource? source = null, 42 48 optional sequence<MessagePort> messagePorts = []); 43 49 }; … … 47 53 USVString origin = ""; 48 54 DOMString lastEventId = ""; 49 (DOMWindow or MessagePort)? source = null;55 MessageEventSource? source = null; 50 56 sequence<MessagePort> ports = []; 51 57 };
Note: See TracChangeset
for help on using the changeset viewer.