diff --git a/www/themeablebrowser.js b/www/themeablebrowser.js index 2440b3ec7..113ba31f0 100644 --- a/www/themeablebrowser.js +++ b/www/themeablebrowser.js @@ -17,117 +17,141 @@ * specific language governing permissions and limitations * under the License. * -*/ + */ -var exec = require('cordova/exec'); -var channel = require('cordova/channel'); -var modulemapper = require('cordova/modulemapper'); -var urlutil = require('cordova/urlutil'); +var exec = require("cordova/exec"); +var channel = require("cordova/channel"); +var modulemapper = require("cordova/modulemapper"); +var urlutil = require("cordova/urlutil"); function ThemeableBrowser() { - this.channels = { - 'loadstart': channel.create('loadstart'), - 'loadstop' : channel.create('loadstop'), - 'loaderror' : channel.create('loaderror'), - 'exit' : channel.create('exit'), - 'message' : channel.create('message') - }; + this.channels = { + loadstart: channel.create("loadstart"), + loadstop: channel.create("loadstop"), + loaderror: channel.create("loaderror"), + exit: channel.create("exit"), + message: channel.create("message"), + }; } ThemeableBrowser.prototype = { - _eventHandler: function (event) { - if (event && (event.type in this.channels)) { - this.channels[event.type].fire(event); - } - }, - close: function (eventname) { - exec(null, null, 'ThemeableBrowser', 'close', []); - return this; - }, - show: function (eventname) { - exec(null, null, 'ThemeableBrowser', 'show', []); - return this; - }, - hide: function (eventname) { - exec(null, null, 'ThemeableBrowser', 'hide', []); - return this; - }, - reload: function (eventname) { - exec(null, null, 'ThemeableBrowser', 'reload', []); - return this; - }, - addEventListener: function (eventname,f) { - if (!(eventname in this.channels)) { - this.channels[eventname] = channel.create(eventname); - } - this.channels[eventname].subscribe(f); - return this; - }, - removeEventListener: function(eventname, f) { - if (eventname in this.channels) { - this.channels[eventname].unsubscribe(f); - } - return this; - }, - - executeScript: function(injectDetails, cb) { - if (injectDetails.code) { - exec(cb, null, 'ThemeableBrowser', 'injectScriptCode', [injectDetails.code, !!cb]); - } else if (injectDetails.file) { - exec(cb, null, 'ThemeableBrowser', 'injectScriptFile', [injectDetails.file, !!cb]); - } else { - throw new Error('executeScript requires exactly one of code or file to be specified'); - } - return this; - }, + _eventHandler: function (event) { + if (event && event.type in this.channels) { + this.channels[event.type].fire(event); + } + }, + close: function (eventname) { + exec(null, null, "ThemeableBrowser", "close", []); + return this; + }, + show: function (eventname) { + exec(null, null, "ThemeableBrowser", "show", []); + return this; + }, + hide: function (eventname) { + exec(null, null, "ThemeableBrowser", "hide", []); + return this; + }, + reload: function (eventname) { + exec(null, null, "ThemeableBrowser", "reload", []); + return this; + }, + addEventListener: function (eventname, f) { + if (!(eventname in this.channels)) { + this.channels[eventname] = channel.create(eventname); + } + this.channels[eventname].subscribe(f); + return this; + }, + removeEventListener: function (eventname, f) { + if (eventname in this.channels) { + this.channels[eventname].unsubscribe(f); + } + return this; + }, - insertCSS: function(injectDetails, cb) { - if (injectDetails.code) { - exec(cb, null, 'ThemeableBrowser', 'injectStyleCode', [injectDetails.code, !!cb]); - } else if (injectDetails.file) { - exec(cb, null, 'ThemeableBrowser', 'injectStyleFile', [injectDetails.file, !!cb]); - } else { - throw new Error('insertCSS requires exactly one of code or file to be specified'); - } - return this; - }, + executeScript: function (injectDetails, cb) { + if (injectDetails.code) { + exec(cb, null, "ThemeableBrowser", "injectScriptCode", [ + injectDetails.code, + !!cb, + ]); + } else if (injectDetails.file) { + exec(cb, null, "ThemeableBrowser", "injectScriptFile", [ + injectDetails.file, + !!cb, + ]); + } else { + throw new Error( + "executeScript requires exactly one of code or file to be specified" + ); + } + return this; + }, - changeButtonImage: function(buttonIndex, buttonProps){ - exec(null, null, 'ThemeableBrowser', 'changeButtonImage', [buttonIndex, buttonProps]); + insertCSS: function (injectDetails, cb) { + if (injectDetails.code) { + exec(cb, null, "ThemeableBrowser", "injectStyleCode", [ + injectDetails.code, + !!cb, + ]); + } else if (injectDetails.file) { + exec(cb, null, "ThemeableBrowser", "injectStyleFile", [ + injectDetails.file, + !!cb, + ]); + } else { + throw new Error( + "insertCSS requires exactly one of code or file to be specified" + ); } + return this; + }, + + changeButtonImage: function (buttonIndex, buttonProps) { + exec(null, null, "ThemeableBrowser", "changeButtonImage", [ + buttonIndex, + buttonProps, + ]); + }, }; -exports.open = function(strUrl, strWindowName, strWindowFeatures, callbacks) { - // Don't catch calls that write to existing frames (e.g. named iframes). - if (window.frames && window.frames[strWindowName]) { - var origOpenFunc = modulemapper.getOriginalSymbol(window, 'open'); - return origOpenFunc.apply(window, arguments); - } +exports.open = function (strUrl, strWindowName, strWindowFeatures, callbacks) { + // Don't catch calls that write to existing frames (e.g. named iframes). + if (window.frames && window.frames[strWindowName]) { + var origOpenFunc = modulemapper.getOriginalSymbol(window, "open"); + return origOpenFunc.apply(window, arguments); + } - strUrl = urlutil.makeAbsolute(strUrl); - var iab = new ThemeableBrowser(); + strUrl = urlutil.makeAbsolute(strUrl); + var iab = new ThemeableBrowser(); - callbacks = callbacks || {}; - for (var callbackName in callbacks) { - iab.addEventListener(callbackName, callbacks[callbackName]); - } + callbacks = callbacks || {}; + for (var callbackName in callbacks) { + iab.addEventListener(callbackName, callbacks[callbackName]); + } + + var cb = function (eventname) { + iab._eventHandler(eventname); + }; - var cb = function(eventname) { - iab._eventHandler(eventname); - }; + strWindowFeatures = strWindowFeatures && JSON.stringify(strWindowFeatures); + // Slightly delay the actual native call to give the user a chance to + // register event listeners first, otherwise some warnings or errors may be missed. + setTimeout(function () { + exec(cb, cb, "ThemeableBrowser", "open", [ + strUrl, + strWindowName, + strWindowFeatures || "", + ]); + }, 0); - strWindowFeatures = strWindowFeatures && JSON.stringify(strWindowFeatures); - // Slightly delay the actual native call to give the user a chance to - // register event listeners first, otherwise some warnings or errors may be missed. - setTimeout(function() { - exec(cb, cb, 'ThemeableBrowser', 'open', [strUrl, strWindowName, strWindowFeatures || '']); - }, 0); - return iab; + return iab; }; -exports.EVT_ERR = 'ThemeableBrowserError'; -exports.EVT_WRN = 'ThemeableBrowserWarning'; -exports.ERR_CRITICAL = 'critical'; -exports.ERR_LOADFAIL = 'loadfail'; -exports.WRN_UNEXPECTED = 'unexpected'; -exports.WRN_UNDEFINED = 'undefined'; +exports.EVT_ERR = "ThemeableBrowserError"; +exports.EVT_WRN = "ThemeableBrowserWarning"; +exports.ERR_CRITICAL = "critical"; +exports.ERR_LOADFAIL = "loadfail"; +exports.WRN_UNEXPECTED = "unexpected"; +exports.WRN_UNDEFINED = "undefined";