You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cordova.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2014/08/22 20:22:11 UTC
[jira] [Commented] (CB-7371) [Android] App crashes after phone
language change
[ https://issues.apache.org/jira/browse/CB-7371?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14107231#comment-14107231 ]
ASF GitHub Bot commented on CB-7371:
------------------------------------
GitHub user martincgg opened a pull request:
https://github.com/apache/cordova-android/pull/115
[CB-7371] Fixed: app crash after phone language change
The main reason of this behavior is the config.xml, origin="*" tag, specifies access to all kind of resources on the network and makes the whiteList object on the WhiteList class a null object, indicating that when origin="*", there's no whiteList, all is allowed.
When it tries to resume the application it checks:
if (url.startsWith("file://") || url.startsWith("javascript:") || whitelist.isUrlWhiteListed(url))
This condition passes and triggers the load for 'about:blank'
The condition passes because, whitelist.isUrlWhiteListed(url) statement returns true.
When the origin="*" is processed by the WhiteList class, it sets a null to the whiteList object, which it should contain the access to resources allowed, however when whitelist.isUrlWhiteListed(url) it returns a true if the whiteList object is null, therefore the condition passes and continues to the loadurl method on webClient, stopping the application, because of the 'about:blank' url.
Adding another condition along with that statement for when whiteList = null, but url= about:blank, in that way it won't be able to load the url.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/martincgg/cordova-android master
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/cordova-android/pull/115.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #115
----
commit f9c23ec8711719db86843e944e7749e758b2a3f4
Author: Martin Gonzalez <ma...@gmail.com>
Date: 2014-08-22T18:09:42Z
CB-7371 Fixed: app crash after phone language change
----
> [Android] App crashes after phone language change
> -------------------------------------------------
>
> Key: CB-7371
> URL: https://issues.apache.org/jira/browse/CB-7371
> Project: Apache Cordova
> Issue Type: Bug
> Components: Android
> Affects Versions: 3.5.0
> Environment: 4.2.2 (Jelly-Bean)
> 4.4.2 (KitKat)
> Reporter: Martin Gonzalez
> Assignee: Martin Gonzalez
> Labels: android, crash
> Fix For: 3.6.0
>
>
> After switching device language on android, the app will fails to reload scenario:
> 1. Create new app
> 2. open it and exit with the home button
> 3.Switch device language to or any other
> 4. Resume the app
> Expected result :
> the app should run
> Actual result:
> app crashes on first load
> Log:
> 07-28 16:24:10.018: D/CordovaActivity(25402): CordovaActivity.onDestroy()
> 07-28 16:24:10.028: D/CordovaWebView(25402): >>> loadUrlNow()
> 07-28 16:24:10.038: I/CordovaLog(25402): Changing log level to DEBUG(3)
> 07-28 16:24:10.038: I/CordovaLog(25402): Found start page location: cdvtests/index.html
> 07-28 16:24:10.038: D/CordovaActivity(25402): CordovaActivity.onCreate()
> 07-28 16:24:10.048: D/CordovaActivity(25402): CordovaActivity.init()
> 07-28 16:24:10.058: D/CordovaWebView(25402): >>> loadUrl(file:///android_asset/www/cdvtests/index.html)
> 07-28 16:24:10.068: D/CordovaWebView(25402): >>> loadUrlNow()
> 07-28 16:24:10.068: I/CordovaLog(25402): Found start page location: cdvtests/index.html
> 07-28 16:24:10.068: D/CordovaActivity(25402): Resuming the App
> 07-28 16:24:10.068: D/CordovaActivity(25402): CB-3064: The errorUrl is null
> 07-28 16:24:10.078: D/CordovaWebViewClient(25402): onPageStarted(about:blank)
> 07-28 16:24:10.078: D/CordovaActivity(25402): onMessage(onPageStarted,about:blank)
> 07-28 16:24:10.078: D/CordovaWebViewClient(25402): onPageFinished(about:blank)
> 07-28 16:24:10.078: D/CordovaActivity(25402): onMessage(onPageFinished,about:blank)
> 07-28 16:24:10.078: D/CordovaActivity(25402): onMessage(exit,null)
> 07-28 16:24:10.088: D/CordovaWebViewClient(25402): onPageStarted(file:///android_asset/www/cdvtests/index.html)
> 07-28 16:24:10.088: D/CordovaActivity(25402): onMessage(onPageStarted,file:///android_asset/www/cdvtests/index.html)
> 07-28 16:24:10.108: D/CordovaActivity(25402): Paused the application!
> 07-28 16:24:10.108: D/CordovaWebView(25402): Handle the pause
> 07-28 16:24:10.148: D/CordovaActivity(25402): CordovaActivity.onDestroy()
> 07-28 16:24:10.148: D/CordovaWebView(25402): >>> loadUrlNow()
> 07-28 16:24:10.158: D/CordovaWebViewClient(25402): onPageFinished(file:///android_asset/www/cdvtests/index.html)
> 07-28 16:24:10.158: D/CordovaActivity(25402): onMessage(onPageFinished,file:///android_asset/www/cdvtests/index.html)
> 07-28 16:24:10.168: D/CordovaWebViewClient(25402): onPageStarted(about:blank)
> 07-28 16:24:10.168: D/CordovaActivity(25402): onMessage(onPageStarted,about:blank)
> 07-28 16:24:10.188: D/CordovaWebViewClient(25402): onPageFinished(about:blank)
> 07-28 16:24:10.188: D/CordovaActivity(25402): onMessage(onPageFinished,about:blank)
> 07-28 16:24:10.188: D/CordovaActivity(25402): onMessage(exit,null)
> 07-28 16:24:12.168: D/CordovaActivity(25402): onMessage(spinner,stop)
> 07-28 16:24:12.188: D/CordovaActivity(25402): onMessage(spinner,stop)
--
This message was sent by Atlassian JIRA
(v6.2#6252)