summaryrefslogtreecommitdiffstats
path: root/dom/media/tests/mochitest/NetworkPreparationChromeScript.js
diff options
context:
space:
mode:
Diffstat (limited to 'dom/media/tests/mochitest/NetworkPreparationChromeScript.js')
-rw-r--r--dom/media/tests/mochitest/NetworkPreparationChromeScript.js62
1 files changed, 62 insertions, 0 deletions
diff --git a/dom/media/tests/mochitest/NetworkPreparationChromeScript.js b/dom/media/tests/mochitest/NetworkPreparationChromeScript.js
new file mode 100644
index 000000000..1de778778
--- /dev/null
+++ b/dom/media/tests/mochitest/NetworkPreparationChromeScript.js
@@ -0,0 +1,62 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+const { classes: Cc, interfaces: Ci, results: Cr, utils: Cu } = Components;
+const { Services } = Cu.import('resource://gre/modules/Services.jsm');
+
+var browser = Services.wm.getMostRecentWindow('navigator:browser');
+var connection = browser.navigator.mozMobileConnections[0];
+
+// provide a fake APN and enable data connection.
+function enableDataConnection() {
+ let setLock = browser.navigator.mozSettings.createLock();
+ setLock.set({
+ 'ril.data.enabled': true,
+ 'ril.data.apnSettings': [
+ [
+ {'carrier':'T-Mobile US',
+ 'apn':'epc.tmobile.com',
+ 'mmsc':'http://mms.msg.eng.t-mobile.com/mms/wapenc',
+ 'types':['default','supl','mms']}
+ ]
+ ]
+ });
+}
+
+// enable 3G radio
+function enableRadio() {
+ if (connection.radioState !== 'enabled') {
+ connection.setRadioEnabled(true);
+ }
+}
+
+// disable 3G radio
+function disableRadio() {
+ if (connection.radioState === 'enabled') {
+ connection.setRadioEnabled(false);
+ }
+}
+
+addMessageListener('prepare-network', function(message) {
+ connection.addEventListener('datachange', function onDataChange() {
+ if (connection.data.connected) {
+ connection.removeEventListener('datachange', onDataChange);
+ Services.prefs.setIntPref('network.proxy.type', 2);
+ sendAsyncMessage('network-ready', true);
+ }
+ });
+
+ enableRadio();
+ enableDataConnection();
+});
+
+addMessageListener('network-cleanup', function(message) {
+ connection.addEventListener('datachange', function onDataChange() {
+ if (!connection.data.connected) {
+ connection.removeEventListener('datachange', onDataChange);
+ Services.prefs.setIntPref('network.proxy.type', 2);
+ sendAsyncMessage('network-disabled', true);
+ }
+ });
+ disableRadio();
+});