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 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
129 // Overwrite the data attribute so it returns the cached result in future in
vocations. | 129 // Overwrite the data attribute so it returns the cached result in future in
vocations. |
130 // This custom getter handler will not be called again. | 130 // This custom getter handler will not be called again. |
131 v8::PropertyAttribute dataAttr = static_cast<v8::PropertyAttribute>(v8::Dont
Delete | v8::ReadOnly); | 131 v8::PropertyAttribute dataAttr = static_cast<v8::PropertyAttribute>(v8::Dont
Delete | v8::ReadOnly); |
132 info.Holder()->ForceSet(v8AtomicString(info.GetIsolate(), "data"), result, d
ataAttr); | 132 info.Holder()->ForceSet(v8AtomicString(info.GetIsolate(), "data"), result, d
ataAttr); |
133 v8SetReturnValue(info, result); | 133 v8SetReturnValue(info, result); |
134 } | 134 } |
135 | 135 |
136 void V8MessageEvent::initMessageEventMethodCustom(const v8::FunctionCallbackInfo
<v8::Value>& info) | 136 void V8MessageEvent::initMessageEventMethodCustom(const v8::FunctionCallbackInfo
<v8::Value>& info) |
137 { | 137 { |
138 MessageEvent* event = V8MessageEvent::toNative(info.Holder()); | 138 MessageEvent* event = V8MessageEvent::toNative(info.Holder()); |
139 V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, typeArg, info[0]); | 139 V8STRINGRESOURCE_PREPARE_VOID(V8StringResource<>, typeArg, info[0]); |
140 V8TRYCATCH_VOID(bool, canBubbleArg, info[1]->BooleanValue()); | 140 V8TRYCATCH_VOID(bool, canBubbleArg, info[1]->BooleanValue()); |
141 V8TRYCATCH_VOID(bool, cancelableArg, info[2]->BooleanValue()); | 141 V8TRYCATCH_VOID(bool, cancelableArg, info[2]->BooleanValue()); |
142 v8::Handle<v8::Value> dataArg = info[3]; | 142 v8::Handle<v8::Value> dataArg = info[3]; |
143 V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, originArg, info[4])
; | 143 V8STRINGRESOURCE_PREPARE_VOID(V8StringResource<>, originArg, info[4]); |
144 V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, lastEventIdArg, inf
o[5]); | 144 V8STRINGRESOURCE_PREPARE_VOID(V8StringResource<>, lastEventIdArg, info[5]); |
145 DOMWindow* sourceArg = toDOMWindow(info[6], info.GetIsolate()); | 145 DOMWindow* sourceArg = toDOMWindow(info[6], info.GetIsolate()); |
146 OwnPtr<MessagePortArray> portArray; | 146 OwnPtr<MessagePortArray> portArray; |
147 const int portArrayIndex = 7; | 147 const int portArrayIndex = 7; |
148 if (!isUndefinedOrNull(info[portArrayIndex])) { | 148 if (!isUndefinedOrNull(info[portArrayIndex])) { |
149 portArray = adoptPtr(new MessagePortArray); | 149 portArray = adoptPtr(new MessagePortArray); |
150 bool success = false; | 150 bool success = false; |
151 *portArray = toRefPtrNativeArray<MessagePort, V8MessagePort>(info[portAr
rayIndex], portArrayIndex + 1, info.GetIsolate(), &success); | 151 *portArray = toRefPtrNativeArray<MessagePort, V8MessagePort>(info[portAr
rayIndex], portArrayIndex + 1, info.GetIsolate(), &success); |
152 if (!success) | 152 if (!success) |
153 return; | 153 return; |
154 } | 154 } |
155 event->initMessageEvent(typeArg, canBubbleArg, cancelableArg, originArg, las
tEventIdArg, sourceArg, portArray.release()); | 155 event->initMessageEvent(typeArg, canBubbleArg, cancelableArg, originArg, las
tEventIdArg, sourceArg, portArray.release()); |
156 | 156 |
157 if (!dataArg.IsEmpty()) { | 157 if (!dataArg.IsEmpty()) { |
158 V8HiddenValue::setHiddenValue(info.GetIsolate(), info.Holder(), V8Hidden
Value::data(info.GetIsolate()), dataArg); | 158 V8HiddenValue::setHiddenValue(info.GetIsolate(), info.Holder(), V8Hidden
Value::data(info.GetIsolate()), dataArg); |
159 if (DOMWrapperWorld::current(info.GetIsolate()).isIsolatedWorld()) | 159 if (DOMWrapperWorld::current(info.GetIsolate()).isIsolatedWorld()) |
160 event->setSerializedData(SerializedScriptValue::createAndSwallowExce
ptions(dataArg, info.GetIsolate())); | 160 event->setSerializedData(SerializedScriptValue::createAndSwallowExce
ptions(dataArg, info.GetIsolate())); |
161 } | 161 } |
162 } | 162 } |
163 | 163 |
164 void V8MessageEvent::webkitInitMessageEventMethodCustom(const v8::FunctionCallba
ckInfo<v8::Value>& info) | 164 void V8MessageEvent::webkitInitMessageEventMethodCustom(const v8::FunctionCallba
ckInfo<v8::Value>& info) |
165 { | 165 { |
166 initMessageEventMethodCustom(info); | 166 initMessageEventMethodCustom(info); |
167 } | 167 } |
168 | 168 |
169 | 169 |
170 } // namespace WebCore | 170 } // namespace WebCore |
OLD | NEW |