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

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: Merged Created 6 years, 5 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..67a578aa933195388772f1ccd58de7594db41f49 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/DevToolsServer.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/DevToolsServer.java
@@ -4,6 +4,11 @@
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).
*/
@@ -11,10 +16,23 @@ public class DevToolsServer {
private long mNativeDevToolsServer = 0;
+ private static Context sContext = null;
+ private static String sPermission = null;
+
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 requirePeermission(
aandrey 2014/08/01 16:39:23 typo: Peermission -> Permission
byungchul 2014/08/01 16:45:16 Is it possible to make this non-static? Can't you
SeRya 2014/08/04 10:47:03 Done.
SeRya 2014/08/04 10:47:03 I guess making this method nonstatic only make sen
+ Context context, String androidPermission) {
byungchul 2014/08/01 16:45:16 It must fit in a line (100 chars).
SeRya 2014/08/04 10:47:03 Done.
+ sContext = context;
aandrey 2014/08/01 16:39:23 should it be guarded by a lock?
SeRya 2014/08/04 10:47:03 Instead of synchronizing I added an immutable clas
+ sPermission = androidPermission;
+ }
+
public void destroy() {
nativeDestroyRemoteDebugging(mNativeDevToolsServer);
mNativeDevToolsServer = 0;
@@ -32,4 +50,11 @@ 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 sContext != null
+ && sContext.checkPermission(sPermission, pid, uid)
byungchul 2014/08/01 16:45:16 wrong indetation, need 8 whitespaces.
SeRya 2014/08/04 10:47:03 Done.
+ == PackageManager.PERMISSION_GRANTED;
+ }
}
« 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