1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5// This trivial app just loads "cnn.com" using the Mojo Network and URLLoader 6// services and then prints a brief summary of the response. It's intended to 7// be run using the mojo_js content handler and assumes that this source file 8// is specified as a URL. For example: 9// 10// (cd YOUR_DIR/mojo/apps/js; python -m SimpleHTTPServer ) & 11// mojo_shell --content-handlers=application/javascript,mojo://mojo_js \ 12// http://localhost:8000/test.js 13 14define("test", [ 15 "mojo/public/js/bindings/core", 16 "mojo/public/js/bindings/connection", 17 "mojo/public/js/bindings/support", 18 "mojo/services/public/interfaces/network/network_service.mojom", 19 "mojo/services/public/interfaces/network/url_loader.mojom", 20 "mojo", 21 "console" 22], function(core, connection, support, net, loader, mojo, console) { 23 24 var netServiceHandle = mojo.connectToService( 25 "mojo:mojo_network_service", "mojo::NetworkService"); 26 var netConnection = new connection.Connection( 27 netServiceHandle, net.NetworkServiceStub, net.NetworkServiceProxy); 28 29 var urlLoaderPipe = new core.createMessagePipe(); 30 netConnection.remote.createURLLoader(urlLoaderPipe.handle1); 31 var urlLoaderConnection = new connection.Connection( 32 urlLoaderPipe.handle0, loader.URLLoaderStub, loader.URLLoaderProxy); 33 34 var urlRequest = new loader.URLRequest(); 35 urlRequest.url = "http://www.cnn.com"; 36 urlRequest.method = "GET"; 37 urlRequest.auto_follow_redirects = true; 38 39 var urlRequestPromise = urlLoaderConnection.remote.start(urlRequest); 40 urlRequestPromise.then(function(result) { 41 for(var key in result.response) 42 console.log(key + " => " + result.response[key]); 43 var drainDataPromise = core.drainData(result.response.body); 44 drainDataPromise.then(function(result) { 45 console.log("read " + result.buffer.byteLength + " bytes"); 46 }).then(function() { 47 mojo.quit(); 48 }); 49 }); 50}); 51