Commit 1f9ef563 authored by Ella Ge's avatar Ella Ge Committed by Commit Bot

Remove InstalledWebappBridge::ShouldDelegateLocationPermission

This CL makes the DecidePermission check if it is possible to get a
InstalledWebappGeolocationContext instead of checking the
InstalledWebappBridge::ShouldDelegateLocationPermission

GetInstalledWebappGeolocationContext() returns nullptr when either not
running in TWA mode or should not delegate geolocation to it.
It's mostly the same logic as the one in InstalledWebappBridge,
except checking the current customtabsactivity instead of the
LastTrackedFocusedTwaCustomTabActivity. so it's better using this one.

Bug: 1106391
Change-Id: If66b10b44d71d30358088c00245c315be5c15829
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2303049Reviewed-by: default avatarDominick Ng <dominickn@chromium.org>
Reviewed-by: default avatarPeter Conn <peconn@chromium.org>
Commit-Queue: Ella Ge <eirage@chromium.org>
Cr-Commit-Position: refs/heads/master@{#789393}
parent 990d4082
...@@ -77,17 +77,6 @@ public class InstalledWebappBridge { ...@@ -77,17 +77,6 @@ public class InstalledWebappBridge {
return permission.setting; return permission.setting;
} }
@CalledByNative
private static boolean shouldDelegateLocationPermission(String url) {
TrustedWebActivityPermissionManager manager = TrustedWebActivityPermissionManager.get();
Origin origin = Origin.create(Uri.parse(url));
if (origin == null) return false;
String packageName = manager.getDelegatePackageName(origin);
return manager.isRunningTwa()
&& TrustedWebActivityPermissionManager.hasAndroidLocationPermission(packageName)
!= null;
}
@CalledByNative @CalledByNative
private static void decidePermission(String url, long callback) { private static void decidePermission(String url, long callback) {
Origin origin = Origin.create(Uri.parse(url)); Origin origin = Origin.create(Uri.parse(url));
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
#include "components/search_engines/template_url_service.h" #include "components/search_engines/template_url_service.h"
#include "content/public/browser/render_frame_host.h" #include "content/public/browser/render_frame_host.h"
#include "content/public/browser/web_contents.h" #include "content/public/browser/web_contents.h"
#include "content/public/browser/web_contents_delegate.h"
#include "url/gurl.h" #include "url/gurl.h"
GeolocationPermissionContextDelegateAndroid:: GeolocationPermissionContextDelegateAndroid::
...@@ -34,8 +35,8 @@ bool GeolocationPermissionContextDelegateAndroid::DecidePermission( ...@@ -34,8 +35,8 @@ bool GeolocationPermissionContextDelegateAndroid::DecidePermission(
bool user_gesture, bool user_gesture,
permissions::BrowserPermissionCallback* callback, permissions::BrowserPermissionCallback* callback,
permissions::GeolocationPermissionContext* context) { permissions::GeolocationPermissionContext* context) {
if (InstalledWebappBridge::ShouldDelegateLocationPermission( if (web_contents->GetDelegate() &&
requesting_origin)) { web_contents->GetDelegate()->GetInstalledWebappGeolocationContext()) {
InstalledWebappBridge::PermissionResponseCallback permission_callback = InstalledWebappBridge::PermissionResponseCallback permission_callback =
base::BindOnce( base::BindOnce(
&permissions::GeolocationPermissionContext::NotifyPermissionSet, &permissions::GeolocationPermissionContext::NotifyPermissionSet,
......
...@@ -63,21 +63,6 @@ void InstalledWebappBridge::SetProviderInstance( ...@@ -63,21 +63,6 @@ void InstalledWebappBridge::SetProviderInstance(
base::android::AttachCurrentThread(), (jlong) provider); base::android::AttachCurrentThread(), (jlong) provider);
} }
bool InstalledWebappBridge::ShouldDelegateLocationPermission(
const GURL& origin_url) {
if (!base::FeatureList::IsEnabled(
chrome::android::kTrustedWebActivityLocationDelegation)) {
return false;
}
JNIEnv* env = base::android::AttachCurrentThread();
ScopedJavaLocalRef<jstring> j_origin =
base::android::ConvertUTF8ToJavaString(env, origin_url.spec());
jboolean result = Java_InstalledWebappBridge_shouldDelegateLocationPermission(
env, j_origin);
return result;
}
void InstalledWebappBridge::DecidePermission( void InstalledWebappBridge::DecidePermission(
const GURL& origin_url, const GURL& origin_url,
PermissionResponseCallback callback) { PermissionResponseCallback callback) {
......
...@@ -22,9 +22,6 @@ class InstalledWebappBridge { ...@@ -22,9 +22,6 @@ class InstalledWebappBridge {
static void SetProviderInstance(InstalledWebappProvider* provider); static void SetProviderInstance(InstalledWebappProvider* provider);
// Returns whether permission should be delegate to TWA.
static bool ShouldDelegateLocationPermission(const GURL& origin_url);
static void DecidePermission(const GURL& origin_url, static void DecidePermission(const GURL& origin_url,
PermissionResponseCallback callback); PermissionResponseCallback callback);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment