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

Side by Side Diff: runtime/bin/builtin.dart

Issue 550003004: - Support loading from https. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 6 years, 3 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | runtime/vm/dart_api_impl.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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:async'; 7 import 'dart:async';
8 import 'dart:convert'; 8 import 'dart:convert';
9 // import 'root_library'; happens here from C Code 9 // import 'root_library'; happens here from C Code
10 10
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 var baseUri = Uri.parse(base); 156 var baseUri = Uri.parse(base);
157 if (userString.startsWith(_DART_EXT)) { 157 if (userString.startsWith(_DART_EXT)) {
158 var uri = userString.substring(_DART_EXT.length); 158 var uri = userString.substring(_DART_EXT.length);
159 return '$_DART_EXT${baseUri.resolve(uri)}'; 159 return '$_DART_EXT${baseUri.resolve(uri)}';
160 } else { 160 } else {
161 return baseUri.resolve(userString).toString(); 161 return baseUri.resolve(userString).toString();
162 } 162 }
163 } 163 }
164 164
165 165
166 // Returns either a file path or a URI starting with http:, as a String. 166 // Returns either a file path or a URI starting with http[s]:, as a String.
167 String _filePathFromUri(String userUri) { 167 String _filePathFromUri(String userUri) {
168 var uri = Uri.parse(userUri); 168 var uri = Uri.parse(userUri);
169 if (_logBuiltin) { 169 if (_logBuiltin) {
170 _print('# Getting file path from: $uri'); 170 _print('# Getting file path from: $uri');
171 } 171 }
172 172
173 var path; 173 var path;
174 switch (uri.scheme) { 174 switch (uri.scheme) {
175 case '': 175 case '':
176 case 'file': 176 case 'file':
177 return uri.toFilePath(); 177 return uri.toFilePath();
178 case 'package': 178 case 'package':
179 return _filePathFromUri(_resolvePackageUri(uri).toString()); 179 return _filePathFromUri(_resolvePackageUri(uri).toString());
180 case 'http': 180 case 'http':
181 case 'https':
181 return uri.toString(); 182 return uri.toString();
182 default: 183 default:
183 // Only handling file, http, and package URIs 184 // Only handling file, http, and package URIs
184 // in standalone binary. 185 // in standalone binary.
185 if (_logBuiltin) { 186 if (_logBuiltin) {
186 _print('# Unknown scheme (${uri.scheme}) in $uri.'); 187 _print('# Unknown scheme (${uri.scheme}) in $uri.');
187 } 188 }
188 throw 'Not a known scheme: $uri'; 189 throw 'Not a known scheme: $uri';
189 } 190 }
190 } 191 }
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
294 Uri _createUri(String userUri) { 295 Uri _createUri(String userUri) {
295 var uri = Uri.parse(userUri); 296 var uri = Uri.parse(userUri);
296 if (_logBuiltin) { 297 if (_logBuiltin) {
297 _print('# Creating uri for: $uri'); 298 _print('# Creating uri for: $uri');
298 } 299 }
299 300
300 switch (uri.scheme) { 301 switch (uri.scheme) {
301 case '': 302 case '':
302 case 'file': 303 case 'file':
303 case 'http': 304 case 'http':
305 case 'https':
304 return uri; 306 return uri;
305 case 'package': 307 case 'package':
306 return _resolvePackageUri(uri); 308 return _resolvePackageUri(uri);
307 default: 309 default:
308 // Only handling file, http, and package URIs 310 // Only handling file, http[s], and package URIs
309 // in standalone binary. 311 // in standalone binary.
310 if (_logBuiltin) { 312 if (_logBuiltin) {
311 _print('# Unknown scheme (${uri.scheme}) in $uri.'); 313 _print('# Unknown scheme (${uri.scheme}) in $uri.');
312 } 314 }
313 throw 'Not a known scheme: $uri'; 315 throw 'Not a known scheme: $uri';
314 } 316 }
315 } 317 }
316 318
317 319
318 // Asynchronously loads script data through a http or file uri. 320 // Asynchronously loads script data through a http[s] or file uri.
319 _loadDataAsync(int tag, String uri, String libraryUri) { 321 _loadDataAsync(int tag, String uri, String libraryUri) {
320 if (tag == null) { 322 if (tag == null) {
321 uri = _resolveScriptUri(uri); 323 uri = _resolveScriptUri(uri);
322 } 324 }
323 Uri resourceUri = _createUri(uri); 325 Uri resourceUri = _createUri(uri);
324 _numOutstandingLoadRequests++; 326 _numOutstandingLoadRequests++;
325 if (_logBuiltin) { 327 if (_logBuiltin) {
326 _print("_loadDataAsync($uri), " 328 _print("_loadDataAsync($uri), "
327 "${_numOutstandingLoadRequests} requests outstanding"); 329 "${_numOutstandingLoadRequests} requests outstanding");
328 } 330 }
329 if (resourceUri.scheme == 'http') { 331 if ((resourceUri.scheme == 'http') || (resourceUri.scheme == 'https')) {
330 _httpGet(resourceUri, libraryUri, (data) { 332 _httpGet(resourceUri, libraryUri, (data) {
331 _loadScript(tag, uri, libraryUri, data); 333 _loadScript(tag, uri, libraryUri, data);
332 }); 334 });
333 } else { 335 } else {
334 var sourceFile = new File(resourceUri.toFilePath()); 336 var sourceFile = new File(resourceUri.toFilePath());
335 sourceFile.readAsBytes().then((data) { 337 sourceFile.readAsBytes().then((data) {
336 _loadScript(tag, uri, libraryUri, data); 338 _loadScript(tag, uri, libraryUri, data);
337 }, 339 },
338 onError: (e) { 340 onError: (e) {
339 _asyncLoadError(uri, libraryUri, e); 341 _asyncLoadError(uri, libraryUri, e);
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
380 filename = '$name.dll'; 382 filename = '$name.dll';
381 } else { 383 } else {
382 if (_logBuiltin) { 384 if (_logBuiltin) {
383 _print('Native extensions not supported on ${Platform.operatingSystem}'); 385 _print('Native extensions not supported on ${Platform.operatingSystem}');
384 } 386 }
385 throw 'Native extensions not supported on ${Platform.operatingSystem}'; 387 throw 'Native extensions not supported on ${Platform.operatingSystem}';
386 } 388 }
387 389
388 return [path, filename, name]; 390 return [path, filename, name];
389 } 391 }
OLDNEW
« no previous file with comments | « no previous file | runtime/vm/dart_api_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698