summaryrefslogtreecommitdiffstats
path: root/WebCore/bindings/js/JSXMLHttpRequestCustom.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/bindings/js/JSXMLHttpRequestCustom.cpp')
-rw-r--r--WebCore/bindings/js/JSXMLHttpRequestCustom.cpp46
1 files changed, 26 insertions, 20 deletions
diff --git a/WebCore/bindings/js/JSXMLHttpRequestCustom.cpp b/WebCore/bindings/js/JSXMLHttpRequestCustom.cpp
index e20b6d9..da83801 100644
--- a/WebCore/bindings/js/JSXMLHttpRequestCustom.cpp
+++ b/WebCore/bindings/js/JSXMLHttpRequestCustom.cpp
@@ -30,6 +30,7 @@
#include "JSXMLHttpRequest.h"
#include "Blob.h"
+#include "DOMFormData.h"
#include "DOMWindow.h"
#include "Document.h"
#include "Event.h"
@@ -37,6 +38,7 @@
#include "FrameLoader.h"
#include "HTMLDocument.h"
#include "JSBlob.h"
+#include "JSDOMFormData.h"
#include "JSDOMWindowCustom.h"
#include "JSDocument.h"
#include "JSEvent.h"
@@ -65,23 +67,25 @@ JSValue JSXMLHttpRequest::open(ExecState* exec, const ArgList& args)
if (args.size() < 2)
return throwError(exec, SyntaxError, "Not enough arguments");
- const KURL& url = impl()->scriptExecutionContext()->completeURL(args.at(1).toString(exec));
- String method = args.at(0).toString(exec);
- bool async = true;
- if (args.size() >= 3)
- async = args.at(2).toBoolean(exec);
+ const KURL& url = impl()->scriptExecutionContext()->completeURL(ustringToString(args.at(1).toString(exec)));
+ String method = ustringToString(args.at(0).toString(exec));
ExceptionCode ec = 0;
- if (args.size() >= 4 && !args.at(3).isUndefined()) {
- String user = valueToStringWithNullCheck(exec, args.at(3));
-
- if (args.size() >= 5 && !args.at(4).isUndefined()) {
- String password = valueToStringWithNullCheck(exec, args.at(4));
- impl()->open(method, url, async, user, password, ec);
+ if (args.size() >= 3) {
+ bool async = args.at(2).toBoolean(exec);
+
+ if (args.size() >= 4 && !args.at(3).isUndefined()) {
+ String user = valueToStringWithNullCheck(exec, args.at(3));
+
+ if (args.size() >= 5 && !args.at(4).isUndefined()) {
+ String password = valueToStringWithNullCheck(exec, args.at(4));
+ impl()->open(method, url, async, user, password, ec);
+ } else
+ impl()->open(method, url, async, user, ec);
} else
- impl()->open(method, url, async, user, ec);
+ impl()->open(method, url, async, ec);
} else
- impl()->open(method, url, async, ec);
+ impl()->open(method, url, ec);
setDOMException(exec, ec);
return jsUndefined();
@@ -93,7 +97,7 @@ JSValue JSXMLHttpRequest::setRequestHeader(ExecState* exec, const ArgList& args)
return throwError(exec, SyntaxError, "Not enough arguments");
ExceptionCode ec = 0;
- impl()->setRequestHeader(args.at(0).toString(exec), args.at(1).toString(exec), ec);
+ impl()->setRequestHeader(ustringToAtomicString(args.at(0).toString(exec)), ustringToString(args.at(1).toString(exec)), ec);
setDOMException(exec, ec);
return jsUndefined();
}
@@ -111,8 +115,10 @@ JSValue JSXMLHttpRequest::send(ExecState* exec, const ArgList& args)
impl()->send(toDocument(val), ec);
else if (val.inherits(&JSBlob::s_info))
impl()->send(toBlob(val), ec);
+ else if (val.inherits(&JSDOMFormData::s_info))
+ impl()->send(toDOMFormData(val), ec);
else
- impl()->send(val.toString(exec), ec);
+ impl()->send(ustringToString(val.toString(exec)), ec);
}
int signedLineNumber;
@@ -121,7 +127,7 @@ JSValue JSXMLHttpRequest::send(ExecState* exec, const ArgList& args)
JSValue function;
exec->interpreter()->retrieveLastCaller(exec, signedLineNumber, sourceID, sourceURL, function);
impl()->setLastSendLineNumber(signedLineNumber >= 0 ? signedLineNumber : 0);
- impl()->setLastSendURL(sourceURL);
+ impl()->setLastSendURL(ustringToString(sourceURL));
setDOMException(exec, ec);
return jsUndefined();
@@ -133,7 +139,7 @@ JSValue JSXMLHttpRequest::getResponseHeader(ExecState* exec, const ArgList& args
return throwError(exec, SyntaxError, "Not enough arguments");
ExceptionCode ec = 0;
- JSValue header = jsStringOrNull(exec, impl()->getResponseHeader(args.at(0).toString(exec), ec));
+ JSValue header = jsStringOrNull(exec, impl()->getResponseHeader(ustringToAtomicString(args.at(0).toString(exec)), ec));
setDOMException(exec, ec);
return header;
}
@@ -143,7 +149,7 @@ JSValue JSXMLHttpRequest::overrideMimeType(ExecState* exec, const ArgList& args)
if (args.size() < 1)
return throwError(exec, SyntaxError, "Not enough arguments");
- impl()->overrideMimeType(args.at(0).toString(exec));
+ impl()->overrideMimeType(ustringToString(args.at(0).toString(exec)));
return jsUndefined();
}
@@ -153,7 +159,7 @@ JSValue JSXMLHttpRequest::addEventListener(ExecState* exec, const ArgList& args)
if (!listener.isObject())
return jsUndefined();
- impl()->addEventListener(args.at(0).toString(exec), JSEventListener::create(asObject(listener), this, false, currentWorld(exec)), args.at(2).toBoolean(exec));
+ impl()->addEventListener(ustringToAtomicString(args.at(0).toString(exec)), JSEventListener::create(asObject(listener), this, false, currentWorld(exec)), args.at(2).toBoolean(exec));
return jsUndefined();
}
@@ -163,7 +169,7 @@ JSValue JSXMLHttpRequest::removeEventListener(ExecState* exec, const ArgList& ar
if (!listener.isObject())
return jsUndefined();
- impl()->removeEventListener(args.at(0).toString(exec), JSEventListener::create(asObject(listener), this, false, currentWorld(exec)).get(), args.at(2).toBoolean(exec));
+ impl()->removeEventListener(ustringToAtomicString(args.at(0).toString(exec)), JSEventListener::create(asObject(listener), this, false, currentWorld(exec)).get(), args.at(2).toBoolean(exec));
return jsUndefined();
}