Commit a836d9bd authored by Harvey Yang's avatar Harvey Yang Committed by Chromium LUCI CQ

accelerometer: USE USE_IIOSERVICE build flag

BUG=b:168434557
TEST=unit tests

Change-Id: I896495d19cc5c8ebdc3a696e537b18302644d389
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2624128
Commit-Queue: Cheng-Hao Yang <chenghaoyang@chromium.org>
Reviewed-by: default avatarXiaoqian Dai <xdai@chromium.org>
Cr-Commit-Position: refs/heads/master@{#843415}
parent d7d68fd5
...@@ -6,6 +6,7 @@ import("//build/config/features.gni") ...@@ -6,6 +6,7 @@ import("//build/config/features.gni")
import("//build/config/python.gni") import("//build/config/python.gni")
import("//build/config/ui.gni") import("//build/config/ui.gni")
import("//chromeos/assistant/ambient.gni") import("//chromeos/assistant/ambient.gni")
import("//chromeos/components/sensors/buildflags.gni")
import("//mojo/public/tools/bindings/mojom.gni") import("//mojo/public/tools/bindings/mojom.gni")
import("//testing/test.gni") import("//testing/test.gni")
import("//tools/grit/repack.gni") import("//tools/grit/repack.gni")
...@@ -132,12 +133,8 @@ component("ash") { ...@@ -132,12 +133,8 @@ component("ash") {
"accelerometer/accelerometer_constants.h", "accelerometer/accelerometer_constants.h",
"accelerometer/accelerometer_file_reader.cc", "accelerometer/accelerometer_file_reader.cc",
"accelerometer/accelerometer_file_reader.h", "accelerometer/accelerometer_file_reader.h",
"accelerometer/accelerometer_provider_mojo.cc",
"accelerometer/accelerometer_provider_mojo.h",
"accelerometer/accelerometer_reader.cc", "accelerometer/accelerometer_reader.cc",
"accelerometer/accelerometer_reader.h", "accelerometer/accelerometer_reader.h",
"accelerometer/accelerometer_samples_observer.cc",
"accelerometer/accelerometer_samples_observer.h",
"accelerometer/accelerometer_types.cc", "accelerometer/accelerometer_types.cc",
"accelerometer/accelerometer_types.h", "accelerometer/accelerometer_types.h",
"accessibility/accessibility_controller_impl.cc", "accessibility/accessibility_controller_impl.cc",
...@@ -1795,8 +1792,7 @@ component("ash") { ...@@ -1795,8 +1792,7 @@ component("ash") {
# TODO(https://crbug.com/644336): Make CrasAudioHandler Chrome or Ash only. # TODO(https://crbug.com/644336): Make CrasAudioHandler Chrome or Ash only.
"//chromeos/audio", "//chromeos/audio",
"//chromeos/components/multidevice/logging", "//chromeos/components/multidevice/logging",
"//chromeos/components/sensors:sensors", "//chromeos/components/sensors:buildflags",
"//chromeos/components/sensors/mojom",
"//chromeos/constants", "//chromeos/constants",
"//chromeos/dbus", "//chromeos/dbus",
...@@ -1924,6 +1920,23 @@ component("ash") { ...@@ -1924,6 +1920,23 @@ component("ash") {
"//chromeos/assistant/internal/proto/google3", "//chromeos/assistant/internal/proto/google3",
] ]
} }
if (use_iioservice) {
sources -= [
"accelerometer/accelerometer_file_reader.cc",
"accelerometer/accelerometer_file_reader.h",
]
sources += [
"accelerometer/accelerometer_provider_mojo.cc",
"accelerometer/accelerometer_provider_mojo.h",
"accelerometer/accelerometer_samples_observer.cc",
"accelerometer/accelerometer_samples_observer.h",
]
deps += [
"//chromeos/components/sensors:sensors",
"//chromeos/components/sensors/mojom",
]
}
} }
# TODO(crbug.com/1112471): Get this to run cleanly under Python 3. # TODO(crbug.com/1112471): Get this to run cleanly under Python 3.
...@@ -1954,8 +1967,6 @@ test("ash_unittests") { ...@@ -1954,8 +1967,6 @@ test("ash_unittests") {
"accelerators/accelerator_unittest.cc", "accelerators/accelerator_unittest.cc",
"accelerators/magnifier_key_scroller_unittest.cc", "accelerators/magnifier_key_scroller_unittest.cc",
"accelerators/spoken_feedback_toggler_unittest.cc", "accelerators/spoken_feedback_toggler_unittest.cc",
"accelerometer/accelerometer_provider_mojo_unittest.cc",
"accelerometer/accelerometer_samples_observer_unittest.cc",
"accessibility/accessibility_controller_unittest.cc", "accessibility/accessibility_controller_unittest.cc",
"accessibility/accessibility_focus_ring_controller_unittest.cc", "accessibility/accessibility_focus_ring_controller_unittest.cc",
"accessibility/accessibility_focus_ring_group_unittest.cc", "accessibility/accessibility_focus_ring_group_unittest.cc",
...@@ -2405,9 +2416,6 @@ test("ash_unittests") { ...@@ -2405,9 +2416,6 @@ test("ash_unittests") {
"//chromeos/audio", "//chromeos/audio",
"//chromeos/components/phonehub:test_support", "//chromeos/components/phonehub:test_support",
"//chromeos/components/quick_answers:quick_answers", "//chromeos/components/quick_answers:quick_answers",
"//chromeos/components/sensors:sensors",
"//chromeos/components/sensors:test_support",
"//chromeos/components/sensors/mojom",
"//chromeos/constants", "//chromeos/constants",
"//chromeos/dbus:test_support", "//chromeos/dbus:test_support",
"//chromeos/dbus/audio", "//chromeos/dbus/audio",
...@@ -2513,6 +2521,18 @@ test("ash_unittests") { ...@@ -2513,6 +2521,18 @@ test("ash_unittests") {
"//content/public/browser", "//content/public/browser",
"//content/public/common", "//content/public/common",
] ]
if (use_iioservice) {
sources += [
"accelerometer/accelerometer_provider_mojo_unittest.cc",
"accelerometer/accelerometer_samples_observer_unittest.cc",
]
deps += [
"//chromeos/components/sensors:sensors",
"//chromeos/components/sensors:test_support",
"//chromeos/components/sensors/mojom",
]
}
} }
# TODO(oshima): Remove or migrate to new ash_ui_perftests # TODO(oshima): Remove or migrate to new ash_ui_perftests
......
...@@ -94,8 +94,13 @@ AccelerometerProviderMojo::~AccelerometerProviderMojo() = default; ...@@ -94,8 +94,13 @@ AccelerometerProviderMojo::~AccelerometerProviderMojo() = default;
void AccelerometerProviderMojo::RegisterSensorClient() { void AccelerometerProviderMojo::RegisterSensorClient() {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
chromeos::sensors::SensorHalDispatcher::GetInstance()->RegisterClient( auto* dispatcher = chromeos::sensors::SensorHalDispatcher::GetInstance();
sensor_hal_client_.BindNewPipeAndPassRemote()); if (!dispatcher) {
// In unit tests, SensorHalDispatcher is not initialized.
return;
}
dispatcher->RegisterClient(sensor_hal_client_.BindNewPipeAndPassRemote());
sensor_hal_client_.set_disconnect_handler(base::BindOnce( sensor_hal_client_.set_disconnect_handler(base::BindOnce(
&AccelerometerProviderMojo::OnSensorHalClientFailure, this)); &AccelerometerProviderMojo::OnSensorHalClientFailure, this));
......
...@@ -4,27 +4,21 @@ ...@@ -4,27 +4,21 @@
#include "ash/accelerometer/accelerometer_reader.h" #include "ash/accelerometer/accelerometer_reader.h"
#include <grp.h>
#include "ash/accelerometer/accelerometer_file_reader.h"
#include "ash/accelerometer/accelerometer_provider_mojo.h"
#include "ash/shell.h" #include "ash/shell.h"
#include "ash/wm/tablet_mode/tablet_mode_controller.h" #include "ash/wm/tablet_mode/tablet_mode_controller.h"
#include "base/no_destructor.h" #include "base/no_destructor.h"
#include "base/posix/eintr_wrapper.h"
#include "base/sequenced_task_runner.h" #include "base/sequenced_task_runner.h"
#include "base/task/current_thread.h" #include "base/task/current_thread.h"
#include "base/threading/sequenced_task_runner_handle.h" #include "base/threading/sequenced_task_runner_handle.h"
#include "chromeos/components/sensors/buildflags.h"
#if BUILDFLAG(USE_IIOSERVICE)
#include "ash/accelerometer/accelerometer_provider_mojo.h"
#else // !BUILDFLAG(USE_IIOSERVICE)
#include "ash/accelerometer/accelerometer_file_reader.h"
#endif // BUILDFLAG(USE_IIOSERVICE)
namespace ash { namespace ash {
namespace {
// Group name of IIO Service, used to check if IIO Service exists.
constexpr char kIioServiceGroupName[] = "iioservice";
} // namespace
// static // static
AccelerometerReader* AccelerometerReader::GetInstance() { AccelerometerReader* AccelerometerReader::GetInstance() {
static base::NoDestructor<AccelerometerReader> accelerometer_reader; static base::NoDestructor<AccelerometerReader> accelerometer_reader;
...@@ -62,17 +56,11 @@ void AccelerometerReader::SetECLidAngleDriverStatusForTesting( ...@@ -62,17 +56,11 @@ void AccelerometerReader::SetECLidAngleDriverStatusForTesting(
} }
AccelerometerReader::AccelerometerReader() { AccelerometerReader::AccelerometerReader() {
char buf[1024]; #if BUILDFLAG(USE_IIOSERVICE)
struct group result; accelerometer_provider_ = new AccelerometerProviderMojo();
struct group* resultp; #else // !BUILDFLAG(USE_IIOSERVICE)
accelerometer_provider_ = new AccelerometerFileReader();
if (HANDLE_EINTR(getgrnam_r(kIioServiceGroupName, &result, buf, sizeof(buf), #endif // BUILDFLAG(USE_IIOSERVICE)
&resultp)) < 0 ||
!resultp) {
accelerometer_provider_ = new AccelerometerFileReader();
} else {
accelerometer_provider_ = new AccelerometerProviderMojo();
}
} }
AccelerometerReader::~AccelerometerReader() = default; AccelerometerReader::~AccelerometerReader() = default;
......
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