| Index: chrome/android/java/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeader.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeader.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeader.java
|
| index 9323b0c3c412ba805f32d5adfebf5e923f1d5842..f27b05f7374597d8c3dcff638a654841495775d7 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeader.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeader.java
|
| @@ -189,33 +189,29 @@ public class GeolocationHeader {
|
| /**
|
| * Requests a location refresh so that a valid location will be available for constructing
|
| * an X-Geo header in the near future (i.e. within 5 minutes).
|
| - *
|
| - * @param context The Context used to get the device location.
|
| */
|
| - public static void primeLocationForGeoHeader(Context context) {
|
| - if (!hasGeolocationPermission(context)) return;
|
| + public static void primeLocationForGeoHeader() {
|
| + if (!hasGeolocationPermission()) return;
|
|
|
| if (sFirstLocationTime == Long.MAX_VALUE) {
|
| sFirstLocationTime = SystemClock.elapsedRealtime();
|
| }
|
| - GeolocationTracker.refreshLastKnownLocation(context, REFRESH_LOCATION_AGE);
|
| + GeolocationTracker.refreshLastKnownLocation(
|
| + ContextUtils.getApplicationContext(), REFRESH_LOCATION_AGE);
|
| }
|
|
|
| /**
|
| * Returns whether the X-Geo header is allowed to be sent for the current URL.
|
| *
|
| - * @param context The Context used to get the device location.
|
| * @param url The URL of the request with which this header will be sent.
|
| * @param isIncognito Whether the request will happen in an incognito tab.
|
| */
|
| - public static boolean isGeoHeaderEnabledForUrl(Context context, String url,
|
| - boolean isIncognito) {
|
| - return geoHeaderStateForUrl(context, url, isIncognito, false) == HEADER_ENABLED;
|
| + public static boolean isGeoHeaderEnabledForUrl(String url, boolean isIncognito) {
|
| + return geoHeaderStateForUrl(url, isIncognito, false) == HEADER_ENABLED;
|
| }
|
|
|
| @HeaderState
|
| - private static int geoHeaderStateForUrl(
|
| - Context context, String url, boolean isIncognito, boolean recordUma) {
|
| + private static int geoHeaderStateForUrl(String url, boolean isIncognito, boolean recordUma) {
|
| // Only send X-Geo in normal mode.
|
| if (isIncognito) return INCOGNITO;
|
|
|
| @@ -225,7 +221,7 @@ public class GeolocationHeader {
|
| Uri uri = Uri.parse(url);
|
| if (!HTTPS_SCHEME.equals(uri.getScheme())) return NOT_HTTPS;
|
|
|
| - if (!hasGeolocationPermission(context)) {
|
| + if (!hasGeolocationPermission()) {
|
| if (recordUma) recordHistogram(UMA_LOCATION_DISABLED_FOR_CHROME_APP);
|
| return LOCATION_PERMISSION_BLOCKED;
|
| }
|
| @@ -248,20 +244,20 @@ public class GeolocationHeader {
|
| *
|
| * Returns null otherwise.
|
| *
|
| - * @param context The Context used to get the device location.
|
| * @param url The URL of the request with which this header will be sent.
|
| * @param tab The Tab currently being accessed.
|
| * @return The X-Geo header string or null.
|
| */
|
| - public static String getGeoHeader(Context context, String url, Tab tab) {
|
| + public static String getGeoHeader(String url, Tab tab) {
|
| boolean isIncognito = tab.isIncognito();
|
| boolean locationAttached = true;
|
| Location location = null;
|
| long locationAge = Long.MAX_VALUE;
|
| - @HeaderState int headerState = geoHeaderStateForUrl(context, url, isIncognito, true);
|
| + @HeaderState int headerState = geoHeaderStateForUrl(url, isIncognito, true);
|
| if (headerState == HEADER_ENABLED) {
|
| // Only send X-Geo header if there's a fresh location available.
|
| - location = GeolocationTracker.getLastKnownLocation(context);
|
| + location =
|
| + GeolocationTracker.getLastKnownLocation(ContextUtils.getApplicationContext());
|
| if (location == null) {
|
| recordHistogram(UMA_LOCATION_NOT_AVAILABLE);
|
| locationAttached = false;
|
| @@ -276,8 +272,8 @@ public class GeolocationHeader {
|
| locationAttached = false;
|
| }
|
|
|
| - @LocationSource int locationSource = getLocationSource(context);
|
| - @Permission int appPermission = getGeolocationPermission(context, tab);
|
| + @LocationSource int locationSource = getLocationSource();
|
| + @Permission int appPermission = getGeolocationPermission(tab);
|
| @Permission int domainPermission = getDomainPermission(url, isIncognito);
|
|
|
| // Record the permission state with a histogram.
|
| @@ -322,16 +318,11 @@ public class GeolocationHeader {
|
| }
|
|
|
| @CalledByNative
|
| - public static boolean hasGeolocationPermission() {
|
| - Context context = ContextUtils.getApplicationContext();
|
| - return hasGeolocationPermission(context);
|
| - }
|
| -
|
| - static boolean hasGeolocationPermission(Context context) {
|
| + static boolean hasGeolocationPermission() {
|
| int pid = Process.myPid();
|
| int uid = Process.myUid();
|
| - if (ApiCompatibilityUtils.checkPermission(
|
| - context, Manifest.permission.ACCESS_COARSE_LOCATION, pid, uid)
|
| + if (ApiCompatibilityUtils.checkPermission(ContextUtils.getApplicationContext(),
|
| + Manifest.permission.ACCESS_COARSE_LOCATION, pid, uid)
|
| != PackageManager.PERMISSION_GRANTED) {
|
| return false;
|
| }
|
| @@ -340,8 +331,8 @@ public class GeolocationHeader {
|
| // incorrectly requires FINE_LOCATION permission (it should only require COARSE_LOCATION
|
| // permission). http://crbug.com/580733
|
| if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M
|
| - && ApiCompatibilityUtils.checkPermission(
|
| - context, Manifest.permission.ACCESS_FINE_LOCATION, pid, uid)
|
| + && ApiCompatibilityUtils.checkPermission(ContextUtils.getApplicationContext(),
|
| + Manifest.permission.ACCESS_FINE_LOCATION, pid, uid)
|
| != PackageManager.PERMISSION_GRANTED) {
|
| return false;
|
| }
|
| @@ -354,8 +345,8 @@ public class GeolocationHeader {
|
| * This permission can be either granted, blocked or prompt.
|
| */
|
| @Permission
|
| - static int getGeolocationPermission(Context context, Tab tab) {
|
| - if (hasGeolocationPermission(context)) return PERMISSION_GRANTED;
|
| + static int getGeolocationPermission(Tab tab) {
|
| + if (hasGeolocationPermission()) return PERMISSION_GRANTED;
|
| return tab.getWindowAndroid().canRequestPermission(
|
| Manifest.permission.ACCESS_COARSE_LOCATION)
|
| ? PERMISSION_PROMPT
|
| @@ -402,9 +393,9 @@ public class GeolocationHeader {
|
|
|
| /** Returns the location source. */
|
| @LocationSource
|
| - private static int getLocationSource(Context context) {
|
| - LocationManager locationManager =
|
| - (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
|
| + private static int getLocationSource() {
|
| + LocationManager locationManager = (LocationManager) ContextUtils.getApplicationContext()
|
| + .getSystemService(Context.LOCATION_SERVICE);
|
| List<String> providers = locationManager.getProviders(true);
|
| boolean hasNetworkProvider = false;
|
| boolean hasGpsProvider = false;
|
|
|