| Index: device/vr/android/gvr/gvr_device_provider.h | 
| diff --git a/device/vr/android/gvr/gvr_device_provider.h b/device/vr/android/gvr/gvr_device_provider.h | 
| index 4c6c9495f8350d4cd0952a909210a14ab476d6f6..bffbf2350a319c80cd2e00042b882d5b9f46f1ce 100644 | 
| --- a/device/vr/android/gvr/gvr_device_provider.h | 
| +++ b/device/vr/android/gvr/gvr_device_provider.h | 
| @@ -8,16 +8,19 @@ | 
| #include <memory> | 
|  | 
| #include "base/macros.h" | 
| -#include "device/vr/android/gvr/gvr_delegate.h" | 
| +#include "base/single_thread_task_runner.h" | 
| #include "device/vr/vr_client_dispatcher.h" | 
| #include "device/vr/vr_device.h" | 
| #include "device/vr/vr_device_provider.h" | 
| +#include "device/vr/vr_export.h" | 
|  | 
| namespace device { | 
|  | 
| -class GvrDeviceProviderDelegate; | 
| +class GvrDelegate; | 
| +class GvrDevice; | 
| +class GvrNonPresentingDelegate; | 
|  | 
| -class GvrDeviceProvider : public VRDeviceProvider, public GvrDelegateClient { | 
| +class DEVICE_VR_EXPORT GvrDeviceProvider : public VRDeviceProvider { | 
| public: | 
| GvrDeviceProvider(); | 
| ~GvrDeviceProvider() override; | 
| @@ -25,16 +28,25 @@ class GvrDeviceProvider : public VRDeviceProvider, public GvrDelegateClient { | 
| void GetDevices(std::vector<VRDevice*>* devices) override; | 
| void Initialize() override; | 
|  | 
| -  // GvrDelegateClient | 
| -  void OnDelegateInitialized(GvrDelegate* delegate) override; | 
| -  void OnDelegateShutdown() override; | 
| +  // Called from GvrDevice | 
| +  bool RequestPresent(); | 
| +  void ExitPresent(); | 
| + | 
| +  // Called from GvrDelegate | 
| +  void OnGvrDelegateReady(GvrDelegate* delegate); | 
| +  void OnGvrDelegateRemoved(); | 
|  | 
| void SetClient(VRClientDispatcher* client) override; | 
|  | 
| private: | 
| +  void GvrDelegateReady(GvrDelegate* delegate); | 
| +  void GvrDelegateRemoved(); | 
| + | 
| std::unique_ptr<VRClientDispatcher> client_; | 
| -  std::unique_ptr<VRDevice> vr_device_; | 
| -  std::unique_ptr<GvrDeviceProviderDelegate> delegate_; | 
| +  std::unique_ptr<GvrDevice> vr_device_; | 
| +  std::unique_ptr<GvrNonPresentingDelegate> non_presenting_delegate_; | 
| + | 
| +  scoped_refptr<base::SingleThreadTaskRunner> main_thread_task_runner_; | 
|  | 
| DISALLOW_COPY_AND_ASSIGN(GvrDeviceProvider); | 
| }; | 
|  |