Hans Muller 3663c45619 Added Sky Mojo embedder singleton, restored network test
Currently the embedder is just an encapsulation of the Mojo shell. Exposing an ApplicationConnection that encapsulates the ViewManager Embed SPs is next.

R=abarth@chromium.org, zra@google.com

Review URL: https://codereview.chromium.org/948463003
2015-02-20 15:07:29 -08:00

47 lines
1.4 KiB
Plaintext

#!mojo mojo:sky_viewer
<sky>
<script>
import '/sky/framework/embedder.dart';
import 'dart:async';
import 'dart:mojo_bindings';
import 'dart:mojo_core';
import 'dart:typed_data';
import "dart:sky.internals" as internals;
import 'package:mojo/services/network/public/interfaces/network_service.mojom.dart';
import 'package:mojo/services/network/public/interfaces/url_loader.mojom.dart';
Future<String> run(url) async {
var networkService = new NetworkServiceProxy.unbound();
embedder.connectToService("mojo:network_service", networkService);
var urlLoaderProxy = new UrlLoaderProxy.unbound();
networkService.createUrlLoader(urlLoaderProxy);
var urlRequest = new UrlRequest()
..url = url
..autoFollowRedirects = true;
var urlResponse = await urlLoaderProxy.start(urlRequest);
urlLoaderProxy.close();
networkService.close();
print("url => ${urlResponse.response.url}");
print("status_line => ${urlResponse.response.statusLine}");
print("mime_type => ${urlResponse.response.mimeType}");
ByteData bodyData =
await DataPipeDrainer.drainHandle(urlResponse.response.body);
print("read ${bodyData.lengthInBytes} bytes");
return new String.fromCharCodes(new Uint8List.view(bodyData.buffer));
}
main() async {
var url = "http://127.0.0.1:8000/sky/tests/services/resources/pass.txt";
var result = await run(url);
internals.notifyTestComplete(result);
}
</script>
</sky>