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)14 void 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)23 void WebvrServiceProvider::SetWebvrServiceCallback(
24     BindWebvrServiceCallback callback) {
25   g_callback.Get() = std::move(callback);
26 }
27 
28 }  // namespace content
29