OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2008, 2009, 2010 Google Inc. All rights reserved. | 2 * Copyright (C) 2008, 2009, 2010 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 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
66 | 66 |
67 RefPtrWillBeRawPtr<XMLHttpRequest> xmlHttpRequest = XMLHttpRequest::create(c
ontext, securityOrigin); | 67 RefPtrWillBeRawPtr<XMLHttpRequest> xmlHttpRequest = XMLHttpRequest::create(c
ontext, securityOrigin); |
68 | 68 |
69 v8::Handle<v8::Object> wrapper = info.Holder(); | 69 v8::Handle<v8::Object> wrapper = info.Holder(); |
70 V8DOMWrapper::associateObjectWithWrapper<V8XMLHttpRequest>(xmlHttpRequest.re
lease(), &wrapperTypeInfo, wrapper, info.GetIsolate()); | 70 V8DOMWrapper::associateObjectWithWrapper<V8XMLHttpRequest>(xmlHttpRequest.re
lease(), &wrapperTypeInfo, wrapper, info.GetIsolate()); |
71 info.GetReturnValue().Set(wrapper); | 71 info.GetReturnValue().Set(wrapper); |
72 } | 72 } |
73 | 73 |
74 void V8XMLHttpRequest::responseTextAttributeGetterCustom(const v8::PropertyCallb
ackInfo<v8::Value>& info) | 74 void V8XMLHttpRequest::responseTextAttributeGetterCustom(const v8::PropertyCallb
ackInfo<v8::Value>& info) |
75 { | 75 { |
76 XMLHttpRequest* xmlHttpRequest = V8XMLHttpRequest::toNative(info.Holder()); | 76 XMLHttpRequest* xmlHttpRequest = V8XMLHttpRequest::toImpl(info.Holder()); |
77 ExceptionState exceptionState(ExceptionState::GetterContext, "responseText",
"XMLHttpRequest", info.Holder(), info.GetIsolate()); | 77 ExceptionState exceptionState(ExceptionState::GetterContext, "responseText",
"XMLHttpRequest", info.Holder(), info.GetIsolate()); |
78 ScriptString text = xmlHttpRequest->responseText(exceptionState); | 78 ScriptString text = xmlHttpRequest->responseText(exceptionState); |
79 if (exceptionState.throwIfNeeded()) | 79 if (exceptionState.throwIfNeeded()) |
80 return; | 80 return; |
81 if (text.isEmpty()) { | 81 if (text.isEmpty()) { |
82 v8SetReturnValueString(info, emptyString(), info.GetIsolate()); | 82 v8SetReturnValueString(info, emptyString(), info.GetIsolate()); |
83 return; | 83 return; |
84 } | 84 } |
85 v8SetReturnValue(info, text.v8Value()); | 85 v8SetReturnValue(info, text.v8Value()); |
86 } | 86 } |
87 | 87 |
88 void V8XMLHttpRequest::responseAttributeGetterCustom(const v8::PropertyCallbackI
nfo<v8::Value>& info) | 88 void V8XMLHttpRequest::responseAttributeGetterCustom(const v8::PropertyCallbackI
nfo<v8::Value>& info) |
89 { | 89 { |
90 XMLHttpRequest* xmlHttpRequest = V8XMLHttpRequest::toNative(info.Holder()); | 90 XMLHttpRequest* xmlHttpRequest = V8XMLHttpRequest::toImpl(info.Holder()); |
91 | 91 |
92 switch (xmlHttpRequest->responseTypeCode()) { | 92 switch (xmlHttpRequest->responseTypeCode()) { |
93 case XMLHttpRequest::ResponseTypeDefault: | 93 case XMLHttpRequest::ResponseTypeDefault: |
94 case XMLHttpRequest::ResponseTypeText: | 94 case XMLHttpRequest::ResponseTypeText: |
95 responseTextAttributeGetterCustom(info); | 95 responseTextAttributeGetterCustom(info); |
96 return; | 96 return; |
97 | 97 |
98 case XMLHttpRequest::ResponseTypeJSON: | 98 case XMLHttpRequest::ResponseTypeJSON: |
99 { | 99 { |
100 v8::Isolate* isolate = info.GetIsolate(); | 100 v8::Isolate* isolate = info.GetIsolate(); |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
167 // open(method, url, async, user, passwd) | 167 // open(method, url, async, user, passwd) |
168 | 168 |
169 ExceptionState exceptionState(ExceptionState::ExecutionContext, "open", "XML
HttpRequest", info.Holder(), info.GetIsolate()); | 169 ExceptionState exceptionState(ExceptionState::ExecutionContext, "open", "XML
HttpRequest", info.Holder(), info.GetIsolate()); |
170 | 170 |
171 if (info.Length() < 2) { | 171 if (info.Length() < 2) { |
172 exceptionState.throwTypeError(ExceptionMessages::notEnoughArguments(2, i
nfo.Length())); | 172 exceptionState.throwTypeError(ExceptionMessages::notEnoughArguments(2, i
nfo.Length())); |
173 exceptionState.throwIfNeeded(); | 173 exceptionState.throwIfNeeded(); |
174 return; | 174 return; |
175 } | 175 } |
176 | 176 |
177 XMLHttpRequest* xmlHttpRequest = V8XMLHttpRequest::toNative(info.Holder()); | 177 XMLHttpRequest* xmlHttpRequest = V8XMLHttpRequest::toImpl(info.Holder()); |
178 | 178 |
179 TOSTRING_VOID(V8StringResource<>, method, info[0]); | 179 TOSTRING_VOID(V8StringResource<>, method, info[0]); |
180 TOSTRING_VOID(V8StringResource<>, urlstring, info[1]); | 180 TOSTRING_VOID(V8StringResource<>, urlstring, info[1]); |
181 | 181 |
182 ExecutionContext* context = currentExecutionContext(info.GetIsolate()); | 182 ExecutionContext* context = currentExecutionContext(info.GetIsolate()); |
183 KURL url = context->completeURL(urlstring); | 183 KURL url = context->completeURL(urlstring); |
184 | 184 |
185 if (info.Length() >= 3) { | 185 if (info.Length() >= 3) { |
186 bool async = info[2]->BooleanValue(); | 186 bool async = info[2]->BooleanValue(); |
187 | 187 |
(...skipping 17 matching lines...) Expand all Loading... |
205 } | 205 } |
206 | 206 |
207 static bool isDocumentType(v8::Handle<v8::Value> value, v8::Isolate* isolate) | 207 static bool isDocumentType(v8::Handle<v8::Value> value, v8::Isolate* isolate) |
208 { | 208 { |
209 // FIXME: add other document types. | 209 // FIXME: add other document types. |
210 return V8Document::hasInstance(value, isolate) || V8HTMLDocument::hasInstanc
e(value, isolate); | 210 return V8Document::hasInstance(value, isolate) || V8HTMLDocument::hasInstanc
e(value, isolate); |
211 } | 211 } |
212 | 212 |
213 void V8XMLHttpRequest::sendMethodCustom(const v8::FunctionCallbackInfo<v8::Value
>& info) | 213 void V8XMLHttpRequest::sendMethodCustom(const v8::FunctionCallbackInfo<v8::Value
>& info) |
214 { | 214 { |
215 XMLHttpRequest* xmlHttpRequest = V8XMLHttpRequest::toNative(info.Holder()); | 215 XMLHttpRequest* xmlHttpRequest = V8XMLHttpRequest::toImpl(info.Holder()); |
216 | 216 |
217 InspectorInstrumentation::willSendXMLHttpRequest(xmlHttpRequest->executionCo
ntext(), xmlHttpRequest->url()); | 217 InspectorInstrumentation::willSendXMLHttpRequest(xmlHttpRequest->executionCo
ntext(), xmlHttpRequest->url()); |
218 | 218 |
219 ExceptionState exceptionState(ExceptionState::ExecutionContext, "send", "XML
HttpRequest", info.Holder(), info.GetIsolate()); | 219 ExceptionState exceptionState(ExceptionState::ExecutionContext, "send", "XML
HttpRequest", info.Holder(), info.GetIsolate()); |
220 if (info.Length() < 1) { | 220 if (info.Length() < 1) { |
221 xmlHttpRequest->send(exceptionState); | 221 xmlHttpRequest->send(exceptionState); |
222 } else { | 222 } else { |
223 v8::Handle<v8::Value> arg = info[0]; | 223 v8::Handle<v8::Value> arg = info[0]; |
224 if (isUndefinedOrNull(arg)) { | 224 if (isUndefinedOrNull(arg)) { |
225 xmlHttpRequest->send(exceptionState); | 225 xmlHttpRequest->send(exceptionState); |
226 } else if (isDocumentType(arg, info.GetIsolate())) { | 226 } else if (isDocumentType(arg, info.GetIsolate())) { |
227 v8::Handle<v8::Object> object = v8::Handle<v8::Object>::Cast(arg); | 227 v8::Handle<v8::Object> object = v8::Handle<v8::Object>::Cast(arg); |
228 Document* document = V8Document::toNative(object); | 228 Document* document = V8Document::toImpl(object); |
229 ASSERT(document); | 229 ASSERT(document); |
230 xmlHttpRequest->send(document, exceptionState); | 230 xmlHttpRequest->send(document, exceptionState); |
231 } else if (V8Blob::hasInstance(arg, info.GetIsolate())) { | 231 } else if (V8Blob::hasInstance(arg, info.GetIsolate())) { |
232 v8::Handle<v8::Object> object = v8::Handle<v8::Object>::Cast(arg); | 232 v8::Handle<v8::Object> object = v8::Handle<v8::Object>::Cast(arg); |
233 Blob* blob = V8Blob::toNative(object); | 233 Blob* blob = V8Blob::toImpl(object); |
234 ASSERT(blob); | 234 ASSERT(blob); |
235 xmlHttpRequest->send(blob, exceptionState); | 235 xmlHttpRequest->send(blob, exceptionState); |
236 } else if (V8FormData::hasInstance(arg, info.GetIsolate())) { | 236 } else if (V8FormData::hasInstance(arg, info.GetIsolate())) { |
237 v8::Handle<v8::Object> object = v8::Handle<v8::Object>::Cast(arg); | 237 v8::Handle<v8::Object> object = v8::Handle<v8::Object>::Cast(arg); |
238 DOMFormData* domFormData = V8FormData::toNative(object); | 238 DOMFormData* domFormData = V8FormData::toImpl(object); |
239 ASSERT(domFormData); | 239 ASSERT(domFormData); |
240 xmlHttpRequest->send(domFormData, exceptionState); | 240 xmlHttpRequest->send(domFormData, exceptionState); |
241 } else if (V8ArrayBuffer::hasInstance(arg, info.GetIsolate())) { | 241 } else if (V8ArrayBuffer::hasInstance(arg, info.GetIsolate())) { |
242 v8::Handle<v8::Object> object = v8::Handle<v8::Object>::Cast(arg); | 242 v8::Handle<v8::Object> object = v8::Handle<v8::Object>::Cast(arg); |
243 ArrayBuffer* arrayBuffer = V8ArrayBuffer::toNative(object); | 243 ArrayBuffer* arrayBuffer = V8ArrayBuffer::toImpl(object); |
244 ASSERT(arrayBuffer); | 244 ASSERT(arrayBuffer); |
245 xmlHttpRequest->send(arrayBuffer, exceptionState); | 245 xmlHttpRequest->send(arrayBuffer, exceptionState); |
246 } else if (V8ArrayBufferView::hasInstance(arg, info.GetIsolate())) { | 246 } else if (V8ArrayBufferView::hasInstance(arg, info.GetIsolate())) { |
247 v8::Handle<v8::Object> object = v8::Handle<v8::Object>::Cast(arg); | 247 v8::Handle<v8::Object> object = v8::Handle<v8::Object>::Cast(arg); |
248 ArrayBufferView* arrayBufferView = V8ArrayBufferView::toNative(objec
t); | 248 ArrayBufferView* arrayBufferView = V8ArrayBufferView::toImpl(object)
; |
249 ASSERT(arrayBufferView); | 249 ASSERT(arrayBufferView); |
250 xmlHttpRequest->send(arrayBufferView, exceptionState); | 250 xmlHttpRequest->send(arrayBufferView, exceptionState); |
251 } else { | 251 } else { |
252 TOSTRING_VOID(V8StringResource<TreatNullAsNullString>, argString, ar
g); | 252 TOSTRING_VOID(V8StringResource<TreatNullAsNullString>, argString, ar
g); |
253 xmlHttpRequest->send(argString, exceptionState); | 253 xmlHttpRequest->send(argString, exceptionState); |
254 } | 254 } |
255 } | 255 } |
256 | 256 |
257 exceptionState.throwIfNeeded(); | 257 exceptionState.throwIfNeeded(); |
258 } | 258 } |
259 | 259 |
260 } // namespace blink | 260 } // namespace blink |
OLD | NEW |