Chromium For Android addPossiblyUnsafeInterface Not working

116 views
Skip to first unread message

TS

unread,
Mar 15, 2021, 6:46:07 PM3/15/21
to Chromium-dev
Hey im building Chromium for Android, and I'm trying to figure out why Javascript Interface isnt allowing me to inject javascript within a webpage within Chrome Activity Class.. Even when I call tab.getWebContents().evaluateJavaScript() seperately, the browser freezes. Is there any way to achieve this successfully? Below is a snippet of my code


               // Chrome Activity 
               public abstract class ChromeActivity<C extends ChromeActivityComponent>
                ....

                Override public void onDidFinishNavigation(Tab tab, String url, boolean                   isInMainFrame, boolean isErrorPage, boolean hasCommitted, boolean isSameDocument, boolean isFragmentNavigation, @Nullable Integer pageTransition, int errorCode, int httpStatusCode)
                 {
                      JavascriptInjector ji =              JavascriptInjector.fromWebContents(tab.getWebContents());                   tab.getWebContents().evaluateJavaScript("alert("Hello World");",null); ji.setAllowInspection(true); ji.addPossiblyUnsafeInterface(new MyJavaScriptInterface(ChromeActivity.this), "JS", JavascriptInterface.class);
                 
                  }

Satish Nada

unread,
Apr 11, 2021, 1:13:13 PM4/11/21
to Chromium-dev, TS
We created Android project and setup all resources with some sub module from chromium spitted build and get .SO files from that and added on libs folder buts we are getting some error when app is launch and then its crash app due to some error related to JNI methods not execute. 
Here is error logs and attached gradle file of Android studio for reference.


 org.chromium.content.browser.BrowserStartupControllerImpl.contentMainStart(BrowserStartupControllerImpl.java:296)
        at org.chromium.content.browser.BrowserStartupControllerImpl.contentStart(BrowserStartupControllerImpl.java:272)
        at org.chromium.content.browser.BrowserStartupControllerImpl.startBrowserProcessesAsync(BrowserStartupControllerImpl.java:212)
        at org.chromium.chrome.browser.init.ChromeBrowserInitializer.startChromeBrowserProcessesAsync(ChromeBrowserInitializer.java:322)
        at org.chromium.chrome.browser.init.ChromeBrowserInitializer.handlePostNativeStartup(ChromeBrowserInitializer.java:300)
        at org.chromium.chrome.browser.init.AsyncInitializationActivity.onCreateWithNative(AsyncInitializationActivity.java:528)
        at org.chromium.chrome.browser.init.NativeInitializationController.signalNativeLibraryLoadedIfReady(NativeInitializationController.java:117)
        at org.chromium.chrome.browser.init.NativeInitializationController.access$100(NativeInitializationController.java:25)
        at org.chromium.chrome.browser.init.NativeInitializationController$1.onSuccess(NativeInitializationController.java:93)
        at org.chromium.chrome.browser.init.AsyncInitTaskRunner.tasksPossiblyComplete(AsyncInitTaskRunner.java:176)
        at org.chromium.chrome.browser.init.AsyncInitTaskRunner.lambda$null$0$AsyncInitTaskRunner(AsyncInitTaskRunner.java:127)
        at org.chromium.chrome.browser.init.-$$Lambda$AsyncInitTaskRunner$cJc0Kjib2rp_haGN4uefBvQ1s58.run(Unknown Source:4)
        at android.os.Handler.handleCallback(Handler.java:938)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:223)
        at android.app.ActivityThread.main(ActivityThread.java:7656)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
2021-04-11 22:27:20.1


Help is really appreciated 
Thank you.
build.gradle
Reply all
Reply to author
Forward
0 new messages