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 define('main', [ 6 'mojo/public/js/bindings/connection', 7 'content/test/data/web_ui_test_mojo_bindings.mojom', 8 'content/public/renderer/service_provider', 9 ], function (connection, bindings, serviceProvider) { 10 var retainedConnection; 11 12 function RendererTargetTest(bindings) { 13 this.bindings_ = bindings; 14 } 15 16 // TODO(aa): It is a bummer to need this stub object in JavaScript. We should 17 // have a 'client' object that contains both the sending and receiving bits of 18 // the client side of the interface. Since JS is loosely typed, we do not need 19 // a separate base class to inherit from to receive callbacks. 20 RendererTargetTest.prototype = 21 Object.create(bindings.RendererTargetStub.prototype); 22 23 RendererTargetTest.prototype.ping = function () { 24 this.bindings_.pingResponse(); 25 }; 26 27 return function() { 28 retainedConnection = new connection.Connection( 29 // TODO(sammc): Avoid using NAME_ directly. 30 serviceProvider.connectToService(bindings.BrowserTargetProxy.NAME_), 31 RendererTargetTest, 32 bindings.BrowserTargetProxy); 33 }; 34 }); 35