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

Unified Diff: blimp/engine/feature/geolocation/engine_geolocation_feature.cc

Issue 2249283003: Hooks together Geolocation Feature in the Client and Engine. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@lai
Patch Set: Addresses nyquist's #46 comments. Created 4 years, 3 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: blimp/engine/feature/geolocation/engine_geolocation_feature.cc
diff --git a/blimp/engine/feature/geolocation/engine_geolocation_feature.cc b/blimp/engine/feature/geolocation/engine_geolocation_feature.cc
index 4cce48905ee5dd38c999ad81fc49f970beb7e981..13eee8ba12e7f2d22bffa1a7d4903710089de0d3 100644
--- a/blimp/engine/feature/geolocation/engine_geolocation_feature.cc
+++ b/blimp/engine/feature/geolocation/engine_geolocation_feature.cc
@@ -9,6 +9,7 @@
#include "base/memory/ptr_util.h"
#include "base/memory/weak_ptr.h"
+#include "base/threading/thread_task_runner_handle.h"
#include "blimp/common/create_blimp_message.h"
#include "blimp/common/proto/blimp_message.pb.h"
#include "blimp/common/proto/geolocation.pb.h"
@@ -20,6 +21,7 @@
namespace blimp {
namespace engine {
namespace {
+
class BlimpGeolocationDelegate : public device::GeolocationDelegate {
public:
explicit BlimpGeolocationDelegate(
@@ -120,7 +122,8 @@ void EngineGeolocationFeature::ProcessMessage(
void EngineGeolocationFeature::NotifyCallback(
const device::Geoposition& position) {
- geoposition_received_callback_.Run(position);
+ task_runner_->PostTask(FROM_HERE,
+ base::Bind(geoposition_received_callback_, position));
}
void EngineGeolocationFeature::RequestAccuracy(
@@ -151,6 +154,12 @@ void EngineGeolocationFeature::OnPermissionGranted() {
void EngineGeolocationFeature::SetUpdateCallback(
const GeopositionReceivedCallback& callback) {
geoposition_received_callback_ = callback;
+ SetTaskRunner(base::ThreadTaskRunnerHandle::Get());
+}
+
+void EngineGeolocationFeature::SetTaskRunner(
+ scoped_refptr<base::SingleThreadTaskRunner> runner) {
+ task_runner_ = std::move(runner);
Wez 2016/09/01 02:45:43 Why can't we just assign task_runner_ directly in
CJ 2016/09/01 18:17:05 It's because ThreadTaskRunnerHandle::Get() returns
Wez 2016/09/01 20:08:17 You can just assigned the result of Get() directly
}
} // namespace engine

Powered by Google App Engine
This is Rietveld 408576698