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; |
} |