New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 725057 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Email to this user bounced
Closed: Nov 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 3
Type: Bug

Blocked on:
issue 725056

Blocking:
issue 717053
issue 725045



Sign in to add a comment

Eliminate GeolocationDelegate

Project Member Reported by blundell@chromium.org, May 22 2017

Issue description

Once all the blocking bugs are fixed, these interfaces (and their implementations) should no longer be used and can be eliminated.
 
Components: Blink>Location
Labels: DeviceService OS-All
Status: Available (was: Untriaged)
Blockedon: 725056
Blocking: 725045
Blocking: 717053
Cc: amoylan@chromium.org
Components: Blink>Geolocation
Components: -Blink>Location
Summary: Eliminate GeolocationDelegate (was: Eliminate GeolocationDelegate and AccessTokenStore)
Once AccessTokenStore is eliminated, GeolocationDelegate will only be used to override the system provider. We need to keep this functionality, as it's used at least by Qt:

https://www.google.com/url?q=https://code.woboq.org/qt5/qtwebengine/src/core/content_browser_client_qt.cpp.html%23_ZN15QtWebEngineCore12_GLOBAL__N_121GeolocationDelegateQt30OverrideSystemLocationProviderEv&sa=D&ust=1506679470748000&usg=AFQjCNGRtz1iXhia6Iwx_L5Ak-01ouirOQ

Our plan for moving this functionality away from GeolocationDelegate is to inject it into the DeviceService constructor via ContentBrowserClient in a manner similar to the injection of the URLRequestContextGetter. Some initial thoughts from amoylan@:

base::Bind(&ContentBrowserClient::GetCustomSystemLocationProvider(), Unretained(GetContentClient()->browser()))

in to Geolocation, initially via a static setter.

The ContentBrowserClient::GetCustomSystemLocationProvider would want to proclaim itself to be callable from any thread to avoid introducing a new async stage in geolocation startup, which seems fine.
Components: Internals>Services>Device

Comment 9 by ke...@intel.com, Nov 14 2017

Cc: blundell@chromium.org
Owner: ke...@intel.com
Status: Started (was: Available)

Comment 10 by ke...@intel.com, Nov 27 2017

Cc: sl.ostap...@samsung.com
Project Member

Comment 11 by bugdroid1@chromium.org, Nov 27 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b67a7910293e914232d55cf76b4712b485f3bd69

commit b67a7910293e914232d55cf76b4712b485f3bd69
Author: Ke He <ke.he@intel.com>
Date: Mon Nov 27 23:25:55 2017

Eliminate GeolocationDelegate.

In this CL we remove the GeolocationDelegate but keep its functionality by
inject a GetCustomeSystemLocationProviderCallback to constructor of the Device
Service.

1) Add the GetCustomSystemLocationProvider() in ContentBrowserClient for
   embedder to override, and inject it to DeviceService constructor.
2) Move the location_provider.h to public/cpp.
3) Change the unittest of LocationArbitrator accordingly.

BUG= 725057 

Change-Id: I605d282cac2082f69526675a8e7dff3a46bafd74
Reviewed-on: https://chromium-review.googlesource.com/768614
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Reviewed-by: Tim Volodine <timvolodine@chromium.org>
Reviewed-by: Colin Blundell <blundell@chromium.org>
Commit-Queue: Ke He <ke.he@intel.com>
Cr-Commit-Position: refs/heads/master@{#519446}
[modify] https://crrev.com/b67a7910293e914232d55cf76b4712b485f3bd69/content/browser/service_manager/service_manager_context.cc
[modify] https://crrev.com/b67a7910293e914232d55cf76b4712b485f3bd69/content/public/browser/DEPS
[modify] https://crrev.com/b67a7910293e914232d55cf76b4712b485f3bd69/content/public/browser/content_browser_client.cc
[modify] https://crrev.com/b67a7910293e914232d55cf76b4712b485f3bd69/content/public/browser/content_browser_client.h
[modify] https://crrev.com/b67a7910293e914232d55cf76b4712b485f3bd69/device/geolocation/BUILD.gn
[modify] https://crrev.com/b67a7910293e914232d55cf76b4712b485f3bd69/device/geolocation/fake_location_provider.h
[delete] https://crrev.com/414a100e00163ba2ed3b66c0094ca52709ec3b24/device/geolocation/geolocation_delegate.cc
[delete] https://crrev.com/414a100e00163ba2ed3b66c0094ca52709ec3b24/device/geolocation/geolocation_delegate.h
[modify] https://crrev.com/b67a7910293e914232d55cf76b4712b485f3bd69/device/geolocation/geolocation_provider.h
[modify] https://crrev.com/b67a7910293e914232d55cf76b4712b485f3bd69/device/geolocation/geolocation_provider_impl.cc
[modify] https://crrev.com/b67a7910293e914232d55cf76b4712b485f3bd69/device/geolocation/geolocation_provider_impl.h
[modify] https://crrev.com/b67a7910293e914232d55cf76b4712b485f3bd69/device/geolocation/location_arbitrator.cc
[modify] https://crrev.com/b67a7910293e914232d55cf76b4712b485f3bd69/device/geolocation/location_arbitrator.h
[modify] https://crrev.com/b67a7910293e914232d55cf76b4712b485f3bd69/device/geolocation/location_arbitrator_unittest.cc
[modify] https://crrev.com/b67a7910293e914232d55cf76b4712b485f3bd69/device/geolocation/location_provider_android.h
[modify] https://crrev.com/b67a7910293e914232d55cf76b4712b485f3bd69/device/geolocation/network_location_provider.h
[modify] https://crrev.com/b67a7910293e914232d55cf76b4712b485f3bd69/device/geolocation/public/cpp/BUILD.gn
[rename] https://crrev.com/b67a7910293e914232d55cf76b4712b485f3bd69/device/geolocation/public/cpp/location_provider.h
[modify] https://crrev.com/b67a7910293e914232d55cf76b4712b485f3bd69/services/device/BUILD.gn
[modify] https://crrev.com/b67a7910293e914232d55cf76b4712b485f3bd69/services/device/device_service.cc
[modify] https://crrev.com/b67a7910293e914232d55cf76b4712b485f3bd69/services/device/device_service.h
[modify] https://crrev.com/b67a7910293e914232d55cf76b4712b485f3bd69/services/device/device_service_test_base.cc

Comment 12 by ke...@intel.com, Nov 28 2017

Status: Fixed (was: Started)

Sign in to add a comment