| 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 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 44 const String& origin, | 44 const String& origin, |
| 45 MessagePortArray* ports, | 45 MessagePortArray* ports, |
| 46 ServiceWorker* source, | 46 ServiceWorker* source, |
| 47 WaitUntilObserver* observer) { | 47 WaitUntilObserver* observer) { |
| 48 ExtendableMessageEvent* event = | 48 ExtendableMessageEvent* event = |
| 49 new ExtendableMessageEvent(std::move(data), origin, ports, observer); | 49 new ExtendableMessageEvent(std::move(data), origin, ports, observer); |
| 50 event->source_as_service_worker_ = source; | 50 event->source_as_service_worker_ = source; |
| 51 return event; | 51 return event; |
| 52 } | 52 } |
| 53 | 53 |
| 54 MessagePortArray ExtendableMessageEvent::ports(bool& is_null) const { | 54 MessagePortArray ExtendableMessageEvent::ports() const { |
| 55 // TODO(bashi): Currently we return a copied array because the binding | 55 // TODO(bashi): Currently we return a copied array because the binding |
| 56 // layer could modify the content of the array while executing JS callbacks. | 56 // layer could modify the content of the array while executing JS callbacks. |
| 57 // Avoid copying once we can make sure that the binding layer won't | 57 // Avoid copying once we can make sure that the binding layer won't |
| 58 // modify the content. | 58 // modify the content. |
| 59 if (ports_) { | 59 if (ports_) { |
| 60 is_null = false; | |
| 61 return *ports_; | 60 return *ports_; |
| 62 } | 61 } |
| 63 is_null = true; | |
| 64 return MessagePortArray(); | 62 return MessagePortArray(); |
| 65 } | 63 } |
| 66 | 64 |
| 67 MessagePortArray ExtendableMessageEvent::ports() const { | |
| 68 bool unused; | |
| 69 return ports(unused); | |
| 70 } | |
| 71 | |
| 72 void ExtendableMessageEvent::source( | 65 void ExtendableMessageEvent::source( |
| 73 ClientOrServiceWorkerOrMessagePort& result) const { | 66 ClientOrServiceWorkerOrMessagePort& result) const { |
| 74 if (source_as_client_) | 67 if (source_as_client_) |
| 75 result = ClientOrServiceWorkerOrMessagePort::fromClient(source_as_client_); | 68 result = ClientOrServiceWorkerOrMessagePort::fromClient(source_as_client_); |
| 76 else if (source_as_service_worker_) | 69 else if (source_as_service_worker_) |
| 77 result = ClientOrServiceWorkerOrMessagePort::fromServiceWorker( | 70 result = ClientOrServiceWorkerOrMessagePort::fromServiceWorker( |
| 78 source_as_service_worker_); | 71 source_as_service_worker_); |
| 79 else if (source_as_message_port_) | 72 else if (source_as_message_port_) |
| 80 result = ClientOrServiceWorkerOrMessagePort::fromMessagePort( | 73 result = ClientOrServiceWorkerOrMessagePort::fromMessagePort( |
| 81 source_as_message_port_); | 74 source_as_message_port_); |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 131 observer), | 124 observer), |
| 132 serialized_data_(std::move(data)), | 125 serialized_data_(std::move(data)), |
| 133 origin_(origin), | 126 origin_(origin), |
| 134 last_event_id_(String()), | 127 last_event_id_(String()), |
| 135 ports_(ports) { | 128 ports_(ports) { |
| 136 if (serialized_data_) | 129 if (serialized_data_) |
| 137 serialized_data_->RegisterMemoryAllocatedWithCurrentScriptContext(); | 130 serialized_data_->RegisterMemoryAllocatedWithCurrentScriptContext(); |
| 138 } | 131 } |
| 139 | 132 |
| 140 } // namespace blink | 133 } // namespace blink |
| OLD | NEW |