Commit cb573b0d authored by Alexander Cooper's avatar Alexander Cooper Committed by Commit Bot

Split VROrientationDevice into it's own component

This change creates a new target containing only VROrientationDevice.
This will allow embedders (and content) to link against just the only
VROrientation device so that it doesn't need to link in all of device/vr
if that's the only device that it wants/needs.

Future work can create components for each device, such that including
AR, GVR, or each of the immersive (windows) runtimes can be done
independent of each other.

Bug: 1070807
Change-Id: I12c8ec78a60e876d820cac881354a088b9843d73
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2154399
Commit-Queue: Alexander Cooper <alcooper@chromium.org>
Reviewed-by: default avatarBrandon Jones <bajones@chromium.org>
Cr-Commit-Position: refs/heads/master@{#761164}
parent 51e3c25a
...@@ -5449,6 +5449,7 @@ jumbo_static_library("browser") { ...@@ -5449,6 +5449,7 @@ jumbo_static_library("browser") {
deps += [ deps += [
"//chrome/browser/vr:vr_common", "//chrome/browser/vr:vr_common",
"//device/vr", "//device/vr",
"//device/vr/orientation",
"//device/vr/public/cpp", "//device/vr/public/cpp",
] ]
} }
......
...@@ -126,6 +126,7 @@ static_library("vr_android") { ...@@ -126,6 +126,7 @@ static_library("vr_android") {
"//content/public/browser", "//content/public/browser",
"//content/public/common", "//content/public/common",
"//device/vr", "//device/vr",
"//device/vr:vr_base",
"//device/vr/buildflags:buildflags", "//device/vr/buildflags:buildflags",
"//services/device/public/mojom", "//services/device/public/mojom",
"//services/metrics/public/cpp:ukm_builders", "//services/metrics/public/cpp:ukm_builders",
......
...@@ -678,6 +678,7 @@ if (!is_android) { ...@@ -678,6 +678,7 @@ if (!is_android) {
"//chrome/test:xr_browser_tests_common", "//chrome/test:xr_browser_tests_common",
"//device/vr:vr", "//device/vr:vr",
"//device/vr/buildflags:buildflags", "//device/vr/buildflags:buildflags",
"//device/vr/orientation",
"//device/vr/public/mojom", "//device/vr/public/mojom",
"//device/vr/public/mojom:test_mojom", "//device/vr/public/mojom:test_mojom",
] ]
......
...@@ -27,6 +27,7 @@ source_set("lib") { ...@@ -27,6 +27,7 @@ source_set("lib") {
"//content/public/common:common_sources", "//content/public/common:common_sources",
"//device/base", "//device/base",
"//device/vr:vr", "//device/vr:vr",
"//device/vr:vr_base",
"//device/vr/public/mojom", "//device/vr/public/mojom",
"//device/vr/public/mojom:test_mojom", "//device/vr/public/mojom:test_mojom",
] ]
......
...@@ -11,7 +11,6 @@ ...@@ -11,7 +11,6 @@
#include "content/public/common/content_switches.h" #include "content/public/common/content_switches.h"
#include "device/base/features.h" #include "device/base/features.h"
#include "device/vr/buildflags/buildflags.h" #include "device/vr/buildflags/buildflags.h"
#include "device/vr/vr_device_base.h"
#if BUILDFLAG(ENABLE_OPENVR) #if BUILDFLAG(ENABLE_OPENVR)
#include "device/vr/openvr/openvr_device.h" #include "device/vr/openvr/openvr_device.h"
......
...@@ -334,6 +334,7 @@ test("device_unittests") { ...@@ -334,6 +334,7 @@ test("device_unittests") {
deps += [ deps += [
"//device/vr", "//device/vr",
"//device/vr:vr_fakes", "//device/vr:vr_fakes",
"//device/vr/orientation",
"//device/vr/public/mojom", "//device/vr/public/mojom",
"//services/device/public/cpp/generic_sensor", "//services/device/public/cpp/generic_sensor",
"//ui/display", "//ui/display",
......
...@@ -9,17 +9,39 @@ if (is_android) { ...@@ -9,17 +9,39 @@ if (is_android) {
} }
if (enable_vr) { if (enable_vr) {
# TODO(https://crbug.com/1073113): Flesh out and cleanup this target.
component("vr_base") {
visibility = [
# TODO(https://crbug.com/843374): Move arcore_device
"//chrome/browser/android/vr/*",
"//content/services/isolated_xr_device/*",
"//device/vr/*",
]
output_name = "device_vr_base"
defines = [ "IS_DEVICE_VR_BASE_IMPL" ]
sources = [
"vr_device.h",
"vr_device_base.cc",
"vr_device_base.h",
]
public_deps = [
"//device/vr/public/cpp",
"//device/vr/public/mojom",
]
deps = [
"//base",
"//mojo/public/cpp/bindings",
]
}
component("vr") { component("vr") {
output_name = "device_vr" output_name = "device_vr"
defines = [ "DEVICE_VR_IMPLEMENTATION" ] defines = [ "DEVICE_VR_IMPLEMENTATION" ]
sources = [ sources = [
"orientation/orientation_device.cc",
"orientation/orientation_device.h",
"orientation/orientation_device_provider.cc",
"orientation/orientation_device_provider.h",
"orientation/orientation_session.cc",
"orientation/orientation_session.h",
"util/fps_meter.cc", "util/fps_meter.cc",
"util/fps_meter.h", "util/fps_meter.h",
"util/gamepad_builder.cc", "util/gamepad_builder.cc",
...@@ -34,14 +56,12 @@ if (enable_vr) { ...@@ -34,14 +56,12 @@ if (enable_vr) {
"util/transform_utils.h", "util/transform_utils.h",
"util/xr_standard_gamepad_builder.cc", "util/xr_standard_gamepad_builder.cc",
"util/xr_standard_gamepad_builder.h", "util/xr_standard_gamepad_builder.h",
"vr_device.h",
"vr_device_base.cc",
"vr_device_base.h",
"vr_export.h", "vr_export.h",
] ]
public_deps = [ "//device/vr/public/cpp" ] public_deps = [ "//device/vr/public/cpp" ]
deps = [ deps = [
":vr_base",
"//base", "//base",
"//components/ukm:ukm", "//components/ukm:ukm",
"//device/base", "//device/base",
...@@ -267,7 +287,9 @@ if (enable_vr) { ...@@ -267,7 +287,9 @@ if (enable_vr) {
public_deps = [ public_deps = [
":vr", ":vr",
":vr_base",
"//base", "//base",
"//device/vr/orientation",
"//device/vr/public/mojom", "//device/vr/public/mojom",
"//mojo/public/cpp/bindings", "//mojo/public/cpp/bindings",
"//services/device/public/cpp/generic_sensor", "//services/device/public/cpp/generic_sensor",
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
#include "base/android/scoped_java_ref.h" #include "base/android/scoped_java_ref.h"
#include "base/macros.h" #include "base/macros.h"
#include "device/vr/vr_device_base.h" #include "device/vr/vr_device_base.h"
#include "device/vr/vr_export.h"
#include "mojo/public/cpp/bindings/receiver.h" #include "mojo/public/cpp/bindings/receiver.h"
#include "third_party/gvr-android-sdk/src/libraries/headers/vr/gvr/capi/include/gvr_types.h" #include "third_party/gvr-android-sdk/src/libraries/headers/vr/gvr/capi/include/gvr_types.h"
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
#include "base/single_thread_task_runner.h" #include "base/single_thread_task_runner.h"
#include "device/vr/public/mojom/vr_service.mojom.h" #include "device/vr/public/mojom/vr_service.mojom.h"
#include "device/vr/vr_device_base.h" #include "device/vr/vr_device_base.h"
#include "device/vr/vr_export.h"
#include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/receiver.h" #include "mojo/public/cpp/bindings/receiver.h"
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
#include "base/macros.h" #include "base/macros.h"
#include "device/vr/public/mojom/vr_service.mojom.h" #include "device/vr/public/mojom/vr_service.mojom.h"
#include "device/vr/vr_device_base.h" #include "device/vr/vr_device_base.h"
#include "device/vr/vr_export.h"
#include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/receiver.h" #include "mojo/public/cpp/bindings/receiver.h"
......
# Copyright 2020 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//device/vr/buildflags/buildflags.gni")
assert(enable_vr)
component("orientation") {
output_name = "vr_orientation"
defines = [ "IS_VR_ORIENTATION_IMPL" ]
sources = [
"orientation_device.cc",
"orientation_device.h",
"orientation_device_provider.cc",
"orientation_device_provider.h",
"orientation_session.cc",
"orientation_session.h",
]
public_deps = [ "//device/vr/public/cpp" ]
deps = [
"//base",
"//device/vr:vr_base",
"//mojo/public/cpp/bindings",
"//services/device/public/cpp/generic_sensor",
"//ui/gfx",
]
}
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#include <memory> #include <memory>
#include "base/callback_forward.h" #include "base/callback_forward.h"
#include "base/component_export.h"
#include "base/macros.h" #include "base/macros.h"
#include "base/threading/simple_thread.h" #include "base/threading/simple_thread.h"
#include "build/build_config.h" #include "build/build_config.h"
...@@ -37,7 +38,8 @@ static constexpr mojom::SensorType kOrientationSensorType = ...@@ -37,7 +38,8 @@ static constexpr mojom::SensorType kOrientationSensorType =
#endif #endif
// This class connects the orientation sensor events to the Web VR apis. // This class connects the orientation sensor events to the Web VR apis.
class DEVICE_VR_EXPORT VROrientationDevice : public VRDeviceBase, class COMPONENT_EXPORT(VR_ORIENTATION) VROrientationDevice
: public VRDeviceBase,
public mojom::SensorClient { public mojom::SensorClient {
public: public:
VROrientationDevice(mojom::SensorProvider* sensor_provider, VROrientationDevice(mojom::SensorProvider* sensor_provider,
......
...@@ -8,17 +8,18 @@ ...@@ -8,17 +8,18 @@
#include <memory> #include <memory>
#include "base/callback_forward.h" #include "base/callback_forward.h"
#include "base/component_export.h"
#include "base/macros.h" #include "base/macros.h"
#include "device/vr/orientation/orientation_device.h" #include "device/vr/orientation/orientation_device.h"
#include "device/vr/public/cpp/vr_device_provider.h" #include "device/vr/public/cpp/vr_device_provider.h"
#include "device/vr/vr_export.h"
#include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/remote.h" #include "mojo/public/cpp/bindings/remote.h"
#include "services/device/public/mojom/sensor_provider.mojom.h" #include "services/device/public/mojom/sensor_provider.mojom.h"
namespace device { namespace device {
class DEVICE_VR_EXPORT VROrientationDeviceProvider : public VRDeviceProvider { class COMPONENT_EXPORT(VR_ORIENTATION) VROrientationDeviceProvider
: public VRDeviceProvider {
public: public:
explicit VROrientationDeviceProvider( explicit VROrientationDeviceProvider(
mojo::PendingRemote<device::mojom::SensorProvider> sensor_provider); mojo::PendingRemote<device::mojom::SensorProvider> sensor_provider);
......
...@@ -7,17 +7,15 @@ ...@@ -7,17 +7,15 @@
#include <memory> #include <memory>
#include "base/component_export.h"
#include "base/macros.h" #include "base/macros.h"
#include "base/memory/weak_ptr.h" #include "base/memory/weak_ptr.h"
#include "device/vr/public/mojom/isolated_xr_service.mojom.h" #include "device/vr/public/mojom/isolated_xr_service.mojom.h"
#include "device/vr/public/mojom/vr_service.mojom.h" #include "device/vr/public/mojom/vr_service.mojom.h"
#include "device/vr/vr_device.h"
#include "device/vr/vr_export.h"
#include "mojo/public/cpp/bindings/pending_associated_receiver.h" #include "mojo/public/cpp/bindings/pending_associated_receiver.h"
#include "mojo/public/cpp/bindings/pending_associated_remote.h" #include "mojo/public/cpp/bindings/pending_associated_remote.h"
#include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/receiver.h" #include "mojo/public/cpp/bindings/receiver.h"
#include "ui/display/display.h"
namespace device { namespace device {
...@@ -27,7 +25,7 @@ class VROrientationDevice; ...@@ -27,7 +25,7 @@ class VROrientationDevice;
// that exposes device orientation sensors. // that exposes device orientation sensors.
// VROrientationSession objects are owned by their respective // VROrientationSession objects are owned by their respective
// VROrientationDevice instances. // VROrientationDevice instances.
class DEVICE_VR_EXPORT VROrientationSession class COMPONENT_EXPORT(VR_ORIENTATION) VROrientationSession
: public mojom::XRFrameDataProvider, : public mojom::XRFrameDataProvider,
public mojom::XRSessionController { public mojom::XRSessionController {
public: public:
......
...@@ -6,10 +6,10 @@ ...@@ -6,10 +6,10 @@
#define DEVICE_VR_VR_DEVICE_H #define DEVICE_VR_VR_DEVICE_H
#include "base/callback.h" #include "base/callback.h"
#include "base/component_export.h"
#include "base/macros.h" #include "base/macros.h"
#include "device/vr/public/mojom/isolated_xr_service.mojom.h" #include "device/vr/public/mojom/isolated_xr_service.mojom.h"
#include "device/vr/public/mojom/vr_service.mojom.h" #include "device/vr/public/mojom/vr_service.mojom.h"
#include "device/vr/vr_export.h"
namespace device { namespace device {
...@@ -29,8 +29,8 @@ enum class VrViewerType { ...@@ -29,8 +29,8 @@ enum class VrViewerType {
OPENXR_UNKNOWN = 70, // Going through OpenXR APIs OPENXR_UNKNOWN = 70, // Going through OpenXR APIs
}; };
void LogViewerType(VrViewerType); // Implemented in vr_device_base.cc // Implemented in vr_device_base.cc
void COMPONENT_EXPORT(DEVICE_VR_BASE) LogViewerType(VrViewerType);
} // namespace device } // namespace device
#endif // DEVICE_VR_VR_DEVICE_H #endif // DEVICE_VR_VR_DEVICE_H
...@@ -9,22 +9,20 @@ ...@@ -9,22 +9,20 @@
#include <vector> #include <vector>
#include "base/callback.h" #include "base/callback.h"
#include "base/component_export.h"
#include "base/macros.h" #include "base/macros.h"
#include "device/vr/public/mojom/vr_service.mojom.h" #include "device/vr/public/mojom/vr_service.mojom.h"
#include "device/vr/vr_device.h" #include "device/vr/vr_device.h"
#include "device/vr/vr_export.h"
#include "mojo/public/cpp/bindings/associated_remote.h" #include "mojo/public/cpp/bindings/associated_remote.h"
#include "mojo/public/cpp/bindings/pending_associated_remote.h" #include "mojo/public/cpp/bindings/pending_associated_remote.h"
#include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/receiver.h" #include "mojo/public/cpp/bindings/receiver.h"
#include "ui/display/display.h"
namespace device { namespace device {
// Represents one of the platform's VR devices. Owned by the respective // Represents one of the platform's VR devices. Owned by the respective
// VRDeviceProvider. // VRDeviceProvider.
// TODO(mthiesse, crbug.com/769373): Remove DEVICE_VR_EXPORT. class COMPONENT_EXPORT(DEVICE_VR_BASE) VRDeviceBase : public mojom::XRRuntime {
class DEVICE_VR_EXPORT VRDeviceBase : public mojom::XRRuntime {
public: public:
explicit VRDeviceBase(mojom::XRDeviceId id); explicit VRDeviceBase(mojom::XRDeviceId id);
~VRDeviceBase() override; ~VRDeviceBase() override;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment