Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(659)

Side by Side Diff: third_party/WebKit/LayoutTests/vr/resources/mock-vr-service.js

Issue 2608383002: Mojo JS bindings: switch mock-vr-service to use the new bindings API. (Closed)
Patch Set: Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 'use strict'; 1 'use strict';
2 2
3 let mockVRService = loadMojoModules( 3 let mockVRService = loadMojoModules(
4 'mockVRService', 4 'mockVRService',
5 ['mojo/public/js/bindings', 5 ['mojo/public/js/bindings',
6 'mojo/public/js/connection',
7 'mojo/public/js/router',
8 'device/vr/vr_service.mojom', 6 'device/vr/vr_service.mojom',
9 ]).then(mojo => { 7 ]).then(mojo => {
10 let [bindings, connection, router, vr_service] = mojo.modules; 8 let [bindings, vr_service] = mojo.modules;
11 9
12 class MockVRDisplay extends vr_service.VRDisplay.stubClass { 10 class MockVRDisplay {
13 constructor(interfaceProvider) { 11 constructor(interfaceProvider) {
14 super(); 12 this.bindingSet_ = new bindings.BindingSet(vr_service.VRDisplay);
13
15 interfaceProvider.addInterfaceOverrideForTesting( 14 interfaceProvider.addInterfaceOverrideForTesting(
16 vr_service.VRDisplay.name, 15 vr_service.VRDisplay.name,
17 handle => this.connect_(handle)); 16 handle => this.bindingSet_.addBinding(this, handle));
18 }
19
20 connect_(handle) {
21 this.router_ = new router.Router(handle);
22 this.router_.setIncomingReceiver(this);
23 } 17 }
24 18
25 requestPresent(secureOrigin) { 19 requestPresent(secureOrigin) {
26 return Promise.resolve({success: true}); 20 return Promise.resolve({success: true});
27 } 21 }
28 } 22 }
29 23
30 class MockVRService extends vr_service.VRService.stubClass { 24 class MockVRService {
31 constructor(interfaceProvider) { 25 constructor(interfaceProvider) {
32 super(); 26 this.bindingSet_ = new bindings.BindingSet(vr_service.VRService);
27 this.displayClient_ = new vr_service.VRDisplayClientPtr();
28 this.vrDisplays_ = null;
29
33 interfaceProvider.addInterfaceOverrideForTesting( 30 interfaceProvider.addInterfaceOverrideForTesting(
34 vr_service.VRService.name, 31 vr_service.VRService.name,
35 handle => this.connect_(handle)); 32 handle => this.bindingSet_.addBinding(this, handle));
36 this.vr_displays_ = null;
37 }
38
39 connect_(handle) {
40 this.router_ = new router.Router(handle);
41 this.router_.setIncomingReceiver(this);
42 } 33 }
43 34
44 setVRDisplays(displays) { 35 setVRDisplays(displays) {
45 for (let i = 0; i < displays.length; i++) { 36 for (let i = 0; i < displays.length; i++) {
46 displays[i].index = i; 37 displays[i].index = i;
47 } 38 }
48 this.vr_displays_ = displays; 39 this.vrDisplays_ = displays;
49 } 40 }
50 41
51 notifyClientOfDisplays() { 42 notifyClientOfDisplays() {
52 if (this.vr_displays_ == null) { 43 if (this.vrDisplays_ == null) {
53 return; 44 return;
54 } 45 }
55 for (let i = 0; i < this.vr_displays_.length; i++) { 46 for (let i = 0; i < this.vrDisplays_.length; i++) {
56 let displayPtr = new vr_service.VRDisplayPtr(); 47 let displayPtr = new vr_service.VRDisplayPtr();
57 let request = bindings.makeRequest(displayPtr); 48 let request = bindings.makeRequest(displayPtr);
58 let binding = new bindings.Binding( 49 let binding = new bindings.Binding(
59 vr_service.VRDisplay, 50 vr_service.VRDisplay,
60 new MockVRDisplay(mojo.frameInterfaces), request); 51 new MockVRDisplay(mojo.frameInterfaces), request);
61 let client_handle = new bindings.InterfaceRequest( 52 let clientRequest = bindings.makeRequest(this.displayClient_);
62 connection.bindProxy(proxy => { 53 this.client_.onDisplayConnected(displayPtr, clientRequest, this.vrDispla ys_[i]);
63 this.displayClient_ = proxy;
64 }, vr_service.VRDisplayClient));
65 this.client_.onDisplayConnected(displayPtr, client_handle, this.vr_displ ays_[i]);
66 } 54 }
67 } 55 }
68 56
69 setClient(client) { 57 setClient(client) {
70 this.client_ = client; 58 this.client_ = client;
71 this.notifyClientOfDisplays(); 59 this.notifyClientOfDisplays();
72 60
73 var device_number = (this.vr_displays_== null ? 0 : this.vr_displays_.leng th); 61 var device_number = (this.vrDisplays_== null ? 0 : this.vrDisplays_.length );
74 return Promise.resolve({numberOfConnectedDevices: device_number}); 62 return Promise.resolve({numberOfConnectedDevices: device_number});
75 } 63 }
76 } 64 }
77 65
78 return new MockVRService(mojo.frameInterfaces); 66 return new MockVRService(mojo.frameInterfaces);
79 }); 67 });
80 68
81 function vr_test(func, vrDisplays, name, properties) { 69 function vr_test(func, vrDisplays, name, properties) {
82 promise_test(t => mockVRService.then((service) => { 70 promise_test(t => mockVRService.then((service) => {
83 service.setVRDisplays(vrDisplays); 71 service.setVRDisplays(vrDisplays);
84 return func(); 72 return func();
85 }), name, properties); 73 }), name, properties);
86 } 74 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698