diff --git a/.eslintrc.yml b/.eslintrc.yml
index 0cccb8c..17277f7 100644
--- a/.eslintrc.yml
+++ b/.eslintrc.yml
@@ -1,10 +1,23 @@
+# 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.
+
root: true
-extends: semistandard
-rules:
- indent:
- - error
- - 4
- camelcase: off
- padded-blocks: off
- operator-linebreak: off
- no-throw-literal: off
\ No newline at end of file
+extends: '@cordova/eslint-config/browser'
+
+overrides:
+ - files: [tests/**/*.js]
+ extends: '@cordova/eslint-config/node-tests'
diff --git a/package.json b/package.json
index 1dbacf7..2d8f097 100644
--- a/package.json
+++ b/package.json
@@ -34,8 +34,8 @@
"cordova-windows"
],
"scripts": {
- "test": "npm run eslint",
- "eslint": "node node_modules/eslint/bin/eslint www && node node_modules/eslint/bin/eslint src && node node_modules/eslint/bin/eslint tests"
+ "test": "npm run lint",
+ "lint": "eslint ."
},
"engines": {
"cordovaDependencies": {
@@ -54,12 +54,6 @@
"author": "Apache Software Foundation",
"license": "Apache-2.0",
"devDependencies": {
- "eslint": "^4.0.0",
- "eslint-config-semistandard": "^11.0.0",
- "eslint-config-standard": "^10.2.1",
- "eslint-plugin-import": "^2.3.0",
- "eslint-plugin-node": "^5.0.0",
- "eslint-plugin-promise": "^3.5.0",
- "eslint-plugin-standard": "^3.0.1"
+ "@cordova/eslint-config": "^3.0.0"
}
}
diff --git a/src/browser/InAppBrowserProxy.js b/src/browser/InAppBrowserProxy.js
index 1c62574..9b95b35 100644
--- a/src/browser/InAppBrowserProxy.js
+++ b/src/browser/InAppBrowserProxy.js
@@ -17,43 +17,37 @@
* specific language governing permissions and limitations
* under the License.
*
-*/
+ */
var modulemapper = require('cordova/modulemapper');
-var browserWrap,
- popup,
- navigationButtonsDiv,
- navigationButtonsDivInner,
- backButton,
- forwardButton,
- closeButton;
+var browserWrap, popup, navigationButtonsDiv, navigationButtonsDivInner, backButton, forwardButton, closeButton;
function attachNavigationEvents (element, callback) {
var onError = function () {
try {
- callback({ type: 'loaderror', url: this.contentWindow.location.href }, {keepCallback: true}); // eslint-disable-line standard/no-callback-literal
+ callback({ type: 'loaderror', url: this.contentWindow.location.href }, { keepCallback: true }); // eslint-disable-line standard/no-callback-literal
} catch (err) {
// blocked by CORS :\
- callback({ type: 'loaderror', url: null }, {keepCallback: true}); // eslint-disable-line standard/no-callback-literal
+ callback({ type: 'loaderror', url: null }, { keepCallback: true }); // eslint-disable-line standard/no-callback-literal
}
};
element.addEventListener('pageshow', function () {
try {
- callback({ type: 'loadstart', url: this.contentWindow.location.href }, {keepCallback: true}); // eslint-disable-line standard/no-callback-literal
+ callback({ type: 'loadstart', url: this.contentWindow.location.href }, { keepCallback: true }); // eslint-disable-line standard/no-callback-literal
} catch (err) {
// blocked by CORS :\
- callback({ type: 'loadstart', url: null }, {keepCallback: true}); // eslint-disable-line standard/no-callback-literal
+ callback({ type: 'loadstart', url: null }, { keepCallback: true }); // eslint-disable-line standard/no-callback-literal
}
});
element.addEventListener('load', function () {
try {
- callback({ type: 'loadstop', url: this.contentWindow.location.href }, {keepCallback: true}); // eslint-disable-line standard/no-callback-literal
+ callback({ type: 'loadstop', url: this.contentWindow.location.href }, { keepCallback: true }); // eslint-disable-line standard/no-callback-literal
} catch (err) {
// blocked by CORS :\
- callback({ type: 'loadstop', url: null }, {keepCallback: true}); // eslint-disable-line standard/no-callback-literal
+ callback({ type: 'loadstop', url: null }, { keepCallback: true }); // eslint-disable-line standard/no-callback-literal
}
});
@@ -153,7 +147,9 @@ var IAB = {
backButton.innerHTML = '←';
backButton.addEventListener('click', function (e) {
- if (popup.canGoBack) { popup.goBack(); }
+ if (popup.canGoBack) {
+ popup.goBack();
+ }
});
forwardButton = document.createElement('button');
@@ -164,7 +160,9 @@ var IAB = {
forwardButton.innerHTML = '→';
forwardButton.addEventListener('click', function (e) {
- if (popup.canGoForward) { popup.goForward(); }
+ if (popup.canGoForward) {
+ popup.goForward();
+ }
});
closeButton = document.createElement('button');
diff --git a/src/windows/InAppBrowserProxy.js b/src/windows/InAppBrowserProxy.js
index 9e544c5..29277be 100644
--- a/src/windows/InAppBrowserProxy.js
+++ b/src/windows/InAppBrowserProxy.js
@@ -17,11 +17,10 @@
* specific language governing permissions and limitations
* under the License.
*
-*/
+ */
-/* jslint sloppy:true */
-/* global Windows:true, setImmediate */
-/* eslint standard/no-callback-literal : 0 */
+/* eslint-disable standard/no-callback-literal */
+/* global Windows, setImmediate */
var cordova = require('cordova');
var urlutil = require('cordova/urlutil');
@@ -44,21 +43,32 @@ var isWebViewAvailable = cordova.platformId === 'windows';
function attachNavigationEvents (element, callback) {
if (isWebViewAvailable) {
element.addEventListener('MSWebViewNavigationStarting', function (e) {
- callback({ type: 'loadstart', url: e.uri }, {keepCallback: true});
+ callback({ type: 'loadstart', url: e.uri }, { keepCallback: true });
});
element.addEventListener('MSWebViewNavigationCompleted', function (e) {
if (e.isSuccess) {
callback({ type: 'loadstop', url: e.uri }, { keepCallback: true });
} else {
- callback({ type: 'loaderror', url: e.uri, code: e.webErrorStatus, message: 'Navigation failed with error code ' + e.webErrorStatus }, { keepCallback: true });
+ callback(
+ {
+ type: 'loaderror',
+ url: e.uri,
+ code: e.webErrorStatus,
+ message: 'Navigation failed with error code ' + e.webErrorStatus
+ },
+ { keepCallback: true }
+ );
}
});
element.addEventListener('MSWebViewUnviewableContentIdentified', function (e) {
// WebView found the content to be not HTML.
// http://msdn.microsoft.com/en-us/library/windows/apps/dn609716.aspx
- callback({ type: 'loaderror', url: e.uri, code: e.webErrorStatus, message: 'Navigation failed with error code ' + e.webErrorStatus }, { keepCallback: true });
+ callback(
+ { type: 'loaderror', url: e.uri, code: e.webErrorStatus, message: 'Navigation failed with error code ' + e.webErrorStatus },
+ { keepCallback: true }
+ );
});
element.addEventListener('MSWebViewContentLoading', function (e) {
@@ -78,15 +88,15 @@ function attachNavigationEvents (element, callback) {
});
} else {
var onError = function () {
- callback({ type: 'loaderror', url: this.contentWindow.location }, {keepCallback: true});
+ callback({ type: 'loaderror', url: this.contentWindow.location }, { keepCallback: true });
};
element.addEventListener('unload', function () {
- callback({ type: 'loadstart', url: this.contentWindow.location }, {keepCallback: true});
+ callback({ type: 'loadstart', url: this.contentWindow.location }, { keepCallback: true });
});
element.addEventListener('load', function () {
- callback({ type: 'loadstop', url: this.contentWindow.location }, {keepCallback: true});
+ callback({ type: 'loadstop', url: this.contentWindow.location }, { keepCallback: true });
});
element.addEventListener('error', onError);
@@ -175,7 +185,8 @@ var IAB = {
}
popup = document.createElement(isWebViewAvailable ? 'x-ms-webview' : 'iframe');
- if (popup instanceof HTMLIFrameElement) { // eslint-disable-line no-undef
+ if (popup instanceof HTMLIFrameElement) {
+ // eslint-disable-line no-undef
// For iframe we need to override bacground color of parent element here
// otherwise pages without background color set will have transparent background
popup.style.backgroundColor = 'white';
@@ -240,14 +251,18 @@ var IAB = {
backButton.innerText = 'back';
backButton.className = 'app-bar-action action-back';
backButton.addEventListener('click', function (e) {
- if (popup.canGoBack) { popup.goBack(); }
+ if (popup.canGoBack) {
+ popup.goBack();
+ }
});
forwardButton = document.createElement('div');
forwardButton.innerText = 'forward';
forwardButton.className = 'app-bar-action action-forward';
forwardButton.addEventListener('click', function (e) {
- if (popup.canGoForward) { popup.goForward(); }
+ if (popup.canGoForward) {
+ popup.goForward();
+ }
});
closeButton = document.createElement('div');
@@ -292,11 +307,11 @@ var IAB = {
op.oncomplete = function (e) {
if (hasCallback) {
// return null if event target is unavailable by some reason
- var result = (e && e.target) ? [e.target.result] : [null];
+ var result = e && e.target ? [e.target.result] : [null];
win(result);
}
};
- op.onerror = function () { };
+ op.onerror = function () {};
op.start();
}
});
@@ -323,7 +338,7 @@ var IAB = {
win(result);
}
};
- op.onerror = function () { };
+ op.onerror = function () {};
op.start();
});
});
@@ -352,13 +367,18 @@ var IAB = {
if (isWebViewAvailable && browserWrap && popup) {
// CB-12364 getFileFromApplicationUriAsync does not support ms-appx-web
var uri = new Windows.Foundation.Uri(filePath.replace('ms-appx-web:', 'ms-appx:'));
- Windows.Storage.StorageFile.getFileFromApplicationUriAsync(uri).then(function (file) {
- return Windows.Storage.FileIO.readTextAsync(file);
- }).done(function (code) {
- injectCSS(popup, code, hasCallback && win);
- }, function () {
- // no-op, just catch an error
- });
+ Windows.Storage.StorageFile.getFileFromApplicationUriAsync(uri)
+ .then(function (file) {
+ return Windows.Storage.FileIO.readTextAsync(file);
+ })
+ .done(
+ function (code) {
+ injectCSS(popup, code, hasCallback && win);
+ },
+ function () {
+ // no-op, just catch an error
+ }
+ );
}
});
}
@@ -367,8 +387,10 @@ var IAB = {
function injectCSS (webView, cssCode, callback) {
// This will automatically escape all thing that we need (quotes, slashes, etc.)
var escapedCode = JSON.stringify(cssCode);
- var evalWrapper = '(function(d){var c=d.createElement(\'style\');c.innerHTML=%s;d.head.appendChild(c);})(document)'
- .replace('%s', escapedCode);
+ var evalWrapper = "(function(d){var c=d.createElement('style');c.innerHTML=%s;d.head.appendChild(c);})(document)".replace(
+ '%s',
+ escapedCode
+ );
var op = webView.invokeScriptAsync('eval', evalWrapper);
op.oncomplete = function () {
@@ -376,7 +398,7 @@ function injectCSS (webView, cssCode, callback) {
callback([]);
}
};
- op.onerror = function () { };
+ op.onerror = function () {};
op.start();
}
diff --git a/tests/resources/inject.js b/tests/resources/inject.js
index d704ab3..bf94d4e 100644
--- a/tests/resources/inject.js
+++ b/tests/resources/inject.js
@@ -15,6 +15,7 @@
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
-*/
+ */
+
var d = document.getElementById('header');
d.innerHTML = 'Script file successfully injected';
diff --git a/tests/tests.js b/tests/tests.js
index 85d5eba..150a3c4 100644
--- a/tests/tests.js
+++ b/tests/tests.js
@@ -17,7 +17,7 @@
* specific language governing permissions and limitations
* under the License.
*
-*/
+ */
/* global MSApp */
@@ -38,7 +38,6 @@ exports.defineAutoTests = function () {
platformOpts = platformOpts || '';
describe('cordova.InAppBrowser', function () {
-
it('inappbrowser.spec.1 should exist', function () {
expect(cordova.InAppBrowser).toBeDefined();
});
@@ -50,7 +49,6 @@ exports.defineAutoTests = function () {
});
describe('open method', function () {
-
if (cordova.platformId === 'osx') {
pending('Open method not fully supported on OSX.');
return;
@@ -62,7 +60,7 @@ exports.defineAutoTests = function () {
var badUrl = 'http://bad-uri/';
beforeEach(function () {
- // increase timeout to ensure test url could be loaded within test time
+ // increase timeout to ensure test url could be loaded within test time
originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL;
jasmine.DEFAULT_TIMEOUT_INTERVAL = 30000;
@@ -70,7 +68,7 @@ exports.defineAutoTests = function () {
});
afterEach(function (done) {
- // restore original timeout
+ // restore original timeout
jasmine.DEFAULT_TIMEOUT_INTERVAL = originalTimeout;
if (iabInstance !== null && iabInstance.close) {
@@ -122,8 +120,8 @@ exports.defineAutoTests = function () {
iabInstance.addEventListener('loadstop', function (evt) {
verifyEvent(evt, 'loadstop');
if (!isBrowser) {
- // according to documentation, "loadstart" event is not supported on browser
- // https://github.com/apache/cordova-plugin-inappbrowser#browser-quirks-1
+ // according to documentation, "loadstart" event is not supported on browser
+ // https://github.com/apache/cordova-plugin-inappbrowser#browser-quirks-1
expect(onLoadStart).toHaveBeenCalled();
}
done();
@@ -144,9 +142,9 @@ exports.defineAutoTests = function () {
it('inappbrowser.spec.6 should support loaderror event', function (done) {
if (isBrowser) {
- // according to documentation, "loaderror" event is not supported on browser
- // https://github.com/apache/cordova-plugin-inappbrowser#browser-quirks-1
- pending('Browser platform doesn\'t support loaderror event');
+ // according to documentation, "loaderror" event is not supported on browser
+ // https://github.com/apache/cordova-plugin-inappbrowser#browser-quirks-1
+ pending("Browser platform doesn't support loaderror event");
}
iabInstance = cordova.InAppBrowser.open(badUrl, '_blank', platformOpts);
iabInstance.addEventListener('loaderror', function (evt) {
@@ -157,7 +155,7 @@ exports.defineAutoTests = function () {
it('inappbrowser.spec.7 should support message event', function (done) {
if (!isAndroid && !isIos) {
- return pending(cordova.platformId + ' platform doesn\'t support message event');
+ return pending(cordova.platformId + " platform doesn't support message event");
}
var messageKey = 'my_message';
var messageValue = 'is_this';
@@ -172,13 +170,17 @@ exports.defineAutoTests = function () {
done();
});
iabInstance.addEventListener('loadstop', function (evt) {
- var code = '(function(){\n' +
- ' var message = {' + messageKey + ': "' + messageValue + '"};\n' +
+ var code =
+ '(function(){\n' +
+ ' var message = {' +
+ messageKey +
+ ': "' +
+ messageValue +
+ '"};\n' +
' webkit.messageHandlers.cordova_iab.postMessage(JSON.stringify(message));\n' +
'})()';
iabInstance.executeScript({ code: code });
});
-
});
});
};
@@ -186,7 +188,6 @@ exports.defineAutoTests = function () {
};
exports.defineManualTests = function (contentEl, createActionButton) {
-
var platformOpts = '';
var platform_info = '';
@@ -200,10 +201,10 @@ exports.defineManualTests = function (contentEl, createActionButton) {
var wasReset = false;
function reset () {
counts = {
- 'loaderror': 0,
- 'loadstart': 0,
- 'loadstop': 0,
- 'exit': 0
+ loaderror: 0,
+ loadstart: 0,
+ loadstop: 0,
+ exit: 0
};
lastLoadStartURL = '';
}
@@ -243,15 +244,20 @@ exports.defineManualTests = function (contentEl, createActionButton) {
// Verify the right number of loadstart events were fired.
if (e.type === 'loadstop' || e.type === 'loaderror') {
if (e.url !== lastLoadStartURL) {
- alert('Unexpected: ' + e.type + ' event.url != loadstart\'s event.url'); // eslint-disable-line no-undef
+ alert('Unexpected: ' + e.type + " event.url != loadstart's event.url"); // eslint-disable-line no-undef
}
if (numExpectedRedirects === 0 && counts.loadstart !== 1) {
// Do allow a loaderror without a loadstart (e.g. in the case of an invalid URL).
if (!(e.type === 'loaderror' && counts.loadstart === 0)) {
alert('Unexpected: got multiple loadstart events. (' + counts.loadstart + ')'); // eslint-disable-line no-undef
}
- } else if (numExpectedRedirects > 0 && counts.loadstart < (numExpectedRedirects + 1)) {
- alert('Unexpected: should have got at least ' + (numExpectedRedirects + 1) + ' loadstart events, but got ' + counts.loadstart); // eslint-disable-line no-undef
+ } else if (numExpectedRedirects > 0 && counts.loadstart < numExpectedRedirects + 1) {
+ alert(
+ 'Unexpected: should have got at least ' +
+ (numExpectedRedirects + 1) +
+ ' loadstart events, but got ' +
+ counts.loadstart
+ ); // eslint-disable-line no-undef
}
wasReset = true;
numExpectedRedirects = 0;
@@ -273,7 +279,7 @@ exports.defineManualTests = function (contentEl, createActionButton) {
function doHookOpen (url, target, params, numExpectedRedirects) {
var originalFunc = window.open;
- var wasClobbered = window.hasOwnProperty('open');
+ var wasClobbered = Object.prototype.hasOwnProperty.call(window, 'open');
window.open = cordova.InAppBrowser.open;
try {
@@ -295,7 +301,7 @@ exports.defineManualTests = function (contentEl, createActionButton) {
alert('Results verified'); // eslint-disable-line no-undef
} else {
console.log(results);
- alert('Got: ' + typeof (results) + '\n' + JSON.stringify(results)); // eslint-disable-line no-undef
+ alert('Got: ' + typeof results + '\n' + JSON.stringify(results)); // eslint-disable-line no-undef
}
};
if (cssUrl) {
@@ -304,8 +310,7 @@ exports.defineManualTests = function (contentEl, createActionButton) {
});
} else {
iab.addEventListener('loadstop', function (event) {
- iab.insertCSS({ code: '#style-update-literal { \ndisplay: block !important; \n}' },
- useCallback && callback);
+ iab.insertCSS({ code: '#style-update-literal { \ndisplay: block !important; \n}' }, useCallback && callback);
});
}
}
@@ -314,37 +319,48 @@ exports.defineManualTests = function (contentEl, createActionButton) {
var iab = doOpen(url, '_blank', 'location=yes');
if (jsUrl) {
iab.addEventListener('loadstop', function (event) {
- iab.executeScript({ file: jsUrl }, useCallback && function (results) {
- if (results && results.length === 0) {
- alert('Results verified'); // eslint-disable-line no-undef
- } else {
- console.log(results);
- alert('Got: ' + typeof (results) + '\n' + JSON.stringify(results)); // eslint-disable-line no-undef
- }
- });
+ iab.executeScript(
+ { file: jsUrl },
+ useCallback &&
+ function (results) {
+ if (results && results.length === 0) {
+ alert('Results verified'); // eslint-disable-line no-undef
+ } else {
+ console.log(results);
+ alert('Got: ' + typeof results + '\n' + JSON.stringify(results)); // eslint-disable-line no-undef
+ }
+ }
+ );
});
} else {
iab.addEventListener('loadstop', function (event) {
- var code = '(function(){\n' +
- ' var header = document.getElementById("header");\n' +
- ' header.innerHTML = "Script literal successfully injected";\n' +
- ' return "abc";\n' +
- '})()';
- iab.executeScript({ code: code }, useCallback && function (results) {
- if (results && results.length === 1 && results[0] === 'abc') {
- alert('Results verified'); // eslint-disable-line no-undef
- } else {
- console.log(results);
- alert('Got: ' + typeof (results) + '\n' + JSON.stringify(results)); // eslint-disable-line no-undef
- }
- });
+ var code =
+ '(function(){\n' +
+ ' var header = document.getElementById("header");\n' +
+ ' header.innerHTML = "Script literal successfully injected";\n' +
+ ' return "abc";\n' +
+ '})()';
+ iab.executeScript(
+ { code: code },
+ useCallback &&
+ function (results) {
+ if (results && results.length === 1 && results[0] === 'abc') {
+ alert('Results verified'); // eslint-disable-line no-undef
+ } else {
+ console.log(results);
+ alert('Got: ' + typeof results + '\n' + JSON.stringify(results)); // eslint-disable-line no-undef
+ }
+ }
+ );
});
}
}
var hiddenwnd = null;
- var loadlistener = function (event) { alert('background window loaded '); }; // eslint-disable-line no-undef
+ var loadlistener = function (event) {
+ alert('background window loaded ');
+ }; // eslint-disable-line no-undef
function openHidden (url, startHidden) {
- var shopt = (startHidden) ? 'hidden=yes' : '';
+ var shopt = startHidden ? 'hidden=yes' : '';
if (platformOpts) {
shopt += (shopt ? ',' : '') + platformOpts;
}
@@ -368,7 +384,8 @@ exports.defineManualTests = function (contentEl, createActionButton) {
}
}
- var info_div = '
InAppBrowser
' +
+ var info_div =
+ 'InAppBrowser
' +
'' +
'Make sure http://cordova.apache.org and http://google.co.uk and https://www.google.co.uk are white listed. ' +
'Make sure http://www.apple.com is not in the white list.' +
@@ -376,7 +393,8 @@ exports.defineManualTests = function (contentEl, createActionButton) {
'
User-Agent: ' +
'
';
- var local_tests = 'Local URL
' +
+ var local_tests =
+ 'Local URL
' +
'' +
'Expected result: opens successfully in CordovaWebView.' +
' ' +
@@ -396,7 +414,8 @@ exports.defineManualTests = function (contentEl, createActionButton) {
'' +
'Expected result: open successfully in InAppBrowser with no locationBar. On iOS the toolbar is at the top.';
- var white_listed_tests = 'White Listed URL
' +
+ var white_listed_tests =
+ 'White Listed URL
' +
'' +
'Expected result: open successfully in CordovaWebView to cordova.apache.org' +
' ' +
@@ -412,7 +431,8 @@ exports.defineManualTests = function (contentEl, createActionButton) {
' ' +
'Expected result: open successfully in InAppBrowser to cordova.apache.org with no location bar.';
- var non_white_listed_tests = 'Non White Listed URL
' +
+ var non_white_listed_tests =
+ 'Non White Listed URL
' +
'' +
'Expected result: open successfully in InAppBrowser to apple.com.' +
' ' +
@@ -428,19 +448,22 @@ exports.defineManualTests = function (contentEl, createActionButton) {
' ' +
'Expected result: open successfully in InAppBrowser to apple.com without locationBar.';
- var page_with_redirects_tests = 'Page with redirect
' +
+ var page_with_redirects_tests =
+ 'Page with redirect
' +
'' +
'Expected result: should 301 and open successfully in InAppBrowser to https://www.google.co.uk.' +
' ' +
'Expected result: should 302 and open successfully in InAppBrowser to www.zhihu.com/answer/16714076.';
- var pdf_url_tests = 'PDF URL
' +
+ var pdf_url_tests =
+ 'PDF URL
' +
'' +
'Expected result: InAppBrowser opens. PDF should render on iOS.' +
' ' +
'Expected result: InAppBrowser opens. PDF should render on iOS.';
- var invalid_url_tests = 'Invalid URL
' +
+ var invalid_url_tests =
+ 'Invalid URL
' +
'' +
'Expected result: fail to load in InAppBrowser.' +
' ' +
@@ -448,7 +471,8 @@ exports.defineManualTests = function (contentEl, createActionButton) {
' ' +
'Expected result: fail to load in InAppBrowser (404).';
- var css_js_injection_tests = 'CSS / JS Injection
' +
+ var css_js_injection_tests =
+ 'CSS / JS Injection
' +
'' +
'Expected result: open successfully in InAppBrowser without text "Style updated from..."' +
' ' +
@@ -468,7 +492,8 @@ exports.defineManualTests = function (contentEl, createActionButton) {
' ' +
'Expected result: open successfully in InAppBrowser with the text "Script literal successfully injected" and alert dialog with the text "Results verified".';
- var open_hidden_tests = 'Open Hidden
' +
+ var open_hidden_tests =
+ 'Open Hidden
' +
'' +
'Expected result: no additional browser window. Alert appears with the text "background window loaded".' +
' ' +
@@ -480,13 +505,15 @@ exports.defineManualTests = function (contentEl, createActionButton) {
' ' +
'Expected result: open successfully in InAppBrowser to https://www.google.co.uk. Hide after 2 seconds';
- var clearing_cache_tests = 'Clearing Cache
' +
+ var clearing_cache_tests =
+ 'Clearing Cache
' +
'' +
'Expected result: ?' +
' ' +
'Expected result: ?';
- var video_tag_tests = 'Video tag
' +
+ var video_tag_tests =
+ 'Video tag
' +
'' +
'Expected result: open successfully in InAppBrowser with an embedded video plays automatically on iOS and Android.' +
'' +
@@ -494,13 +521,15 @@ exports.defineManualTests = function (contentEl, createActionButton) {
'' +
'Expected result: open successfully in InAppBrowser with an embedded video does not play automatically on iOS and Android but rather works after clicking the "play" button.';
- var local_with_anchor_tag_tests = 'Local with anchor tag
' +
+ var local_with_anchor_tag_tests =
+ 'Local with anchor tag
' +
'' +
'Expected result: open successfully in InAppBrowser to the local page, scrolled to the top as normal.' +
' ' +
'Expected result: open successfully in InAppBrowser to the local page, scrolled to the beginning of the tall div with border.';
- var hardwareback_tests = 'HardwareBack
' +
+ var hardwareback_tests =
+ 'HardwareBack
' +
' ' +
'Expected result: By default hardwareback is yes so pressing back button should navigate backwards in history then close InAppBrowser' +
' ' +
@@ -514,12 +543,38 @@ exports.defineManualTests = function (contentEl, createActionButton) {
// see http://msdn.microsoft.com/en-us/library/windows/apps/hh465380.aspx#differences for details
if (window.MSApp && window.MSApp.execUnsafeLocalFunction) {
MSApp.execUnsafeLocalFunction(function () {
- contentEl.innerHTML = info_div + platform_info + local_tests + white_listed_tests + non_white_listed_tests + page_with_redirects_tests + pdf_url_tests + invalid_url_tests +
- css_js_injection_tests + open_hidden_tests + clearing_cache_tests + video_tag_tests + local_with_anchor_tag_tests + hardwareback_tests;
+ contentEl.innerHTML =
+ info_div +
+ platform_info +
+ local_tests +
+ white_listed_tests +
+ non_white_listed_tests +
+ page_with_redirects_tests +
+ pdf_url_tests +
+ invalid_url_tests +
+ css_js_injection_tests +
+ open_hidden_tests +
+ clearing_cache_tests +
+ video_tag_tests +
+ local_with_anchor_tag_tests +
+ hardwareback_tests;
});
} else {
- contentEl.innerHTML = info_div + platform_info + local_tests + white_listed_tests + non_white_listed_tests + page_with_redirects_tests + pdf_url_tests + invalid_url_tests +
- css_js_injection_tests + open_hidden_tests + clearing_cache_tests + video_tag_tests + local_with_anchor_tag_tests + hardwareback_tests;
+ contentEl.innerHTML =
+ info_div +
+ platform_info +
+ local_tests +
+ white_listed_tests +
+ non_white_listed_tests +
+ page_with_redirects_tests +
+ pdf_url_tests +
+ invalid_url_tests +
+ css_js_injection_tests +
+ open_hidden_tests +
+ clearing_cache_tests +
+ video_tag_tests +
+ local_with_anchor_tag_tests +
+ hardwareback_tests;
}
document.getElementById('user-agent').textContent = navigator.userAgent;
@@ -534,206 +589,430 @@ exports.defineManualTests = function (contentEl, createActionButton) {
var videohtml = basePath + 'video.html';
// Local
- createActionButton('target=Default', function () {
- doOpen(localhtml);
- }, 'openLocal');
- createActionButton('target=Default (window.open)', function () {
- doHookOpen(localhtml);
- }, 'openLocalHook');
- createActionButton('target=_self', function () {
- doOpen(localhtml, '_self');
- }, 'openLocalSelf');
- createActionButton('target=_system', function () {
- doOpen(localhtml, '_system');
- }, 'openLocalSystem');
- createActionButton('target=_blank', function () {
- doOpen(localhtml, '_blank');
- }, 'openLocalBlank');
- createActionButton('target=Random, location=no, disallowoverscroll=yes', function () {
- doOpen(localhtml, 'random_string', 'location=no, disallowoverscroll=yes');
- }, 'openLocalRandomNoLocation');
- createActionButton('target=Random, toolbarposition=bottom', function () {
- doOpen(localhtml, 'random_string', 'toolbarposition=bottom');
- }, 'openLocalRandomToolBarBottom');
- createActionButton('target=Random, toolbarposition=top', function () {
- doOpen(localhtml, 'random_string', 'toolbarposition=top');
- }, 'openLocalRandomToolBarTop');
- createActionButton('target=Random, toolbarposition=top, location=no', function () {
- doOpen(localhtml, 'random_string', 'toolbarposition=top,location=no');
- }, 'openLocalRandomToolBarTopNoLocation');
+ createActionButton(
+ 'target=Default',
+ function () {
+ doOpen(localhtml);
+ },
+ 'openLocal'
+ );
+ createActionButton(
+ 'target=Default (window.open)',
+ function () {
+ doHookOpen(localhtml);
+ },
+ 'openLocalHook'
+ );
+ createActionButton(
+ 'target=_self',
+ function () {
+ doOpen(localhtml, '_self');
+ },
+ 'openLocalSelf'
+ );
+ createActionButton(
+ 'target=_system',
+ function () {
+ doOpen(localhtml, '_system');
+ },
+ 'openLocalSystem'
+ );
+ createActionButton(
+ 'target=_blank',
+ function () {
+ doOpen(localhtml, '_blank');
+ },
+ 'openLocalBlank'
+ );
+ createActionButton(
+ 'target=Random, location=no, disallowoverscroll=yes',
+ function () {
+ doOpen(localhtml, 'random_string', 'location=no, disallowoverscroll=yes');
+ },
+ 'openLocalRandomNoLocation'
+ );
+ createActionButton(
+ 'target=Random, toolbarposition=bottom',
+ function () {
+ doOpen(localhtml, 'random_string', 'toolbarposition=bottom');
+ },
+ 'openLocalRandomToolBarBottom'
+ );
+ createActionButton(
+ 'target=Random, toolbarposition=top',
+ function () {
+ doOpen(localhtml, 'random_string', 'toolbarposition=top');
+ },
+ 'openLocalRandomToolBarTop'
+ );
+ createActionButton(
+ 'target=Random, toolbarposition=top, location=no',
+ function () {
+ doOpen(localhtml, 'random_string', 'toolbarposition=top,location=no');
+ },
+ 'openLocalRandomToolBarTopNoLocation'
+ );
// White Listed
- createActionButton('* target=Default', function () {
- doOpen('http://cordova.apache.org');
- }, 'openWhiteListed');
- createActionButton('* target=Default (window.open)', function () {
- doHookOpen('http://cordova.apache.org');
- }, 'openWhiteListedHook');
- createActionButton('* target=_self', function () {
- doOpen('http://cordova.apache.org', '_self');
- }, 'openWhiteListedSelf');
- createActionButton('target=_system', function () {
- doOpen('http://cordova.apache.org', '_system');
- }, 'openWhiteListedSystem');
- createActionButton('target=_blank', function () {
- doOpen('http://cordova.apache.org', '_blank');
- }, 'openWhiteListedBlank');
- createActionButton('target=Random', function () {
- doOpen('http://cordova.apache.org', 'random_string');
- }, 'openWhiteListedRandom');
- createActionButton('* target=Random, no location bar', function () {
- doOpen('http://cordova.apache.org', 'random_string', 'location=no');
- }, 'openWhiteListedRandomNoLocation');
+ createActionButton(
+ '* target=Default',
+ function () {
+ doOpen('http://cordova.apache.org');
+ },
+ 'openWhiteListed'
+ );
+ createActionButton(
+ '* target=Default (window.open)',
+ function () {
+ doHookOpen('http://cordova.apache.org');
+ },
+ 'openWhiteListedHook'
+ );
+ createActionButton(
+ '* target=_self',
+ function () {
+ doOpen('http://cordova.apache.org', '_self');
+ },
+ 'openWhiteListedSelf'
+ );
+ createActionButton(
+ 'target=_system',
+ function () {
+ doOpen('http://cordova.apache.org', '_system');
+ },
+ 'openWhiteListedSystem'
+ );
+ createActionButton(
+ 'target=_blank',
+ function () {
+ doOpen('http://cordova.apache.org', '_blank');
+ },
+ 'openWhiteListedBlank'
+ );
+ createActionButton(
+ 'target=Random',
+ function () {
+ doOpen('http://cordova.apache.org', 'random_string');
+ },
+ 'openWhiteListedRandom'
+ );
+ createActionButton(
+ '* target=Random, no location bar',
+ function () {
+ doOpen('http://cordova.apache.org', 'random_string', 'location=no');
+ },
+ 'openWhiteListedRandomNoLocation'
+ );
// Non White Listed
- createActionButton('target=Default', function () {
- doOpen('http://www.apple.com');
- }, 'openNonWhiteListed');
- createActionButton('target=Default (window.open)', function () {
- doHookOpen('http://www.apple.com');
- }, 'openNonWhiteListedHook');
- createActionButton('target=_self', function () {
- doOpen('http://www.apple.com', '_self');
- }, 'openNonWhiteListedSelf');
- createActionButton('target=_system', function () {
- doOpen('http://www.apple.com', '_system');
- }, 'openNonWhiteListedSystem');
- createActionButton('target=_blank', function () {
- doOpen('http://www.apple.com', '_blank');
- }, 'openNonWhiteListedBlank');
- createActionButton('target=Random', function () {
- doOpen('http://www.apple.com', 'random_string');
- }, 'openNonWhiteListedRandom');
- createActionButton('* target=Random, no location bar', function () {
- doOpen('http://www.apple.com', 'random_string', 'location=no');
- }, 'openNonWhiteListedRandomNoLocation');
+ createActionButton(
+ 'target=Default',
+ function () {
+ doOpen('http://www.apple.com');
+ },
+ 'openNonWhiteListed'
+ );
+ createActionButton(
+ 'target=Default (window.open)',
+ function () {
+ doHookOpen('http://www.apple.com');
+ },
+ 'openNonWhiteListedHook'
+ );
+ createActionButton(
+ 'target=_self',
+ function () {
+ doOpen('http://www.apple.com', '_self');
+ },
+ 'openNonWhiteListedSelf'
+ );
+ createActionButton(
+ 'target=_system',
+ function () {
+ doOpen('http://www.apple.com', '_system');
+ },
+ 'openNonWhiteListedSystem'
+ );
+ createActionButton(
+ 'target=_blank',
+ function () {
+ doOpen('http://www.apple.com', '_blank');
+ },
+ 'openNonWhiteListedBlank'
+ );
+ createActionButton(
+ 'target=Random',
+ function () {
+ doOpen('http://www.apple.com', 'random_string');
+ },
+ 'openNonWhiteListedRandom'
+ );
+ createActionButton(
+ '* target=Random, no location bar',
+ function () {
+ doOpen('http://www.apple.com', 'random_string', 'location=no');
+ },
+ 'openNonWhiteListedRandomNoLocation'
+ );
// Page with redirect
- createActionButton('http://google.co.uk', function () {
- doOpen('http://google.co.uk', 'random_string', '', 1);
- }, 'openRedirect301');
- createActionButton('http://goo.gl/pUFqg', function () {
- doOpen('http://goo.gl/pUFqg', 'random_string', '', 2);
- }, 'openRedirect302');
+ createActionButton(
+ 'http://google.co.uk',
+ function () {
+ doOpen('http://google.co.uk', 'random_string', '', 1);
+ },
+ 'openRedirect301'
+ );
+ createActionButton(
+ 'http://goo.gl/pUFqg',
+ function () {
+ doOpen('http://goo.gl/pUFqg', 'random_string', '', 2);
+ },
+ 'openRedirect302'
+ );
// PDF URL
- createActionButton('Remote URL', function () {
- doOpen('http://www.stluciadance.com/prospectus_file/sample.pdf');
- }, 'openPDF');
- createActionButton('Local URL', function () {
- doOpen(localpdf, '_blank');
- }, 'openPDFBlank');
+ createActionButton(
+ 'Remote URL',
+ function () {
+ doOpen('http://www.stluciadance.com/prospectus_file/sample.pdf');
+ },
+ 'openPDF'
+ );
+ createActionButton(
+ 'Local URL',
+ function () {
+ doOpen(localpdf, '_blank');
+ },
+ 'openPDFBlank'
+ );
// Invalid URL
- createActionButton('Invalid Scheme', function () {
- doOpen('x-ttp://www.invalid.com/', '_blank');
- }, 'openInvalidScheme');
- createActionButton('Invalid Host', function () {
- doOpen('http://www.inv;alid.com/', '_blank');
- }, 'openInvalidHost');
- createActionButton('Missing Local File', function () {
- doOpen('nonexistent.html', '_blank');
- }, 'openInvalidMissing');
+ createActionButton(
+ 'Invalid Scheme',
+ function () {
+ doOpen('x-ttp://www.invalid.com/', '_blank');
+ },
+ 'openInvalidScheme'
+ );
+ createActionButton(
+ 'Invalid Host',
+ function () {
+ doOpen('http://www.inv;alid.com/', '_blank');
+ },
+ 'openInvalidHost'
+ );
+ createActionButton(
+ 'Missing Local File',
+ function () {
+ doOpen('nonexistent.html', '_blank');
+ },
+ 'openInvalidMissing'
+ );
// CSS / JS injection
- createActionButton('Original Document', function () {
- doOpen(injecthtml, '_blank');
- }, 'openOriginalDocument');
- createActionButton('CSS File Injection', function () {
- openWithStyle(injecthtml, injectcss);
- }, 'openCSSInjection');
- createActionButton('CSS File Injection (callback)', function () {
- openWithStyle(injecthtml, injectcss, true);
- }, 'openCSSInjectionCallback');
- createActionButton('CSS Literal Injection', function () {
- openWithStyle(injecthtml);
- }, 'openCSSLiteralInjection');
- createActionButton('CSS Literal Injection (callback)', function () {
- openWithStyle(injecthtml, null, true);
- }, 'openCSSLiteralInjectionCallback');
- createActionButton('Script File Injection', function () {
- openWithScript(injecthtml, injectjs);
- }, 'openScriptInjection');
- createActionButton('Script File Injection (callback)', function () {
- openWithScript(injecthtml, injectjs, true);
- }, 'openScriptInjectionCallback');
- createActionButton('Script Literal Injection', function () {
- openWithScript(injecthtml);
- }, 'openScriptLiteralInjection');
- createActionButton('Script Literal Injection (callback)', function () {
- openWithScript(injecthtml, null, true);
- }, 'openScriptLiteralInjectionCallback');
+ createActionButton(
+ 'Original Document',
+ function () {
+ doOpen(injecthtml, '_blank');
+ },
+ 'openOriginalDocument'
+ );
+ createActionButton(
+ 'CSS File Injection',
+ function () {
+ openWithStyle(injecthtml, injectcss);
+ },
+ 'openCSSInjection'
+ );
+ createActionButton(
+ 'CSS File Injection (callback)',
+ function () {
+ openWithStyle(injecthtml, injectcss, true);
+ },
+ 'openCSSInjectionCallback'
+ );
+ createActionButton(
+ 'CSS Literal Injection',
+ function () {
+ openWithStyle(injecthtml);
+ },
+ 'openCSSLiteralInjection'
+ );
+ createActionButton(
+ 'CSS Literal Injection (callback)',
+ function () {
+ openWithStyle(injecthtml, null, true);
+ },
+ 'openCSSLiteralInjectionCallback'
+ );
+ createActionButton(
+ 'Script File Injection',
+ function () {
+ openWithScript(injecthtml, injectjs);
+ },
+ 'openScriptInjection'
+ );
+ createActionButton(
+ 'Script File Injection (callback)',
+ function () {
+ openWithScript(injecthtml, injectjs, true);
+ },
+ 'openScriptInjectionCallback'
+ );
+ createActionButton(
+ 'Script Literal Injection',
+ function () {
+ openWithScript(injecthtml);
+ },
+ 'openScriptLiteralInjection'
+ );
+ createActionButton(
+ 'Script Literal Injection (callback)',
+ function () {
+ openWithScript(injecthtml, null, true);
+ },
+ 'openScriptLiteralInjectionCallback'
+ );
// Open hidden
- createActionButton('Create Hidden', function () {
- openHidden('https://www.google.co.uk', true);
- }, 'openHidden');
- createActionButton('Show Hidden', function () {
- showHidden();
- }, 'showHidden');
- createActionButton('Close Hidden', function () {
- closeHidden();
- }, 'closeHidden');
- createActionButton('google.co.uk Not Hidden', function () {
- openHidden('https://www.google.co.uk', false);
- }, 'openHiddenShow');
- createActionButton('google.co.uk shown for 2 seconds than hidden', function () {
- var iab = doOpen('https://www.google.co.uk/', 'random_sting');
- setTimeout(function () {
- iab.hide();
- }, 2000);
- }, 'openVisibleAndHide');
+ createActionButton(
+ 'Create Hidden',
+ function () {
+ openHidden('https://www.google.co.uk', true);
+ },
+ 'openHidden'
+ );
+ createActionButton(
+ 'Show Hidden',
+ function () {
+ showHidden();
+ },
+ 'showHidden'
+ );
+ createActionButton(
+ 'Close Hidden',
+ function () {
+ closeHidden();
+ },
+ 'closeHidden'
+ );
+ createActionButton(
+ 'google.co.uk Not Hidden',
+ function () {
+ openHidden('https://www.google.co.uk', false);
+ },
+ 'openHiddenShow'
+ );
+ createActionButton(
+ 'google.co.uk shown for 2 seconds than hidden',
+ function () {
+ var iab = doOpen('https://www.google.co.uk/', 'random_sting');
+ setTimeout(function () {
+ iab.hide();
+ }, 2000);
+ },
+ 'openVisibleAndHide'
+ );
// Clearing cache
- createActionButton('Clear Browser Cache', function () {
- doOpen('https://www.google.co.uk', '_blank', 'clearcache=yes');
- }, 'openClearCache');
- createActionButton('Clear Session Cache', function () {
- doOpen('https://www.google.co.uk', '_blank', 'clearsessioncache=yes');
- }, 'openClearSessionCache');
+ createActionButton(
+ 'Clear Browser Cache',
+ function () {
+ doOpen('https://www.google.co.uk', '_blank', 'clearcache=yes');
+ },
+ 'openClearCache'
+ );
+ createActionButton(
+ 'Clear Session Cache',
+ function () {
+ doOpen('https://www.google.co.uk', '_blank', 'clearsessioncache=yes');
+ },
+ 'openClearSessionCache'
+ );
// Video tag
- createActionButton('Remote Video', function () {
- doOpen(videohtml, '_blank');
- }, 'openRemoteVideo');
- createActionButton('Remote Need User No Video', function () {
- doOpen(videohtml, '_blank', 'mediaPlaybackRequiresUserAction=no');
- }, 'openRemoteNeedUserNoVideo');
- createActionButton('Remote Need User Yes Video', function () {
- doOpen(videohtml, '_blank', 'mediaPlaybackRequiresUserAction=yes');
- }, 'openRemoteNeedUserYesVideo');
+ createActionButton(
+ 'Remote Video',
+ function () {
+ doOpen(videohtml, '_blank');
+ },
+ 'openRemoteVideo'
+ );
+ createActionButton(
+ 'Remote Need User No Video',
+ function () {
+ doOpen(videohtml, '_blank', 'mediaPlaybackRequiresUserAction=no');
+ },
+ 'openRemoteNeedUserNoVideo'
+ );
+ createActionButton(
+ 'Remote Need User Yes Video',
+ function () {
+ doOpen(videohtml, '_blank', 'mediaPlaybackRequiresUserAction=yes');
+ },
+ 'openRemoteNeedUserYesVideo'
+ );
// Local With Anchor Tag
- createActionButton('Anchor1', function () {
- doOpen(localhtml + '#bogusanchor', '_blank');
- }, 'openAnchor1');
- createActionButton('Anchor2', function () {
- doOpen(localhtml + '#anchor2', '_blank');
- }, 'openAnchor2');
+ createActionButton(
+ 'Anchor1',
+ function () {
+ doOpen(localhtml + '#bogusanchor', '_blank');
+ },
+ 'openAnchor1'
+ );
+ createActionButton(
+ 'Anchor2',
+ function () {
+ doOpen(localhtml + '#anchor2', '_blank');
+ },
+ 'openAnchor2'
+ );
// Hardwareback
- createActionButton('no hardwareback (defaults to yes)', function () {
- doOpen('http://cordova.apache.org', '_blank');
- }, 'openHardwareBackDefault');
- createActionButton('hardwareback=yes', function () {
- doOpen('http://cordova.apache.org', '_blank', 'hardwareback=yes');
- }, 'openHardwareBackYes');
- createActionButton('hardwareback=no', function () {
- doOpen('http://cordova.apache.org', '_blank', 'hardwareback=no');
- }, 'openHardwareBackNo');
- createActionButton('no hardwareback -> hardwareback=no -> no hardwareback', function () {
- var ref = cordova.InAppBrowser.open('https://google.com', '_blank', 'location=yes' + (platformOpts ? ',' + platformOpts : ''));
- ref.addEventListener('loadstop', function () {
- ref.close();
- });
- ref.addEventListener('exit', function () {
- var ref2 = cordova.InAppBrowser.open('https://google.com', '_blank', 'location=yes,hardwareback=no' + (platformOpts ? ',' + platformOpts : ''));
- ref2.addEventListener('loadstop', function () {
- ref2.close();
+ createActionButton(
+ 'no hardwareback (defaults to yes)',
+ function () {
+ doOpen('http://cordova.apache.org', '_blank');
+ },
+ 'openHardwareBackDefault'
+ );
+ createActionButton(
+ 'hardwareback=yes',
+ function () {
+ doOpen('http://cordova.apache.org', '_blank', 'hardwareback=yes');
+ },
+ 'openHardwareBackYes'
+ );
+ createActionButton(
+ 'hardwareback=no',
+ function () {
+ doOpen('http://cordova.apache.org', '_blank', 'hardwareback=no');
+ },
+ 'openHardwareBackNo'
+ );
+ createActionButton(
+ 'no hardwareback -> hardwareback=no -> no hardwareback',
+ function () {
+ var ref = cordova.InAppBrowser.open('https://google.com', '_blank', 'location=yes' + (platformOpts ? ',' + platformOpts : ''));
+ ref.addEventListener('loadstop', function () {
+ ref.close();
});
- ref2.addEventListener('exit', function () {
- cordova.InAppBrowser.open('https://google.com', '_blank', 'location=yes' + (platformOpts ? ',' + platformOpts : ''));
+ ref.addEventListener('exit', function () {
+ var ref2 = cordova.InAppBrowser.open(
+ 'https://google.com',
+ '_blank',
+ 'location=yes,hardwareback=no' + (platformOpts ? ',' + platformOpts : '')
+ );
+ ref2.addEventListener('loadstop', function () {
+ ref2.close();
+ });
+ ref2.addEventListener('exit', function () {
+ cordova.InAppBrowser.open('https://google.com', '_blank', 'location=yes' + (platformOpts ? ',' + platformOpts : ''));
+ });
});
- });
- }, 'openHardwareBackDefaultAfterNo');
+ },
+ 'openHardwareBackDefaultAfterNo'
+ );
};
diff --git a/www/inappbrowser.js b/www/inappbrowser.js
index f93626c..3dcab21 100644
--- a/www/inappbrowser.js
+++ b/www/inappbrowser.js
@@ -17,7 +17,7 @@
* specific language governing permissions and limitations
* under the License.
*
-*/
+ */
(function () {
var exec = require('cordova/exec');
@@ -27,19 +27,19 @@
function InAppBrowser () {
this.channels = {
- 'beforeload': channel.create('beforeload'),
- 'loadstart': channel.create('loadstart'),
- 'loadstop': channel.create('loadstop'),
- 'loaderror': channel.create('loaderror'),
- 'exit': channel.create('exit'),
- 'customscheme': channel.create('customscheme'),
- 'message': channel.create('message')
+ beforeload: channel.create('beforeload'),
+ loadstart: channel.create('loadstart'),
+ loadstop: channel.create('loadstop'),
+ loaderror: channel.create('loaderror'),
+ exit: channel.create('exit'),
+ customscheme: channel.create('customscheme'),
+ message: channel.create('message')
};
}
InAppBrowser.prototype = {
_eventHandler: function (event) {
- if (event && (event.type in this.channels)) {
+ if (event && event.type in this.channels) {
if (event.type === 'beforeload') {
this.channels[event.type].fire(event, this._loadAfterBeforeload);
} else {