From c6ccde0558369272acdb02c153af034dfcd0525b Mon Sep 17 00:00:00 2001 From: Marcel Kinard Date: Wed, 27 Aug 2014 09:04:32 -0400 Subject: [PATCH 01/12] CB-7385 update cordova.js for testing prior to branch/tag --- framework/assets/www/cordova.js | 34 +++++++++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/framework/assets/www/cordova.js b/framework/assets/www/cordova.js index f0e57cd1..73ec0feb 100644 --- a/framework/assets/www/cordova.js +++ b/framework/assets/www/cordova.js @@ -1,5 +1,5 @@ // Platform: android -// 3.6.0-dev-70cdca3 +// 3.6.3 /* Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file @@ -19,7 +19,7 @@ under the License. */ ;(function() { -var CORDOVA_JS_BUILD_LABEL = '3.6.0-dev-70cdca3'; +var CORDOVA_JS_BUILD_LABEL = '3.6.3'; // file: src/scripts/require.js /*jshint -W079 */ @@ -1497,6 +1497,17 @@ module.exports = { cordova.addDocumentEventHandler('menubutton'); cordova.addDocumentEventHandler('searchbutton'); + function bindButtonChannel(buttonName) { + // generic button bind used for volumeup/volumedown buttons + var volumeButtonChannel = cordova.addDocumentEventHandler(buttonName + 'button'); + volumeButtonChannel.onHasSubscribersChange = function() { + exec(null, null, "App", "overrideButton", [buttonName, this.numHandlers == 1]); + }; + } + // Inject a listener for the volume buttons on the document. + bindButtonChannel('volumeup'); + bindButtonChannel('volumedown'); + // Let native code know we are all done on the JS side. // Native code will then un-hide the WebView. channel.onCordovaReady.subscribe(function() { @@ -1574,6 +1585,21 @@ module.exports = { exec(null, null, "App", "overrideBackbutton", [override]); }, + /** + * Override the default behavior of the Android volume button. + * If overridden, when the volume button is pressed, the "volume[up|down]button" + * JavaScript event will be fired. + * + * Note: The user should not have to call this method. Instead, when the user + * registers for the "volume[up|down]button" event, this is automatically done. + * + * @param button volumeup, volumedown + * @param override T=override, F=cancel override + */ + overrideButton:function(button, override) { + exec(null, null, "App", "overrideButton", [button, override]); + }, + /** * Exit and terminate the application. */ @@ -1667,11 +1693,11 @@ function handlePluginsObject(path, moduleList, finishPluginLoading) { function findCordovaPath() { var path = null; var scripts = document.getElementsByTagName('script'); - var term = 'cordova.js'; + var term = '/cordova.js'; for (var n = scripts.length-1; n>-1; n--) { var src = scripts[n].src.replace(/\?.*$/, ''); // Strip any query param (CB-6007). if (src.indexOf(term) == (src.length - term.length)) { - path = src.substring(0, src.length - term.length); + path = src.substring(0, src.length - term.length) + '/'; break; } } From 12a27643db8d0e01f412f5001e3aaaa187191abe Mon Sep 17 00:00:00 2001 From: Marcel Kinard Date: Wed, 27 Aug 2014 13:56:31 -0400 Subject: [PATCH 02/12] CB-7410 clarify the title --- test/assets/www/index.html | 2 +- test/res/values/strings.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/assets/www/index.html b/test/assets/www/index.html index 2876d78c..d4659f7a 100755 --- a/test/assets/www/index.html +++ b/test/assets/www/index.html @@ -36,7 +36,7 @@ -

Cordova Android Tests

+

Cordova Android Native Tests

Cordova:  

Deviceready:  

