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

Side by Side Diff: Source/core/events/MessageEvent.cpp

Issue 85263002: Improve handling of dictionary conversions. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 7 years 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 /* 1 /*
2 * Copyright (C) 2007 Henry Mason (hmason@mac.com) 2 * Copyright (C) 2007 Henry Mason (hmason@mac.com)
3 * Copyright (C) 2003, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. 3 * Copyright (C) 2003, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
7 * are met: 7 * are met:
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 10 matching lines...) Expand all
21 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 21 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
22 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
24 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 * 25 *
26 */ 26 */
27 27
28 #include "config.h" 28 #include "config.h"
29 #include "core/events/MessageEvent.h" 29 #include "core/events/MessageEvent.h"
30 30
31 #include "bindings/v8/ExceptionMessages.h"
31 #include "core/events/ThreadLocalEventNames.h" 32 #include "core/events/ThreadLocalEventNames.h"
32 #include "core/frame/DOMWindow.h" 33 #include "core/frame/DOMWindow.h"
33 34
34 namespace WebCore { 35 namespace WebCore {
35 36
36 static inline bool isValidSource(EventTarget* source) 37 static inline bool isValidSource(EventTarget* source)
37 { 38 {
38 return !source || source->toDOMWindow() || source->toMessagePort(); 39 return !source || source->toDOMWindow() || source->toMessagePort();
39 } 40 }
40 41
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
126 , m_dataAsArrayBuffer(data) 127 , m_dataAsArrayBuffer(data)
127 , m_origin(origin) 128 , m_origin(origin)
128 { 129 {
129 ScriptWrappable::init(this); 130 ScriptWrappable::init(this);
130 } 131 }
131 132
132 MessageEvent::~MessageEvent() 133 MessageEvent::~MessageEvent()
133 { 134 {
134 } 135 }
135 136
137 PassRefPtr<MessageEvent> MessageEvent::create(const AtomicString& type, const Me ssageEventInit& initializer, ExceptionState& exceptionState)
138 {
139 if (initializer.source.get() && !isValidSource(initializer.source.get())) {
140 exceptionState.throwTypeError(ExceptionMessages::failedToConstruct("Mess ageEvent", "The optional 'source' property is not a Window nor MessagePort."));
Mike West 2013/11/25 08:22:48 Nit: "neither ... nor"
sof 2013/11/25 23:24:05 Done.
141 return 0;
142 }
143 return adoptRef(new MessageEvent(type, initializer));
144 }
145
136 void MessageEvent::initMessageEvent(const AtomicString& type, bool canBubble, bo ol cancelable, const String& origin, const String& lastEventId, DOMWindow* sourc e, PassOwnPtr<MessagePortArray> ports) 146 void MessageEvent::initMessageEvent(const AtomicString& type, bool canBubble, bo ol cancelable, const String& origin, const String& lastEventId, DOMWindow* sourc e, PassOwnPtr<MessagePortArray> ports)
137 { 147 {
138 if (dispatched()) 148 if (dispatched())
139 return; 149 return;
140 150
141 initEvent(type, canBubble, cancelable); 151 initEvent(type, canBubble, cancelable);
142 152
143 m_dataType = DataTypeScriptValue; 153 m_dataType = DataTypeScriptValue;
144 m_origin = origin; 154 m_origin = origin;
145 m_lastEventId = lastEventId; 155 m_lastEventId = lastEventId;
(...skipping 23 matching lines...) Expand all
169 { 179 {
170 return EventNames::MessageEvent; 180 return EventNames::MessageEvent;
171 } 181 }
172 182
173 void MessageEvent::entangleMessagePorts(ExecutionContext* context) 183 void MessageEvent::entangleMessagePorts(ExecutionContext* context)
174 { 184 {
175 m_ports = MessagePort::entanglePorts(*context, m_channels.release()); 185 m_ports = MessagePort::entanglePorts(*context, m_channels.release());
176 } 186 }
177 187
178 } // namespace WebCore 188 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698