1 // Copyright 2017 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 #include "content/public/browser/webvr_service_provider.h" 6 7 #include "base/lazy_instance.h" 8 9 namespace content { 10 11 base::LazyInstance<WebvrServiceProvider::BindWebvrServiceCallback>::Leaky 12 g_callback = LAZY_INSTANCE_INITIALIZER; 13 BindWebvrService(RenderFrameHost * render_frame_host,mojo::PendingReceiver<device::mojom::VRService> receiver)14void WebvrServiceProvider::BindWebvrService( 15 RenderFrameHost* render_frame_host, 16 mojo::PendingReceiver<device::mojom::VRService> receiver) { 17 // Ignore the pending receiver if the callback is unset. 18 if (g_callback.Get().is_null()) 19 return; 20 g_callback.Get().Run(render_frame_host, std::move(receiver)); 21 } 22 SetWebvrServiceCallback(BindWebvrServiceCallback callback)23void WebvrServiceProvider::SetWebvrServiceCallback( 24 BindWebvrServiceCallback callback) { 25 g_callback.Get() = std::move(callback); 26 } 27 28 } // namespace content 29