Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(118)

Unified Diff: content/browser/device_sensors/sensor_manager_android.cc

Issue 2410123002: Remove content::BrowserThread knowledge from Device Sensors (Closed)
Patch Set: Rebase, avoid object creation on startup Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/device_sensors/sensor_manager_android.cc
diff --git a/content/browser/device_sensors/sensor_manager_android.cc b/content/browser/device_sensors/sensor_manager_android.cc
index 22b416997b43e5e17922d550aff73a55e652b32a..d78c4c0215635162dab4fd768acf5dfd0d6066d4 100644
--- a/content/browser/device_sensors/sensor_manager_android.cc
+++ b/content/browser/device_sensors/sensor_manager_android.cc
@@ -11,7 +11,6 @@
#include "base/bind.h"
#include "base/memory/singleton.h"
#include "base/metrics/histogram_macros.h"
-#include "content/public/browser/browser_thread.h"
#include "jni/DeviceSensors_jni.h"
using base::android::AttachCurrentThread;
@@ -57,6 +56,7 @@ SensorManagerAndroid::SensorManagerAndroid()
device_orientation_buffer_(nullptr),
motion_buffer_initialized_(false),
orientation_buffer_initialized_(false),
+ ui_task_runner_(nullptr),
is_shutdown_(false) {
memset(received_motion_data_, 0, sizeof(received_motion_data_));
device_sensors_.Reset(Java_DeviceSensors_getInstance(
@@ -242,20 +242,18 @@ SensorManagerAndroid::GetOrientationSensorTypeUsed() {
void SensorManagerAndroid::StartFetchingDeviceLightData(
DeviceLightHardwareBuffer* buffer) {
- if (BrowserThread::CurrentlyOn(BrowserThread::UI)) {
+ if (ui_task_runner_->RunsTasksOnCurrentThread()) {
StartFetchingLightDataOnUI(buffer);
} else {
- BrowserThread::PostTask(
- BrowserThread::UI, FROM_HERE,
- base::Bind(&SensorManagerAndroid::StartFetchingLightDataOnUI,
- base::Unretained(this),
- buffer));
+ ui_task_runner_->PostTask(
+ FROM_HERE, base::Bind(&SensorManagerAndroid::StartFetchingLightDataOnUI,
+ base::Unretained(this), buffer));
}
}
void SensorManagerAndroid::StartFetchingLightDataOnUI(
DeviceLightHardwareBuffer* buffer) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(ui_task_runner_->RunsTasksOnCurrentThread());
DCHECK(buffer);
if (is_shutdown_)
return;
@@ -273,19 +271,18 @@ void SensorManagerAndroid::StartFetchingLightDataOnUI(
}
void SensorManagerAndroid::StopFetchingDeviceLightData() {
- if (BrowserThread::CurrentlyOn(BrowserThread::UI)) {
+ if (ui_task_runner_->RunsTasksOnCurrentThread()) {
StopFetchingLightDataOnUI();
return;
}
- BrowserThread::PostTask(
- BrowserThread::UI, FROM_HERE,
- base::Bind(&SensorManagerAndroid::StopFetchingLightDataOnUI,
- base::Unretained(this)));
+ ui_task_runner_->PostTask(
+ FROM_HERE, base::Bind(&SensorManagerAndroid::StopFetchingLightDataOnUI,
+ base::Unretained(this)));
}
void SensorManagerAndroid::StopFetchingLightDataOnUI() {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(ui_task_runner_->RunsTasksOnCurrentThread());
if (is_shutdown_)
return;
@@ -309,20 +306,19 @@ void SensorManagerAndroid::SetLightBufferValue(double lux) {
void SensorManagerAndroid::StartFetchingDeviceMotionData(
DeviceMotionHardwareBuffer* buffer) {
- if (BrowserThread::CurrentlyOn(BrowserThread::UI)) {
+ if (ui_task_runner_->RunsTasksOnCurrentThread()) {
StartFetchingMotionDataOnUI(buffer);
} else {
- BrowserThread::PostTask(
- BrowserThread::UI, FROM_HERE,
+ ui_task_runner_->PostTask(
+ FROM_HERE,
base::Bind(&SensorManagerAndroid::StartFetchingMotionDataOnUI,
- base::Unretained(this),
- buffer));
+ base::Unretained(this), buffer));
}
}
void SensorManagerAndroid::StartFetchingMotionDataOnUI(
DeviceMotionHardwareBuffer* buffer) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(ui_task_runner_->RunsTasksOnCurrentThread());
DCHECK(buffer);
if (is_shutdown_)
return;
@@ -345,19 +341,18 @@ void SensorManagerAndroid::StartFetchingMotionDataOnUI(
}
void SensorManagerAndroid::StopFetchingDeviceMotionData() {
- if (BrowserThread::CurrentlyOn(BrowserThread::UI)) {
+ if (ui_task_runner_->RunsTasksOnCurrentThread()) {
StopFetchingMotionDataOnUI();
return;
}
- BrowserThread::PostTask(
- BrowserThread::UI, FROM_HERE,
- base::Bind(&SensorManagerAndroid::StopFetchingMotionDataOnUI,
- base::Unretained(this)));
+ ui_task_runner_->PostTask(
+ FROM_HERE, base::Bind(&SensorManagerAndroid::StopFetchingMotionDataOnUI,
+ base::Unretained(this)));
}
void SensorManagerAndroid::StopFetchingMotionDataOnUI() {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(ui_task_runner_->RunsTasksOnCurrentThread());
if (is_shutdown_)
return;
@@ -410,20 +405,19 @@ void SensorManagerAndroid::ClearInternalMotionBuffers() {
void SensorManagerAndroid::StartFetchingDeviceOrientationData(
DeviceOrientationHardwareBuffer* buffer) {
- if (BrowserThread::CurrentlyOn(BrowserThread::UI)) {
+ if (ui_task_runner_->RunsTasksOnCurrentThread()) {
StartFetchingOrientationDataOnUI(buffer);
} else {
- BrowserThread::PostTask(
- BrowserThread::UI, FROM_HERE,
+ ui_task_runner_->PostTask(
+ FROM_HERE,
base::Bind(&SensorManagerAndroid::StartFetchingOrientationDataOnUI,
- base::Unretained(this),
- buffer));
+ base::Unretained(this), buffer));
}
}
void SensorManagerAndroid::StartFetchingOrientationDataOnUI(
DeviceOrientationHardwareBuffer* buffer) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(ui_task_runner_->RunsTasksOnCurrentThread());
DCHECK(buffer);
if (is_shutdown_)
return;
@@ -448,19 +442,19 @@ void SensorManagerAndroid::StartFetchingOrientationDataOnUI(
}
void SensorManagerAndroid::StopFetchingDeviceOrientationData() {
- if (BrowserThread::CurrentlyOn(BrowserThread::UI)) {
+ if (ui_task_runner_->RunsTasksOnCurrentThread()) {
StopFetchingOrientationDataOnUI();
return;
}
- BrowserThread::PostTask(
- BrowserThread::UI, FROM_HERE,
+ ui_task_runner_->PostTask(
+ FROM_HERE,
base::Bind(&SensorManagerAndroid::StopFetchingOrientationDataOnUI,
base::Unretained(this)));
}
void SensorManagerAndroid::StopFetchingOrientationDataOnUI() {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(ui_task_runner_->RunsTasksOnCurrentThread());
if (is_shutdown_)
return;
@@ -477,33 +471,32 @@ void SensorManagerAndroid::StopFetchingOrientationDataOnUI() {
void SensorManagerAndroid::StartFetchingDeviceOrientationAbsoluteData(
DeviceOrientationHardwareBuffer* buffer) {
- if (BrowserThread::CurrentlyOn(BrowserThread::UI)) {
+ if (ui_task_runner_->RunsTasksOnCurrentThread()) {
StartFetchingOrientationAbsoluteDataOnUI(buffer);
} else {
- BrowserThread::PostTask(
- BrowserThread::UI, FROM_HERE,
+ ui_task_runner_->PostTask(
+ FROM_HERE,
base::Bind(
&SensorManagerAndroid::StartFetchingOrientationAbsoluteDataOnUI,
- base::Unretained(this),
- buffer));
+ base::Unretained(this), buffer));
}
}
void SensorManagerAndroid::StopFetchingDeviceOrientationAbsoluteData() {
- if (BrowserThread::CurrentlyOn(BrowserThread::UI)) {
+ if (ui_task_runner_->RunsTasksOnCurrentThread()) {
StopFetchingOrientationAbsoluteDataOnUI();
return;
}
- BrowserThread::PostTask(
- BrowserThread::UI, FROM_HERE,
+ ui_task_runner_->PostTask(
+ FROM_HERE,
base::Bind(&SensorManagerAndroid::StopFetchingOrientationAbsoluteDataOnUI,
base::Unretained(this)));
}
void SensorManagerAndroid::StartFetchingOrientationAbsoluteDataOnUI(
DeviceOrientationHardwareBuffer* buffer) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(ui_task_runner_->RunsTasksOnCurrentThread());
DCHECK(buffer);
if (is_shutdown_)
return;
@@ -525,7 +518,7 @@ void SensorManagerAndroid::StartFetchingOrientationAbsoluteDataOnUI(
}
void SensorManagerAndroid::StopFetchingOrientationAbsoluteDataOnUI() {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(ui_task_runner_->RunsTasksOnCurrentThread());
if (is_shutdown_)
return;
@@ -541,8 +534,14 @@ void SensorManagerAndroid::StopFetchingOrientationAbsoluteDataOnUI() {
}
}
-void SensorManagerAndroid::Shutdown() {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+void SensorManagerAndroid::SetUITaskRunner(
+ scoped_refptr<base::SequencedTaskRunner> ui_task_runner) {
+ ui_task_runner_ = ui_task_runner;
+ DCHECK(ui_task_runner_);
+}
+
+void SensorManagerAndroid::ShutDownOnUIThread() {
+ DCHECK(ui_task_runner_->RunsTasksOnCurrentThread());
is_shutdown_ = true;
}

Powered by Google App Engine
This is Rietveld 408576698