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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/DevToolsServer.java

Issue 382143005: Supports DevTools socket access authentication based on Android permissions. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Packing parameters to a stucture Created 6 years, 4 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: chrome/android/java/src/org/chromium/chrome/browser/DevToolsServer.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/DevToolsServer.java b/chrome/android/java/src/org/chromium/chrome/browser/DevToolsServer.java
index 7ed33f90b78d0264c2bb533af479ddd0eaccb4b2..dce188e3fdf7ada298bdea1da2848877e0f3bd8c 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/DevToolsServer.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/DevToolsServer.java
@@ -4,17 +4,43 @@
package org.chromium.chrome.browser;
+import android.content.Context;
+import android.content.pm.PackageManager;
+
+import org.chromium.base.CalledByNative;
+
/**
* Controller for Remote Web Debugging (Developer Tools).
*/
public class DevToolsServer {
private long mNativeDevToolsServer = 0;
+ private static volatile SocketAuthentication sAuthentication = new SocketAuthentication();
+
+ private static class SocketAuthentication {
+ public boolean checkPermission(int pid, int uid) {
+ return false;
+ }
+ }
public DevToolsServer(String socketNamePrefix) {
mNativeDevToolsServer = nativeInitRemoteDebugging(socketNamePrefix);
}
+ /*
+ * Makes DevTools socket accessible to a process with this permission
+ * granted (in addition to SHELL and ROOT users).
+ */
+ public static void requirePermission(final Context context, final String androidPermission) {
+ sAuthentication = new SocketAuthentication() {
+ @Override
+ public boolean checkPermission(int pid, int uid) {
+ return context.checkPermission(androidPermission, pid, uid)
+ == PackageManager.PERMISSION_GRANTED;
+ }
+ };
+ }
+
public void destroy() {
nativeDestroyRemoteDebugging(mNativeDevToolsServer);
mNativeDevToolsServer = 0;
@@ -32,4 +58,9 @@ public class DevToolsServer {
private native void nativeDestroyRemoteDebugging(long devToolsServer);
private native boolean nativeIsRemoteDebuggingEnabled(long devToolsServer);
private native void nativeSetRemoteDebuggingEnabled(long devToolsServer, boolean enabled);
+
+ @CalledByNative
+ private static boolean checkPermission(int pid, int uid) {
+ return sAuthentication.checkPermission(pid, uid);
+ }
}
« no previous file with comments | « no previous file | chrome/browser/android/dev_tools_server.cc » ('j') | chrome/browser/android/dev_tools_server.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698