[
https://issues.apache.org/jira/browse/CB-5427?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13874064#comment-13874064
]
Marcel Kinard commented on CB-5427:
-----------------------------------
While I was looking at some other IAB stuff and had mobilespec loaded, I tried
to reproduce this. I can't reproduce it on 2.3, 2.6, or 3.1, but I can
reproduce it on master. Here is the simplest recreate I've found: In the manual
InAppBrowser tests, scroll down to the Whitelist tests, click the button to
test "target=_blank", then close that with either the IAB Done button or the
Android Back button, then click the button to test "target=Default". Boom. It
seems that an IAB must have been running and then closed for the CordovaWebView
to mangle the load* events.
If you let it sit on the alert "browser closed without a loadstop or loaderror"
for 30 seconds, then another alert pops up saying "The connection to the server
was unsuccessful". Dismiss that second alert then the app disappears (log
indicates the activity gets paused) and you see the Apps screen. Click on the
app again to "restart" it and all I get is a blank screen. Status bar on top
and nav bars on bottom, but the webview is empty. So it's not really a crash,
just an unexpected suspend with a mangled resume?
This is on a Nexus 5 running 4.4.2.
> InAppBrowser crashes without loadstop or loaderror on Android 4.4
> -----------------------------------------------------------------
>
> Key: CB-5427
> URL: https://issues.apache.org/jira/browse/CB-5427
> Project: Apache Cordova
> Issue Type: Bug
> Components: Android, Plugin InAppBrowser
> Affects Versions: 3.2.0
> Environment: Windows 7
> Android 4.x
> Reporter: Mike Billau
> Assignee: Joe Bowser
> Priority: Minor
>
> InAppBrowser on Android 4.4 sometimes fails when you click to open any page
> on the CordovaWebView. An alert will pop up saying "Unexpected: Browser
> closed without a loadstop or loaderror." Closing the dialog will force quit
> the application. I can't detect a pattern to reproduce the issue; what I do
> is just keep running through the first few buttons under Local URL and White
> Listed URL headings on the mobile spec page. Other people seem to be having
> this issue too: https://groups.google.com/forum/#!topic/phonegap/e5_5unC2fYs
> In logcat I'm seeing:
> {noformat}
> 11-18 11:50:07.648: D/CordovaLog(6369):
> file:///android_asset/www/inappbrowser/index.html: Line 79 : IAB
> event={"type":"loadstop","url":"http://www.google.com/"}
> 11-18 11:50:07.648: I/chromium(6369): [INFO:CONSOLE(79)] "IAB
> event={"type":"loadstop","url":"http://www.google.com/"}", source:
> file:///android_asset/www/inappbrowser/index.html (79)
> 11-18 11:50:07.928: W/UnimplementedWebViewApi(6369): Unimplemented WebView
> method onKeyDown called from:
> android.webkit.WebView.onKeyDown(WebView.java:2169)
> 11-18 11:50:07.968: W/InputEventReceiver(6369): Attempted to finish an input
> event but the input event receiver has already been disposed.
> 11-18 11:50:07.998: D/CordovaLog(6369):
> file:///android_asset/www/inappbrowser/index.html: Line 79 : IAB
> event={"type":"exit"}
> 11-18 11:50:07.998: I/chromium(6369): [INFO:CONSOLE(79)] "IAB
> event={"type":"exit"}", source:
> file:///android_asset/www/inappbrowser/index.html (79)
> 11-18 11:50:09.408: D/InAppBrowser(6369): target = _self
> 11-18 11:50:09.418: D/InAppBrowser(6369): in self
> 11-18 11:50:09.418: D/CordovaWebView(6369): >>> loadUrl(http://www.apple.com/)
> 11-18 11:50:09.418: D/PluginManager(6369): init()
> 11-18 11:50:09.428: D/CordovaWebView(6369): >>> loadUrlNow()
> 11-18 11:50:09.428: W/CordovaPlugin(6369): Attempted to send a second
> callback for ID: InAppBrowser921848427
> 11-18 11:50:09.428: W/CordovaPlugin(6369): Result was: ""
> 11-18 11:50:09.488: D/CordovaLog(6369):
> file:///android_asset/www/inappbrowser/index.html: Line 79 : IAB
> event={"type":"exit"}
> 11-18 11:50:09.488: I/chromium(6369): [INFO:CONSOLE(79)] "IAB
> event={"type":"exit"}", source:
> file:///android_asset/www/inappbrowser/index.html (79)
> 11-18 11:50:09.508: D/dalvikvm(6369): GC_FOR_ALLOC freed 50K, 3% free
> 18380K/18836K, paused 8ms, total 8ms
> 11-18 11:50:09.508: I/dalvikvm-heap(6369): Grow heap (frag case) to 18.584MB
> for 629776-byte allocation
> 11-18 11:50:09.528: D/dalvikvm(6369): GC_FOR_ALLOC freed 7K, 3% free
> 18988K/19452K, paused 12ms, total 12ms
> 11-18 11:50:09.578: D/dalvikvm(1108): GC_CONCURRENT freed 448K, 9% free
> 17309K/18816K, paused 2ms+1ms, total 23ms
> 11-18 11:50:09.638: D/dalvikvm(744): GC_CONCURRENT freed 2582K, 29% free
> 27397K/38100K, paused 3ms+4ms, total 76ms
> 11-18 11:50:29.428: E/CordovaWebView(6369): CordovaWebView: TIMEOUT ERROR!
> 11-18 11:50:29.428: D/CordovaWebViewClient(6369):
> CordovaWebViewClient.onReceivedError: Error code=-6 Description=The
> connection to the server was unsuccessful. URL=http://www.apple.com/
> 11-18 11:50:29.428: D/CordovaActivity(6369):
> onMessage(onReceivedError,{"errorCode":-6,"url":"http:\/\/www.apple.com\/","description":"The
> connection to the server was unsuccessful."})
> 11-18 11:50:29.458: D/SoftKeyboardDetect(6369): Ignore this event
> 11-18 11:50:29.558: D/CordovaWebViewClient(6369):
> onPageFinished(http://www.apple.com/)
> 11-18 11:50:29.558: D/CordovaActivity(6369):
> onMessage(onPageFinished,http://www.apple.com/)
> 11-18 11:50:56.078: D/audio_hw_primary(184): select_devices:
> out_snd_device(2: speaker) in_snd_device(0: )
> 11-18 11:50:56.098: D/CordovaActivity(6369): Paused the application!
> 11-18 11:50:56.128: W/IInputConnectionWrapper(6369): showStatusIcon on
> inactive InputConnection
> 11-18 11:50:56.598: D/CordovaActivity(6369): CordovaActivity.onDestroy()
> 11-18 11:50:56.598: D/CordovaWebView(6369): >>> loadUrlNow()
> 11-18 11:50:56.678: E/WindowManager(6369): android.view.WindowLeaked:
> Activity org.apache.mobilespec.mobilespec has leaked window
> com.android.internal.policy.impl.PhoneWindow$DecorView{42686118 V.E.....
> R....... 0,0-1080,638} that was originally added here
> 11-18 11:50:56.678: E/WindowManager(6369): at
> android.view.ViewRootImpl.<init>(ViewRootImpl.java:346)
> 11-18 11:50:56.678: E/WindowManager(6369): at
> android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:248)
> 11-18 11:50:56.678: E/WindowManager(6369): at
> android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69)
> 11-18 11:50:56.678: E/WindowManager(6369): at
> android.app.Dialog.show(Dialog.java:286)
> 11-18 11:50:56.678: E/WindowManager(6369): at
> android.app.AlertDialog$Builder.show(AlertDialog.java:951)
> 11-18 11:50:56.678: E/WindowManager(6369): at
> org.apache.cordova.CordovaChromeClient.onJsAlert(CordovaChromeClient.java:135)
> 11-18 11:50:56.678: E/WindowManager(6369): at
> com.android.webview.chromium.WebViewContentsClientAdapter.handleJsAlert(WebViewContentsClientAdapter.java:606)
> 11-18 11:50:56.678: E/WindowManager(6369): at
> com.android.org.chromium.android_webview.AwContentsClientBridge.handleJsAlert(AwContentsClientBridge.java:73)
> 11-18 11:50:56.678: E/WindowManager(6369): at
> com.android.org.chromium.base.SystemMessageHandler.nativeDoRunLoopOnce(Native
> Method)
> 11-18 11:50:56.678: E/WindowManager(6369): at
> com.android.org.chromium.base.SystemMessageHandler.handleMessage(SystemMessageHandler.java:27)
> 11-18 11:50:56.678: E/WindowManager(6369): at
> android.os.Handler.dispatchMessage(Handler.java:102)
> 11-18 11:50:56.678: E/WindowManager(6369): at
> android.os.Looper.loop(Looper.java:137)
> 11-18 11:50:56.678: E/WindowManager(6369): at
> android.app.ActivityThread.main(ActivityThread.java:4998)
> 11-18 11:50:56.678: E/WindowManager(6369): at
> java.lang.reflect.Method.invokeNative(Native Method)
> 11-18 11:50:56.678: E/WindowManager(6369): at
> java.lang.reflect.Method.invoke(Method.java:515)
> 11-18 11:50:56.678: E/WindowManager(6369): at
> com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)
> 11-18 11:50:56.678: E/WindowManager(6369): at
> com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593)
> 11-18 11:50:56.678: E/WindowManager(6369): at
> dalvik.system.NativeStart.main(Native Method)
> {noformat}
> After the app force closes, sometimes when I try to open Mobile Spec again,
> it's just a solid black screen. Logcat says Cordova is there but nothing gets
> displayed on the webview. I'm not sure if this is related or not.
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)