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; |
+ } |
} |