pwnall / chromeview

Proof of concept Android WebView implementation based on Chromium code
1.69k stars 434 forks source link

NullPointerException in ChromeAwContentsClientProxy.onReceivedTitle #43

Open tuchida opened 10 years ago

tuchida commented 10 years ago

ChromwView throw NullPointerException on page load time.

12-10 09:59:00.691: W/System.err(2969): java.lang.NullPointerException
12-10 09:59:00.699: W/System.err(2969):     at us.costan.chrome.impl.ChromeAwContentsClientProxy.onReceivedTitle(ChromeAwContentsClientProxy.java:235)
12-10 09:59:00.699: W/System.err(2969):     at org.chromium.android_webview.AwContentsClient$AwContentViewClient.onUpdateTitle(AwContentsClient.java:111)
12-10 09:59:00.699: W/System.err(2969):     at org.chromium.content.browser.ContentViewCore.setTitle(ContentViewCore.java:2246)
12-10 09:59:00.699: W/System.err(2969):     at org.chromium.base.SystemMessageHandler.nativeDoRunLoopOnce(Native Method)
12-10 09:59:00.699: W/System.err(2969):     at org.chromium.base.SystemMessageHandler.handleMessage(SystemMessageHandler.java:46)
12-10 09:59:00.699: W/System.err(2969):     at android.os.Handler.dispatchMessage(Handler.java:99)
12-10 09:59:00.699: W/System.err(2969):     at android.os.Looper.loop(Looper.java:137)
12-10 09:59:00.699: W/System.err(2969):     at android.app.ActivityThread.main(ActivityThread.java:5041)
12-10 09:59:00.699: W/System.err(2969):     at java.lang.reflect.Method.invokeNative(Native Method)
12-10 09:59:00.706: W/System.err(2969):     at java.lang.reflect.Method.invoke(Method.java:511)
12-10 09:59:00.706: W/System.err(2969):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
12-10 09:59:00.706: W/System.err(2969):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
12-10 09:59:00.706: W/System.err(2969):     at dalvik.system.NativeStart.main(Native Method)

https://github.com/RapSolutions/chromeview/blob/master/src/us/costan/chrome/impl/ChromeAwContentsClientProxy.java#L232 I think it should check viewClient not webClient.

pre commented 10 years ago

You need to set both viewClient and webClient.

For example:

    mWebView.setChromeViewClient(new ChromeViewClient());
    mWebView.setChromeWebClient(new ChromeWebClient());
vitorprado commented 10 years ago

thanks @pre :+1: i think this issue could be closed.

tuchida commented 10 years ago

You need to set both viewClient and webClient.

I know. Then why the viewClient_ != null, not the webClient_ != null or viewClient_ != null && webClient_ != null.