OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "modules/serviceworkers/ExtendableMessageEvent.h" | 5 #include "modules/serviceworkers/ExtendableMessageEvent.h" |
6 | 6 |
7 namespace blink { | 7 namespace blink { |
8 | 8 |
9 ExtendableMessageEvent* ExtendableMessageEvent::create( | 9 ExtendableMessageEvent* ExtendableMessageEvent::create( |
10 const AtomicString& type, | 10 const AtomicString& type, |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
118 m_sourceAsMessagePort = initializer.source().getAsMessagePort(); | 118 m_sourceAsMessagePort = initializer.source().getAsMessagePort(); |
119 } | 119 } |
120 if (initializer.hasPorts()) { | 120 if (initializer.hasPorts()) { |
121 // TODO(sof): remove the extra same-heap checks once crbug.com/655926 | 121 // TODO(sof): remove the extra same-heap checks once crbug.com/655926 |
122 // has been resolved. | 122 // has been resolved. |
123 const MessagePortArray& ports = initializer.ports(); | 123 const MessagePortArray& ports = initializer.ports(); |
124 m_ports = new MessagePortArray; | 124 m_ports = new MessagePortArray; |
125 m_ports->reserveInitialCapacity(ports.size()); | 125 m_ports->reserveInitialCapacity(ports.size()); |
126 for (const auto& port : ports) { | 126 for (const auto& port : ports) { |
127 CHECK(ThreadState::current()->isOnThreadHeap(port.get())); | 127 CHECK(ThreadState::current()->isOnThreadHeap(port.get())); |
128 m_ports->append(port); | 128 m_ports->push_back(port); |
129 } | 129 } |
130 } | 130 } |
131 } | 131 } |
132 | 132 |
133 ExtendableMessageEvent::ExtendableMessageEvent( | 133 ExtendableMessageEvent::ExtendableMessageEvent( |
134 PassRefPtr<SerializedScriptValue> data, | 134 PassRefPtr<SerializedScriptValue> data, |
135 const String& origin, | 135 const String& origin, |
136 MessagePortArray* ports, | 136 MessagePortArray* ports, |
137 WaitUntilObserver* observer) | 137 WaitUntilObserver* observer) |
138 : ExtendableEvent(EventTypeNames::message, | 138 : ExtendableEvent(EventTypeNames::message, |
139 ExtendableMessageEventInit(), | 139 ExtendableMessageEventInit(), |
140 observer), | 140 observer), |
141 m_serializedData(data), | 141 m_serializedData(data), |
142 m_origin(origin), | 142 m_origin(origin), |
143 m_lastEventId(String()), | 143 m_lastEventId(String()), |
144 m_ports(ports) { | 144 m_ports(ports) { |
145 if (m_serializedData) | 145 if (m_serializedData) |
146 m_serializedData->registerMemoryAllocatedWithCurrentScriptContext(); | 146 m_serializedData->registerMemoryAllocatedWithCurrentScriptContext(); |
147 | 147 |
148 // TODO(sof): remove the same-heap verification once crbug.com/655926 has | 148 // TODO(sof): remove the same-heap verification once crbug.com/655926 has |
149 // been resolved. | 149 // been resolved. |
150 if (m_ports) { | 150 if (m_ports) { |
151 for (const auto& port : *m_ports) { | 151 for (const auto& port : *m_ports) { |
152 CHECK(ThreadState::current()->isOnThreadHeap(port.get())); | 152 CHECK(ThreadState::current()->isOnThreadHeap(port.get())); |
153 } | 153 } |
154 } | 154 } |
155 } | 155 } |
156 | 156 |
157 } // namespace blink | 157 } // namespace blink |
OLD | NEW |