OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 library builtin; | 5 library builtin; |
6 import 'dart:io'; | 6 import 'dart:io'; |
| 7 import 'dart:typed_data'; |
7 | 8 |
8 // Corelib 'print' implementation. | 9 // Corelib 'print' implementation. |
9 void _print(arg) { | 10 void _print(arg) { |
10 _Logger._printString(arg.toString()); | 11 _Logger._printString(arg.toString()); |
11 } | 12 } |
12 | 13 |
13 | 14 |
14 class _Logger { | 15 class _Logger { |
15 static void _printString(String s) native "Logger_PrintString"; | 16 static void _printString(String s) native "Logger_PrintString"; |
16 } | 17 } |
(...skipping 11 matching lines...) Expand all Loading... |
28 | 29 |
29 | 30 |
30 var _httpRequestResponseCode = 0; | 31 var _httpRequestResponseCode = 0; |
31 var _httpRequestStatusString; | 32 var _httpRequestStatusString; |
32 var _httpRequestResponse; | 33 var _httpRequestResponse; |
33 | 34 |
34 _getHttpRequestResponseCode() => _httpRequestResponseCode; | 35 _getHttpRequestResponseCode() => _httpRequestResponseCode; |
35 _getHttpRequestStatusString() => _httpRequestStatusString; | 36 _getHttpRequestStatusString() => _httpRequestStatusString; |
36 _getHttpRequestResponse() => _httpRequestResponse; | 37 _getHttpRequestResponse() => _httpRequestResponse; |
37 | 38 |
38 void _requestCompleted(HttpClientResponseBody body) { | 39 void _requestCompleted(List<int> data, HttpClientResponse response) { |
39 _httpRequestResponseCode = body.statusCode; | 40 _httpRequestResponseCode = response.statusCode; |
40 _httpRequestStatusString = '${body.statusCode} ${body.reasonPhrase}'; | 41 _httpRequestStatusString = '${response.statusCode} ${response.reasonPhrase}'; |
41 _httpRequestResponse = null; | 42 _httpRequestResponse = null; |
42 if (body.statusCode != 200 || body.type == 'json') { | 43 if (response.statusCode != 200 || |
| 44 (response.headers.contentType != null && |
| 45 response.headers.contentType.mimeType == 'application/json')) { |
43 return; | 46 return; |
44 } | 47 } |
45 _httpRequestResponse = body.body; | 48 _httpRequestResponse = data; |
46 } | 49 } |
47 | 50 |
48 | 51 |
49 void _requestFailed(error) { | 52 void _requestFailed(error) { |
50 _httpRequestResponseCode = 0; | 53 _httpRequestResponseCode = 0; |
51 _httpRequestStatusString = error.toString(); | 54 _httpRequestStatusString = error.toString(); |
52 _httpRequestResponse = null; | 55 _httpRequestResponse = null; |
53 } | 56 } |
54 | 57 |
55 | 58 |
56 void _makeHttpRequest(String uri) { | 59 void _makeHttpRequest(String uri) { |
57 var _client = new HttpClient(); | 60 var _client = new HttpClient(); |
58 _httpRequestResponseCode = 0; | 61 _httpRequestResponseCode = 0; |
59 _httpRequestStatusString = null; | 62 _httpRequestStatusString = null; |
60 _httpRequestResponse = null; | 63 _httpRequestResponse = null; |
61 Uri requestUri = Uri.parse(uri); | 64 Uri requestUri = Uri.parse(uri); |
62 _client.getUrl(requestUri) | 65 _client.getUrl(requestUri) |
63 .then((HttpClientRequest request) => request.close()) | 66 .then((HttpClientRequest request) => request.close()) |
64 .then(HttpBodyHandler.processResponse) | 67 .then((HttpClientResponse response) { |
65 .then((HttpClientResponseBody body) { | 68 return response |
66 _requestCompleted(body); | 69 .fold(new BytesBuilder(), (b, d) => b..add(d)) |
| 70 .then((builder) { |
| 71 _requestCompleted(builder.takeBytes(), response); |
| 72 }); |
67 }).catchError((error) { | 73 }).catchError((error) { |
68 _requestFailed(error); | 74 _requestFailed(error); |
69 }); | 75 }); |
70 } | 76 } |
71 | 77 |
72 | 78 |
73 // Are we running on Windows? | 79 // Are we running on Windows? |
74 var _isWindows = false; | 80 var _isWindows = false; |
75 // The current working directory | 81 // The current working directory |
76 var _workingDirectoryUri; | 82 var _workingDirectoryUri; |
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
264 } | 270 } |
265 _logResolution('# Package: $uri -> $path'); | 271 _logResolution('# Package: $uri -> $path'); |
266 return path; | 272 return path; |
267 } | 273 } |
268 | 274 |
269 | 275 |
270 String _filePathFromHttpUri(Uri uri) { | 276 String _filePathFromHttpUri(Uri uri) { |
271 _logResolution('# Path: $uri -> $uri'); | 277 _logResolution('# Path: $uri -> $uri'); |
272 return uri.toString(); | 278 return uri.toString(); |
273 } | 279 } |
OLD | NEW |