[jira] [Commented] (CB-7694) Cordova crashes with UIPopoverPresentationController exception in web forms
[ https://issues.apache.org/jira/browse/CB-7694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14214513#comment-14214513 ] Al Ti commented on CB-7694: --- [~shazron] yes, I have the same problem in iOS 8.1 When i 'stress' (Rapidly opening and closing)select menu or datepicker (input type date) I have the same error Terminating app due to uncaught exception 'NSGenericException', reason: 'UIPopoverPresentationController (UIPopoverPresentationController: 0x16d93310) should have a non-nil sourceView or barButtonItem set before the presentation occurs.' I tried in Safari , there is no error Cordova crashes with UIPopoverPresentationController exception in web forms --- Key: CB-7694 URL: https://issues.apache.org/jira/browse/CB-7694 Project: Apache Cordova Issue Type: Bug Components: iOS Affects Versions: 3.5.0, 3.6.0 Environment: iOS 8.0.2, xCode 6.0.1 Reporter: Alex Ivaylov I have this issue on both Cordova 3.5 and 3.6. I have a web form that uses jQuery mobile. It is a mixture of text fields, selects and a date field (the www folder is attached below). The app randomly crashes when moving between the controls and I can not figure out how to replicate the bug. I just go around all the controls and in a random moment I get the exception shown below. 2014-10-02 11:25:34.619 testApp[4456:277182] *** Terminating app due to uncaught exception 'NSGenericException', reason: 'UIPopoverPresentationController (UIPopoverPresentationController: 0x7afe3170) should have a non-nil sourceView or barButtonItem set before the presentation occurs.' *** First throw call stack: ( 0 CoreFoundation 0x0030fdf6 __exceptionPreprocess + 182 1 libobjc.A.dylib 0x02449a97 objc_exception_throw + 44 2 UIKit 0x00eeaa37 -[UIPopoverPresentationController presentationTransitionWillBegin] + 3086 3 UIKit 0x007f1f75 __71-[UIPresentationController _initViewHierarchyForPresentationSuperview:]_block_invoke + 1666 4 UIKit 0x007f0554 __56-[UIPresentationController runTransitionForCurrentState]_block_invoke + 226 5 UIKit 0x0082421b __40+[UIViewController _scheduleTransition:]_block_invoke + 18 6 UIKit 0x006ea62e ___afterCACommitHandler_block_invoke + 15 7 UIKit 0x006ea5d9 _applyBlockToCFArrayCopiedToStack + 415 8 UIKit 0x006ea3ee _afterCACommitHandler + 545 9 CoreFoundation 0x00232fbe __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 30 10 CoreFoundation 0x00232f00 __CFRunLoopDoObservers + 400 11 CoreFoundation 0x0022893a __CFRunLoopRun + 1226 12 CoreFoundation 0x002281ab CFRunLoopRunSpecific + 443 13 CoreFoundation 0x00227fdb CFRunLoopRunInMode + 123 14 GraphicsServices0x03aca24f GSEventRunModal + 192 15 GraphicsServices0x03aca08c GSEventRun + 104 16 UIKit 0x006c0e16 UIApplicationMain + 1526 17 testApp 0x000ec7bc main + 92 18 libdyld.dylib 0x02b29ac9 start + 1 ) libc++abi.dylib: terminating with uncaught exception of type NSException (lldb) Here are the files: 1. A video showing the bug: http://alex.scot/cordova/cordova1.mov 2. Text file with the commands used to create the project and the exception: http://alex.scot/cordova/cordova1.txt 3. The www folder of the iOS platform in Cordova: http://alex.scot/cordova/www.zip thank you for looking into this, Alex -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org For additional commands, e-mail: issues-h...@cordova.apache.org
[jira] [Updated] (CB-8020) avoid error message in console for failed renaming of recording-file (if Media object was only used for playing)
[ https://issues.apache.org/jira/browse/CB-8020?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aaron Ruß updated CB-8020: -- Description: On Android, if a Media object is only used for playing a sound, i.e. not for recording, then, on releasing the media object, an error is logged to the LogCat console, complaining about a failed attempt to rename the temporary file (that is used for recording audio). {panel:title=Example LogCat output (after releasing the Media object):} 11-14 13:57:14.138: V/MediaPlayer(29175): destructor 11-14 13:57:14.138: V/MediaPlayer(29175): disconnect 11-14 13:57:14.138: D/AudioPlayer(29175): renaming /storage/emulated/0/tmprecording.3gp to /android_asset/www/audio/beep-notification.mp3 {color:red}11-14 13:57:14.138: E/AudioPlayer(29175): FAILED renaming /storage/emulated/0/tmprecording.3gp to /android_asset/www/audio/beep-notification.mp3{color} {panel} Solution: in the AudioPlayer class, do not create the MediaRecorder (for audio recording) on object creation (i.e. in the AudioPlayer's constructor), but instead create it lazily, only if/when the AudioPlayer is used for recording audio (i.e. in method {{startRecording(String)}}). Example solution see: https://github.com/mmig/cordova-plugin-media/commit/66ac88689cb092179cdc3eda3bd64b1d8616077e NOTE: In addition to manually testing, that the proposed changes (see GitHub link above) did not brake recording, I also did run the unit tests from plugin {{org.apache.cordova.media.tests}} successfully (on a Samsung Note 10 device with Android 4.4.2) NOTE 2: this is the same issue as described in [CB-3800|https://issues.apache.org/jira/browse/CB-3800] and [CB-3835|https://issues.apache.org/jira/browse/CB-3835] ...in CB-3835 David Mihalcik already provided the solution ... but it was not accepted ... yet (??) NOTE 3: the code in AudioPlayer suggests, that lazy-loading of the recorder was planned or had been implemented at some point and then was changed (for whatever reason). See for example methods `destroy()`, `stopRecording`, and `getDuration()`: in these methods it is assumed, that the `recorder` field is `null`, if the AudioPlayer objec _is not_ used for recording (and is not `null` if it _is_ used for recording). was: On Android, if a Media object is only used for playing a sound, i.e. not for recording, then, on releasing the media object, an error is logged to the LogCat console, complaining about a failed attempt to rename the temporary file (that is used for recording audio). {panel:title=Example LogCat output (after releasing the Media object):} 11-14 13:57:14.138: V/MediaPlayer(29175): destructor 11-14 13:57:14.138: V/MediaPlayer(29175): disconnect 11-14 13:57:14.138: D/AudioPlayer(29175): renaming /storage/emulated/0/tmprecording.3gp to /android_asset/www/audio/beep-notification.mp3 {color:red}11-14 13:57:14.138: E/AudioPlayer(29175): FAILED renaming /storage/emulated/0/tmprecording.3gp to /android_asset/www/audio/beep-notification.mp3{color} {panel} Solution: in the AudioPlayer class, do not create the MediaRecorder (for audio recording) on object creation (i.e. in the AudioPlayer's constructor), but instead create it lazily, only if/when the AudioPlayer is used for recording audio (i.e. in method {{startRecording(String)}}). Example solution see: https://github.com/mmig/cordova-plugin-media/commit/66ac88689cb092179cdc3eda3bd64b1d8616077e NOTE: In addition to manually testing, that that the proposed changes (see GitHub link above) did not brake recording, I also did run the unit tests from plugin {{org.apache.cordova.media.tests}} successfully (on a Samsung Note 10 device with Android 4.4.2) NOTE 2: this is the same issue as described in [CB-3800|https://issues.apache.org/jira/browse/CB-3800] and [CB-3835|https://issues.apache.org/jira/browse/CB-3835] ...in CB-3835 David Mihalcik already provided the solution ... but it was not accepted ... yet (??) avoid error message in console for failed renaming of recording-file (if Media object was only used for playing) Key: CB-8020 URL: https://issues.apache.org/jira/browse/CB-8020 Project: Apache Cordova Issue Type: Bug Components: Android, Plugin Media Reporter: Aaron Ruß Priority: Minor Original Estimate: 10m Remaining Estimate: 10m On Android, if a Media object is only used for playing a sound, i.e. not for recording, then, on releasing the media object, an error is logged to the LogCat console, complaining about a failed attempt to rename the temporary file (that is used for recording audio). {panel:title=Example LogCat output (after releasing the Media object):} 11-14 13:57:14.138: V/MediaPlayer(29175): destructor 11-14 13:57:14.138:
[jira] [Updated] (CB-8020) avoid error message in console for failed renaming of recording-file (if Media object was only used for playing)
[ https://issues.apache.org/jira/browse/CB-8020?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aaron Ruß updated CB-8020: -- Description: On Android, if a Media object is only used for playing a sound, i.e. not for recording, then, on releasing the media object, an error is logged to the LogCat console, complaining about a failed attempt to rename the temporary file (that is used for recording audio). {panel:title=Example LogCat output (after releasing the Media object):} 11-14 13:57:14.138: V/MediaPlayer(29175): destructor 11-14 13:57:14.138: V/MediaPlayer(29175): disconnect 11-14 13:57:14.138: D/AudioPlayer(29175): renaming /storage/emulated/0/tmprecording.3gp to /android_asset/www/audio/beep-notification.mp3 {color:red}11-14 13:57:14.138: E/AudioPlayer(29175): FAILED renaming /storage/emulated/0/tmprecording.3gp to /android_asset/www/audio/beep-notification.mp3{color} {panel} Solution: in the AudioPlayer class, do not create the MediaRecorder (for audio recording) on object creation (i.e. in the AudioPlayer's constructor), but instead create it lazily, only if/when the AudioPlayer is used for recording audio (i.e. in method {{startRecording(String)}}). Example solution see: https://github.com/mmig/cordova-plugin-media/commit/66ac88689cb092179cdc3eda3bd64b1d8616077e NOTE: In addition to manually testing, that the proposed changes (see GitHub link above) did not brake recording, I also did run the unit tests from plugin {{org.apache.cordova.media.tests}} successfully (on a Samsung Note 10 device with Android 4.4.2) NOTE 2: this is the same issue as described in [CB-3800|https://issues.apache.org/jira/browse/CB-3800] and [CB-3835|https://issues.apache.org/jira/browse/CB-3835] ...in CB-3835 David Mihalcik already provided the solution ... but it was not accepted ... yet (??) NOTE 3: the code in AudioPlayer suggests, that lazy-loading of the recorder was planned or had been implemented at some point and then was changed (for whatever reason). See for example methods {{destroy()}}, {{stopRecording}}, and {{getDuration()}}: in these methods it is assumed, that the {{recorder}} field is {{null}}, if the AudioPlayer objec _is not_ used for recording (and is not {{null}} if it _is_ used for recording). was: On Android, if a Media object is only used for playing a sound, i.e. not for recording, then, on releasing the media object, an error is logged to the LogCat console, complaining about a failed attempt to rename the temporary file (that is used for recording audio). {panel:title=Example LogCat output (after releasing the Media object):} 11-14 13:57:14.138: V/MediaPlayer(29175): destructor 11-14 13:57:14.138: V/MediaPlayer(29175): disconnect 11-14 13:57:14.138: D/AudioPlayer(29175): renaming /storage/emulated/0/tmprecording.3gp to /android_asset/www/audio/beep-notification.mp3 {color:red}11-14 13:57:14.138: E/AudioPlayer(29175): FAILED renaming /storage/emulated/0/tmprecording.3gp to /android_asset/www/audio/beep-notification.mp3{color} {panel} Solution: in the AudioPlayer class, do not create the MediaRecorder (for audio recording) on object creation (i.e. in the AudioPlayer's constructor), but instead create it lazily, only if/when the AudioPlayer is used for recording audio (i.e. in method {{startRecording(String)}}). Example solution see: https://github.com/mmig/cordova-plugin-media/commit/66ac88689cb092179cdc3eda3bd64b1d8616077e NOTE: In addition to manually testing, that the proposed changes (see GitHub link above) did not brake recording, I also did run the unit tests from plugin {{org.apache.cordova.media.tests}} successfully (on a Samsung Note 10 device with Android 4.4.2) NOTE 2: this is the same issue as described in [CB-3800|https://issues.apache.org/jira/browse/CB-3800] and [CB-3835|https://issues.apache.org/jira/browse/CB-3835] ...in CB-3835 David Mihalcik already provided the solution ... but it was not accepted ... yet (??) NOTE 3: the code in AudioPlayer suggests, that lazy-loading of the recorder was planned or had been implemented at some point and then was changed (for whatever reason). See for example methods `destroy()`, `stopRecording`, and `getDuration()`: in these methods it is assumed, that the `recorder` field is `null`, if the AudioPlayer objec _is not_ used for recording (and is not `null` if it _is_ used for recording). avoid error message in console for failed renaming of recording-file (if Media object was only used for playing) Key: CB-8020 URL: https://issues.apache.org/jira/browse/CB-8020 Project: Apache Cordova Issue Type: Bug Components: Android, Plugin Media Reporter: Aaron Ruß Priority: Minor Original Estimate: 10m Remaining Estimate:
[jira] [Updated] (CB-8020) avoid error message in console for failed renaming of recording-file (if Media object was only used for playing)
[ https://issues.apache.org/jira/browse/CB-8020?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aaron Ruß updated CB-8020: -- Description: On Android, if a Media object is only used for playing a sound, i.e. not for recording, then, on releasing the media object, an error is logged to the LogCat console, complaining about a failed attempt to rename the temporary file (that is used for recording audio). {panel:title=Example LogCat output (after releasing the Media object):} 11-14 13:57:14.138: V/MediaPlayer(29175): destructor 11-14 13:57:14.138: V/MediaPlayer(29175): disconnect 11-14 13:57:14.138: D/AudioPlayer(29175): renaming /storage/emulated/0/tmprecording.3gp to /android_asset/www/audio/beep-notification.mp3 {color:red}11-14 13:57:14.138: E/AudioPlayer(29175): FAILED renaming /storage/emulated/0/tmprecording.3gp to /android_asset/www/audio/beep-notification.mp3{color} {panel} Solution: in the AudioPlayer class, do not create the MediaRecorder (for audio recording) on object creation (i.e. in the AudioPlayer's constructor), but instead create it lazily, only if/when the AudioPlayer is used for recording audio (i.e. in method {{startRecording(String)}}). Example solution see: https://github.com/mmig/cordova-plugin-media/commit/66ac88689cb092179cdc3eda3bd64b1d8616077e NOTE: In addition to manually testing, that the proposed changes (see GitHub link above) did not brake recording, I also did run the unit tests from plugin {{org.apache.cordova.media.tests}} successfully (on a Samsung Note 10 device with Android 4.4.2) NOTE 2: this is the same issue as described in [CB-3800|https://issues.apache.org/jira/browse/CB-3800] and [CB-3835|https://issues.apache.org/jira/browse/CB-3835] ...in CB-3835 David Mihalcik already provided the solution ... but it was not accepted ... yet (??) NOTE 3: the code in AudioPlayer suggests, that lazy-loading of the recorder was planned or had been implemented at some point and then was changed (for whatever reason). See for example methods {{destroy()}}, {{stopRecording()}}, and {{getDuration()}}: in these methods it is assumed, that the {{recorder}} field is null, if the AudioPlayer objec _is not_ used for recording (and is not null if it _is_ used for recording). was: On Android, if a Media object is only used for playing a sound, i.e. not for recording, then, on releasing the media object, an error is logged to the LogCat console, complaining about a failed attempt to rename the temporary file (that is used for recording audio). {panel:title=Example LogCat output (after releasing the Media object):} 11-14 13:57:14.138: V/MediaPlayer(29175): destructor 11-14 13:57:14.138: V/MediaPlayer(29175): disconnect 11-14 13:57:14.138: D/AudioPlayer(29175): renaming /storage/emulated/0/tmprecording.3gp to /android_asset/www/audio/beep-notification.mp3 {color:red}11-14 13:57:14.138: E/AudioPlayer(29175): FAILED renaming /storage/emulated/0/tmprecording.3gp to /android_asset/www/audio/beep-notification.mp3{color} {panel} Solution: in the AudioPlayer class, do not create the MediaRecorder (for audio recording) on object creation (i.e. in the AudioPlayer's constructor), but instead create it lazily, only if/when the AudioPlayer is used for recording audio (i.e. in method {{startRecording(String)}}). Example solution see: https://github.com/mmig/cordova-plugin-media/commit/66ac88689cb092179cdc3eda3bd64b1d8616077e NOTE: In addition to manually testing, that the proposed changes (see GitHub link above) did not brake recording, I also did run the unit tests from plugin {{org.apache.cordova.media.tests}} successfully (on a Samsung Note 10 device with Android 4.4.2) NOTE 2: this is the same issue as described in [CB-3800|https://issues.apache.org/jira/browse/CB-3800] and [CB-3835|https://issues.apache.org/jira/browse/CB-3835] ...in CB-3835 David Mihalcik already provided the solution ... but it was not accepted ... yet (??) NOTE 3: the code in AudioPlayer suggests, that lazy-loading of the recorder was planned or had been implemented at some point and then was changed (for whatever reason). See for example methods {{destroy()}}, {{stopRecording}}, and {{getDuration()}}: in these methods it is assumed, that the {{recorder}} field is {{null}}, if the AudioPlayer objec _is not_ used for recording (and is not {{null}} if it _is_ used for recording). avoid error message in console for failed renaming of recording-file (if Media object was only used for playing) Key: CB-8020 URL: https://issues.apache.org/jira/browse/CB-8020 Project: Apache Cordova Issue Type: Bug Components: Android, Plugin Media Reporter: Aaron Ruß Priority: Minor Original Estimate: 10m Remaining
[jira] [Created] (CB-8025) App is crashed when taking photo using Camera plugin
Igor Yankovsky created CB-8025: -- Summary: App is crashed when taking photo using Camera plugin Key: CB-8025 URL: https://issues.apache.org/jira/browse/CB-8025 Project: Apache Cordova Issue Type: Bug Components: Android, Plugin Camera Affects Versions: 3.6.3 Environment: Samsung Galaxy Tab 3, Android 4.4.2 Reporter: Igor Yankovsky Priority: Critical Fix For: 3.6.3 The problem is reproduced using the following code: {code} camera.getPicture(onSuccess, onFail, { quality: 25, encodingType: Camera.EncodingType.JPEG, targetWidth: 768, targetHeight: 1024, destinationType: Camera.DestinationType.FILE_URI, sourceType: Camera.PictureSourceType.CAMERA, saveToPhotoAlbum: true }); {code} When user is trying to zoom-in then app is crashed. If reduce quality to 10, it is crashed when tapping on Take Photo button. Here is a snippet from error log: E/MrvlCameraEngine(15185): Error: Faild to allocate buffer[12582976] with error[-2] ( vendor/marvell/generic/cameraengine/samsung/src/cameraengine/ansi_c/general/cam_osal.c, CAM_MVMalloc, 386 ) E/MrvlCameraEngine(15185): Error: Faild to allocate buffer[12582976] with error[-22] ( vendor/marvell/generic/cameraengine/samsung/src/cameraengine/ansi_c/general/cam_osal.c, CAM_MVMalloc, 421 ) E/MrvlCameraEngine(15185): Error: no enough memory[12582976] afford image post processing( vendor/marvell/generic/cameraengine/samsung/src/cameraengine/ansi_c/ppu/cam_ppu_gcu.c, _gcu_yuv_rszrot_roi, 956 )! E/MrvlCameraEngine(15185): Error Code: CAM_ERROR_OUTOFMEMORY, vendor/marvell/generic/cameraengine/samsung/src/cameraengine/ansi_c/general/cam_ppu_wrapper.c - 928 The same code throws no errors on Asus Transformer Pad, Asus MemoPad HD 7 or any other devices available to me. -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org For additional commands, e-mail: issues-h...@cordova.apache.org
[jira] [Created] (CB-8026) Apps targeting LOLLIPOP or later default to disallowing third party cookies
jan created CB-8026: --- Summary: Apps targeting LOLLIPOP or later default to disallowing third party cookies Key: CB-8026 URL: https://issues.apache.org/jira/browse/CB-8026 Project: Apache Cordova Issue Type: Bug Affects Versions: 4.0.0 Reporter: jan Priority: Blocker Apps that target KITKAT or below default to allowing third party cookies. Apps targeting LOLLIPOP or later default to disallowing third party cookies. https://developer.android.com/reference/android/webkit/CookieManager.html Android 5.0 changes the default behavior for your app. If your app targets API level 21 or higher: The system blocks mixed content and third party cookies by default. To allow mixed content and third party cookies, use the setMixedContentMode() and setAcceptThirdPartyCookies() methods respectively. The system now intelligently chooses portions of the HTML document to draw. This new default behavior helps to reduce memory footprint and increase performance. If you want to render the whole document at once, disable this optimization by calling enableSlowWholeDocumentDraw(). If your app targets API levels lower than 21: The system allows mixed content and third party cookies, and always renders the whole document at once. https://developer.android.com/about/versions/android-5.0-changes.html#BehaviorWebView I tried to set acceptThirdPartyCookies, but without any success yet. If someone can post a quick workarround I would be very happy ;-) -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org For additional commands, e-mail: issues-h...@cordova.apache.org
[jira] [Created] (CB-8027) [iOS][CLI] some copied icons ignored when creating asset catalog
Eser Esen created CB-8027: - Summary: [iOS][CLI] some copied icons ignored when creating asset catalog Key: CB-8027 URL: https://issues.apache.org/jira/browse/CB-8027 Project: Apache Cordova Issue Type: Bug Components: CLI Affects Versions: 3.7.0 Reporter: Eser Esen Priority: Minor In 3.7.0 you fixed the CLI so it copies all the icons and launch images into the project, which works fine now. But since xCode6 there is a asset catalog we should use to manage the icons and images. Once clicked on it, it migrates the images into a new AppIcon and LaunchImages catalog. But looking at both, i see plenty of icons and launch images missing, even if they really exist within [appname]/Resources/{Icons,Splash} Only by dragging the icons from finder into the AppIcon catalog it adds the icons properly. I think the problem is the Contents.json file within the xcassets folder created by xCode6, it contains only few icons. I also tried adding the missing icons manually in that json file and voila, all the icons are showing up on the asset catalog. Don't know where xCode gets the info to put into Contents.json, but i guess its something you probably could fix on the CLI. For now, in order to NOT get rejected or get some validation fails on xCode i need to fix the icons and launch images on my own, to be sure all icons are really in the app and loaded. -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org For additional commands, e-mail: issues-h...@cordova.apache.org
[jira] [Updated] (CB-8026) Apps targeting LOLLIPOP or later default to disallowing third party cookies
[ https://issues.apache.org/jira/browse/CB-8026?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] jan updated CB-8026: Component/s: Android Apps targeting LOLLIPOP or later default to disallowing third party cookies --- Key: CB-8026 URL: https://issues.apache.org/jira/browse/CB-8026 Project: Apache Cordova Issue Type: Bug Components: Android Affects Versions: 4.0.0 Reporter: jan Priority: Blocker Apps that target KITKAT or below default to allowing third party cookies. Apps targeting LOLLIPOP or later default to disallowing third party cookies. https://developer.android.com/reference/android/webkit/CookieManager.html Android 5.0 changes the default behavior for your app. If your app targets API level 21 or higher: The system blocks mixed content and third party cookies by default. To allow mixed content and third party cookies, use the setMixedContentMode() and setAcceptThirdPartyCookies() methods respectively. The system now intelligently chooses portions of the HTML document to draw. This new default behavior helps to reduce memory footprint and increase performance. If you want to render the whole document at once, disable this optimization by calling enableSlowWholeDocumentDraw(). If your app targets API levels lower than 21: The system allows mixed content and third party cookies, and always renders the whole document at once. https://developer.android.com/about/versions/android-5.0-changes.html#BehaviorWebView I tried to set acceptThirdPartyCookies, but without any success yet. If someone can post a quick workarround I would be very happy ;-) -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org For additional commands, e-mail: issues-h...@cordova.apache.org
[jira] [Created] (CB-8028) handleOpenURL doesn't work properly when app is being launched for the first time
Antonio Laguna created CB-8028: -- Summary: handleOpenURL doesn't work properly when app is being launched for the first time Key: CB-8028 URL: https://issues.apache.org/jira/browse/CB-8028 Project: Apache Cordova Issue Type: Bug Components: iOS Affects Versions: 3.6.0 Reporter: Antonio Laguna Hi! Please bear in mind that this is my first issue being reported here but I thought it to be worth it. So, we've been developing a Cordova application lately and we decided to add a notification center plugin to be able to launch the application from it, taking advantage of the url-scheme on iOS. We discovered that it worked flawlessly when it was launched and the app was in background but it wasn't when the app was closed and tried to launch from there. So I dug deeper. Since this is an Ionic application, I thought the issue was due to Angular not being ready at the appropriate time or something like that so I just put something really low-level which didn't depend on any library: {code:javascript} window.foo = 'bar'; {code} And then checked with a timeout (after app was ready) to see if it was there. But it wasn't. So I dug deeper. So the issue seems to come on this function which is on the {code} - (void)processOpenUrl:(NSURL*)url pageLoaded:(BOOL)pageLoaded { if (!pageLoaded) { // query the webview for readystate NSString* readyState = [webView stringByEvaluatingJavaScriptFromString:@document.readyState]; pageLoaded = [readyState isEqualToString:@loaded] || [readyState isEqualToString:@complete]; } if (pageLoaded) { // calls into javascript global function 'handleOpenURL' NSString* jsString = [NSString stringWithFormat:@if (typeof handleOpenURL === 'function') { handleOpenURL(\%@\);}, url]; [self.webView stringByEvaluatingJavaScriptFromString:jsString]; } else { // save for when page has loaded self.openURL = url; } } {code} The thing is that the second check for {{pageLoaded}} is positive even though the page is clearly at a really early stage. The Splash is still being shown and the DOM although it may be ready-ish, it doesn't work properly (clearly). This is the flow: * It comes first by {{(void)processOpenUrl:(NSURL*)url}} - The {{handleOpenUrl}} function is then called cause even though {{NO}} is passed as a parameter, Cordova gets to think it's ready. * Then it comes to {{onPageDidLoad}} which would call {{(void)processOpenUrl:(NSURL*)url pageLoaded:(BOOL)pageLoaded}} too but since {{openURL}} hasn't been saved this time, it won't do anything Just to make sure of things, I tried to {{self.openURL = url;}} even if the page was loaded and that turned out to work. I don't understand the implications of this but IMHO, {{onPageDidLoad}} is a better point to understand wether the app is ready or not than querying the document like that cause the code doesn't seem to be there yet. Please note that I put my handler before anything else on the header to ensure it wasn't a racing issue. -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org For additional commands, e-mail: issues-h...@cordova.apache.org
[jira] [Updated] (CB-8028) handleOpenURL doesn't work properly when app is being launched for the first time
[ https://issues.apache.org/jira/browse/CB-8028?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Antonio Laguna updated CB-8028: --- Description: Hi! Please bear in mind that this is my first issue being reported here but I thought it to be worth it. So, we've been developing a Cordova application lately and we decided to add a notification center plugin to be able to launch the application from it, taking advantage of the url-scheme on iOS. We discovered that it worked flawlessly when it was launched and the app was in background but it wasn't when the app was closed and tried to launch from there. So I dug deeper. Since this is an Ionic application, I thought the issue was due to Angular not being ready at the appropriate time or something like that so I just put something really low-level which didn't depend on any library: {code:javascript} window.foo = 'bar'; {code} And then checked with a timeout (after app was ready) to see if it was there. But it wasn't. So I dug deeper. So the issue seems to come on this function which is on the {{CDDViewController}} class {code} - (void)processOpenUrl:(NSURL*)url pageLoaded:(BOOL)pageLoaded { if (!pageLoaded) { // query the webview for readystate NSString* readyState = [webView stringByEvaluatingJavaScriptFromString:@document.readyState]; pageLoaded = [readyState isEqualToString:@loaded] || [readyState isEqualToString:@complete]; } if (pageLoaded) { // calls into javascript global function 'handleOpenURL' NSString* jsString = [NSString stringWithFormat:@if (typeof handleOpenURL === 'function') { handleOpenURL(\%@\);}, url]; [self.webView stringByEvaluatingJavaScriptFromString:jsString]; } else { // save for when page has loaded self.openURL = url; } } {code} The thing is that the second check for {{pageLoaded}} is positive even though the page is clearly at a really early stage. The Splash is still being shown and the DOM although it may be ready-ish, it doesn't work properly (clearly). This is the flow: * It comes first by {{(void)processOpenUrl:(NSURL*)url}} - The {{handleOpenUrl}} function is then called cause even though {{NO}} is passed as a parameter, Cordova gets to think it's ready. * Then it comes to {{onPageDidLoad}} which would call {{(void)processOpenUrl:(NSURL*)url pageLoaded:(BOOL)pageLoaded}} too but since {{openURL}} hasn't been saved this time, it won't do anything Just to make sure of things, I tried to {{self.openURL = url;}} even if the page was loaded and that turned out to work. I don't understand the implications of this but IMHO, {{onPageDidLoad}} is a better point to understand wether the app is ready or not than querying the document like that cause the code doesn't seem to be there yet. Please note that I put my handler before anything else on the header to ensure it wasn't a racing issue. was: Hi! Please bear in mind that this is my first issue being reported here but I thought it to be worth it. So, we've been developing a Cordova application lately and we decided to add a notification center plugin to be able to launch the application from it, taking advantage of the url-scheme on iOS. We discovered that it worked flawlessly when it was launched and the app was in background but it wasn't when the app was closed and tried to launch from there. So I dug deeper. Since this is an Ionic application, I thought the issue was due to Angular not being ready at the appropriate time or something like that so I just put something really low-level which didn't depend on any library: {code:javascript} window.foo = 'bar'; {code} And then checked with a timeout (after app was ready) to see if it was there. But it wasn't. So I dug deeper. So the issue seems to come on this function which is on the {code} - (void)processOpenUrl:(NSURL*)url pageLoaded:(BOOL)pageLoaded { if (!pageLoaded) { // query the webview for readystate NSString* readyState = [webView stringByEvaluatingJavaScriptFromString:@document.readyState]; pageLoaded = [readyState isEqualToString:@loaded] || [readyState isEqualToString:@complete]; } if (pageLoaded) { // calls into javascript global function 'handleOpenURL' NSString* jsString = [NSString stringWithFormat:@if (typeof handleOpenURL === 'function') { handleOpenURL(\%@\);}, url]; [self.webView stringByEvaluatingJavaScriptFromString:jsString]; } else { // save for when page has loaded self.openURL = url; } } {code} The thing is that the second check for {{pageLoaded}} is positive even though the page is clearly at a really early stage. The Splash is still being shown and the DOM although it may be ready-ish, it doesn't work properly (clearly). This is the flow: * It comes first by {{(void)processOpenUrl:(NSURL*)url}} - The
[jira] [Commented] (CB-6484) navigator.camera.getPicture FILE_URI 20 second delay on second call
[ https://issues.apache.org/jira/browse/CB-6484?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14214750#comment-14214750 ] Nicolas Erlijman commented on CB-6484: -- Happens to me also in IOS 8.1. Is there any workarround ? this is very annoying. Almost unusable. +1 to get a fix. navigator.camera.getPicture FILE_URI 20 second delay on second call --- Key: CB-6484 URL: https://issues.apache.org/jira/browse/CB-6484 Project: Apache Cordova Issue Type: Bug Components: Plugin Camera Affects Versions: 3.4.0 Environment: iOS 7.1 (iPhone 5 and iPhone 5s) Reporter: Kent Spadzinski Fix For: 3.4.0 First time the camera is used it works fine. However, if the user cancels or tries to take another picture the camera screen is black. At this point it can take between 10-15 seconds before the camera preview appears and another picture can be taken. Have tried all version of the camera plugin starting at 0.2.5 (up to 0.2.9). Here is the code and device logs: Here is the function... there are no errors logged in console when called: {code} app.takePhoto = function() { navigator.camera.getPicture(app.capturePhoto, app.onFail, { quality : 20, destinationType : 1, sourceType : 1, encodingType: Camera.EncodingType.JPEG, targetWidth: 1024 }); } var retries = 0; app.capturePhoto = function(fileURI ) { var win = function (r) { app.clearCache(); retries = 0; $(#progressview).hide(); app.showAlert(Your photo was successfully uploaded, Photo Upload); var listview = $(#lsPhotos).data(kendoMobileListView); listview.setDataSource(app.photoDataSource); app.photoDataSource.read(); } var fail = function (error) { if (retries == 0) { retries ++ setTimeout(function() { app.capturePhoto(fileURI) }, 1000) } else { retries = 0; app.clearCache(); $(#progressview).hide(); app.showAlert(The photo could not be uploaded to the server. Please try again, Photo Upload); } } $(#progressview).show(); var fileUrl = ; var options = new FileUploadOptions(); var prev_perc; options.fileKey = file; options.fileName = mediaFiles[i].fullPath; // fileURI.substr(fileURI.lastIndexOf('/') + 1); options.mimeType = image/jpeg; options.params = {}; // if we need to send parameters to the server request var ft = new FileTransfer(); ft.onprogress = function(progressEvent) { if (progressEvent.lengthComputable) { var perc = Math.floor(progressEvent.loaded / progressEvent.total * 100); if(perc prev_perc){ $(#progressview).text(options.fileName + : + perc + % Uploaded); } prev_perc = perc; } else { $(#progressview).text(Uploading Photo); } }; ft.upload(fileURI, encodeURI(fileUrl), win, fail, options); } {code} Click Take Photo button: pr 15 11:14:13 Kentos-iPhone-5s kernel[0] Debug: AppleH6CamIn::setPowerStateGated: 1 Apr 15 11:14:13 Kentos-iPhone-5s kernel[0] Debug: AppleH6CamIn::power_on_hardware Apr 15 11:14:13 Kentos-iPhone-5s kernel[0] Debug: AppleH6CamIn::ISP_SelectBestMIPIFrequencyIndex_gated - channel: 0, index: 2 Click Cancel on the camera view: Apr 15 11:14:17 Kentos-iPhone-5s kernel[0] Debug: AppleH6CamIn::setPowerStateGated: 0 Apr 15 11:14:17 Kentos-iPhone-5s kernel[0] Debug: AppleH6CamIn::power_off_hardware Immediately Click Take Photo again and the camera view appears with black screen Camera now shows preview and can take a picture (20 seconds elapsed): Apr 15 11:14:37 Kentos-iPhone-5s kernel[0] Debug: AppleH6CamIn::setPowerStateGated: 1 Apr 15 11:14:37 Kentos-iPhone-5s kernel[0] Debug: AppleH6CamIn::power_on_hardware Apr 15 11:14:38 Kentos-iPhone-5s kernel[0] Debug: AppleH6CamIn::ISP_SelectBestMIPIFrequencyIndex_gated - channel: 0, index: 2 This happens in iOS 7.1 on both iPhone 5S and original iPhone 5 (enterprise user base). -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org For additional commands, e-mail: issues-h...@cordova.apache.org
[jira] [Commented] (CB-7694) Cordova crashes with UIPopoverPresentationController exception in web forms
[ https://issues.apache.org/jira/browse/CB-7694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14214925#comment-14214925 ] Shazron Abdullah commented on CB-7694: -- I don't know how I can emphasize enough that this is an Apple issue. Your test in Safari is not relevant, since that is using WKWebView while the component we are talking here is UIWebView. Cordova crashes with UIPopoverPresentationController exception in web forms --- Key: CB-7694 URL: https://issues.apache.org/jira/browse/CB-7694 Project: Apache Cordova Issue Type: Bug Components: iOS Affects Versions: 3.5.0, 3.6.0 Environment: iOS 8.0.2, xCode 6.0.1 Reporter: Alex Ivaylov I have this issue on both Cordova 3.5 and 3.6. I have a web form that uses jQuery mobile. It is a mixture of text fields, selects and a date field (the www folder is attached below). The app randomly crashes when moving between the controls and I can not figure out how to replicate the bug. I just go around all the controls and in a random moment I get the exception shown below. 2014-10-02 11:25:34.619 testApp[4456:277182] *** Terminating app due to uncaught exception 'NSGenericException', reason: 'UIPopoverPresentationController (UIPopoverPresentationController: 0x7afe3170) should have a non-nil sourceView or barButtonItem set before the presentation occurs.' *** First throw call stack: ( 0 CoreFoundation 0x0030fdf6 __exceptionPreprocess + 182 1 libobjc.A.dylib 0x02449a97 objc_exception_throw + 44 2 UIKit 0x00eeaa37 -[UIPopoverPresentationController presentationTransitionWillBegin] + 3086 3 UIKit 0x007f1f75 __71-[UIPresentationController _initViewHierarchyForPresentationSuperview:]_block_invoke + 1666 4 UIKit 0x007f0554 __56-[UIPresentationController runTransitionForCurrentState]_block_invoke + 226 5 UIKit 0x0082421b __40+[UIViewController _scheduleTransition:]_block_invoke + 18 6 UIKit 0x006ea62e ___afterCACommitHandler_block_invoke + 15 7 UIKit 0x006ea5d9 _applyBlockToCFArrayCopiedToStack + 415 8 UIKit 0x006ea3ee _afterCACommitHandler + 545 9 CoreFoundation 0x00232fbe __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 30 10 CoreFoundation 0x00232f00 __CFRunLoopDoObservers + 400 11 CoreFoundation 0x0022893a __CFRunLoopRun + 1226 12 CoreFoundation 0x002281ab CFRunLoopRunSpecific + 443 13 CoreFoundation 0x00227fdb CFRunLoopRunInMode + 123 14 GraphicsServices0x03aca24f GSEventRunModal + 192 15 GraphicsServices0x03aca08c GSEventRun + 104 16 UIKit 0x006c0e16 UIApplicationMain + 1526 17 testApp 0x000ec7bc main + 92 18 libdyld.dylib 0x02b29ac9 start + 1 ) libc++abi.dylib: terminating with uncaught exception of type NSException (lldb) Here are the files: 1. A video showing the bug: http://alex.scot/cordova/cordova1.mov 2. Text file with the commands used to create the project and the exception: http://alex.scot/cordova/cordova1.txt 3. The www folder of the iOS platform in Cordova: http://alex.scot/cordova/www.zip thank you for looking into this, Alex -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org For additional commands, e-mail: issues-h...@cordova.apache.org
[jira] [Commented] (CB-8002) Creating a new div for every Js - Native exec() call
[ https://issues.apache.org/jira/browse/CB-8002?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14214943#comment-14214943 ] Armen Badalyan commented on CB-8002: Happens to me as well. Created a new project with cordova cli, cordova version 4.1.1. Added console plugin. Each console.log call adds a new gap://ready iframe. Tested on iPad 3, iOS 7.1. Creating a new div for every Js - Native exec() call - Key: CB-8002 URL: https://issues.apache.org/jira/browse/CB-8002 Project: Apache Cordova Issue Type: Bug Components: iOS Affects Versions: 3.7.0 Environment: Tested on multiple iOS 8.1 devices, simulators Reporter: Serdar Onal Priority: Critical Since the 3.7.0 update, when cordova does a Js to Native call using exec(), somehow the underlying cordova.js is creating a gap://ready iframe on every call. This means that if you made 1000 native calls you'll have 1000 divs on the DOM. I believe this issue is of critical priority as it incurs a huge memory leak. Screenshot from safari inspector https://drive.google.com/file/d/0B94TXiq5ycp1anp6aGpTbjhPdG8/view?usp=sharing -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org For additional commands, e-mail: issues-h...@cordova.apache.org
[jira] [Commented] (CB-7694) Cordova crashes with UIPopoverPresentationController exception in web forms
[ https://issues.apache.org/jira/browse/CB-7694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14215015#comment-14215015 ] Al Ti commented on CB-7694: --- OK thanks for answer. Ans thanks a lot fort you great job How could I use WKWebView in Cordova 3.7.0? We must wait iOS8 support? (https://issues.apache.org/jira/plugins/servlet/mobile#issue/CB-7043) Cordova crashes with UIPopoverPresentationController exception in web forms --- Key: CB-7694 URL: https://issues.apache.org/jira/browse/CB-7694 Project: Apache Cordova Issue Type: Bug Components: iOS Affects Versions: 3.5.0, 3.6.0 Environment: iOS 8.0.2, xCode 6.0.1 Reporter: Alex Ivaylov I have this issue on both Cordova 3.5 and 3.6. I have a web form that uses jQuery mobile. It is a mixture of text fields, selects and a date field (the www folder is attached below). The app randomly crashes when moving between the controls and I can not figure out how to replicate the bug. I just go around all the controls and in a random moment I get the exception shown below. 2014-10-02 11:25:34.619 testApp[4456:277182] *** Terminating app due to uncaught exception 'NSGenericException', reason: 'UIPopoverPresentationController (UIPopoverPresentationController: 0x7afe3170) should have a non-nil sourceView or barButtonItem set before the presentation occurs.' *** First throw call stack: ( 0 CoreFoundation 0x0030fdf6 __exceptionPreprocess + 182 1 libobjc.A.dylib 0x02449a97 objc_exception_throw + 44 2 UIKit 0x00eeaa37 -[UIPopoverPresentationController presentationTransitionWillBegin] + 3086 3 UIKit 0x007f1f75 __71-[UIPresentationController _initViewHierarchyForPresentationSuperview:]_block_invoke + 1666 4 UIKit 0x007f0554 __56-[UIPresentationController runTransitionForCurrentState]_block_invoke + 226 5 UIKit 0x0082421b __40+[UIViewController _scheduleTransition:]_block_invoke + 18 6 UIKit 0x006ea62e ___afterCACommitHandler_block_invoke + 15 7 UIKit 0x006ea5d9 _applyBlockToCFArrayCopiedToStack + 415 8 UIKit 0x006ea3ee _afterCACommitHandler + 545 9 CoreFoundation 0x00232fbe __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 30 10 CoreFoundation 0x00232f00 __CFRunLoopDoObservers + 400 11 CoreFoundation 0x0022893a __CFRunLoopRun + 1226 12 CoreFoundation 0x002281ab CFRunLoopRunSpecific + 443 13 CoreFoundation 0x00227fdb CFRunLoopRunInMode + 123 14 GraphicsServices0x03aca24f GSEventRunModal + 192 15 GraphicsServices0x03aca08c GSEventRun + 104 16 UIKit 0x006c0e16 UIApplicationMain + 1526 17 testApp 0x000ec7bc main + 92 18 libdyld.dylib 0x02b29ac9 start + 1 ) libc++abi.dylib: terminating with uncaught exception of type NSException (lldb) Here are the files: 1. A video showing the bug: http://alex.scot/cordova/cordova1.mov 2. Text file with the commands used to create the project and the exception: http://alex.scot/cordova/cordova1.txt 3. The www folder of the iOS platform in Cordova: http://alex.scot/cordova/www.zip thank you for looking into this, Alex -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org For additional commands, e-mail: issues-h...@cordova.apache.org
[jira] [Resolved] (CB-7694) Cordova crashes with UIPopoverPresentationController exception in web forms
[ https://issues.apache.org/jira/browse/CB-7694?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Shazron Abdullah resolved CB-7694. -- Resolution: Not a Problem Resolving. This is an external (Apple) issue. Cordova crashes with UIPopoverPresentationController exception in web forms --- Key: CB-7694 URL: https://issues.apache.org/jira/browse/CB-7694 Project: Apache Cordova Issue Type: Bug Components: iOS Affects Versions: 3.5.0, 3.6.0 Environment: iOS 8.0.2, xCode 6.0.1 Reporter: Alex Ivaylov I have this issue on both Cordova 3.5 and 3.6. I have a web form that uses jQuery mobile. It is a mixture of text fields, selects and a date field (the www folder is attached below). The app randomly crashes when moving between the controls and I can not figure out how to replicate the bug. I just go around all the controls and in a random moment I get the exception shown below. 2014-10-02 11:25:34.619 testApp[4456:277182] *** Terminating app due to uncaught exception 'NSGenericException', reason: 'UIPopoverPresentationController (UIPopoverPresentationController: 0x7afe3170) should have a non-nil sourceView or barButtonItem set before the presentation occurs.' *** First throw call stack: ( 0 CoreFoundation 0x0030fdf6 __exceptionPreprocess + 182 1 libobjc.A.dylib 0x02449a97 objc_exception_throw + 44 2 UIKit 0x00eeaa37 -[UIPopoverPresentationController presentationTransitionWillBegin] + 3086 3 UIKit 0x007f1f75 __71-[UIPresentationController _initViewHierarchyForPresentationSuperview:]_block_invoke + 1666 4 UIKit 0x007f0554 __56-[UIPresentationController runTransitionForCurrentState]_block_invoke + 226 5 UIKit 0x0082421b __40+[UIViewController _scheduleTransition:]_block_invoke + 18 6 UIKit 0x006ea62e ___afterCACommitHandler_block_invoke + 15 7 UIKit 0x006ea5d9 _applyBlockToCFArrayCopiedToStack + 415 8 UIKit 0x006ea3ee _afterCACommitHandler + 545 9 CoreFoundation 0x00232fbe __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 30 10 CoreFoundation 0x00232f00 __CFRunLoopDoObservers + 400 11 CoreFoundation 0x0022893a __CFRunLoopRun + 1226 12 CoreFoundation 0x002281ab CFRunLoopRunSpecific + 443 13 CoreFoundation 0x00227fdb CFRunLoopRunInMode + 123 14 GraphicsServices0x03aca24f GSEventRunModal + 192 15 GraphicsServices0x03aca08c GSEventRun + 104 16 UIKit 0x006c0e16 UIApplicationMain + 1526 17 testApp 0x000ec7bc main + 92 18 libdyld.dylib 0x02b29ac9 start + 1 ) libc++abi.dylib: terminating with uncaught exception of type NSException (lldb) Here are the files: 1. A video showing the bug: http://alex.scot/cordova/cordova1.mov 2. Text file with the commands used to create the project and the exception: http://alex.scot/cordova/cordova1.txt 3. The www folder of the iOS platform in Cordova: http://alex.scot/cordova/www.zip thank you for looking into this, Alex -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org For additional commands, e-mail: issues-h...@cordova.apache.org
[jira] [Commented] (CB-7694) Cordova crashes with UIPopoverPresentationController exception in web forms
[ https://issues.apache.org/jira/browse/CB-7694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14215023#comment-14215023 ] Shazron Abdullah commented on CB-7694: -- Yes, we are waiting on Apple to fix their bug. Everything should be here: https://issues.apache.org/jira/browse/CB-7991 When we support it, you'll know. It is more involved than just replacing UIWebView/ Cordova crashes with UIPopoverPresentationController exception in web forms --- Key: CB-7694 URL: https://issues.apache.org/jira/browse/CB-7694 Project: Apache Cordova Issue Type: Bug Components: iOS Affects Versions: 3.5.0, 3.6.0 Environment: iOS 8.0.2, xCode 6.0.1 Reporter: Alex Ivaylov I have this issue on both Cordova 3.5 and 3.6. I have a web form that uses jQuery mobile. It is a mixture of text fields, selects and a date field (the www folder is attached below). The app randomly crashes when moving between the controls and I can not figure out how to replicate the bug. I just go around all the controls and in a random moment I get the exception shown below. 2014-10-02 11:25:34.619 testApp[4456:277182] *** Terminating app due to uncaught exception 'NSGenericException', reason: 'UIPopoverPresentationController (UIPopoverPresentationController: 0x7afe3170) should have a non-nil sourceView or barButtonItem set before the presentation occurs.' *** First throw call stack: ( 0 CoreFoundation 0x0030fdf6 __exceptionPreprocess + 182 1 libobjc.A.dylib 0x02449a97 objc_exception_throw + 44 2 UIKit 0x00eeaa37 -[UIPopoverPresentationController presentationTransitionWillBegin] + 3086 3 UIKit 0x007f1f75 __71-[UIPresentationController _initViewHierarchyForPresentationSuperview:]_block_invoke + 1666 4 UIKit 0x007f0554 __56-[UIPresentationController runTransitionForCurrentState]_block_invoke + 226 5 UIKit 0x0082421b __40+[UIViewController _scheduleTransition:]_block_invoke + 18 6 UIKit 0x006ea62e ___afterCACommitHandler_block_invoke + 15 7 UIKit 0x006ea5d9 _applyBlockToCFArrayCopiedToStack + 415 8 UIKit 0x006ea3ee _afterCACommitHandler + 545 9 CoreFoundation 0x00232fbe __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 30 10 CoreFoundation 0x00232f00 __CFRunLoopDoObservers + 400 11 CoreFoundation 0x0022893a __CFRunLoopRun + 1226 12 CoreFoundation 0x002281ab CFRunLoopRunSpecific + 443 13 CoreFoundation 0x00227fdb CFRunLoopRunInMode + 123 14 GraphicsServices0x03aca24f GSEventRunModal + 192 15 GraphicsServices0x03aca08c GSEventRun + 104 16 UIKit 0x006c0e16 UIApplicationMain + 1526 17 testApp 0x000ec7bc main + 92 18 libdyld.dylib 0x02b29ac9 start + 1 ) libc++abi.dylib: terminating with uncaught exception of type NSException (lldb) Here are the files: 1. A video showing the bug: http://alex.scot/cordova/cordova1.mov 2. Text file with the commands used to create the project and the exception: http://alex.scot/cordova/cordova1.txt 3. The www folder of the iOS platform in Cordova: http://alex.scot/cordova/www.zip thank you for looking into this, Alex -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org For additional commands, e-mail: issues-h...@cordova.apache.org
[jira] [Commented] (CB-7539) [WKWebView][iOS 8] Use local webserver option to load local HTML file from www
[ https://issues.apache.org/jira/browse/CB-7539?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14215033#comment-14215033 ] Shazron Abdullah commented on CB-7539: -- Added local-webserver plugin: https://github.com/apache/cordova-plugins/tree/master/local-webserver Nothing fancy -- just to get a proof of concept right now to work with https://github.com/apache/cordova-plugins/tree/master/wkwebview-engine [WKWebView][iOS 8] Use local webserver option to load local HTML file from www -- Key: CB-7539 URL: https://issues.apache.org/jira/browse/CB-7539 Project: Apache Cordova Issue Type: Sub-task Components: iOS Reporter: Shazron Abdullah Priority: Blocker This workaround is because of this bug: http://www.openradar.me/radar?id=5839348817723392 (filed with Apple of course also) I'm still hoping that Apple fixes this in iOS 8.1, but we should have this as a contingency plan. Create this as an included plugin, so it can be extracted later if need be. We need to secure access to the local webserver, probably through a session token in the header, since background apps can have access to the webserver. The session token is passed down to the initially loaded local page specified from the content tag in config.xml, and should be used in the cordova.exec call. We would also need to implement local proxy support , see CB-7348 This all sounds more complex than it needs to be than just loading a file url -- wishing Apple would just fix this in iOS 8.1 instead. -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org For additional commands, e-mail: issues-h...@cordova.apache.org
[jira] [Created] (CB-8029) Add test for 1-based indexing of notification.confirm
Staci Cooper created CB-8029: Summary: Add test for 1-based indexing of notification.confirm Key: CB-8029 URL: https://issues.apache.org/jira/browse/CB-8029 Project: Apache Cordova Issue Type: Test Components: mobile-spec, Plugin Dialogs Reporter: Staci Cooper Assignee: Staci Cooper Priority: Trivial notification.confirm returns the index of the button pressed using 1-based indexing. Requires manual testing. Since we already have a manual confirm test, it would suffice to add mention of the indexing to the 'Expected Results'. -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org For additional commands, e-mail: issues-h...@cordova.apache.org
[jira] [Commented] (CB-8029) Add test for 1-based indexing of notification.confirm
[ https://issues.apache.org/jira/browse/CB-8029?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14215070#comment-14215070 ] ASF GitHub Bot commented on CB-8029: GitHub user stacic opened a pull request: https://github.com/apache/cordova-plugin-dialogs/pull/41 CB-8029 test 1-based indexing for confirm Added to the expected results -- remember to check 1-based indexing in the confirm manual tests. You can merge this pull request into a Git repository by running: $ git pull https://github.com/stacic/cordova-plugin-dialogs CB-8029 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/cordova-plugin-dialogs/pull/41.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 #41 commit 86b4e25a38c082ddcae1534bfb4f39f8f3819e00 Author: Staci Cooper smcoo...@us.ibm.com Date: 2014-11-17T19:51:11Z CB-8029 test 1-based indexing for confirm Added to the expected results -- remember to check 1-based indexing in the confirm manual tests. Add test for 1-based indexing of notification.confirm - Key: CB-8029 URL: https://issues.apache.org/jira/browse/CB-8029 Project: Apache Cordova Issue Type: Test Components: mobile-spec, Plugin Dialogs Reporter: Staci Cooper Assignee: Staci Cooper Priority: Trivial notification.confirm returns the index of the button pressed using 1-based indexing. Requires manual testing. Since we already have a manual confirm test, it would suffice to add mention of the indexing to the 'Expected Results'. -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org For additional commands, e-mail: issues-h...@cordova.apache.org
[jira] [Created] (CB-8030) cordova plugin search shouldn't need to be run in a Cordova-based project
Shazron Abdullah created CB-8030: Summary: cordova plugin search shouldn't need to be run in a Cordova-based project Key: CB-8030 URL: https://issues.apache.org/jira/browse/CB-8030 Project: Apache Cordova Issue Type: Improvement Components: CLI Environment: OS X Reporter: Shazron Abdullah Priority: Minor When not inside a Cordova-based project -- Expected: $ cordova plugin search barcode [search results] Actual: $ cordova plugin search barcode Current working directory is not a Cordova-based project. -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org For additional commands, e-mail: issues-h...@cordova.apache.org
[jira] [Commented] (CB-7726) Typo in .gitignore template
[ https://issues.apache.org/jira/browse/CB-7726?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14215655#comment-14215655 ] ASF GitHub Bot commented on CB-7726: Github user clelland commented on the pull request: https://github.com/apache/cordova-android/pull/129#issuecomment-63414867 The change in this file was already made; it was merged in three weeks ago as the fix for #131, which was also tracked as [CB-7726](https://issues.apache.org/jira/browse/CB-7726) in JIRA. @mdpatrick, thanks for the report; it looks like you actually spotted it first. You can close this PR any time. Typo in .gitignore template --- Key: CB-7726 URL: https://issues.apache.org/jira/browse/CB-7726 Project: Apache Cordova Issue Type: Bug Components: Android Affects Versions: 3.6.0 Reporter: Alessandro Miliucci Priority: Trivial Fix For: 3.7.0 The gitignore template ingores the *ant-built* directory instead of *ant-build*. Ref. https://github.com/apache/cordova-android/blob/master/bin/templates/project/gitignore -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org For additional commands, e-mail: issues-h...@cordova.apache.org
[jira] [Created] (CB-8031) Apps Sometimes Crash due to ConcurrentModificationException
Andrew Grieve created CB-8031: - Summary: Apps Sometimes Crash due to ConcurrentModificationException Key: CB-8031 URL: https://issues.apache.org/jira/browse/CB-8031 Project: Apache Cordova Issue Type: Bug Components: Android Reporter: Andrew Grieve Assignee: Andrew Grieve Priority: Minor Came across this when refactoring splashscreen plugin. Because plugins are lazily instantiated, and because plugins execute on non-ui thread by default, if a plugin calls getPlugin() while the ui thread is dispatching an onMessage (or one of the various other plugin functions), then the {code} for (CordovaPlugin p : pluginMap.values()) {code} fires an exception due to getPlugin() modifying the map. -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org For additional commands, e-mail: issues-h...@cordova.apache.org
[jira] [Commented] (CB-8031) Apps Sometimes Crash due to ConcurrentModificationException
[ https://issues.apache.org/jira/browse/CB-8031?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14215766#comment-14215766 ] ASF subversion and git services commented on CB-8031: - Commit 1feaa7fed717d1f6e02508a280190c3d6914f95c in cordova-android's branch refs/heads/master from [~agrieve] [ https://git-wip-us.apache.org/repos/asf?p=cordova-android.git;h=1feaa7f ] CB-8031 Fix race condition that shows as ConcurrentModificationException Apps Sometimes Crash due to ConcurrentModificationException --- Key: CB-8031 URL: https://issues.apache.org/jira/browse/CB-8031 Project: Apache Cordova Issue Type: Bug Components: Android Reporter: Andrew Grieve Assignee: Andrew Grieve Priority: Minor Came across this when refactoring splashscreen plugin. Because plugins are lazily instantiated, and because plugins execute on non-ui thread by default, if a plugin calls getPlugin() while the ui thread is dispatching an onMessage (or one of the various other plugin functions), then the {code} for (CordovaPlugin p : pluginMap.values()) {code} fires an exception due to getPlugin() modifying the map. -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org For additional commands, e-mail: issues-h...@cordova.apache.org
[jira] [Resolved] (CB-8031) Apps Sometimes Crash due to ConcurrentModificationException
[ https://issues.apache.org/jira/browse/CB-8031?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Grieve resolved CB-8031. --- Resolution: Fixed Fixed in 3.7.0-dev Apps Sometimes Crash due to ConcurrentModificationException --- Key: CB-8031 URL: https://issues.apache.org/jira/browse/CB-8031 Project: Apache Cordova Issue Type: Bug Components: Android Reporter: Andrew Grieve Assignee: Andrew Grieve Priority: Minor Came across this when refactoring splashscreen plugin. Because plugins are lazily instantiated, and because plugins execute on non-ui thread by default, if a plugin calls getPlugin() while the ui thread is dispatching an onMessage (or one of the various other plugin functions), then the {code} for (CordovaPlugin p : pluginMap.values()) {code} fires an exception due to getPlugin() modifying the map. -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org For additional commands, e-mail: issues-h...@cordova.apache.org
[jira] [Commented] (CB-3679) Breakout SplashScreen Plugin for Android
[ https://issues.apache.org/jira/browse/CB-3679?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14215849#comment-14215849 ] ASF GitHub Bot commented on CB-3679: GitHub user agrieve opened a pull request: https://github.com/apache/cordova-plugin-splashscreen/pull/32 CB-3679 Break Android splashscreen logic into splascreen plugin You can merge this pull request into a Git repository by running: $ git pull https://github.com/agrieve/cordova-plugin-splashscreen splash-break Alternatively you can review and apply these changes as the patch at: https://github.com/apache/cordova-plugin-splashscreen/pull/32.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 #32 commit ab8a3fada7687a2dab3f0264dbb78027fa8f6c2d Author: Andrew Grieve agri...@chromium.org Date: 2014-11-18T07:48:45Z CB-3679 Break Android splashscreen logic into splascreen plugin Breakout SplashScreen Plugin for Android Key: CB-3679 URL: https://issues.apache.org/jira/browse/CB-3679 Project: Apache Cordova Issue Type: Improvement Components: Android, Plugin SplashScreen Reporter: Steve Gill Assignee: Steve Gill Fix For: 3.0.0 -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org For additional commands, e-mail: issues-h...@cordova.apache.org
[jira] [Commented] (CB-3679) Breakout SplashScreen Plugin for Android
[ https://issues.apache.org/jira/browse/CB-3679?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14215850#comment-14215850 ] ASF GitHub Bot commented on CB-3679: GitHub user agrieve opened a pull request: https://github.com/apache/cordova-android/pull/134 CB-3679 Move splashscreen logic into splashscreen plugin Tried as hard as possible for this not to be a breaking change (all symbols were preserved). Planning to remove delegating symbols in 4.0.x though. You can merge this pull request into a Git repository by running: $ git pull https://github.com/agrieve/cordova-android splash-break Alternatively you can review and apply these changes as the patch at: https://github.com/apache/cordova-android/pull/134.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 #134 commit 6aa767791b05fd621700c707ca0bd7ea37adbee4 Author: Andrew Grieve agri...@chromium.org Date: 2014-11-18T07:46:39Z CB-3679 Move splashscreen logic into splashscreen plugin Tried as hard as possible for this not to be a breaking change (all symbols were preserved). Planning to remove delegating symbols in 4.0.x though. Breakout SplashScreen Plugin for Android Key: CB-3679 URL: https://issues.apache.org/jira/browse/CB-3679 Project: Apache Cordova Issue Type: Improvement Components: Android, Plugin SplashScreen Reporter: Steve Gill Assignee: Steve Gill Fix For: 3.0.0 -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org For additional commands, e-mail: issues-h...@cordova.apache.org