| OLD | NEW |
| 1 #!mojo mojo:sky_viewer | 1 #!mojo mojo:sky_viewer |
| 2 <sky> | 2 <sky> |
| 3 <script> | 3 <script> |
| 4 import '/sky/framework/embedder.dart'; | 4 import '/sky/framework/embedder.dart'; |
| 5 import 'dart:async'; | 5 import 'dart:async'; |
| 6 import 'dart:typed_data'; | 6 import 'dart:typed_data'; |
| 7 import "dart:sky.internals" as internals; | 7 import "dart:sky.internals" as internals; |
| 8 import 'mojo:bindings'; | 8 import 'mojo:bindings'; |
| 9 import 'mojo:core'; | 9 import 'mojo:core'; |
| 10 | 10 |
| 11 import 'package:mojo/services/network/public/interfaces/network_service.mojom.da
rt'; | 11 import 'package:mojo/services/network/public/interfaces/network_service.mojom.da
rt'; |
| 12 import 'package:mojo/services/network/public/interfaces/url_loader.mojom.dart'; | 12 import 'package:mojo/services/network/public/interfaces/url_loader.mojom.dart'; |
| 13 | 13 |
| 14 Future<String> run(url) async { | 14 Future<String> run(url) async { |
| 15 var networkService = new NetworkServiceProxy.unbound(); | 15 var networkServiceProxy = new NetworkServiceProxy.unbound(); |
| 16 embedder.connectToService("mojo:network_service", networkService); | 16 var networkService = networkServiceProxy.interface; |
| 17 embedder.connectToService("mojo:network_service", networkServiceProxy); |
| 17 | 18 |
| 18 var urlLoaderProxy = new UrlLoaderProxy.unbound(); | 19 var urlLoaderProxy = new UrlLoaderProxy.unbound(); |
| 20 var urlLoader = urlLoaderProxy.interface; |
| 19 networkService.createUrlLoader(urlLoaderProxy); | 21 networkService.createUrlLoader(urlLoaderProxy); |
| 20 | 22 |
| 21 var urlRequest = new UrlRequest() | 23 var urlRequest = new UrlRequest() |
| 22 ..url = url | 24 ..url = url |
| 23 ..autoFollowRedirects = true; | 25 ..autoFollowRedirects = true; |
| 24 var urlResponse = await urlLoaderProxy.start(urlRequest); | 26 var urlResponse = await urlLoader.start(urlRequest); |
| 25 | 27 |
| 26 urlLoaderProxy.close(); | 28 urlLoaderProxy.impl.close(); |
| 27 networkService.close(); | 29 networkServiceProxy.impl.close(); |
| 28 | 30 |
| 29 print("url => ${urlResponse.response.url}"); | 31 print("url => ${urlResponse.response.url}"); |
| 30 print("status_line => ${urlResponse.response.statusLine}"); | 32 print("status_line => ${urlResponse.response.statusLine}"); |
| 31 print("mime_type => ${urlResponse.response.mimeType}"); | 33 print("mime_type => ${urlResponse.response.mimeType}"); |
| 32 | 34 |
| 33 ByteData bodyData = | 35 ByteData bodyData = |
| 34 await DataPipeDrainer.drainHandle(urlResponse.response.body); | 36 await DataPipeDrainer.drainHandle(urlResponse.response.body); |
| 35 print("read ${bodyData.lengthInBytes} bytes"); | 37 print("read ${bodyData.lengthInBytes} bytes"); |
| 36 | 38 |
| 37 return new String.fromCharCodes(new Uint8List.view(bodyData.buffer)); | 39 return new String.fromCharCodes(new Uint8List.view(bodyData.buffer)); |
| 38 } | 40 } |
| 39 | 41 |
| 40 main() async { | 42 main() async { |
| 41 var url = "http://127.0.0.1:8000/sky/tests/services/resources/pass.txt"; | 43 var url = "http://127.0.0.1:8000/sky/tests/services/resources/pass.txt"; |
| 42 var result = await run(url); | 44 var result = await run(url); |
| 43 internals.notifyTestComplete(result); | 45 internals.notifyTestComplete(result); |
| 44 } | 46 } |
| 45 </script> | 47 </script> |
| 46 </sky> | 48 </sky> |
| OLD | NEW |