Return-Path: X-Original-To: apmail-cordova-issues-archive@minotaur.apache.org Delivered-To: apmail-cordova-issues-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 8035211368 for ; Thu, 18 Sep 2014 18:22:35 +0000 (UTC) Received: (qmail 12214 invoked by uid 500); 18 Sep 2014 18:22:35 -0000 Delivered-To: apmail-cordova-issues-archive@cordova.apache.org Received: (qmail 12193 invoked by uid 500); 18 Sep 2014 18:22:35 -0000 Mailing-List: contact issues-help@cordova.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cordova.apache.org Delivered-To: mailing list issues@cordova.apache.org Received: (qmail 12180 invoked by uid 99); 18 Sep 2014 18:22:35 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 18 Sep 2014 18:22:35 +0000 Date: Thu, 18 Sep 2014 18:22:35 +0000 (UTC) From: "Martin Gonzalez (JIRA)" To: issues@cordova.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (CB-6837) Hitting Back button while alert being rendered causes leaked window MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/CB-6837?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14139286#comment-14139286 ] Martin Gonzalez commented on CB-6837: ------------------------------------- 1.- I can, just use the CordovaView to call the destruction of the dialogs, at the chromeClient, without touch the activity, refactor all of it, and make a PR for 4.x too, addressing to its respective classes there. 2.- Do not touch ChromeClient at all, and somehow fix the issue just during handleDestroy() at CordovaWebView/AndroidWebView (refactor too). 3.- Can't accept any of this changes for any of the classes, don't spend more time with it. well Joe, could you please tell me, which path should I follow? > Hitting Back button while alert being rendered causes leaked window > ------------------------------------------------------------------- > > Key: CB-6837 > URL: https://issues.apache.org/jira/browse/CB-6837 > Project: Apache Cordova > Issue Type: Bug > Components: Android > Affects Versions: 3.5.0 > Reporter: Marcel Kinard > Assignee: Martin Gonzalez > Attachments: index.html > > > On master and using dialogs plugin. Using a trivial app that has a button to create an alert dialog after 500ms timeout. If the Back button is hit at approximately the same time as the timer expires and the alert is to be shown, the following exception appears in logcat: > D/CordovaWebView( 8178): The current URL is: file:///android_asset/www/index.html > D/CordovaWebView( 8178): The URL at item 0 is: file:///android_asset/www/index.html > D/dalvikvm( 513): GC_FOR_ALLOC freed 306K, 13% free 14164K/16240K, paused 54ms, total 55ms > D/CordovaActivity( 8178): Paused the application! > D/CordovaWebView( 8178): Handle the pause > W/IInputConnectionWrapper( 8178): showStatusIcon on inactive InputConnection > W/InputMethodManagerService( 513): Starting input on non-focused client com.android.internal.view.IInputMethodClient$Stub$Proxy@42396598 (uid=10050 pid=8178) > D/CordovaActivity( 8178): CordovaActivity.onDestroy() > D/CordovaWebView( 8178): >>> loadUrlNow() > E/WindowManager( 8178): > E/WindowManager( 8178): android.view.WindowLeaked: Activity com.example.Example has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{41f0d8b8 V.E..... R.....I. 0,0-465,256} that was originally added here > E/WindowManager( 8178): at android.view.ViewRootImpl.(ViewRootImpl.java:348) > E/WindowManager( 8178): at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:248) > E/WindowManager( 8178): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69) > E/WindowManager( 8178): at android.app.Dialog.show(Dialog.java:286) > E/WindowManager( 8178): at android.app.AlertDialog$Builder.show(AlertDialog.java:951) > E/WindowManager( 8178): at org.apache.cordova.CordovaChromeClient.onJsAlert(CordovaChromeClient.java:143) > E/WindowManager( 8178): at com.android.webview.chromium.WebViewContentsClientAdapter.handleJsAlert(WebViewContentsClientAdapter.java:606) > E/WindowManager( 8178): at com.android.org.chromium.android_webview.AwContentsClientBridge.handleJsAlert(AwContentsClientBridge.java:73) > E/WindowManager( 8178): at com.android.org.chromium.base.SystemMessageHandler.nativeDoRunLoopOnce(Native Method) > E/WindowManager( 8178): at com.android.org.chromium.base.SystemMessageHandler.handleMessage(SystemMessageHandler.java:27) > E/WindowManager( 8178): at android.os.Handler.dispatchMessage(Handler.java:102) > E/WindowManager( 8178): at android.os.Looper.loop(Looper.java:136) > E/WindowManager( 8178): at android.app.ActivityThread.main(ActivityThread.java:5017) > E/WindowManager( 8178): at java.lang.reflect.Method.invokeNative(Native Method) > E/WindowManager( 8178): at java.lang.reflect.Method.invoke(Method.java:515) > E/WindowManager( 8178): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) > E/WindowManager( 8178): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) > E/WindowManager( 8178): at dalvik.system.NativeStart.main(Native Method) > D/CordovaWebViewClient( 8178): onPageFinished(about:blank) > D/CordovaActivity( 8178): onMessage(onPageFinished,about:blank) > D/CordovaActivity( 8178): onMessage(exit,null) > It looks like there is an attempt to show the alert dialog after the activity's onDestroy() method has been called. > When resuming the app by clicking on it's icon in the home screen or using the Multitask button, the webview doesn't render completely, I see only a black screen with the usual status bar. The app must be killed, and then it works fine after a restart. It appears that there is a pretty small time window during the timeout in which this can be reproduced, something on the order of 200ms. -- This message was sent by Atlassian JIRA (v6.3.4#6332)