diff --git a/test/res/values/strings.xml b/test/res/values/strings.xml index 2eff6632..59e22e6f 100644 --- a/test/res/values/strings.xml +++ b/test/res/values/strings.xml @@ -18,5 +18,5 @@ under the License. --> - CordovaTests + CordovaNativeTests From eb8cf56e8e7ce0419dbe444fbedaa434bf4e4009 Mon Sep 17 00:00:00 2001 From: Marcel Kinard Date: Thu, 28 Aug 2014 09:42:53 -0400 Subject: [PATCH 03/12] CB-7267 update RELEASENOTES for 3.5.1 --- RELEASENOTES.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index d8e467b2..d15f8975 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -20,6 +20,17 @@ --> ## Release Notes for Cordova (Android) ## +### 3.5.1 (August 2014) ### + +This was a security update to address CVE-2014-3500, CVE-2014-3501, +and CVE-2014-3502. For more information, see +http://cordova.apache.org/announcements/2014/08/04/android-351.html + +* Filter out non-launchable intents +* Handle unsupported protocol errors in webview better +* Update the errorurl to no longer use intents +* Refactoring the URI handling on Cordova, removing dead code + ### 3.5.0 (May 2014) ### * OkHttp has broken headers. Updating for ASF compliance. From 7a091824466cd86a22951c3b57fdd95204021dbb Mon Sep 17 00:00:00 2001 From: Ian Clelland Date: Thu, 28 Aug 2014 11:26:35 -0400 Subject: [PATCH 04/12] CB-3445: Ensure that JAR files in libs directory are included --- bin/templates/project/build.gradle | 1 + 1 file changed, 1 insertion(+) diff --git a/bin/templates/project/build.gradle b/bin/templates/project/build.gradle index dcebbc5d..8bccc413 100644 --- a/bin/templates/project/build.gradle +++ b/bin/templates/project/build.gradle @@ -15,6 +15,7 @@ buildscript { ext.multiarch=false dependencies { + compile fileTree(dir: 'libs', include: '*.jar') for (subproject in getProjectList()) { compile project(subproject) } From 34dde535068579b762dcda89ba92f8ab8adf8a97 Mon Sep 17 00:00:00 2001 From: Ian Clelland Date: Thu, 28 Aug 2014 16:17:54 -0400 Subject: [PATCH 05/12] CB-3445: Add environment variable 'BUILD_MULTIPLE_APKS' for splitting APKs based on architecture --- bin/templates/cordova/lib/build.js | 26 +++++++++++++++++++------- bin/templates/project/build.gradle | 2 +- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/bin/templates/cordova/lib/build.js b/bin/templates/cordova/lib/build.js index 1f4810d0..77fe2597 100644 --- a/bin/templates/cordova/lib/build.js +++ b/bin/templates/cordova/lib/build.js @@ -156,13 +156,25 @@ var builders = { }, gradle: { getArgs: function(cmd) { - var lintSteps = [ - 'lint', - 'lintVitalRelease', - 'compileLint', - 'copyReleaseLint', - 'copyDebugLint' - ]; + var lintSteps; + if (process.env['BUILD_MULTIPLE_APKS']) { + lintSteps = [ + 'lint', + 'lintVitalX86Release', + 'lintVitalArmv7Release', + 'compileLint', + 'copyReleaseLint', + 'copyDebugLint' + ]; + } else { + lintSteps = [ + 'lint', + 'lintVitalRelease', + 'compileLint', + 'copyReleaseLint', + 'copyDebugLint' + ]; + } var args = [cmd, '-b', path.join(ROOT, 'build.gradle')]; // 10 seconds -> 6 seconds args.push('-Dorg.gradle.daemon=true'); diff --git a/bin/templates/project/build.gradle b/bin/templates/project/build.gradle index 8bccc413..9d1d45ae 100644 --- a/bin/templates/project/build.gradle +++ b/bin/templates/project/build.gradle @@ -41,7 +41,7 @@ android { compileSdkVersion 19 buildToolsVersion "19.0.0" - if (multiarch) { + if (multiarch || System.env.BUILD_MULTIPLE_APKS) { productFlavors { armv7 { versionCode defaultConfig.versionCode + 2 From 4bc2051f442473c2c3c854e18487d1058c53b58b Mon Sep 17 00:00:00 2001 From: Ian Clelland Date: Fri, 29 Aug 2014 16:00:13 -0400 Subject: [PATCH 06/12] CB-3445: Allow build and run scripts to select APK by architecture --- bin/templates/cordova/lib/build.js | 4 ++-- bin/templates/cordova/lib/device.js | 7 ++++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/bin/templates/cordova/lib/build.js b/bin/templates/cordova/lib/build.js index 77fe2597..30056f46 100644 --- a/bin/templates/cordova/lib/build.js +++ b/bin/templates/cordova/lib/build.js @@ -342,9 +342,9 @@ module.exports.run = function(options) { * the script will error out. (should we error or just return undefined?) * This is called by the run script to install the apk to the device */ -module.exports.get_apk = function(build_type) { +module.exports.get_apk = function(build_type, architecture) { var outputDir = path.join(ROOT, 'out'); - var candidates = find_files(outputDir, function() { return true; }); + var candidates = find_files(outputDir, function(filename) { return (!architecture) || filename.indexOf(architecture) >= 0; }); if (candidates.length === 0) { console.error('ERROR : No .apk found in ' + outputDir + ' directory'); process.exit(2); diff --git a/bin/templates/cordova/lib/device.js b/bin/templates/cordova/lib/device.js index d37f80c9..df212876 100644 --- a/bin/templates/cordova/lib/device.js +++ b/bin/templates/cordova/lib/device.js @@ -61,7 +61,12 @@ module.exports.install = function(target) { if (device_list.indexOf(target) < 0) return Q.reject('ERROR: Unable to find target \'' + target + '\'.'); - var apk_path = build.get_apk(); + var apk_path; + if (typeof process.env.DEPLOY_APK_ARCH == 'undefined') { + apk_path = build.get_apk(); + } else { + apk_path = build.get_apk(null, process.env.DEPLOY_APK_ARCH); + } launchName = appinfo.getActivityName(); console.log('Installing app on device...'); var cmd = 'adb -s ' + target + ' install -r "' + apk_path + '"'; From 4a7f825cfe829a1fd5a92402170fa233ec9211d6 Mon Sep 17 00:00:00 2001 From: Marcel Kinard Date: Fri, 29 Aug 2014 16:38:38 -0400 Subject: [PATCH 07/12] CB-7410 Fix Basic Authentication test Looks like the Chromium webview does not include the port number on the hostname during the callback challenge, but the classic webview does include the port number. Handle both cases here. --- test/src/org/apache/cordova/test/basicauth.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/test/src/org/apache/cordova/test/basicauth.java b/test/src/org/apache/cordova/test/basicauth.java index 1b09f3d5..a0aaa7c1 100755 --- a/test/src/org/apache/cordova/test/basicauth.java +++ b/test/src/org/apache/cordova/test/basicauth.java @@ -21,7 +21,7 @@ package org.apache.cordova.test; import android.os.Bundle; import org.apache.cordova.*; -public class basicauth extends DroidGap { +public class basicauth extends CordovaActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -31,11 +31,13 @@ public class basicauth extends DroidGap { AuthenticationToken token = new AuthenticationToken(); token.setUserName("test"); token.setPassword("test"); - super.setAuthenticationToken(token, "browserspy.dk:80", "BrowserSpy.dk - HTTP Password Test"); + // classic webview includes port in hostname, Chromium webview does not. Handle both here. + // BTW, the realm is optional. + setAuthenticationToken(token, "browserspy.dk:80", "BrowserSpy.dk - HTTP Password Test"); + setAuthenticationToken(token, "browserspy.dk", "BrowserSpy.dk - HTTP Password Test"); // Add web site to whitelist - Config.init(); - Config.addWhiteListEntry("http://browserspy.dk*", true); + Config.getWhitelist().addWhiteListEntry("http://browserspy.dk/*", true); // Load test super.loadUrl("file:///android_asset/www/basicauth/index.html"); From 07632b0eeba6dde4032f338941e8e5891456e97e Mon Sep 17 00:00:00 2001 From: Marcel Kinard Date: Fri, 29 Aug 2014 17:38:03 -0400 Subject: [PATCH 08/12] CB-7410 Fix the errorUrl test Make the error.html page a well-formed html document, otherwise it won't display. --- test/assets/www/htmlnotfound/error.html | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/test/assets/www/htmlnotfound/error.html b/test/assets/www/htmlnotfound/error.html index e32cd296..3852efe6 100755 --- a/test/assets/www/htmlnotfound/error.html +++ b/test/assets/www/htmlnotfound/error.html @@ -14,6 +14,25 @@ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations - under the License.$ + under the License. --> -This is an error page. + + + + + + Expected Error + + + + + +

