You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by st...@apache.org on 2013/08/24 00:14:21 UTC
[1/3] js commit: platform.js
Updated Branches:
refs/heads/ffos [created] 3be32a335
platform.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/db0e689b
Tree: http://git-wip-us.apache.org/repos/asf/cordova-js/tree/db0e689b
Diff: http://git-wip-us.apache.org/repos/asf/cordova-js/diff/db0e689b
Branch: refs/heads/ffos
Commit: db0e689bc41db26b910168055c62220869c279ef
Parents: 7d5f6f6
Author: Piotr Zalewa <pi...@zalewa.info>
Authored: Fri Aug 16 19:08:12 2013 +0200
Committer: Piotr Zalewa <pi...@zalewa.info>
Committed: Fri Aug 16 19:08:12 2013 +0200
----------------------------------------------------------------------
lib/firefoxos/platform.js | 37 +++++++++++++++++++++++++++++++++++++
1 file changed, 37 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-js/blob/db0e689b/lib/firefoxos/platform.js
----------------------------------------------------------------------
diff --git a/lib/firefoxos/platform.js b/lib/firefoxos/platform.js
new file mode 100644
index 0000000..a9829c6
--- /dev/null
+++ b/lib/firefoxos/platform.js
@@ -0,0 +1,37 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "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.
+ *
+*/
+
+module.exports = {
+ id: 'firefoxos',
+ bootstrap: function() {
+ var channel = require('cordova/channel'),
+ cordova = require('cordova'),
+ exec = require('cordova/exec'),
+ modulemapper = require('cordova/modulemapper');
+
+ // Tell the JS that the native side is ready.
+ channel.onNativeReady.fire();
+
+ // TODO: Extract this as a proper plugin.
+ // modulemapper.clobbers('cordova/plugin/firefoxos/app', 'navigator.app');
+
+ }
+};
[3/3] js commit: override init.js in the firefoxos platform for
navigator fix, other bugfixes
Posted by st...@apache.org.
override init.js in the firefoxos platform for navigator fix, other bugfixes
Project: http://git-wip-us.apache.org/repos/asf/cordova-js/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-js/commit/3be32a33
Tree: http://git-wip-us.apache.org/repos/asf/cordova-js/tree/3be32a33
Diff: http://git-wip-us.apache.org/repos/asf/cordova-js/diff/3be32a33
Branch: refs/heads/ffos
Commit: 3be32a335de9e1297b8e268c90af9dfb0ba02883
Parents: c8a0313
Author: James Long <lo...@gmail.com>
Authored: Wed Aug 21 15:19:08 2013 -0400
Committer: James Long <lo...@gmail.com>
Committed: Wed Aug 21 15:19:08 2013 -0400
----------------------------------------------------------------------
lib/firefoxos/exec.js | 3 +
lib/firefoxos/init.js | 142 +++++++++++++++++++++++++++++++++++++++++
lib/firefoxos/platform.js | 12 +---
3 files changed, 146 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-js/blob/3be32a33/lib/firefoxos/exec.js
----------------------------------------------------------------------
diff --git a/lib/firefoxos/exec.js b/lib/firefoxos/exec.js
new file mode 100644
index 0000000..ab3311b
--- /dev/null
+++ b/lib/firefoxos/exec.js
@@ -0,0 +1,3 @@
+module.exports = function() {
+ console.log('exec not implemented yet');
+}
http://git-wip-us.apache.org/repos/asf/cordova-js/blob/3be32a33/lib/firefoxos/init.js
----------------------------------------------------------------------
diff --git a/lib/firefoxos/init.js b/lib/firefoxos/init.js
new file mode 100644
index 0000000..b25d4af
--- /dev/null
+++ b/lib/firefoxos/init.js
@@ -0,0 +1,142 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "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.
+ *
+*/
+
+/*
+ * This file has been copied into the firefoxos platform and patched
+ * to fix a problem with replacing the navigator object. We will have
+ * to keep this file up-to-date with the common init.js.
+ */
+
+var channel = require('cordova/channel');
+var cordova = require('cordova');
+var modulemapper = require('cordova/modulemapper');
+var platform = require('cordova/platform');
+var pluginloader = require('cordova/pluginloader');
+
+var platformInitChannelsArray = [channel.onNativeReady, channel.onPluginsReady];
+
+function logUnfiredChannels(arr) {
+ for (var i = 0; i < arr.length; ++i) {
+ if (arr[i].state != 2) {
+ console.log('Channel not fired: ' + arr[i].type);
+ }
+ }
+}
+
+window.setTimeout(function() {
+ if (channel.onDeviceReady.state != 2) {
+ console.log('deviceready has not fired after 5 seconds.');
+ logUnfiredChannels(platformInitChannelsArray);
+ logUnfiredChannels(channel.deviceReadyChannelsArray);
+ }
+}, 5000);
+
+// Replace navigator before any modules are required(), to ensure it happens as soon as possible.
+// We replace it so that properties that can't be clobbered can instead be overridden.
+function replaceNavigator(origNavigator) {
+ var CordovaNavigator = function() {};
+ CordovaNavigator.prototype = origNavigator;
+ var newNavigator = new CordovaNavigator();
+ // This work-around really only applies to new APIs that are newer than Function.bind.
+ // Without it, APIs such as getGamepads() break.
+ if (CordovaNavigator.bind) {
+ for (var key in origNavigator) {
+ try {
+ if (typeof origNavigator[key] == 'function') {
+ newNavigator[key] = origNavigator[key].bind(origNavigator);
+ }
+ } catch(e) {
+ // This try/catch was added for Firefox OS 1.0 and 1.1
+ // because it throws an security exception when trying
+ // to access a few properties of the navigator object.
+ // It has been fixed in 1.2.
+ }
+ }
+ }
+ return newNavigator;
+}
+if (window.navigator) {
+ window.navigator = replaceNavigator(window.navigator);
+}
+
+if (!window.console) {
+ window.console = {
+ log: function(){}
+ };
+}
+if (!window.console.warn) {
+ window.console.warn = function(msg) {
+ this.log("warn: " + msg);
+ };
+}
+
+// Register pause, resume and deviceready channels as events on document.
+channel.onPause = cordova.addDocumentEventHandler('pause');
+channel.onResume = cordova.addDocumentEventHandler('resume');
+channel.onDeviceReady = cordova.addStickyDocumentEventHandler('deviceready');
+
+// Listen for DOMContentLoaded and notify our channel subscribers.
+if (document.readyState == 'complete' || document.readyState == 'interactive') {
+ channel.onDOMContentLoaded.fire();
+} else {
+ document.addEventListener('DOMContentLoaded', function() {
+ channel.onDOMContentLoaded.fire();
+ }, false);
+}
+
+// _nativeReady is global variable that the native side can set
+// to signify that the native code is ready. It is a global since
+// it may be called before any cordova JS is ready.
+if (window._nativeReady) {
+ channel.onNativeReady.fire();
+}
+
+modulemapper.clobbers('cordova', 'cordova');
+modulemapper.clobbers('cordova/exec', 'cordova.exec');
+modulemapper.clobbers('cordova/exec', 'Cordova.exec');
+
+// Call the platform-specific initialization.
+platform.bootstrap && platform.bootstrap();
+
+pluginloader.load(function() {
+ channel.onPluginsReady.fire();
+});
+
+/**
+ * Create all cordova objects once native side is ready.
+ */
+channel.join(function() {
+ modulemapper.mapModules(window);
+
+ platform.initialize && platform.initialize();
+
+ // Fire event to notify that all objects are created
+ channel.onCordovaReady.fire();
+
+ // Fire onDeviceReady event once page has fully loaded, all
+ // constructors have run and cordova info has been received from native
+ // side.
+ channel.join(function() {
+ require('cordova').fireDocumentEvent('deviceready');
+ }, channel.deviceReadyChannelsArray);
+
+}, platformInitChannelsArray);
+
http://git-wip-us.apache.org/repos/asf/cordova-js/blob/3be32a33/lib/firefoxos/platform.js
----------------------------------------------------------------------
diff --git a/lib/firefoxos/platform.js b/lib/firefoxos/platform.js
index a9829c6..4903014 100644
--- a/lib/firefoxos/platform.js
+++ b/lib/firefoxos/platform.js
@@ -22,16 +22,6 @@
module.exports = {
id: 'firefoxos',
bootstrap: function() {
- var channel = require('cordova/channel'),
- cordova = require('cordova'),
- exec = require('cordova/exec'),
- modulemapper = require('cordova/modulemapper');
-
- // Tell the JS that the native side is ready.
- channel.onNativeReady.fire();
-
- // TODO: Extract this as a proper plugin.
- // modulemapper.clobbers('cordova/plugin/firefoxos/app', 'navigator.app');
-
+ require('cordova/channel').onNativeReady.fire();
}
};
[2/3] js commit: add firefoxos to gruntfile
Posted by st...@apache.org.
add firefoxos to gruntfile
Project: http://git-wip-us.apache.org/repos/asf/cordova-js/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-js/commit/c8a03133
Tree: http://git-wip-us.apache.org/repos/asf/cordova-js/tree/c8a03133
Diff: http://git-wip-us.apache.org/repos/asf/cordova-js/diff/c8a03133
Branch: refs/heads/ffos
Commit: c8a0313389c657d2a65254416fd6f68d5a7dd851
Parents: db0e689
Author: James Long <lo...@gmail.com>
Authored: Fri Aug 16 13:19:33 2013 -0400
Committer: James Long <lo...@gmail.com>
Committed: Fri Aug 16 13:19:33 2013 -0400
----------------------------------------------------------------------
Gruntfile.js | 1 +
1 file changed, 1 insertion(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-js/blob/c8a03133/Gruntfile.js
----------------------------------------------------------------------
diff --git a/Gruntfile.js b/Gruntfile.js
index 94da640..9afeded 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -32,6 +32,7 @@ module.exports = function(grunt) {
"test": {},
"windows8": { useWindowsLineEndings: true },
"windowsphone": { useWindowsLineEndings: true },
+ "firefoxos": {}
},
clean: ['pkg'],
jshint: {