New issue
Advanced search Search tips

Issue 689787 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner: ----
Closed: Apr 2017
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 3
Type: Bug



Sign in to add a comment

Figure out why local build of WebApk cannot use ChildProcessServiceImpl via reflection

Project Member Reported by pkotw...@chromium.org, Feb 8 2017

Issue description

Figure out why local build of WebApk cannot use ChildProcessServiceImpl via reflection

I get this error when I start a locally built WebAPK. I assume that this is because the signature does not match. Figuring this out is important if we want to expose something similar to WebApkSandboxedProcessService to non Chrome browsers

V/cr_WebApkSandboxedProcessService( 9140): Unable to create a ChildProcessServiceImpl for the WebAPK.
V/cr_WebApkSandboxedProcessService( 9140): java.lang.NoSuchMethodException: create [class android.content.Context, class android.content.Context]
V/cr_WebApkSandboxedProcessService( 9140):      at java.lang.Class.getMethod(Class.java:664)
V/cr_WebApkSandboxedProcessService( 9140):      at java.lang.Class.getMethod(Class.java:643)
V/cr_WebApkSandboxedProcessService( 9140):      at org.chromium.webapk.shell_apk.WebApkSandboxedProcessService.onCreate(WebApkSandboxedProcessService.java:42)
V/cr_WebApkSandboxedProcessService( 9140):      at android.app.ActivityThread.handleCreateService(ActivityThread.java:2761)
V/cr_WebApkSandboxedProcessService( 9140):      at android.app.ActivityThread.access$1800(ActivityThread.java:151)
V/cr_WebApkSandboxedProcessService( 9140):      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1386)
V/cr_WebApkSandboxedProcessService( 9140):      at android.os.Handler.dispatchMessage(Handler.java:102)
V/cr_WebApkSandboxedProcessService( 9140):      at android.os.Looper.loop(Looper.java:135)
V/cr_WebApkSandboxedProcessService( 9140):      at android.app.ActivityThread.main(ActivityThread.java:5254)
V/cr_WebApkSandboxedProcessService( 9140):      at java.lang.reflect.Method.invoke(Native Method)
V/cr_WebApkSandboxedProcessService( 9140):      at java.lang.reflect.Method.invoke(Method.java:372)
V/cr_WebApkSandboxedProcessService( 9140):      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
V/cr_WebApkSandboxedProcessService( 9140):      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)

 
I don't think this has anything to do with signatures - they aren't validated or checked as part of classloading. Is it possible that you built chrome as release/with proguard which caused it to rename methods? The other option is that we didn't actually load the host browser's dex file

I get this failure with a debug build of Chrome too
Status: Fixed (was: Untriaged)
This was fixed a while back IIRC. Had to do with our reflection not supporting non-public classes

Sign in to add a comment