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")
import("//build/config/python.gni")
import("//build/config/ui.gni")
import("//chromeos/assistant/ambient.gni")
import("//chromeos/components/sensors/buildflags.gni")
import("//mojo/public/tools/bindings/mojom.gni")
import("//testing/test.gni")
import("//tools/grit/repack.gni")
......@@ -132,12 +133,8 @@ component("ash") {
"accelerometer/accelerometer_constants.h",
"accelerometer/accelerometer_file_reader.cc",
"accelerometer/accelerometer_file_reader.h",
"accelerometer/accelerometer_provider_mojo.cc",
"accelerometer/accelerometer_provider_mojo.h",
"accelerometer/accelerometer_reader.cc",
"accelerometer/accelerometer_reader.h",
"accelerometer/accelerometer_samples_observer.cc",
"accelerometer/accelerometer_samples_observer.h",
"accelerometer/accelerometer_types.cc",
"accelerometer/accelerometer_types.h",
"accessibility/accessibility_controller_impl.cc",
......@@ -1795,8 +1792,7 @@ component("ash") {
# TODO(https://crbug.com/644336): Make CrasAudioHandler Chrome or Ash only.
"//chromeos/audio",
"//chromeos/components/multidevice/logging",
"//chromeos/components/sensors:sensors",
"//chromeos/components/sensors/mojom",
"//chromeos/components/sensors:buildflags",
"//chromeos/constants",
"//chromeos/dbus",
......@@ -1924,6 +1920,23 @@ component("ash") {
"//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.
......@@ -1954,8 +1967,6 @@ test("ash_unittests") {
"accelerators/accelerator_unittest.cc",
"accelerators/magnifier_key_scroller_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_focus_ring_controller_unittest.cc",
"accessibility/accessibility_focus_ring_group_unittest.cc",
......@@ -2405,9 +2416,6 @@ test("ash_unittests") {
"//chromeos/audio",
"//chromeos/components/phonehub:test_support",
"//chromeos/components/quick_answers:quick_answers",
"//chromeos/components/sensors:sensors",
"//chromeos/components/sensors:test_support",
"//chromeos/components/sensors/mojom",
"//chromeos/constants",
"//chromeos/dbus:test_support",
"//chromeos/dbus/audio",
......@@ -2513,6 +2521,18 @@ test("ash_unittests") {
"//content/public/browser",
"//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
......
......@@ -94,8 +94,13 @@ AccelerometerProviderMojo::~AccelerometerProviderMojo() = default;
void AccelerometerProviderMojo::RegisterSensorClient() {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
chromeos::sensors::SensorHalDispatcher::GetInstance()->RegisterClient(
sensor_hal_client_.BindNewPipeAndPassRemote());
auto* dispatcher = chromeos::sensors::SensorHalDispatcher::GetInstance();
if (!dispatcher) {
// In unit tests, SensorHalDispatcher is not initialized.
return;
}
dispatcher->RegisterClient(sensor_hal_client_.BindNewPipeAndPassRemote());
sensor_hal_client_.set_disconnect_handler(base::BindOnce(
&AccelerometerProviderMojo::OnSensorHalClientFailure, this));
......
......@@ -4,27 +4,21 @@
#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/wm/tablet_mode/tablet_mode_controller.h"
#include "base/no_destructor.h"
#include "base/posix/eintr_wrapper.h"
#include "base/sequenced_task_runner.h"
#include "base/task/current_thread.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 {
// Group name of IIO Service, used to check if IIO Service exists.
constexpr char kIioServiceGroupName[] = "iioservice";
} // namespace
// static
AccelerometerReader* AccelerometerReader::GetInstance() {
static base::NoDestructor<AccelerometerReader> accelerometer_reader;
......@@ -62,17 +56,11 @@ void AccelerometerReader::SetECLidAngleDriverStatusForTesting(
}
AccelerometerReader::AccelerometerReader() {
char buf[1024];
struct group result;
struct group* resultp;
if (HANDLE_EINTR(getgrnam_r(kIioServiceGroupName, &result, buf, sizeof(buf),
&resultp)) < 0 ||
!resultp) {
accelerometer_provider_ = new AccelerometerFileReader();
} else {
accelerometer_provider_ = new AccelerometerProviderMojo();
}
#if BUILDFLAG(USE_IIOSERVICE)
accelerometer_provider_ = new AccelerometerProviderMojo();
#else // !BUILDFLAG(USE_IIOSERVICE)
accelerometer_provider_ = new AccelerometerFileReader();
#endif // BUILDFLAG(USE_IIOSERVICE)
}
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