1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
content / services / isolated_xr_device / xr_device_service.cc [blame]
// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "content/services/isolated_xr_device/xr_device_service.h"
#include "base/task/single_thread_task_runner.h"
#include "build/build_config.h"
#include "content/services/isolated_xr_device/xr_runtime_provider.h"
#include "content/services/isolated_xr_device/xr_service_test_hook.h"
#include "mojo/public/cpp/bindings/self_owned_receiver.h"
#if BUILDFLAG(IS_WIN)
#include "base/win/com_init_check_hook.h"
#endif // BUILDFLAG(IS_WIN)
namespace device {
XrDeviceService::XrDeviceService(
mojo::PendingReceiver<device::mojom::XRDeviceService> receiver,
scoped_refptr<base::SingleThreadTaskRunner> io_task_runner)
: receiver_(this, std::move(receiver)),
io_task_runner_(std::move(io_task_runner)) {
#if BUILDFLAG(IS_WIN)
base::win::ComInitCheckHook::DisableCOMChecksForProcess();
#endif // BUILDFLAG(IS_WIN)
}
XrDeviceService::~XrDeviceService() = default;
void XrDeviceService::BindRuntimeProvider(
mojo::PendingReceiver<mojom::IsolatedXRRuntimeProvider> receiver,
mojo::PendingRemote<mojom::XRDeviceServiceHost> device_service_host) {
mojo::MakeSelfOwnedReceiver(
std::make_unique<IsolatedXRRuntimeProvider>(
std::move(device_service_host), io_task_runner_),
std::move(receiver));
}
void XrDeviceService::BindTestHook(
mojo::PendingReceiver<device_test::mojom::XRServiceTestHook> receiver) {
mojo::MakeSelfOwnedReceiver(std::make_unique<XRServiceTestHook>(),
std::move(receiver));
}
} // namespace device