mirror of
https://github.com/roytam1/palemoon27.git
synced 2026-05-26 14:30:27 +00:00
68ea640f88
- Bug 1246575 - Inline RegExp.prototype.{global,ignoreCase,multiline,sticky,unicode} getters. r=h4writer (4c1dd91f65)
- Bug 1240796 - Inline SIMD operations that return scalars. r=bbouvier (e9a4985d96)
- Bug 1241872: Fix inlining of SIMD extractLanes in self-hosting; r=jolesen (337ab5c171)
- Bug 1240796 - Detemplatize getOrCreateSimdTypeDescr(). r=bbouvier (d1721d193d)
- Bug 1240796 - Extract baseline code to GetTemplateObjectForSimd(). r=bbouvier (302921629a)
- Bug 1240796 - Connect SIMD.Uint32x4 operations to the Ion inliner. r=bbouvier (24a2e4801b)
- Bug 1243810: Remove storage class of SimdOperation; r=jolesen (b5f74d5d74)
- Bug 1224374 - Profiler labels for the 25 top chrome hangs;r=BenWa,MarcoZ (b0ee441936)
- Bug 1211401 - Use global message manager as parent of <iframe mozbrowser> MM (r=smaug,ahal) (496e94f133)
- When mix-blending, only copy intersecting backdrop pixels. (bug 1235995 part 2, r=mattwoodrow) (f3a2211866)
- Fix the backdrop copy rect in nested mix-blend containers. (bug 1241273, r=mstange) (00ae1f2375)
- Bug 1246403: Implement call_import when caller returns float32; r=luke (f59d6303a6)
- Bug 1239506 - Make console formatter return NaN instead of nan with %f;r=baku (44aa78fba7)
- Bug 1202735 - Add nsIObserver to avoid warning. r=eeejay (93bf7d87e7)
- Bug 1228134 - Should check media.webspeech.synth.enabled on Windows SAPI backend. r=eeejay (4e04c701cb)
- Bug 1003464 - Support Web Speech API synthesis via speech-dispatcher. r=kdavis (bc6c839f1d)
- Bug 1003452 - Implement OSX backend for WebSpeech Synthesis. r=eeejay (85c3b95baa)
- Bug 1223153 - Create new thread to enumerate voice items. r=eeejay (6246ad40a0)
- fix refptr (075d2a7614)
- Bug 1211974 - Implement nsIObserver in SpeechDispatcherService. r=smaug (1fe398291f)
- Bug 1227848 - Separate construction from off-main-thread setup in SpeechDispatcherService. r=smaug (df4e431ad0)
- Bug 1191667 - Part 1. Add onVolumeChanged method to nsISpeechTaskCallback. r=eitan (119271d432)
- Bug 1191667 - Part 2. Call onVolumeChanged when changing volume. r=eitan (9aeb12f90f)
- Bug 1191667 - Part 3. Call NotifyStartedPlaying to show audio indicator. r=eitan (7c0a62f004)
- Bug 1187151 (part 13) - Replace nsBaseHashtable::Enumerate() calls in dom/ with iterators. r=baku. (aac6428d17)
- Bug 1225928 - Fix hang on linux when sending an empty string to speech synth. r=smaug (f21d1d9c2e)
- Bug 1221520 - nullcheck for mSpeechdClient. r=eeejay (3b38bd7fda)
- Bug 1230428 - Part 1. Check mTask since end event is posted asynchronized. r=eeejay (5b5ecaddd8)
- Bug 1239494 - Followup to fix a spurious hazard analysis failure; r=meow (7c6eac2f31)
- Bug 1224374 - Profiler labels for the top 26-100 chrome hangs;r=BenWa (f3edb68e7e)
- Bug 1242214 - Rename JSPropertyDescriptor JS::PropertyDescriptor in js. r=sstangl (b5fa6fc75c)
- Bug 1242072 - Continue using getPropertyDescriptor for get in Sandbox. r=bholley (3315e39b91)
- Bug 1242072 - Continue using getPropertyDescriptor for get in XrayWrapper. r=bholley (d9506cbe6a)
- Bug 1242214 - Rename JSPropertyDescriptor JS::PropertyDescriptor everywhere else. r=smaug (f5bf388f8b)
- Bug 1239822: Part 1 - Add a close method to windowless browsers, and only destroy when safe. r=bz (28cd84032e)
- apply (and revert little bit of PM) Bug 1218364 - windowless browser windows should not crash on Troubleshoot. (2ef4a8e4f7)
- Bug 1224105 - [webext] Use <browser> element for background page (r=kmag) (34b4e7a807)
- Bug 1239822: Part 2a - [webext] Explicitly destroy windowless browsers on unload. r=billm (737d05f57c)
- Bug 1239822: Part 2b - Destroy windowless browsers created for add-on SDK page workers. (de9bcd0438)
- Bug 1239822: Part 2c - Destroy windowless browsers created by browser parsable CSS tests. r=gijs (6e04b09bc6)
- Bug 1217307 - Remove some unnecessary null checks in dom/xslt/. r=njn (4208056baf)
- Bug 1222624: Make XSLT stylesheet parsing use nsIPrincipals and nsIURIs rather than strings. r=peterv (34984e2115)
- Bug 1222475 - use UniquePtr<T[]> instead of nsAutoArrayPtr<T> in dom/; r=baku,bz,terrence (2d33fa1b22)
- Bug 1237445 - Use GCHashSet for BaseShapeSet and InitialShapeSet, r=terrence (a4c8056f3a)
- Bug 1244365 - Remove Traceable; r=sfink (5a7d3ed42e)
- Bug 1236473 - Do not merge scripts that didn't successfully compile. (r=jandem) (8f03cbd52c)
- Bug 1240416 Disallow setting GC mark stack size to zero, and assert on attempt to realloc() zero bytes r=terrence (f28ea7d8f3)
- Bug 1232113 - "Make the format specifiers in JS_snprintf() invocations more portable". r=sphink (deb4e3bd14)
- Bug 1232672 - Use MOZ_WARN_UNUSED_RESULT to make ordered hash table clients check for failure r=sfink (541737edf1)
- Bug 1220703 - Remove AutoDisableStoreBuffer; r=jonco (e1b44b7696)
- Bug 1236523 part 1 - Remove Shape NON_NATIVE flag. r=bhackett (64dfe2f282)
- Bug 1236523 part 2 - Cache isBigEnoughForAShapeTable on the Shape. r=bhackett (86b6c65dc6)
- Bug 1236523 part 3 - Templatize Shape::search and ShapeTable::search. r=bhackett (9ca2f75776)
160 lines
5.9 KiB
JavaScript
160 lines
5.9 KiB
JavaScript
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
var outOfProcess = __marionetteParams[0]
|
|
var mochitestUrl = __marionetteParams[1]
|
|
var onDevice = __marionetteParams[2]
|
|
var wifiSettings = __marionetteParams[3]
|
|
var chrome = __marionetteParams[4]
|
|
var prefs = Components.classes["@mozilla.org/preferences-service;1"].
|
|
getService(Components.interfaces.nsIPrefBranch)
|
|
var settings = window.navigator.mozSettings;
|
|
var cm = Components.classes["@mozilla.org/categorymanager;1"].
|
|
getService(Components.interfaces.nsICategoryManager);
|
|
|
|
if (wifiSettings)
|
|
wifiSettings = JSON.parse(wifiSettings);
|
|
|
|
const CHILD_SCRIPT = "chrome://specialpowers/content/specialpowers.js";
|
|
const CHILD_SCRIPT_API = "chrome://specialpowers/content/specialpowersAPI.js";
|
|
const CHILD_LOGGER_SCRIPT = "chrome://specialpowers/content/MozillaLogger.js";
|
|
|
|
var homescreen = document.getElementById('systemapp');
|
|
var container = homescreen.contentWindow.document.getElementById('test-container');
|
|
|
|
// Disable udpate timers which cause failure in b2g permisson prompt tests.
|
|
if (cm) {
|
|
cm.deleteCategoryEntry("update-timer", "WebappsUpdateTimer", false);
|
|
cm.deleteCategoryEntry("update-timer", "nsUpdateService", false);
|
|
}
|
|
|
|
var SECURITY_PREF = "security.turn_off_all_security_so_that_viruses_can_take_over_this_computer";
|
|
Components.utils.import("resource://gre/modules/Services.jsm");
|
|
Services.prefs.setBoolPref(SECURITY_PREF, true);
|
|
// RIL DOM events and mozChromeEvents will be pending until
|
|
// this observer message is sent.
|
|
Services.obs.notifyObservers(null, 'system-message-listener-ready', null);
|
|
|
|
function openWindow(aEvent) {
|
|
var popupIframe = aEvent.detail.frameElement;
|
|
popupIframe.id = 'popupiframe';
|
|
|
|
// This is to size the iframe to what is requested in the window.open call,
|
|
// e.g. window.open("", "", "width=600,height=600");
|
|
if (aEvent.detail.features.indexOf('width') != -1) {
|
|
let width = aEvent.detail.features.substr(aEvent.detail.features.indexOf('width')+6);
|
|
width = width.substr(0,width.indexOf(',') == -1 ? width.length : width.indexOf(','));
|
|
popupIframe.setAttribute('width', width);
|
|
}
|
|
if (aEvent.detail.features.indexOf('height') != -1) {
|
|
let height = aEvent.detail.features.substr(aEvent.detail.features.indexOf('height')+7);
|
|
height = height.substr(0, height.indexOf(',') == -1 ? height.length : height.indexOf(','));
|
|
popupIframe.setAttribute('height', height);
|
|
}
|
|
|
|
popupIframe.addEventListener('mozbrowserclose', function(e) {
|
|
container.parentNode.removeChild(popupIframe);
|
|
container.focus();
|
|
});
|
|
|
|
// yes, the popup can call window.open too!
|
|
popupIframe.addEventListener('mozbrowseropenwindow', openWindow);
|
|
|
|
popupIframe.addEventListener('mozbrowserloadstart', function(e) {
|
|
popupIframe.focus();
|
|
let mm = popupIframe.QueryInterface(Ci.nsIFrameLoaderOwner).frameLoader.messageManager;
|
|
mm.loadFrameScript(CHILD_LOGGER_SCRIPT, true);
|
|
mm.loadFrameScript(CHILD_SCRIPT_API, true);
|
|
mm.loadFrameScript(CHILD_SCRIPT, true);
|
|
mm.loadFrameScript('data:,attachSpecialPowersToWindow(content);', true);
|
|
});
|
|
|
|
container.parentNode.appendChild(popupIframe);
|
|
}
|
|
container.addEventListener('mozbrowseropenwindow', openWindow);
|
|
container.addEventListener('mozbrowsershowmodalprompt', function (e) {
|
|
if (e.detail.message == 'setVisible::false') {
|
|
container.setVisible(false);
|
|
}
|
|
else if (e.detail.message == 'setVisible::true') {
|
|
container.setVisible(true);
|
|
}
|
|
});
|
|
|
|
if (outOfProcess) {
|
|
let mm = container.QueryInterface(Ci.nsIFrameLoaderOwner).frameLoader.messageManager;
|
|
|
|
//Workaround for bug 848411, once that bug is fixed, the following line can be removed
|
|
function contentScript() {
|
|
addEventListener("DOMWindowCreated", function listener(e) {
|
|
removeEventListener("DOMWindowCreated", listener, false);
|
|
var window = e.target.defaultView;
|
|
window.wrappedJSObject.SpecialPowers.addPermission("allowXULXBL", true, window.document);
|
|
});
|
|
}
|
|
mm.loadFrameScript("data:,(" + encodeURI(contentScript.toSource()) + ")();", true);
|
|
}
|
|
|
|
if (chrome) {
|
|
let loader = Cc["@mozilla.org/moz/jssubscript-loader;1"].getService(Ci.mozIJSSubScriptLoader);
|
|
if (typeof(SpecialPowers) == 'undefined') {
|
|
loader.loadSubScript("chrome://specialpowers/content/specialpowersAPI.js");
|
|
loader.loadSubScript("chrome://specialpowers/content/SpecialPowersObserverAPI.js");
|
|
loader.loadSubScript("chrome://specialpowers/content/ChromePowers.js");
|
|
}
|
|
loader.loadSubScript("chrome://mochikit/content/browser-test.js");
|
|
b2gStart();
|
|
}
|
|
|
|
if (onDevice) {
|
|
var cpuLock = Cc["@mozilla.org/power/powermanagerservice;1"]
|
|
.getService(Ci.nsIPowerManagerService)
|
|
.newWakeLock("cpu");
|
|
|
|
let manager = navigator.mozWifiManager;
|
|
let con = manager.connection;
|
|
manager.setPowerSavingMode(false);
|
|
|
|
manager.onenabled = function () {
|
|
if(wifiSettings) {
|
|
var req = manager.getKnownNetworks();
|
|
req.onsuccess = function () {
|
|
var networks = req.result;
|
|
for (var i = 0; i < networks.length; ++i){
|
|
var network = networks[i];
|
|
if(network.ssid == wifiSettings.ssid) {
|
|
manager.forget(network);
|
|
}
|
|
}
|
|
manager.associate(new window.MozWifiNetwork(wifiSettings));
|
|
};
|
|
}
|
|
};
|
|
|
|
manager.onstatuschange = function (event) {
|
|
prefs.setIntPref("network.proxy.type", 2);
|
|
if (event.status == 'connected') {
|
|
container.src = mochitestUrl;
|
|
}
|
|
};
|
|
|
|
if(wifiSettings) {
|
|
var req = settings.createLock().set({
|
|
'wifi.enabled': false,
|
|
'wifi.suspended': false
|
|
});
|
|
|
|
req.onsuccess = function () {
|
|
dump("----------------------enabling wifi------------------\n");
|
|
var req1 = settings.createLock().set({
|
|
'wifi.enabled': true,
|
|
'wifi.suspended': false});
|
|
};
|
|
}
|
|
} else {
|
|
if (!chrome) {
|
|
container.src = mochitestUrl;
|
|
}
|
|
}
|