Expected Error

+
+

Cordova:  

+

Deviceready:  

+
+
+ This is an expected error page because the initial href doesn't exist. + + From 0cde8819cfdfa7df03639b9d3b24f7d2933dee1a Mon Sep 17 00:00:00 2001 From: Marcel Kinard Date: Fri, 29 Aug 2014 18:07:29 -0400 Subject: [PATCH 09/12] CB-7410 fix the menu test Need to show the title in order for the options menu button to be visible. --- test/assets/www/menus/index.html | 2 +- test/src/org/apache/cordova/test/menus.java | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/test/assets/www/menus/index.html b/test/assets/www/menus/index.html index 58d64c34..ff0b93bf 100755 --- a/test/assets/www/menus/index.html +++ b/test/assets/www/menus/index.html @@ -33,7 +33,7 @@

Deviceready:  

-

The menu items should be:

+

The options menu items should be:

  • Item1
  • Item2
  • Item3
    diff --git a/test/src/org/apache/cordova/test/menus.java b/test/src/org/apache/cordova/test/menus.java index 12d5230f..6d0d3f1a 100755 --- a/test/src/org/apache/cordova/test/menus.java +++ b/test/src/org/apache/cordova/test/menus.java @@ -28,10 +28,12 @@ import android.view.ContextMenu.ContextMenuInfo; import org.apache.cordova.*; import org.apache.cordova.LOG; -public class menus extends DroidGap { +public class menus extends CordovaActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + // need the title to be shown for the options menu to be visible + preferences.set("showTitle", true); super.init(); super.registerForContextMenu(super.appView); super.loadUrl("file:///android_asset/www/menus/index.html"); From 91cf78f183ebd692c47a6f745cbf0fdc4f3d4273 Mon Sep 17 00:00:00 2001 From: Steven Gill Date: Fri, 29 Aug 2014 16:34:12 -0700 Subject: [PATCH 10/12] Set VERSION to 3.7.0-dev (via coho) --- VERSION | 2 +- bin/templates/cordova/version | 2 +- .../org/apache/cordova/CordovaWebView.java | 2 +- package.json | 54 +++++++++---------- 4 files changed, 30 insertions(+), 30 deletions(-) diff --git a/VERSION b/VERSION index 86bab9cf..a4ce38eb 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -3.6.0-dev +3.7.0-dev diff --git a/bin/templates/cordova/version b/bin/templates/cordova/version index ac3bb54d..2e1ade7b 100755 --- a/bin/templates/cordova/version +++ b/bin/templates/cordova/version @@ -20,6 +20,6 @@ */ // Coho updates this line: -var VERSION = "3.6.0-dev"; +var VERSION = "3.7.0-dev"; console.log(VERSION); diff --git a/framework/src/org/apache/cordova/CordovaWebView.java b/framework/src/org/apache/cordova/CordovaWebView.java index 403a7aec..f7a94ae2 100755 --- a/framework/src/org/apache/cordova/CordovaWebView.java +++ b/framework/src/org/apache/cordova/CordovaWebView.java @@ -61,7 +61,7 @@ import android.widget.FrameLayout; public class CordovaWebView extends WebView { public static final String TAG = "CordovaWebView"; - public static final String CORDOVA_VERSION = "3.6.0-dev"; + public static final String CORDOVA_VERSION = "3.7.0-dev"; private HashSet boundKeyCodes = new HashSet(); diff --git a/package.json b/package.json index ed01458a..8a6ab09c 100644 --- a/package.json +++ b/package.json @@ -1,28 +1,28 @@ { - "name": "cordova-android", - "version": "3.4.0", - "description": "cordova-android release", - "main": "bin/create", - "repository": { - "type": "git", - "url": "https://git-wip-us.apache.org/repos/asf/cordova-android.git" - }, - "keywords": [ - "android", - "cordova", - "apache" - ], - "scripts": { - "test": "jasmine-node --color spec" - }, - "author": "Apache Software Foundation", - "license": "Apache version 2.0", - "dependencies": { - "q": "^0.9.0", - "shelljs": "^0.2.6" - }, - "devDependencies": { - "jasmine-node": "~1", - "promise-matchers": "~0" - } -} + "name": "cordova-android", + "version": "3.7.0-dev", + "description": "cordova-android release", + "main": "bin/create", + "repository": { + "type": "git", + "url": "https://git-wip-us.apache.org/repos/asf/cordova-android.git" + }, + "keywords": [ + "android", + "cordova", + "apache" + ], + "scripts": { + "test": "jasmine-node --color spec" + }, + "author": "Apache Software Foundation", + "license": "Apache version 2.0", + "dependencies": { + "q": "^0.9.0", + "shelljs": "^0.2.6" + }, + "devDependencies": { + "jasmine-node": "~1", + "promise-matchers": "~0" + } +} \ No newline at end of file From f20708a5e732f550436394aa84bf309e769e7d23 Mon Sep 17 00:00:00 2001 From: Steven Gill Date: Fri, 29 Aug 2014 16:34:17 -0700 Subject: [PATCH 11/12] Update JS snapshot to version 3.7.0-dev (via coho) --- framework/assets/www/cordova.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/framework/assets/www/cordova.js b/framework/assets/www/cordova.js index 73ec0feb..3838e63f 100644 --- a/framework/assets/www/cordova.js +++ b/framework/assets/www/cordova.js @@ -1,5 +1,5 @@ // Platform: android -// 3.6.3 +// 3.7.0-dev-8f41e8d /* Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file @@ -19,7 +19,7 @@ under the License. */ ;(function() { -var CORDOVA_JS_BUILD_LABEL = '3.6.3'; +var CORDOVA_JS_BUILD_LABEL = '3.7.0-dev-8f41e8d'; // file: src/scripts/require.js /*jshint -W079 */ From 5a82dd5110a995fbec5e63b28446677c976ef93f Mon Sep 17 00:00:00 2001 From: Steven Gill Date: Tue, 2 Sep 2014 17:09:14 -0700 Subject: [PATCH 12/12] updated releasenotes --- RELEASENOTES.md | 118 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 118 insertions(+) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index d15f8975..43bb3265 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -20,6 +20,124 @@ --> ## Release Notes for Cordova (Android) ## +### 3.6.0 (Sept 2014) ### + +* Set VERSION to 3.6.0 (via coho) +* CB-7410 fix the menu test +* CB-7410 Fix the errorUrl test +* CB-7410 Fix Basic Authentication test +* CB-3445: Allow build and run scripts to select APK by architecture +* CB-3445: Add environment variable 'BUILD_MULTIPLE_APKS' for splitting APKs based on architecture +* CB-3445: Ensure that JAR files in libs directory are included +* CB-7267 update RELEASENOTES for 3.5.1 +* CB-7410 clarify the title +* CB-7385 update cordova.js for testing prior to branch/tag +* CB-7410 add whitelist entries to get iframe/GoogleMaps working +* CB-7291 propogate change in method signature to the native tests +* CB-7291: Restrict meaning of "\*" in internal whitelist to just http and https +* CB-7291: Only add file, content and data URLs to internal whitelist +* CB-7291: Add defaults to external whitelist +* CB-7291: Add external-launch-whitelist and use it for filtering intent launches +* CB-3445: Read project.properties to configure gradle libraries +* CB-7325 Fix error message in android_sdk_version.js when missing SDK on windows +* CB-7335 Add a .gitignore to android project template +* CB-7330 Fix dangling function call in last commit (broke gradle builds) +* CB-7330 Don't run "android update" during creation +* CB-3445 Add gradle support clean command (plus some code cleanup) +* CB-7044 Fix typo in prev commit causing check_reqs to always fail. +* CB-3445 Copy gradle wrapper in build instead of create +* CB-3445 Add .gradle template files for "update" as well as "create" +* CB-7044 Add JAVA_HOME when not set. Be stricter about ANDROID_HOME +* CB-3445 Speed up gradle building (incremental builds go from 10s -> 1.5s for me) +* CB-3445: android: Copy Gradle wrapper from Android SDK rather than bundling a JAR +* CB-3445: Add which to checked-in node_modules +* CB-3445: Add option to build and install with gradle +* CB-3445: Add an initial set of Gradle build scripts +* CB-7321 Don't require ant for create script +* CB-7044, CB-7299 Fix up PATH problems when possible. +* Change in test's AndroidManifest.xml needed for the test to run properly. Forgot the manifest. +* Change in test's AndroidManifest.xml needed for the test to run properly +* Adding tests related to 3.5.1 +* CB-7261 Fix setNativeToJsBridgeMode sometimes crashing when switching to ONLINE_EVENT +* CB-7265 Fix crash when navigating to custom protocol (introduced in 3.5.1) +* Filter out non-launchable intents +* Handle unsupported protocol errors in webview better +* CB-7238: I should have collapsed this, but Config.init() must go before the creation of CordovaWebView +* CB-7238: Minor band-aid to get tests running again, this has to go away before 3.6.0 is released, since this is an API change. +* Extend whitelist to handle URLs without // chars +* CB-7172 Force window to have focus after resume +* CB-7159 Set background color of webView as well as its parent +* CB-7018 Fix setButtonPlumbedToJs never un-listening +* Undeprecate some just-deprecated symbols in PluginManager. +* @Deprecate methods of PluginManager that were never meant to be public +* Move plugin instantiation and instance storing logic PluginEntry->PluginManager +* Fix broken unit test due to missing Config.init() call +* Update to check for Google Glass APIs +* Fix for `android` not being in PATH check on Windows +* Displaying error when regex does not match. +* Fix broken compile due to previous commit :( +* Tweak CordovaPlugin.initialize method to be less deprecated. +* Un-deprecate CordovaActivity.init() - it's needed to tweak prefs in onCreate +* Tweak log messages in CordovaBridge with bridgeSecret is wrong +* Backport CordovaBridge from 4.0.x -> master +* Update unit tests to not use most deprecated things (e.g. DroidGap) +* Add non-String overloades for CordovaPreferences.set() +* Make CordovaWebview resilient to init() not being called (for backwards-compatibility) +* Add node_module licenses to LICENSE +* Update cordova.js snapshot to work with bridge changes +* Provide CordovaPlugin with CordovaPreferences. Add new Plugin.initialize() +* Convert usages of Config.\* to use the non-static versions +* Change getProperty -> prefs.get\* within CordovaActivity +* Make CordovaUriHelper class package-private +* Fix PluginManager.setPluginEntries not removing old entries +* Move registration of App plugin from config.xml -> code +* Make setWebViewClient an override instead of an overload. Delete Location-change JS->Native bridge mode (missed some of it). +* CB-4404 Revert setting android:windowSoftInputMode to "adjustPan" +* Refactor: Use ConfigXmlParser in activity. Adds CordovaWebView.init() +* Deprecate some convenience methods on CordovaActivity +* Fix CordovaPreferences not correctly parsing hex values (valueOf->decode) +* Refactor: Move url-filter information into PluginEntry. +* Don't re-parse config.xml in onResume. +* Move handling of Fullscreen preference to CordovaActivity +* Delete dead code from CordovaActivity +* Update .classpath to make Eclipse happy (just re-orders one line) +* Delete "CB-3064: The errorUrl is..." Log message left over from debugging presumably +* Refactor Config into ConfigXmlParser, CordovaPreferences +* Delete Location-change JS->Native bridge mode +* CB-5988 Allow exec() only from file: or start-up URL's domain +* CB-6761 Fix native->JS bridge ceasing to fire when page changes and online is set to false and the JS loads quickly +* Update the errorurl to no longer use intents +* This breaks running the JUnit tests, we'll bring it back soon +* Refactoring the URI handling on Cordova, removing dead code +* CB-7018 Clean up and deprecation of some button-related functions +* CB-7017 Fix onload=true being set on all subsequent plugins +* CB-5971: Fix package / project validation +* CB-5971: Add unit tests to cordova-android +* CB-5971: Factor out package/project name validation logic +* Delete explicit activity.finish() in back button handling. No change in behaviour. +* CB-5971: This would have been a good first bug, too bad +* CB-4404: Changing where android:windowSoftInputMode is in the manifest so it works +* Add documentation referencing other implementation. +* CB-6851 Deprecate WebView.sendJavascript() +* CB-6876 Show the correct executable name +* CB-6876 Fix the "print usage" +* Trivial spelling fix in comments when reading CordovaResourceApi +* CB-6818: I want to remove this code, because Square didn't do their headers properly +* CB-6860 Add activity_name and launcher_name to AndroidManifest.xml & strings.xml +* Add a comment to custom_rules.xml saying why we move AndroidManifest.xml +* Remove +x from README.md +* CB-6784 Add missing licenses +* CB-6784 Add license to CONTRIBUTING.md +* Revert "defaults.xml: Add AndroidLaunchMode preference" +* updated RELEASENOTES +* CB-6315: Wrapping this so it runs on the UI thread +* CB-6723 Update package name for Robotium +* CB-6707 Update minSdkVersion to 10 consistently +* CB-5652 make visible cordova version +* Update JS snapshot to version 3.6.0-dev (via coho) +* Update JS snapshot to version 3.6.0-dev (via coho) +* Set VERSION to 3.6.0-dev (via coho) + ### 3.5.1 (August 2014) ### This was a security update to address CVE-2014-3500, CVE-2014-3501,