OLD | NEW |
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 'device/vr/vr_service.mojom', | 6 'device/vr/vr_service.mojom', |
7 ]).then(mojo => { | 7 ]).then(mojo => { |
8 let [bindings, vr_service] = mojo.modules; | 8 let [bindings, vr_service] = mojo.modules; |
9 | 9 |
10 class MockVRDisplay { | 10 class MockVRDisplay { |
11 constructor(interfaceProvider, displayInfo, service) { | 11 constructor(interfaceProvider, displayInfo, service) { |
12 this.bindingSet_ = new bindings.BindingSet(vr_service.VRDisplay); | 12 this.bindingSet_ = new bindings.BindingSet(vr_service.VRDisplay); |
13 this.displayClient_ = new vr_service.VRDisplayClientPtr(); | 13 this.displayClient_ = new vr_service.VRDisplayClientPtr(); |
14 this.displayInfo_ = displayInfo; | 14 this.displayInfo_ = displayInfo; |
15 this.service_ = service; | 15 this.service_ = service; |
| 16 this.vsync_provider_ = new MockVRVSyncProvider(); |
16 | 17 |
17 interfaceProvider.addInterfaceOverrideForTesting( | 18 interfaceProvider.addInterfaceOverrideForTesting( |
18 vr_service.VRDisplay.name, | 19 vr_service.VRDisplay.name, |
19 handle => this.bindingSet_.addBinding(this, handle)); | 20 handle => this.bindingSet_.addBinding(this, handle)); |
20 | 21 |
21 if (service.client_) { | 22 if (service.client_) { |
22 this.notifyClientOfDisplay(); | 23 this.notifyClientOfDisplay(); |
23 } | 24 } |
24 } | 25 } |
25 | 26 |
26 requestPresent(secureOrigin) { | 27 requestPresent(secureOrigin) { |
27 return Promise.resolve({success: true}); | 28 return Promise.resolve({success: true}); |
28 } | 29 } |
29 | 30 |
| 31 getVRVSyncProvider(request) { this.vsync_provider_.bind(request); } |
| 32 |
30 forceActivate(reason) { | 33 forceActivate(reason) { |
31 this.displayClient_.onActivate(reason); | 34 this.displayClient_.onActivate(reason); |
32 } | 35 } |
33 | 36 |
34 notifyClientOfDisplay() { | 37 notifyClientOfDisplay() { |
35 let displayPtr = new vr_service.VRDisplayPtr(); | 38 let displayPtr = new vr_service.VRDisplayPtr(); |
36 let request = bindings.makeRequest(displayPtr); | 39 let request = bindings.makeRequest(displayPtr); |
37 let binding = new bindings.Binding( | 40 let binding = new bindings.Binding( |
38 vr_service.VRDisplay, | 41 vr_service.VRDisplay, |
39 this, request); | 42 this, request); |
40 let clientRequest = bindings.makeRequest(this.displayClient_); | 43 let clientRequest = bindings.makeRequest(this.displayClient_); |
41 this.service_.client_.onDisplayConnected(displayPtr, clientRequest, | 44 this.service_.client_.onDisplayConnected(displayPtr, clientRequest, |
42 this.displayInfo_); | 45 this.displayInfo_); |
43 } | 46 } |
44 } | 47 } |
45 | 48 |
| 49 class MockVRVSyncProvider { |
| 50 constructor() { |
| 51 this.timeDelta_ = 0; |
| 52 this.binding_ = new bindings.Binding(vr_service.VRVSyncProvider, this); |
| 53 } |
| 54 bind(request) { |
| 55 this.binding_.close(); |
| 56 this.binding_.bind(request); |
| 57 } |
| 58 getVSync() { |
| 59 this.timeDelta_ += 1000.0 / 60.0; |
| 60 return Promise.resolve({ |
| 61 pose: null, |
| 62 time: { |
| 63 microseconds: this.timeDelta_, |
| 64 }, |
| 65 }); |
| 66 } |
| 67 } |
| 68 |
46 class MockVRService { | 69 class MockVRService { |
47 constructor(interfaceProvider) { | 70 constructor(interfaceProvider) { |
48 this.bindingSet_ = new bindings.BindingSet(vr_service.VRService); | 71 this.bindingSet_ = new bindings.BindingSet(vr_service.VRService); |
49 this.mockVRDisplays_ = []; | 72 this.mockVRDisplays_ = []; |
50 | 73 |
51 interfaceProvider.addInterfaceOverrideForTesting( | 74 interfaceProvider.addInterfaceOverrideForTesting( |
52 vr_service.VRService.name, | 75 vr_service.VRService.name, |
53 handle => this.bindingSet_.addBinding(this, handle)); | 76 handle => this.bindingSet_.addBinding(this, handle)); |
54 } | 77 } |
55 | 78 |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
87 return new MockVRService(mojo.frameInterfaces); | 110 return new MockVRService(mojo.frameInterfaces); |
88 }); | 111 }); |
89 | 112 |
90 function vr_test(func, vrDisplays, name, properties) { | 113 function vr_test(func, vrDisplays, name, properties) { |
91 mockVRService.then( (service) => { | 114 mockVRService.then( (service) => { |
92 service.setVRDisplays(vrDisplays); | 115 service.setVRDisplays(vrDisplays); |
93 let t = async_test(name, properties); | 116 let t = async_test(name, properties); |
94 func(t, service); | 117 func(t, service); |
95 }); | 118 }); |
96 } | 119 } |
OLD | NEW |