OLD | NEW |
---|---|
(Empty) | |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #include "config.h" | |
6 #include "modules/serviceworkers/ServiceWorkerMessageEvent.h" | |
7 | |
8 namespace blink { | |
9 | |
10 ServiceWorkerMessageEvent::ServiceWorkerMessageEvent() | |
11 { | |
12 } | |
13 | |
14 ServiceWorkerMessageEvent::ServiceWorkerMessageEvent(const AtomicString& type, c onst ServiceWorkerMessageEventInit& initializer) | |
15 : Event(type, initializer) | |
16 { | |
17 if (initializer.hasOrigin()) | |
18 m_origin = initializer.origin(); | |
19 if (initializer.hasLastEventId()) | |
20 m_lastEventId = initializer.lastEventId(); | |
21 if (initializer.hasSource()) { | |
22 if (initializer.source().isServiceWorker()) | |
23 m_sourceAsServiceWorker = initializer.source().getAsServiceWorker(); | |
24 if (initializer.source().isMessagePort()) | |
haraken
2015/06/25 04:18:48
else if
xiang
2015/06/29 02:32:24
Done.
| |
25 m_sourceAsMessagePort = initializer.source().getAsMessagePort(); | |
26 } | |
27 if (initializer.hasPorts()) | |
28 m_ports = adoptPtrWillBeNoop(new MessagePortArray(initializer.ports())); | |
29 if (initializer.hasData()) | |
30 m_data = initializer.data(); | |
31 } | |
32 | |
33 ServiceWorkerMessageEvent::ServiceWorkerMessageEvent(PassRefPtr<SerializedScript Value> data, const String& origin, const String& lastEventId, PassRefPtrWillBeRa wPtr<ServiceWorker> source, PassOwnPtrWillBeRawPtr<MessagePortArray> ports) | |
34 : Event(EventTypeNames::message, false, false) | |
35 , m_serializedData(data) | |
36 , m_origin(origin) | |
37 , m_lastEventId(lastEventId) | |
38 , m_sourceAsServiceWorker(source) | |
39 , m_ports(ports) | |
40 { | |
41 if (m_serializedData) | |
42 m_serializedData->registerMemoryAllocatedWithCurrentScriptContext(); | |
43 } | |
44 | |
45 ServiceWorkerMessageEvent::~ServiceWorkerMessageEvent() | |
46 { | |
47 } | |
48 | |
49 void ServiceWorkerMessageEvent::source(ServiceWorkerOrMessagePort& result) const | |
50 { | |
51 if (m_sourceAsServiceWorker) | |
52 result = ServiceWorkerOrMessagePort::fromServiceWorker(m_sourceAsService Worker); | |
53 else if (m_sourceAsMessagePort) | |
54 result = ServiceWorkerOrMessagePort::fromMessagePort(m_sourceAsMessagePo rt); | |
55 } | |
56 | |
57 const AtomicString& ServiceWorkerMessageEvent::interfaceName() const | |
58 { | |
59 return EventNames::ServiceWorkerMessageEvent; | |
60 } | |
61 | |
62 DEFINE_TRACE(ServiceWorkerMessageEvent) | |
63 { | |
64 visitor->trace(m_sourceAsServiceWorker); | |
65 visitor->trace(m_sourceAsMessagePort); | |
66 #if ENABLE(OILPAN) | |
67 visitor->trace(m_ports); | |
68 #endif | |
69 Event::trace(visitor); | |
70 } | |
71 | |
72 } // namespace blink | |
OLD | NEW |