| Index: tools/dom/templates/html/impl/impl_XMLHttpRequest.darttemplate
|
| diff --git a/tools/dom/templates/html/impl/impl_XMLHttpRequest.darttemplate b/tools/dom/templates/html/impl/impl_XMLHttpRequest.darttemplate
|
| index ccd909b70d91ea50f0f81897d685cff7ea3f5c64..a983e4f6964ec8ad5e85bec92b153873c27ed5ba 100644
|
| --- a/tools/dom/templates/html/impl/impl_XMLHttpRequest.darttemplate
|
| +++ b/tools/dom/templates/html/impl/impl_XMLHttpRequest.darttemplate
|
| @@ -30,25 +30,39 @@ part of $LIBRARYNAME;
|
| * * [Using XMLHttpRequest](https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest/Using_XMLHttpRequest)
|
| */
|
| $(ANNOTATIONS)class $CLASSNAME$EXTENDS$IMPLEMENTS$NATIVESPEC {
|
| +
|
| /**
|
| - * Creates a URL get request for the specified `url`.
|
| + * Creates a URL get request for the specified [url].
|
| + *
|
| + * The server response must be a `text/` mime type for this request to
|
| + * succeed.
|
| + *
|
| + * This is similar to [request] but specialized for HTTP GET requests which
|
| + * return text content.
|
| + *
|
| + * See also:
|
| *
|
| - * After completing the request, the object will call the user-provided
|
| - * [onComplete] callback.
|
| + * * [request]
|
| */
|
| - factory $CLASSNAME.get(String url, onComplete($CLASSNAME request)) =>
|
| - _HttpRequestUtils.get(url, onComplete, false);
|
| + static Future<String> getString(String url,
|
| + {bool withCredentials, void onProgress(ProgressEvent e)}) {
|
| + return request(url, withCredentials: withCredentials,
|
| + onProgress: onProgress).then((xhr) => xhr.responseText);
|
| + }
|
|
|
| - // 80 char issue for comments in lists: dartbug.com/7588.
|
| /**
|
| - * Creates a URL GET request for the specified `url` with
|
| - * credentials such a cookie (already) set in the header or
|
| - * [authorization headers](http://tools.ietf.org/html/rfc1945#section-10.2).
|
| + * Creates a URL request for the specified [url].
|
| *
|
| - * After completing the request, the object will call the user-provided
|
| - * [onComplete] callback.
|
| + * By default this will do an HTTP GET request, this can be overridden with
|
| + * [method].
|
| *
|
| - * A few other details to keep in mind when using credentials:
|
| + * The Future is completed when the response is available.
|
| + *
|
| + * The [withCredentials] parameter specified that credentials such as a cookie
|
| + * (already) set in the header or
|
| + * [authorization headers](http://tools.ietf.org/html/rfc1945#section-10.2)
|
| + * should be specified for the request. Details to keep in mind when using
|
| + * credentials:
|
| *
|
| * * Using credentials is only useful for cross-origin requests.
|
| * * The `Access-Control-Allow-Origin` header of `url` cannot contain a wildcard (*).
|
| @@ -57,9 +71,50 @@ $(ANNOTATIONS)class $CLASSNAME$EXTENDS$IMPLEMENTS$NATIVESPEC {
|
| *
|
| * See also: [authorization headers](http://en.wikipedia.org/wiki/Basic_access_authentication).
|
| */
|
| - factory $CLASSNAME.getWithCredentials(String url,
|
| - onComplete($CLASSNAME request)) =>
|
| - _HttpRequestUtils.get(url, onComplete, true);
|
| + static Future<HttpRequest> request(String url,
|
| + {String method, bool withCredentials, String responseType, sendData,
|
| + void onProgress(ProgressEvent e)}) {
|
| + var completer = new Completer<String>();
|
| +
|
| + var xhr = new HttpRequest();
|
| + if (method == null) {
|
| + method = 'GET';
|
| + }
|
| + xhr.open(method, url, true);
|
| +
|
| + if (withCredentials != null) {
|
| + xhr.withCredentials = withCredentials;
|
| + }
|
| +
|
| + if (responseType != null) {
|
| + xhr.responseType = responseType;
|
| + }
|
| +
|
| + if (onProgress != null) {
|
| + xhr.onProgress.listen(onProgress);
|
| + }
|
| +
|
| + xhr.onLoad.listen((e) {
|
| + if (xhr.status >= 200 && xhr.status < 300 ||
|
| + xhr.status == 304 ) {
|
| + completer.complete(xhr);
|
| + } else {
|
| + completer.completeError(e);
|
| + }
|
| + });
|
| +
|
| + xhr.onError.listen((e) {
|
| + completer.completeError(e);
|
| + });
|
| +
|
| + if (sendData != null) {
|
| + xhr.send(sendData);
|
| + } else {
|
| + xhr.send();
|
| + }
|
| +
|
| + return completer.future;
|
| + }
|
|
|
| $!MEMBERS
|
| }
|
|
|