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 networkService = new NetworkServiceProxy.unbound(); |
16 embedder.connectToService("mojo:network_service", networkService); | 16 embedder.connectToService( |
| 17 "mojo:network_service", NetworkServiceRequest(networkService)); |
17 | 18 |
18 var urlLoaderProxy = new UrlLoaderProxy.unbound(); | 19 var urlLoaderProxy = new UrlLoaderProxy.unbound(); |
19 networkService.createUrlLoader(urlLoaderProxy); | 20 networkService.createUrlLoader(UrlLoaderRequest(urlLoaderProxy)); |
20 | 21 |
21 var urlRequest = new UrlRequest() | 22 var urlRequest = new UrlRequest() |
22 ..url = url | 23 ..url = url |
23 ..autoFollowRedirects = true; | 24 ..autoFollowRedirects = true; |
24 var urlResponse = await urlLoaderProxy.start(urlRequest); | 25 var urlResponse = await urlLoaderProxy.start(urlRequest); |
25 | 26 |
26 urlLoaderProxy.close(); | 27 UrlLoaderProxyClose(urlLoaderProxy); |
27 networkService.close(); | 28 NetworkServiceProxyClose(networkService); |
28 | 29 |
29 print("url => ${urlResponse.response.url}"); | 30 print("url => ${urlResponse.response.url}"); |
30 print("status_line => ${urlResponse.response.statusLine}"); | 31 print("status_line => ${urlResponse.response.statusLine}"); |
31 print("mime_type => ${urlResponse.response.mimeType}"); | 32 print("mime_type => ${urlResponse.response.mimeType}"); |
32 | 33 |
33 ByteData bodyData = | 34 ByteData bodyData = |
34 await DataPipeDrainer.drainHandle(urlResponse.response.body); | 35 await DataPipeDrainer.drainHandle(urlResponse.response.body); |
35 print("read ${bodyData.lengthInBytes} bytes"); | 36 print("read ${bodyData.lengthInBytes} bytes"); |
36 | 37 |
37 return new String.fromCharCodes(new Uint8List.view(bodyData.buffer)); | 38 return new String.fromCharCodes(new Uint8List.view(bodyData.buffer)); |
38 } | 39 } |
39 | 40 |
40 main() async { | 41 main() async { |
41 var url = "http://127.0.0.1:8000/sky/tests/services/resources/pass.txt"; | 42 var url = "http://127.0.0.1:8000/sky/tests/services/resources/pass.txt"; |
42 var result = await run(url); | 43 var result = await run(url); |
43 internals.notifyTestComplete(result); | 44 internals.notifyTestComplete(result); |
44 } | 45 } |
45 </script> | 46 </script> |
46 </sky> | 47 </sky> |
OLD | NEW |