Chromium Code Reviews| 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..709ab98f0605de45bedea49aa3a59741d0ec346e 100644 |
| --- a/tools/dom/templates/html/impl/impl_XMLHttpRequest.darttemplate |
| +++ b/tools/dom/templates/html/impl/impl_XMLHttpRequest.darttemplate |
| @@ -30,25 +30,35 @@ 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. |
| + * |
| + * Details to keep in mind when using credentials: |
|
Emily Fortuna
2013/01/31 20:32:06
can you add back in lines 45-46 explaining what so
blois
2013/01/31 20:51:20
Done.
|
| * |
| * * Using credentials is only useful for cross-origin requests. |
| * * The `Access-Control-Allow-Origin` header of `url` cannot contain a wildcard (*). |
| @@ -57,9 +67,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 |
| } |