[M126 Migration] Fix for Geolocation webTCT failures 13/320013/4
authoramarjit31 <amarjit.g@samsung.com>
Wed, 6 Nov 2024 12:45:06 +0000 (18:15 +0530)
committeramarjit ghosh <amarjit.g@samsung.com>
Thu, 7 Nov 2024 04:51:44 +0000 (04:51 +0000)
In m120 with the addition of GeopositionResult class the Geoposition
object are now referenced via the GeopositionResult. This added layer
separates position and error occured instances from Geoposition object.
This patch implements this change for the geolocation calls.

References:
https://review.tizen.org/gerrit/308199
https://review.tizen.org/gerrit/308269

Change-Id: I3e11501d5eda5746e4f4b4f5ef42c1b5818145d6
Signed-off-by: amarjit31 <amarjit.g@samsung.com>
tizen_src/ewk/efl_integration/browser/geolocation/location_provider_efl.cc
tizen_src/ewk/efl_integration/browser/geolocation/location_provider_efl.h

index e23fce227b9cfb05b2c6c172f00c0f5c4c5ce043..5dd2cfe33a284ab516e3a4e24c284280d0247f1a 100644 (file)
@@ -14,13 +14,8 @@ static double KilometerPerHourToMeterPerSecond(double kilometer_per_hour) {
 }
 
 LocationProviderEfl::LocationProviderEfl()
-    : location_manager_(nullptr)
-#if !defined(EWK_BRINGUP)
-      ,
-      task_runner_(base::SingleThreadTaskRunner::GetCurrentDefault())
-#endif
-{
-}
+    : location_manager_(nullptr),
+      task_runner_(base::SingleThreadTaskRunner::GetCurrentDefault()) {}
 
 LocationProviderEfl::~LocationProviderEfl() {
   StopProvider();
@@ -48,11 +43,11 @@ void LocationProviderEfl::GeoPositionChangedCb(double latitude,
                                            direction, horizontal_accuracy,
                                            timestamp);
 }
-void LocationProviderEfl::NotifyCallback(const mojom::Geoposition& position) {
-#if !defined(EWK_BRINGUP)
+
+void LocationProviderEfl::NotifyCallback(mojom::GeopositionResultPtr position) {
+  last_position_ = std::move(position);
   if (!callback_.is_null())
-    callback_.Run(this, position);
-#endif
+    callback_.Run(this, last_position_.Clone());
 }
 
 void LocationProviderEfl::SetUpdateCallback(
@@ -67,26 +62,31 @@ void LocationProviderEfl::NotifyPositionChanged(double latitude,
                                                 double direction,
                                                 double horizontal_accuracy,
                                                 time_t timestamp) {
-#if !defined(EWK_BRINGUP)
+
   DCHECK(location_manager_);
   DCHECK(task_runner_);
 
-  last_position_.latitude = latitude;
-  last_position_.longitude = longitude;
-  last_position_.altitude = altitude;
-  last_position_.timestamp = base::Time::FromTimeT(timestamp);
-  last_position_.speed = KilometerPerHourToMeterPerSecond(speed);
-  last_position_.heading = direction;
+  auto position = mojom::Geoposition::New();
+  position->latitude = latitude;
+  position->longitude = longitude;
+  position->altitude = altitude;
+  position->timestamp = base::Time::FromTimeT(timestamp);
+  position->speed = KilometerPerHourToMeterPerSecond(speed);
+  position->heading = direction;
+
 
   location_accuracy_level_e level;
-  location_manager_get_last_accuracy(location_manager_,
-      &level, &last_position_.accuracy, &last_position_.altitude_accuracy);
+  location_manager_get_last_accuracy(location_manager_, &level,
+                                     &position->accuracy,
+                                     &position->altitude_accuracy);
+
+  auto position_ptr =
+      mojom::GeopositionResult::NewPosition(std::move(position));
 
   base::OnceClosure task =
       base::BindOnce(&LocationProviderEfl::NotifyCallback,
-                     base::Unretained(this), last_position_);
+                     base::Unretained(this), std::move(position_ptr));
   task_runner_->PostTask(FROM_HERE, std::move(task));
-#endif
 }
 
 void LocationProviderEfl::StartProvider(bool high_accuracy) {
@@ -133,7 +133,7 @@ void LocationProviderEfl::StopProvider() {
 }
 
 const mojom::GeopositionResult* LocationProviderEfl::GetPosition() {
-  return last_position_;
+  return last_position_.get();
 }
 
 void LocationProviderEfl::OnPermissionGranted() {
index 67c9e94e18ee54b80b0e1fba3832708cd1d0d04f..f424c6606b7e8557cad1fb6ab0eae08fa647a3bc 100644 (file)
@@ -44,13 +44,11 @@ class LocationProviderEfl : public LocationProvider {
                                    void*);
   void
   NotifyPositionChanged(double, double, double, double, double, double, time_t);
-  void NotifyCallback(const mojom::Geoposition&);
+  void NotifyCallback(mojom::GeopositionResultPtr);
 
-  mojom::GeopositionResult* last_position_;
+  mojom::GeopositionResultPtr last_position_;
   location_manager_h location_manager_;
-#if !defined(EWK_BRINGUP)
   scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
-#endif
   LocationProviderUpdateCallback callback_;
 };