Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(456)

Side by Side Diff: third_party/WebKit/Source/modules/serviceworkers/ExtendableMessageEvent.cpp

Issue 2904563004: [ServiceWorker] Fix ExtendableMessageEvent idl binding (Closed)
Patch Set: Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698