OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2009 Google Inc. All rights reserved. | 2 * Copyright (C) 2009 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * 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 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
107 MessageEvent* event = V8MessageEvent::toImpl(info.Holder()); | 107 MessageEvent* event = V8MessageEvent::toImpl(info.Holder()); |
108 TOSTRING_VOID(V8StringResource<>, typeArg, info[0]); | 108 TOSTRING_VOID(V8StringResource<>, typeArg, info[0]); |
109 TONATIVE_VOID(bool, canBubbleArg, info[1]->BooleanValue()); | 109 TONATIVE_VOID(bool, canBubbleArg, info[1]->BooleanValue()); |
110 TONATIVE_VOID(bool, cancelableArg, info[2]->BooleanValue()); | 110 TONATIVE_VOID(bool, cancelableArg, info[2]->BooleanValue()); |
111 v8::Handle<v8::Value> dataArg = info[3]; | 111 v8::Handle<v8::Value> dataArg = info[3]; |
112 TOSTRING_VOID(V8StringResource<>, originArg, info[4]); | 112 TOSTRING_VOID(V8StringResource<>, originArg, info[4]); |
113 TOSTRING_VOID(V8StringResource<>, lastEventIdArg, info[5]); | 113 TOSTRING_VOID(V8StringResource<>, lastEventIdArg, info[5]); |
114 LocalDOMWindow* sourceArg = toDOMWindow(info[6], info.GetIsolate()); | 114 LocalDOMWindow* sourceArg = toDOMWindow(info[6], info.GetIsolate()); |
115 OwnPtrWillBeRawPtr<MessagePortArray> portArray = nullptr; | 115 OwnPtrWillBeRawPtr<MessagePortArray> portArray = nullptr; |
116 const int portArrayIndex = 7; | 116 const int portArrayIndex = 7; |
| 117 |
117 if (!isUndefinedOrNull(info[portArrayIndex])) { | 118 if (!isUndefinedOrNull(info[portArrayIndex])) { |
| 119 ExceptionState exceptionState(ExceptionState::ExecutionContext, "initMes
sageEvent", info.Holder(), info.GetIsolate()); |
118 portArray = adoptPtrWillBeNoop(new MessagePortArray); | 120 portArray = adoptPtrWillBeNoop(new MessagePortArray); |
119 bool success = false; | 121 *portArray = toRefPtrWillBeMemberNativeArray<MessagePort, V8MessagePort>
(info[portArrayIndex], portArrayIndex + 1, info.GetIsolate(), &exceptionState); |
120 *portArray = toRefPtrWillBeMemberNativeArray<MessagePort, V8MessagePort>
(info[portArrayIndex], portArrayIndex + 1, info.GetIsolate(), &success); | 122 if (exceptionState.throwIfNeeded()) |
121 if (!success) | |
122 return; | 123 return; |
123 } | 124 } |
124 event->initMessageEvent(typeArg, canBubbleArg, cancelableArg, originArg, las
tEventIdArg, sourceArg, portArray.release()); | 125 event->initMessageEvent(typeArg, canBubbleArg, cancelableArg, originArg, las
tEventIdArg, sourceArg, portArray.release()); |
125 | 126 |
126 if (!dataArg.IsEmpty()) { | 127 if (!dataArg.IsEmpty()) { |
127 V8HiddenValue::setHiddenValue(info.GetIsolate(), info.Holder(), V8Hidden
Value::data(info.GetIsolate()), dataArg); | 128 V8HiddenValue::setHiddenValue(info.GetIsolate(), info.Holder(), V8Hidden
Value::data(info.GetIsolate()), dataArg); |
128 if (DOMWrapperWorld::current(info.GetIsolate()).isIsolatedWorld()) | 129 if (DOMWrapperWorld::current(info.GetIsolate()).isIsolatedWorld()) |
129 event->setSerializedData(SerializedScriptValue::createAndSwallowExce
ptions(dataArg, info.GetIsolate())); | 130 event->setSerializedData(SerializedScriptValue::createAndSwallowExce
ptions(dataArg, info.GetIsolate())); |
130 } | 131 } |
131 } | 132 } |
132 | 133 |
133 } // namespace blink | 134 } // namespace blink |
OLD | NEW |