Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1630)

Unified Diff: sdk/lib/_internal/js_runtime/lib/js_helper.dart

Issue 1308143002: dart2js: fetch http Resources (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: sdk/lib/_internal/js_runtime/lib/js_helper.dart
diff --git a/sdk/lib/_internal/js_runtime/lib/js_helper.dart b/sdk/lib/_internal/js_runtime/lib/js_helper.dart
index 6692d2723c426a4e4f984899aac1ac55fb05e77b..b4bca79df598542d2bd710a5072bb3144c82b8a7 100644
--- a/sdk/lib/_internal/js_runtime/lib/js_helper.dart
+++ b/sdk/lib/_internal/js_runtime/lib/js_helper.dart
@@ -3903,6 +3903,41 @@ Future<Null> _loadHunk(String hunkName) {
return completer.future;
}
+Future<String> readHttp(String uri) {
+ Completer<String> completer = new Completer<String>();
+
+ void success(String data) {
+ completer.complete(data);
+ }
+
+ void failure([error, StackTrace stackTrace]) {
+ completer.completeError(
+ new Exception("Loading $uri failed: $error"),
+ stackTrace);
+ }
+
+ enterJsAsync();
+ Future<String> leavingFuture = completer.future.whenComplete(() {
+ leaveJsAsync();
+ });
+
+ var xhr = JS('var', 'new XMLHttpRequest()');
+ JS('void', '#.open("GET", #)', xhr, uri);
+ JS('void', '#.addEventListener("load", #, false)',
+ xhr, convertDartClosureToJS((event) {
+ int status = JS('int', '#.status', xhr);
+ if (status != 200) {
+ failure("Status code: $status");
+ }
+ String data = JS('String', '#.responseText', xhr);
+ success(data);
+ }, 1));
+
+ JS('void', '#.addEventListener("error", #, false)', xhr, failure);
+ JS('void', '#.addEventListener("abort", #, false)', xhr, failure);
+ JS('void', '#.send()', xhr);
Siggi Cherem (dart-lang) 2015/08/22 02:21:16 + return leavingFuture; ?
Harry Terkelsen 2015/08/25 00:03:57 Done.
+}
+
class MainError extends Error implements NoSuchMethodError {
final String _message;

Powered by Google App Engine
This is Rietveld 408576698