Index: device/vr/vr_service_impl.h |
diff --git a/device/vr/vr_service_impl.h b/device/vr/vr_service_impl.h |
index ba8b6b162dd3949158b6676a41159a3ba858dc60..a004cea944bafbddeba490ccc5ec47234d69b4fe 100644 |
--- a/device/vr/vr_service_impl.h |
+++ b/device/vr/vr_service_impl.h |
@@ -17,6 +17,11 @@ |
namespace device { |
+// Browser process representation of a WebVR site session. Instantiated through |
+// Mojo once the user loads a page containing WebVR. |
+// It instantiates a VRDisplayImpl for each newly connected VRDisplay and sends |
+// the display's info to the render process through its connected |
+// mojom::VRServiceClient. |
class VRServiceImpl : public mojom::VRService { |
public: |
DEVICE_VR_EXPORT VRServiceImpl(); |
@@ -25,26 +30,25 @@ class VRServiceImpl : public mojom::VRService { |
DEVICE_VR_EXPORT static void Create( |
mojo::InterfaceRequest<mojom::VRService> request); |
- mojom::VRServiceClient* client() { return client_.get(); } |
- |
- DEVICE_VR_EXPORT VRDisplayImpl* GetVRDisplayImpl(VRDevice* device); |
- |
// mojom::VRService implementation |
+ // Adds this service to the VRDeviceManager. |
void SetClient(mojom::VRServiceClientPtr service_client, |
const SetClientCallback& callback) override; |
bool listening_for_activate() { return listening_for_activate_; } |
+ // Tells the render process that a new VR device is available. |
+ void ConnectDevice(VRDevice* device); |
+ |
private: |
friend class FakeVRServiceClient; |
friend class VRDeviceManagerTest; |
- friend class VRDisplayImpl; |
friend class VRDisplayImplTest; |
friend class VRServiceImplTest; |
- void RemoveDevice(VRDevice* device); |
- |
void SetListeningForActivate(bool listening) override; |
+ void OnVRDisplayInfoCreated(VRDevice* device, |
+ mojom::VRDisplayInfoPtr display_info); |
std::map<VRDevice*, std::unique_ptr<VRDisplayImpl>> displays_; |
@@ -52,6 +56,11 @@ class VRServiceImpl : public mojom::VRService { |
bool listening_for_activate_; |
+ base::WeakPtrFactory<VRServiceImpl> weak_ptr_factory_; |
+ |
+ // Getter for testing. |
+ DEVICE_VR_EXPORT VRDisplayImpl* GetVRDisplayImplForTesting(VRDevice* device); |
+ |
DISALLOW_COPY_AND_ASSIGN(VRServiceImpl); |
}; |