You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by ka...@apache.org on 2014/11/12 17:49:41 UTC
[1/9] js commit: CB-7661 Incremented package version to -dev
Repository: cordova-js
Updated Branches:
refs/heads/3.7.x f5046c966 -> 7afadfc04
CB-7661 Incremented package version to -dev
Project: http://git-wip-us.apache.org/repos/asf/cordova-js/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-js/commit/1b9dc0da
Tree: http://git-wip-us.apache.org/repos/asf/cordova-js/tree/1b9dc0da
Diff: http://git-wip-us.apache.org/repos/asf/cordova-js/diff/1b9dc0da
Branch: refs/heads/3.7.x
Commit: 1b9dc0da81c6c04c478ac0c6d0f5aa764ddb2ff3
Parents: f5046c9
Author: Steven Gill <st...@gmail.com>
Authored: Fri Oct 10 13:14:31 2014 -0700
Committer: Steven Gill <st...@gmail.com>
Committed: Fri Oct 10 13:14:31 2014 -0700
----------------------------------------------------------------------
package.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-js/blob/1b9dc0da/package.json
----------------------------------------------------------------------
diff --git a/package.json b/package.json
index 7ce9eff..b4e0dc2 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
"author": "Gord Tanner <gt...@gmail.com> (http://github.com/gtanner)",
"name": "cordova-js",
"description": "Cordova JavaScript: a unified JavaScript layer for the Cordova suite of projects enabling cross-platform native mobile development of applications using HTML, CSS and JavaScript.",
- "version": "3.7.1",
+ "version": "3.7.2-dev",
"homepage": "http://cordova.apache.org",
"repository": {
"type": "git",
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org
[6/9] js commit: CB-7868 Use utils.defineGetterSetter instead of
Object.defineProperty which may or may not be defined
Posted by ka...@apache.org.
CB-7868 Use utils.defineGetterSetter instead of Object.defineProperty which may or may not be defined
Project: http://git-wip-us.apache.org/repos/asf/cordova-js/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-js/commit/bd5a35fa
Tree: http://git-wip-us.apache.org/repos/asf/cordova-js/tree/bd5a35fa
Diff: http://git-wip-us.apache.org/repos/asf/cordova-js/diff/bd5a35fa
Branch: refs/heads/3.7.x
Commit: bd5a35fac8ce04deda9317831aea3a4489b9fc33
Parents: 14fae3a
Author: purplecabbage <pu...@gmail.com>
Authored: Mon Oct 27 15:56:01 2014 -0700
Committer: purplecabbage <pu...@gmail.com>
Committed: Mon Oct 27 15:56:01 2014 -0700
----------------------------------------------------------------------
src/common/init.js | 17 ++++++++---------
src/common/init_b.js | 16 +++++++---------
2 files changed, 15 insertions(+), 18 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-js/blob/bd5a35fa/src/common/init.js
----------------------------------------------------------------------
diff --git a/src/common/init.js b/src/common/init.js
index 758544e..46cca2e 100644
--- a/src/common/init.js
+++ b/src/common/init.js
@@ -24,6 +24,7 @@ var cordova = require('cordova');
var modulemapper = require('cordova/modulemapper');
var platform = require('cordova/platform');
var pluginloader = require('cordova/pluginloader');
+var utils = require('cordova/utils');
var platformInitChannelsArray = [channel.onNativeReady, channel.onPluginsReady];
@@ -55,21 +56,19 @@ function replaceNavigator(origNavigator) {
for (var key in origNavigator) {
if (typeof origNavigator[key] == 'function') {
newNavigator[key] = origNavigator[key].bind(origNavigator);
- } else {
+ }
+ else {
(function(k) {
- Object.defineProperty(newNavigator, k, {
- get: function() {
- return origNavigator[k];
- },
- configurable: true,
- enumerable: true
- });
- })(key);
+ utils.defineGetterSetter(newNavigator,key,function() {
+ return origNavigator[k];
+ });
+ })(key);
}
}
}
return newNavigator;
}
+
if (window.navigator) {
window.navigator = replaceNavigator(window.navigator);
}
http://git-wip-us.apache.org/repos/asf/cordova-js/blob/bd5a35fa/src/common/init_b.js
----------------------------------------------------------------------
diff --git a/src/common/init_b.js b/src/common/init_b.js
index f00409b..207cc3c 100644
--- a/src/common/init_b.js
+++ b/src/common/init_b.js
@@ -22,6 +22,7 @@
var channel = require('cordova/channel');
var cordova = require('cordova');
var platform = require('cordova/platform');
+var utils = require('cordova/utils');
var platformInitChannelsArray = [channel.onDOMContentLoaded, channel.onNativeReady];
@@ -56,16 +57,13 @@ function replaceNavigator(origNavigator) {
for (var key in origNavigator) {
if (typeof origNavigator[key] == 'function') {
newNavigator[key] = origNavigator[key].bind(origNavigator);
- } else {
+ }
+ else {
(function(k) {
- Object.defineProperty(newNavigator, k, {
- get: function() {
- return origNavigator[k];
- },
- configurable: true,
- enumerable: true
- });
- })(key);
+ utils.defineGetterSetter(newNavigator,key,function() {
+ return origNavigator[k];
+ });
+ })(key);
}
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org
[5/9] js commit: Upleveled amazon-fireos bridge.
Posted by ka...@apache.org.
Upleveled amazon-fireos bridge.
Project: http://git-wip-us.apache.org/repos/asf/cordova-js/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-js/commit/9da67a3a
Tree: http://git-wip-us.apache.org/repos/asf/cordova-js/tree/9da67a3a
Diff: http://git-wip-us.apache.org/repos/asf/cordova-js/diff/9da67a3a
Branch: refs/heads/3.7.x
Commit: 9da67a3ae34de1a91355f2a9f2fee8389f9dce54
Parents: 14fae3a
Author: Archana Naik <na...@lab126.com>
Authored: Mon Oct 27 14:27:15 2014 -0700
Committer: Archana Naik <na...@lab126.com>
Committed: Mon Oct 27 14:27:15 2014 -0700
----------------------------------------------------------------------
src/amazon-fireos/exec.js | 66 +++++++++++++++++-----------
src/amazon-fireos/platform.js | 11 +++++
src/amazon-fireos/plugin/android/app.js | 15 +++++++
3 files changed, 66 insertions(+), 26 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-js/blob/9da67a3a/src/amazon-fireos/exec.js
----------------------------------------------------------------------
diff --git a/src/amazon-fireos/exec.js b/src/amazon-fireos/exec.js
index eb7f862..856bd8e 100644
--- a/src/amazon-fireos/exec.js
+++ b/src/amazon-fireos/exec.js
@@ -180,6 +180,42 @@ androidExec.setNativeToJsBridgeMode = function(mode) {
}
};
+function buildPayload(payload, message) {
+ var payloadKind = message.charAt(0);
+ if (payloadKind == 's') {
+ payload.push(message.slice(1));
+ } else if (payloadKind == 't') {
+ payload.push(true);
+ } else if (payloadKind == 'f') {
+ payload.push(false);
+ } else if (payloadKind == 'N') {
+ payload.push(null);
+ } else if (payloadKind == 'n') {
+ payload.push(+message.slice(1));
+ } else if (payloadKind == 'A') {
+ var data = message.slice(1);
+ var bytes = window.atob(data);
+ var arraybuffer = new Uint8Array(bytes.length);
+ for (var i = 0; i < bytes.length; i++) {
+ arraybuffer[i] = bytes.charCodeAt(i);
+ }
+ payload.push(arraybuffer.buffer);
+ } else if (payloadKind == 'S') {
+ payload.push(window.atob(message.slice(1)));
+ } else if (payloadKind == 'M') {
+ var multipartMessages = message.slice(1);
+ while (multipartMessages !== "") {
+ var spaceIdx = multipartMessages.indexOf(' ');
+ var msgLen = +multipartMessages.slice(0, spaceIdx);
+ var multipartMessage = multipartMessages.substr(spaceIdx + 1, msgLen);
+ multipartMessages = multipartMessages.slice(spaceIdx + msgLen + 1);
+ buildPayload(payload, multipartMessage);
+ }
+ } else {
+ payload.push(JSON.parse(message));
+ }
+}
+
// Processes a single message, as encoded by NativeToJsMessageQueue.java.
function processMessage(message) {
try {
@@ -193,32 +229,10 @@ function processMessage(message) {
var status = +message.slice(2, spaceIdx);
var nextSpaceIdx = message.indexOf(' ', spaceIdx + 1);
var callbackId = message.slice(spaceIdx + 1, nextSpaceIdx);
- var payloadKind = message.charAt(nextSpaceIdx + 1);
- var payload;
- if (payloadKind == 's') {
- payload = message.slice(nextSpaceIdx + 2);
- } else if (payloadKind == 't') {
- payload = true;
- } else if (payloadKind == 'f') {
- payload = false;
- } else if (payloadKind == 'N') {
- payload = null;
- } else if (payloadKind == 'n') {
- payload = +message.slice(nextSpaceIdx + 2);
- } else if (payloadKind == 'A') {
- var data = message.slice(nextSpaceIdx + 2);
- var bytes = window.atob(data);
- var arraybuffer = new Uint8Array(bytes.length);
- for (var i = 0; i < bytes.length; i++) {
- arraybuffer[i] = bytes.charCodeAt(i);
- }
- payload = arraybuffer.buffer;
- } else if (payloadKind == 'S') {
- payload = window.atob(message.slice(nextSpaceIdx + 2));
- } else {
- payload = JSON.parse(message.slice(nextSpaceIdx + 1));
- }
- cordova.callbackFromNative(callbackId, success, status, [payload], keepCallback);
+ var payloadMessage = message.slice(nextSpaceIdx + 1);
+ var payload = [];
+ buildPayload(payload, payloadMessage);
+ cordova.callbackFromNative(callbackId, success, status, payload, keepCallback);
} else {
console.log("processMessage failed: invalid message: " + JSON.stringify(message));
}
http://git-wip-us.apache.org/repos/asf/cordova-js/blob/9da67a3a/src/amazon-fireos/platform.js
----------------------------------------------------------------------
diff --git a/src/amazon-fireos/platform.js b/src/amazon-fireos/platform.js
index e2e08c9..e380c2e 100644
--- a/src/amazon-fireos/platform.js
+++ b/src/amazon-fireos/platform.js
@@ -45,6 +45,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() {
http://git-wip-us.apache.org/repos/asf/cordova-js/blob/9da67a3a/src/amazon-fireos/plugin/android/app.js
----------------------------------------------------------------------
diff --git a/src/amazon-fireos/plugin/android/app.js b/src/amazon-fireos/plugin/android/app.js
index c2a4df5..7fccc40 100644
--- a/src/amazon-fireos/plugin/android/app.js
+++ b/src/amazon-fireos/plugin/android/app.js
@@ -84,6 +84,21 @@ module.exports = {
},
/**
+ * 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.
*/
exitApp:function() {
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org
[4/9] js commit: CB-7816: updated dependencies
Posted by ka...@apache.org.
CB-7816: updated dependencies
Project: http://git-wip-us.apache.org/repos/asf/cordova-js/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-js/commit/14fae3a3
Tree: http://git-wip-us.apache.org/repos/asf/cordova-js/tree/14fae3a3
Diff: http://git-wip-us.apache.org/repos/asf/cordova-js/diff/14fae3a3
Branch: refs/heads/3.7.x
Commit: 14fae3a3054dd4d0f8d236a5802ae80518c89b5c
Parents: 9429170
Author: Steve Gill <st...@gmail.com>
Authored: Fri Oct 24 12:02:09 2014 -0700
Committer: Steve Gill <st...@gmail.com>
Committed: Fri Oct 24 12:02:09 2014 -0700
----------------------------------------------------------------------
package.json | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-js/blob/14fae3a3/package.json
----------------------------------------------------------------------
diff --git a/package.json b/package.json
index b4e0dc2..c11f742 100644
--- a/package.json
+++ b/package.json
@@ -58,8 +58,8 @@
"jsdom-nogyp": "0.8.3",
"connect": "1.8.5",
"grunt": "0.4.1",
- "grunt-contrib-clean": "0.4.1",
- "grunt-contrib-jshint": "0.6.0"
+ "grunt-contrib-clean": "0.6.0",
+ "grunt-contrib-jshint": "0.10.0"
},
"dependencies": {
"uglify-js": "2.4.15",
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org
[2/9] js commit: CB-2520 - User agent-related changes for custom user
agents in iOS
Posted by ka...@apache.org.
CB-2520 - User agent-related changes for custom user agents in iOS
Signed-off-by: Shazron Abdullah <sh...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/cordova-js/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-js/commit/d9e2a1c2
Tree: http://git-wip-us.apache.org/repos/asf/cordova-js/tree/d9e2a1c2
Diff: http://git-wip-us.apache.org/repos/asf/cordova-js/diff/d9e2a1c2
Branch: refs/heads/3.7.x
Commit: d9e2a1c2401b986b5af09ecd6b4be60df2cbf131
Parents: 1b9dc0d
Author: Kevin Hawkins <kh...@salesforce.com>
Authored: Tue Oct 7 14:09:32 2014 -0700
Committer: Shazron Abdullah <sh...@apache.org>
Committed: Mon Oct 13 15:17:34 2014 -0700
----------------------------------------------------------------------
src/ios/exec.js | 11 ++---------
1 file changed, 2 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-js/blob/d9e2a1c2/src/ios/exec.js
----------------------------------------------------------------------
diff --git a/src/ios/exec.js b/src/ios/exec.js
index 89c2f35..e3e8b32 100644
--- a/src/ios/exec.js
+++ b/src/ios/exec.js
@@ -131,15 +131,8 @@ function convertMessageToArgsNativeToJs(message) {
}
function iOSExec() {
- // Use XHR for iOS 5 to work around a bug in -webkit-scroll.
- // Use IFRAME_NAV elsewhere since it's faster and XHR bridge
- // seems to have bugs in newer OS's (CB-3900, CB-3359, CB-5457, CB-4970, CB-4998, CB-5134)
if (bridgeMode === undefined) {
- if (navigator.userAgent) {
- bridgeMode = navigator.userAgent.indexOf(' 5_') == -1 ? jsToNativeModes.IFRAME_NAV: jsToNativeModes.XHR_NO_PAYLOAD;
- } else {
- bridgeMode = jsToNativeModes.IFRAME_NAV;
- }
+ bridgeMode = jsToNativeModes.IFRAME_NAV;
}
if (window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.cordova && window.webkit.messageHandlers.cordova.postMessage) {
@@ -230,7 +223,7 @@ function pokeNativeViaXhr() {
// Add a timestamp to the query param to prevent caching.
execXhr.open('HEAD', "/!gap_exec?" + (+new Date()), true);
if (!vcHeaderValue) {
- vcHeaderValue = /.*\((.*)\)/.exec(navigator.userAgent)[1];
+ vcHeaderValue = /.*\((.*)\)$/.exec(navigator.userAgent)[1];
}
execXhr.setRequestHeader('vc', vcHeaderValue);
execXhr.setRequestHeader('rc', ++requestCount);
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org
[9/9] js commit: CB-7988 Updated version and RELEASENOTES.md for
release 3.7.2
Posted by ka...@apache.org.
CB-7988 Updated version and RELEASENOTES.md for release 3.7.2
Project: http://git-wip-us.apache.org/repos/asf/cordova-js/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-js/commit/7afadfc0
Tree: http://git-wip-us.apache.org/repos/asf/cordova-js/tree/7afadfc0
Diff: http://git-wip-us.apache.org/repos/asf/cordova-js/diff/7afadfc0
Branch: refs/heads/3.7.x
Commit: 7afadfc044033741050bbe90e8656453ece258ac
Parents: f0ceadf
Author: Mark Koudritsky <ka...@gmail.com>
Authored: Fri Nov 7 11:38:43 2014 -0500
Committer: Mark Koudritsky <ka...@gmail.com>
Committed: Fri Nov 7 11:38:43 2014 -0500
----------------------------------------------------------------------
RELEASENOTES.md | 7 +++++++
package.json | 2 +-
2 files changed, 8 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-js/blob/7afadfc0/RELEASENOTES.md
----------------------------------------------------------------------
diff --git a/RELEASENOTES.md b/RELEASENOTES.md
index 0b682fd..ec349cb 100644
--- a/RELEASENOTES.md
+++ b/RELEASENOTES.md
@@ -20,6 +20,13 @@
-->
## Release Notes for Cordova JS ##
+### 3.7.2 (Nov 7, 2014)
+* CB-7868 Make <clobbers> on navigator not break on some versions of Android
+* CB-7868 Use utils.defineGetterSetter instead of Object.defineProperty
+* Upleveled amazon-fireos bridge.
+* CB-7735 Fix iOS bridge race condition when using innerHTML on <body>
+* CB-2520 - User agent-related changes for custom user agents in iOS
+
### 3.7.1 (Oct 10, 2014)
* added missing AL header
* removed console.log
http://git-wip-us.apache.org/repos/asf/cordova-js/blob/7afadfc0/package.json
----------------------------------------------------------------------
diff --git a/package.json b/package.json
index c11f742..2cb9a4c 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
"author": "Gord Tanner <gt...@gmail.com> (http://github.com/gtanner)",
"name": "cordova-js",
"description": "Cordova JavaScript: a unified JavaScript layer for the Cordova suite of projects enabling cross-platform native mobile development of applications using HTML, CSS and JavaScript.",
- "version": "3.7.2-dev",
+ "version": "3.7.2",
"homepage": "http://cordova.apache.org",
"repository": {
"type": "git",
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org
[7/9] js commit: Merge branch 'CB-7868' of
https://github.com/purplecabbage/cordova-js
Posted by ka...@apache.org.
Merge branch 'CB-7868' of https://github.com/purplecabbage/cordova-js
Project: http://git-wip-us.apache.org/repos/asf/cordova-js/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-js/commit/91157c2e
Tree: http://git-wip-us.apache.org/repos/asf/cordova-js/tree/91157c2e
Diff: http://git-wip-us.apache.org/repos/asf/cordova-js/diff/91157c2e
Branch: refs/heads/3.7.x
Commit: 91157c2e1bf3eb098c7e2ab31404e895ccb0df2a
Parents: 9da67a3 bd5a35f
Author: purplecabbage <pu...@gmail.com>
Authored: Mon Oct 27 16:50:45 2014 -0700
Committer: purplecabbage <pu...@gmail.com>
Committed: Mon Oct 27 16:50:45 2014 -0700
----------------------------------------------------------------------
src/common/init.js | 17 ++++++++---------
src/common/init_b.js | 16 +++++++---------
2 files changed, 15 insertions(+), 18 deletions(-)
----------------------------------------------------------------------
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org
[3/9] js commit: CB-7735 Fix iOS bridge race condition when using
innerHTML on
Posted by ka...@apache.org.
CB-7735 Fix iOS bridge race condition when using innerHTML on <body>
Project: http://git-wip-us.apache.org/repos/asf/cordova-js/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-js/commit/94291706
Tree: http://git-wip-us.apache.org/repos/asf/cordova-js/tree/94291706
Diff: http://git-wip-us.apache.org/repos/asf/cordova-js/diff/94291706
Branch: refs/heads/3.7.x
Commit: 94291706945c42fd47fa632ed30f5eb811080e95
Parents: d9e2a1c
Author: Andrew Grieve <ag...@chromium.org>
Authored: Tue Oct 14 16:39:06 2014 -0400
Committer: Andrew Grieve <ag...@chromium.org>
Committed: Tue Oct 14 16:39:48 2014 -0400
----------------------------------------------------------------------
src/ios/exec.js | 30 ++++++++++++++++++++++++------
1 file changed, 24 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-js/blob/94291706/src/ios/exec.js
----------------------------------------------------------------------
diff --git a/src/ios/exec.js b/src/ios/exec.js
index e3e8b32..5c7cc98 100644
--- a/src/ios/exec.js
+++ b/src/ios/exec.js
@@ -52,15 +52,20 @@ var cordova = require('cordova'),
commandQueue = [], // Contains pending JS->Native messages.
isInContextOfEvalJs = 0;
-function createExecIframe() {
+function createExecIframe(src, unloadListener) {
var iframe = document.createElement("iframe");
iframe.style.display = 'none';
+ // Both the unload listener and the src must be set before adding the iframe
+ // to the document in order to avoid race conditions. Callbacks from native
+ // can happen within the appendChild() call!
+ iframe.onunload = unloadListener;
+ iframe.src = src;
document.body.appendChild(iframe);
return iframe;
}
function createHashIframe() {
- var ret = createExecIframe();
+ var ret = createExecIframe('about:blank');
// Hash changes don't work on about:blank, so switch it to file:///.
ret.contentWindow.history.replaceState(null, null, 'file:///#');
return ret;
@@ -233,6 +238,11 @@ function pokeNativeViaXhr() {
execXhr.send(null);
}
+function onIframeUnload() {
+ execIframe = null;
+ setTimeout(pokeNativeViaIframe, 0);
+}
+
function pokeNativeViaIframe() {
// CB-5488 - Don't attempt to create iframe before document.body is available.
if (!document.body) {
@@ -240,6 +250,7 @@ function pokeNativeViaIframe() {
return;
}
if (bridgeMode === jsToNativeModes.IFRAME_HASH_NO_PAYLOAD || bridgeMode === jsToNativeModes.IFRAME_HASH_WITH_PAYLOAD) {
+ // TODO: This bridge mode doesn't properly support being removed from the DOM (CB-7735)
execHashIframe = execHashIframe || createHashIframe();
// Check if they've removed it from the DOM, and put it back if so.
if (!execHashIframe.contentWindow) {
@@ -253,12 +264,15 @@ function pokeNativeViaIframe() {
}
execHashIframe.contentWindow.location.hash = hashValue;
} else {
- execIframe = execIframe || createExecIframe();
// Check if they've removed it from the DOM, and put it back if so.
- if (!execIframe.contentWindow) {
- execIframe = createExecIframe();
+ if (execIframe && execIframe.contentWindow) {
+ // Listen for unload, since it can happen (CB-7735) that the iframe gets
+ // removed from the DOM before it gets a chance to poke the native side.
+ execIframe.contentWindow.onunload = onIframeUnload;
+ execIframe.src = 'gap://ready';
+ } else {
+ execIframe = createExecIframe('gap://ready', onIframeUnload);
}
- execIframe.src = "gap://ready";
}
}
@@ -276,6 +290,10 @@ iOSExec.setJsToNativeBridgeMode = function(mode) {
};
iOSExec.nativeFetchMessages = function() {
+ // Stop listing for window detatch once native side confirms poke.
+ if (execIframe && execIframe.contentWindow) {
+ execIframe.contentWindow.onunload = null;
+ }
// Each entry in commandQueue is a JSON string already.
if (!commandQueue.length) {
return '';
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org
[8/9] js commit: CB-7868 Make on navigator not break on
some versions of Android
Posted by ka...@apache.org.
CB-7868 Make <clobbers> on navigator not break on some versions of Android
Project: http://git-wip-us.apache.org/repos/asf/cordova-js/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-js/commit/f0ceadfd
Tree: http://git-wip-us.apache.org/repos/asf/cordova-js/tree/f0ceadfd
Diff: http://git-wip-us.apache.org/repos/asf/cordova-js/diff/f0ceadfd
Branch: refs/heads/3.7.x
Commit: f0ceadfd6f59c3bfc7db2922bfd08b4ea8cafe45
Parents: 91157c2
Author: Andrew Grieve <ag...@chromium.org>
Authored: Tue Nov 4 14:18:17 2014 -0500
Committer: Andrew Grieve <ag...@chromium.org>
Committed: Tue Nov 4 14:18:17 2014 -0500
----------------------------------------------------------------------
src/common/builder.js | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-js/blob/f0ceadfd/src/common/builder.js
----------------------------------------------------------------------
diff --git a/src/common/builder.js b/src/common/builder.js
index 826820d..75d3ea7 100644
--- a/src/common/builder.js
+++ b/src/common/builder.js
@@ -31,9 +31,14 @@ function each(objects, func, context) {
function clobber(obj, key, value) {
exports.replaceHookForTesting(obj, key);
- obj[key] = value;
+ var needsProperty = false;
+ try {
+ obj[key] = value;
+ } catch (e) {
+ needsProperty = true;
+ }
// Getters can only be overridden by getters.
- if (obj[key] !== value) {
+ if (needsProperty || obj[key] !== value) {
utils.defineGetter(obj, key, function() {
return value;
});
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org