mirror of
https://github.com/apache/cordova-android.git
synced 2025-02-22 00:32:55 +08:00
Update JS snapshot to version 2.9.0rc1 (via coho)
This commit is contained in:
parent
3ace9348f6
commit
03c5208d47
127
framework/assets/www/cordova.js
vendored
127
framework/assets/www/cordova.js
vendored
@ -1,5 +1,5 @@
|
|||||||
// Platform: android
|
// Platform: android
|
||||||
// 2.7.0rc1-75-g76065a1
|
// 2.9.0rc1-0-g002f33d
|
||||||
/*
|
/*
|
||||||
Licensed to the Apache Software Foundation (ASF) under one
|
Licensed to the Apache Software Foundation (ASF) under one
|
||||||
or more contributor license agreements. See the NOTICE file
|
or more contributor license agreements. See the NOTICE file
|
||||||
@ -19,7 +19,7 @@
|
|||||||
under the License.
|
under the License.
|
||||||
*/
|
*/
|
||||||
;(function() {
|
;(function() {
|
||||||
var CORDOVA_JS_BUILD_LABEL = '2.7.0rc1-75-g76065a1';
|
var CORDOVA_JS_BUILD_LABEL = '2.9.0rc1-0-g002f33d';
|
||||||
// file: lib/scripts/require.js
|
// file: lib/scripts/require.js
|
||||||
|
|
||||||
var require,
|
var require,
|
||||||
@ -2396,11 +2396,7 @@ function initRead(reader, file) {
|
|||||||
reader._error = null;
|
reader._error = null;
|
||||||
reader._readyState = FileReader.LOADING;
|
reader._readyState = FileReader.LOADING;
|
||||||
|
|
||||||
if (typeof file == 'string') {
|
if (typeof file.fullPath == 'string') {
|
||||||
// Deprecated in Cordova 2.4.
|
|
||||||
console.warn('Using a string argument with FileReader.readAs functions is deprecated.');
|
|
||||||
reader._fileName = file;
|
|
||||||
} else if (typeof file.fullPath == 'string') {
|
|
||||||
reader._fileName = file.fullPath;
|
reader._fileName = file.fullPath;
|
||||||
} else {
|
} else {
|
||||||
reader._fileName = '';
|
reader._fileName = '';
|
||||||
@ -3063,9 +3059,31 @@ FileWriter.prototype.abort = function() {
|
|||||||
/**
|
/**
|
||||||
* Writes data to the file
|
* Writes data to the file
|
||||||
*
|
*
|
||||||
* @param text to be written
|
* @param data text or blob to be written
|
||||||
*/
|
*/
|
||||||
FileWriter.prototype.write = function(text) {
|
FileWriter.prototype.write = function(data) {
|
||||||
|
|
||||||
|
var isBinary = false;
|
||||||
|
|
||||||
|
// If we don't have Blob or ArrayBuffer support, don't bother.
|
||||||
|
if (typeof window.Blob !== 'undefined' && typeof window.ArrayBuffer !== 'undefined') {
|
||||||
|
|
||||||
|
// Check to see if the incoming data is a blob
|
||||||
|
if (data instanceof Blob) {
|
||||||
|
var that=this;
|
||||||
|
var fileReader = new FileReader();
|
||||||
|
fileReader.onload = function() {
|
||||||
|
// Call this method again, with the arraybuffer as argument
|
||||||
|
FileWriter.prototype.write.call(that, this.result);
|
||||||
|
};
|
||||||
|
fileReader.readAsArrayBuffer(data);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Mark data type for safer transport over the binary bridge
|
||||||
|
isBinary = (data instanceof ArrayBuffer);
|
||||||
|
}
|
||||||
|
|
||||||
// Throw an exception if we are already writing a file
|
// Throw an exception if we are already writing a file
|
||||||
if (this.readyState === FileWriter.WRITING) {
|
if (this.readyState === FileWriter.WRITING) {
|
||||||
throw new FileError(FileError.INVALID_STATE_ERR);
|
throw new FileError(FileError.INVALID_STATE_ERR);
|
||||||
@ -3131,7 +3149,7 @@ FileWriter.prototype.write = function(text) {
|
|||||||
if (typeof me.onwriteend === "function") {
|
if (typeof me.onwriteend === "function") {
|
||||||
me.onwriteend(new ProgressEvent("writeend", {"target":me}));
|
me.onwriteend(new ProgressEvent("writeend", {"target":me}));
|
||||||
}
|
}
|
||||||
}, "File", "write", [this.fileName, text, this.position]);
|
}, "File", "write", [this.fileName, data, this.position, isBinary]);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -3317,6 +3335,9 @@ InAppBrowser.prototype = {
|
|||||||
close: function (eventname) {
|
close: function (eventname) {
|
||||||
exec(null, null, "InAppBrowser", "close", []);
|
exec(null, null, "InAppBrowser", "close", []);
|
||||||
},
|
},
|
||||||
|
show: function (eventname) {
|
||||||
|
exec(null, null, "InAppBrowser", "show", []);
|
||||||
|
},
|
||||||
addEventListener: function (eventname,f) {
|
addEventListener: function (eventname,f) {
|
||||||
if (eventname in this.channels) {
|
if (eventname in this.channels) {
|
||||||
this.channels[eventname].subscribe(f);
|
this.channels[eventname].subscribe(f);
|
||||||
@ -6780,11 +6801,21 @@ require('cordova/channel').onNativeReady.fire();
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function scriptErrorCallback(err) {
|
||||||
|
// Open Question: If a script path specified in cordova_plugins.js does not exist, do we fail for all?
|
||||||
|
// this is currently just continuing.
|
||||||
|
scriptCounter--;
|
||||||
|
if (scriptCounter === 0) {
|
||||||
|
onScriptLoadingComplete && onScriptLoadingComplete();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Helper function to inject a <script> tag.
|
// Helper function to inject a <script> tag.
|
||||||
function injectScript(path) {
|
function injectScript(path) {
|
||||||
scriptCounter++;
|
scriptCounter++;
|
||||||
var script = document.createElement("script");
|
var script = document.createElement("script");
|
||||||
script.onload = scriptLoadedCallback;
|
script.onload = scriptLoadedCallback;
|
||||||
|
script.onerror = scriptErrorCallback;
|
||||||
script.src = path;
|
script.src = path;
|
||||||
document.head.appendChild(script);
|
document.head.appendChild(script);
|
||||||
}
|
}
|
||||||
@ -6796,10 +6827,10 @@ require('cordova/channel').onNativeReady.fire();
|
|||||||
context.cordova.require('cordova/channel').onPluginsReady.fire();
|
context.cordova.require('cordova/channel').onPluginsReady.fire();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Handler for the cordova_plugins.json content.
|
// Handler for the cordova_plugins.js content.
|
||||||
// See plugman's plugin_loader.js for the details of this object.
|
// See plugman's plugin_loader.js for the details of this object.
|
||||||
// This function is only called if the really is a plugins array that isn't empty.
|
// This function is only called if the really is a plugins array that isn't empty.
|
||||||
// Otherwise the XHR response handler will just call finishPluginLoading().
|
// Otherwise the onerror response handler will just call finishPluginLoading().
|
||||||
function handlePluginsObject(modules, path) {
|
function handlePluginsObject(modules, path) {
|
||||||
// First create the callback for when all plugins are loaded.
|
// First create the callback for when all plugins are loaded.
|
||||||
var mapper = context.cordova.require('cordova/modulemapper');
|
var mapper = context.cordova.require('cordova/modulemapper');
|
||||||
@ -6807,26 +6838,31 @@ require('cordova/channel').onNativeReady.fire();
|
|||||||
// Loop through all the plugins and then through their clobbers and merges.
|
// Loop through all the plugins and then through their clobbers and merges.
|
||||||
for (var i = 0; i < modules.length; i++) {
|
for (var i = 0; i < modules.length; i++) {
|
||||||
var module = modules[i];
|
var module = modules[i];
|
||||||
if (!module) continue;
|
if (module) {
|
||||||
|
try {
|
||||||
|
if (module.clobbers && module.clobbers.length) {
|
||||||
|
for (var j = 0; j < module.clobbers.length; j++) {
|
||||||
|
mapper.clobbers(module.id, module.clobbers[j]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (module.clobbers && module.clobbers.length) {
|
if (module.merges && module.merges.length) {
|
||||||
for (var j = 0; j < module.clobbers.length; j++) {
|
for (var k = 0; k < module.merges.length; k++) {
|
||||||
mapper.clobbers(module.id, module.clobbers[j]);
|
mapper.merges(module.id, module.merges[k]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Finally, if runs is truthy we want to simply require() the module.
|
||||||
|
// This can be skipped if it had any merges or clobbers, though,
|
||||||
|
// since the mapper will already have required the module.
|
||||||
|
if (module.runs && !(module.clobbers && module.clobbers.length) && !(module.merges && module.merges.length)) {
|
||||||
|
context.cordova.require(module.id);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
catch(err) {
|
||||||
|
// error with module, most likely clobbers, should we continue?
|
||||||
if (module.merges && module.merges.length) {
|
|
||||||
for (var k = 0; k < module.merges.length; k++) {
|
|
||||||
mapper.merges(module.id, module.merges[k]);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Finally, if runs is truthy we want to simply require() the module.
|
|
||||||
// This can be skipped if it had any merges or clobbers, though,
|
|
||||||
// since the mapper will already have required the module.
|
|
||||||
if (module.runs && !(module.clobbers && module.clobbers.length) && !(module.merges && module.merges.length)) {
|
|
||||||
context.cordova.require(module.id);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
finishPluginLoading();
|
finishPluginLoading();
|
||||||
@ -6849,6 +6885,33 @@ require('cordova/channel').onNativeReady.fire();
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var plugins_json = path + 'cordova_plugins.json';
|
||||||
|
var plugins_js = path + 'cordova_plugins.js';
|
||||||
|
|
||||||
|
// One some phones (Windows) this xhr.open throws an Access Denied exception
|
||||||
|
// So lets keep trying, but with a script tag injection technique instead of XHR
|
||||||
|
var injectPluginScript = function injectPluginScript() {
|
||||||
|
try {
|
||||||
|
var script = document.createElement("script");
|
||||||
|
script.onload = function(){
|
||||||
|
var list = cordova.require("cordova/plugin_list");
|
||||||
|
handlePluginsObject(list,path);
|
||||||
|
};
|
||||||
|
script.onerror = function() {
|
||||||
|
// Error loading cordova_plugins.js, file not found or something
|
||||||
|
// this is an acceptable error, pre-3.0.0, so we just move on.
|
||||||
|
finishPluginLoading();
|
||||||
|
};
|
||||||
|
script.src = plugins_js;
|
||||||
|
document.head.appendChild(script);
|
||||||
|
|
||||||
|
} catch(err){
|
||||||
|
finishPluginLoading();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Try to XHR the cordova_plugins.json file asynchronously.
|
// Try to XHR the cordova_plugins.json file asynchronously.
|
||||||
var xhr = new XMLHttpRequest();
|
var xhr = new XMLHttpRequest();
|
||||||
xhr.onload = function() {
|
xhr.onload = function() {
|
||||||
@ -6867,14 +6930,16 @@ require('cordova/channel').onNativeReady.fire();
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
xhr.onerror = function() {
|
xhr.onerror = function() {
|
||||||
finishPluginLoading();
|
// In this case, the json file was not present, but XHR was allowed,
|
||||||
|
// so we should still try the script injection technique with the js file
|
||||||
|
// in case that is there.
|
||||||
|
injectPluginScript();
|
||||||
};
|
};
|
||||||
var plugins_json = path + 'cordova_plugins.json';
|
|
||||||
try { // we commented we were going to try, so let us actually try and catch
|
try { // we commented we were going to try, so let us actually try and catch
|
||||||
xhr.open('GET', plugins_json, true); // Async
|
xhr.open('GET', plugins_json, true); // Async
|
||||||
xhr.send();
|
xhr.send();
|
||||||
} catch(err){
|
} catch(err){
|
||||||
finishPluginLoading();
|
injectPluginScript();
|
||||||
}
|
}
|
||||||
}(window));
|
}(window));
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user