diff --git a/browser/app/blocklist.xml b/browser/app/blocklist.xml index cb4478830b11..e69de29bb2d1 100644 --- a/browser/app/blocklist.xml +++ b/browser/app/blocklist.xml @@ -1,213 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - WINNT 6.1 - 0x10de - - 0x0a6c - - DIRECT2D - BLOCKED_DRIVER_VERSION - 8.17.12.5896 - LESS_THAN_OR_EQUAL - - - WINNT 6.1 - 0x10de - - 0x0a6c - - DIRECT3D_9_LAYERS - BLOCKED_DRIVER_VERSION - 8.17.12.5896 - LESS_THAN_OR_EQUAL - - - WINNT 5.1 - 0x10de - DIRECT3D_9_LAYERS - BLOCKED_DRIVER_VERSION - 7.0.0.0 - GREATER_THAN_OR_EQUAL - - - - - \ No newline at end of file diff --git a/browser/base/content/NetworkPrioritizer.jsm b/browser/base/content/NetworkPrioritizer.jsm index 69f0ff3f1b1a..97cbcdd81432 100644 --- a/browser/base/content/NetworkPrioritizer.jsm +++ b/browser/base/content/NetworkPrioritizer.jsm @@ -97,13 +97,13 @@ function _handleEvent(aEvent) { // Methods that impact a browser. Put into single object for organization. let BrowserHelper = { - onOpen: function(aBrowser) { + onOpen: function NP_BH_onOpen(aBrowser) { // If the tab is in the focused window, leave priority as it is if (aBrowser.ownerDocument.defaultView != _lastFocusedWindow) this.decreasePriority(aBrowser); }, - onSelect: function(aBrowser) { + onSelect: function NP_BH_onSelect(aBrowser) { let windowEntry = WindowHelper.getEntry(aBrowser.ownerDocument.defaultView); if (windowEntry.lastSelectedBrowser) this.decreasePriority(windowEntry.lastSelectedBrowser); @@ -113,16 +113,16 @@ let BrowserHelper = { }, // Auxiliary methods - getLoadgroup: function(aBrowser) { + getLoadgroup: function NP_BH_getLoadgroup(aBrowser) { return aBrowser.webNavigation.QueryInterface(Ci.nsIDocumentLoader) .loadGroup.QueryInterface(Ci.nsISupportsPriority); }, - increasePriority: function(aBrowser) { + increasePriority: function NP_BH_increasePriority(aBrowser) { this.getLoadgroup(aBrowser).adjustPriority(PRIORITY_DELTA); }, - decreasePriority: function(aBrowser) { + decreasePriority: function NP_BH_decreasePriority(aBrowser) { this.getLoadgroup(aBrowser).adjustPriority(PRIORITY_DELTA * -1); } }; @@ -130,7 +130,7 @@ let BrowserHelper = { // Methods that impact a window. Put into single object for organization. let WindowHelper = { - addWindow: function(aWindow) { + addWindow: function NP_WH_addWindow(aWindow) { // Build internal data object _windows.push({ window: aWindow, lastSelectedBrowser: null }); @@ -153,7 +153,7 @@ let WindowHelper = { BrowserHelper.onSelect(aWindow.gBrowser.selectedBrowser); }, - removeWindow: function(aWindow) { + removeWindow: function NP_WH_removeWindow(aWindow) { if (aWindow == _lastFocusedWindow) _lastFocusedWindow = null; @@ -169,7 +169,7 @@ let WindowHelper = { }); }, - onActivate: function(aWindow, aHasFocus) { + onActivate: function NP_WH_onActivate(aWindow, aHasFocus) { // If this window was the last focused window, we don't need to do anything if (aWindow == _lastFocusedWindow) return; @@ -181,7 +181,7 @@ let WindowHelper = { this.increasePriority(aWindow); }, - handleFocusedWindow: function(aWindow) { + handleFocusedWindow: function NP_WH_handleFocusedWindow(aWindow) { // If we have a last focused window, we need to deprioritize it first if (_lastFocusedWindow) this.decreasePriority(_lastFocusedWindow); @@ -191,23 +191,23 @@ let WindowHelper = { }, // Auxiliary methods - increasePriority: function(aWindow) { + increasePriority: function NP_WH_increasePriority(aWindow) { aWindow.gBrowser.browsers.forEach(function(aBrowser) { BrowserHelper.increasePriority(aBrowser); }); }, - decreasePriority: function(aWindow) { + decreasePriority: function NP_WH_decreasePriority(aWindow) { aWindow.gBrowser.browsers.forEach(function(aBrowser) { BrowserHelper.decreasePriority(aBrowser); }); }, - getEntry: function(aWindow) { + getEntry: function NP_WH_getEntry(aWindow) { return _windows[this.getEntryIndex(aWindow)]; }, - getEntryIndex: function(aWindow) { + getEntryIndex: function NP_WH_getEntryAtIndex(aWindow) { // Assumes that every object has a unique window & it's in the array for (let i = 0; i < _windows.length; i++) if (_windows[i].window == aWindow) diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js index d803ba6308e5..3478c212edcb 100644 --- a/browser/base/content/browser.js +++ b/browser/base/content/browser.js @@ -355,6 +355,9 @@ const gSessionHistoryObserver = { var fwdCommand = document.getElementById("Browser:Forward"); fwdCommand.setAttribute("disabled", "true"); + // Hide session restore button on about:home + window.messageManager.sendAsyncMessage("Browser:HideSessionRestoreButton"); + if (gURLBar) { // Clear undo history of the URL bar gURLBar.editor.transactionManager.clear() diff --git a/browser/base/content/content.js b/browser/base/content/content.js index e69425aaa312..289051470012 100644 --- a/browser/base/content/content.js +++ b/browser/base/content/content.js @@ -51,3 +51,13 @@ addMessageListener("WebNavigation:LoadURI", function (message) { webNavigation.loadURI(message.json.uri, flags, null, null, null); }); + +addMessageListener("Browser:HideSessionRestoreButton", function (message) { + // Hide session restore button on about:home + let doc = content.document; + let container; + if (doc.documentURI.toLowerCase() == "about:home" && + (container = doc.getElementById("sessionRestoreContainer"))){ + container.hidden = true; + } +}); diff --git a/browser/components/sessionstore/src/nsSessionStore.js b/browser/components/sessionstore/src/nsSessionStore.js index 63d86b17e579..3a16e04c16b3 100644 --- a/browser/components/sessionstore/src/nsSessionStore.js +++ b/browser/components/sessionstore/src/nsSessionStore.js @@ -185,7 +185,7 @@ SessionStoreService.prototype = { // xul:tab attributes to (re)store (extensions might want to hook in here); // the favicon is always saved for the about:sessionrestore page - xulAttributes: ["image"], + xulAttributes: {"image": true}, // set default load state _loadState: STATE_STOPPED, @@ -498,6 +498,7 @@ SessionStoreService.prototype = { // quit-application notification so the browser is about to exit. if (this._loadState == STATE_QUITTING) return; + this._lastSessionState = null; let openWindows = {}; this._forEachBrowserWindow(function(aWindow) { Array.forEach(aWindow.gBrowser.tabs, function(aTab) { @@ -1426,10 +1427,10 @@ SessionStoreService.prototype = { }, persistTabAttribute: function sss_persistTabAttribute(aName) { - if (this.xulAttributes.indexOf(aName) != -1) + if (aName in this.xulAttributes) return; // this attribute is already being tracked - this.xulAttributes.push(aName); + this.xulAttributes[aName] = true; this.saveStateDelayed(); }, @@ -1736,12 +1737,10 @@ SessionStoreService.prototype = { else if (tabData.disallow) delete tabData.disallow; - if (this.xulAttributes.length > 0) { - tabData.attributes = {}; - Array.forEach(aTab.attributes, function(aAttr) { - if (this.xulAttributes.indexOf(aAttr.name) > -1) - tabData.attributes[aAttr.name] = aAttr.value; - }, this); + tabData.attributes = {}; + for (let name in this.xulAttributes) { + if (aTab.hasAttribute(name)) + tabData.attributes[name] = aTab.getAttribute(name); } if (aTab.__SS_extdata) @@ -2748,6 +2747,9 @@ SessionStoreService.prototype = { else tabbrowser.showTab(tab); + for (let name in tabData.attributes) + this.xulAttributes[name] = true; + tabData._tabStillLoading = true; // keep the data around to prevent dataloss in case @@ -2863,9 +2865,8 @@ SessionStoreService.prototype = { CAPABILITIES.forEach(function(aCapability) { browser.docShell["allow" + aCapability] = disallow.indexOf(aCapability) == -1; }); - Array.filter(tab.attributes, function(aAttr) { - return (_this.xulAttributes.indexOf(aAttr.name) > -1); - }).forEach(tab.removeAttribute, tab); + for (let name in this.xulAttributes) + tab.removeAttribute(name); for (let name in tabData.attributes) tab.setAttribute(name, tabData.attributes[name]); diff --git a/build/mobile/remoteautomation.py b/build/mobile/remoteautomation.py index acc16ed5b95d..de38525ecff7 100644 --- a/build/mobile/remoteautomation.py +++ b/build/mobile/remoteautomation.py @@ -79,6 +79,12 @@ class RemoteAutomation(Automation): if env is None: env = {} + # Except for the mochitest results table hiding option, which isn't + # passed to runtestsremote.py as an actual option, but through the + # MOZ_CRASHREPORTER_DISABLE environment variable. + if 'MOZ_HIDE_RESULTS_TABLE' in os.environ: + env['MOZ_HIDE_RESULTS_TABLE'] = os.environ['MOZ_HIDE_RESULTS_TABLE'] + if crashreporter: env['MOZ_CRASHREPORTER_NO_REPORT'] = '1' env['MOZ_CRASHREPORTER'] = '1' diff --git a/configure.in b/configure.in index 10f25ee8f4ed..76012b51c47a 100644 --- a/configure.in +++ b/configure.in @@ -7549,7 +7549,7 @@ else dnl Look for a broken crtdll.obj WIN32_CRTDLL_FULLPATH=`lib -nologo -list $WIN32_CRT_LIBS | grep crtdll\\.obj` lib -NOLOGO -OUT:crtdll.obj $WIN32_CRT_LIBS -EXTRACT:$WIN32_CRTDLL_FULLPATH - if grep -q __imp__\{0,1\}free crtdll.obj; then + if grep -q '__imp__\{0,1\}free' crtdll.obj; then MOZ_MEMORY_LDFLAGS='-MANIFEST:NO -LIBPATH:$(DIST)/lib -NODEFAULTLIB:msvcrt -NODEFAULTLIB:msvcrtd -NODEFAULTLIB:msvcprt -NODEFAULTLIB:msvcprtd -DEFAULTLIB:mozcrt' else MOZ_MEMORY_LDFLAGS='$(DIST)/../memory/jemalloc/jemalloc.lib' diff --git a/docshell/resources/content/netError.xhtml b/docshell/resources/content/netError.xhtml index aecc59507031..459b709ddbcb 100644 --- a/docshell/resources/content/netError.xhtml +++ b/docshell/resources/content/netError.xhtml @@ -392,7 +392,7 @@ - + diff --git a/dom/base/nsJSEnvironment.cpp b/dom/base/nsJSEnvironment.cpp index 1f5dd787b7df..d73afc0670d8 100644 --- a/dom/base/nsJSEnvironment.cpp +++ b/dom/base/nsJSEnvironment.cpp @@ -1623,6 +1623,8 @@ nsJSContext::ExecuteScript(void *aScriptObject, // If all went well, convert val to a string (XXXbe unless undefined?). rv = JSValueToAString(mContext, val, aRetValue, aIsUndefined); } else { + ReportPendingException(); + if (aIsUndefined) { *aIsUndefined = PR_TRUE; } diff --git a/testing/mochitest/runtests.py b/testing/mochitest/runtests.py index 4364c4be1237..22a23114f607 100644 --- a/testing/mochitest/runtests.py +++ b/testing/mochitest/runtests.py @@ -536,13 +536,14 @@ class Mochitest(object): return browserEnv - def buildURLOptions(self, options): + def buildURLOptions(self, options, env): """ Add test control options from the command line to the url URL parameters to test URL: autorun -- kick off tests automatically closeWhenDone -- runs quit.js after tests + hideResultsTable -- hides the table of individual test results logFile -- logs test run to an absolute path totalChunks -- how many chunks to split tests into thisChunk -- which chunk to run @@ -574,6 +575,8 @@ class Mochitest(object): self.urlOpts.append("chunkByDir=%d" % options.chunkByDir) if options.shuffle: self.urlOpts.append("shuffle=1") + if "MOZ_HIDE_RESULTS_TABLE" in env and env["MOZ_HIDE_RESULTS_TABLE"] == "1": + self.urlOpts.append("hideResultsTable=1") if options.loops: self.urlOpts.append("loops=%d" % options.loops) if os.path.isfile(self.oldcwd + self.TEST_PATH + options.testPath) and options.loops > 0: @@ -633,7 +636,7 @@ class Mochitest(object): self.startWebSocketServer(options, debuggerInfo) testURL = self.buildTestPath(options) - self.buildURLOptions(options) + self.buildURLOptions(options, browserEnv) if len(self.urlOpts) > 0: testURL += "?" + "&".join(self.urlOpts) @@ -716,6 +719,9 @@ class Mochitest(object): elif (options.a11y): testRoot = 'a11y' + if "MOZ_HIDE_RESULTS_TABLE" in os.environ and os.environ["MOZ_HIDE_RESULTS_TABLE"] == "1": + options.hideResultsTable = True + #TODO: when we upgrade to python 2.6, just use json.dumps(options.__dict__) content = "{" content += '"testRoot": "%s", ' % (testRoot) diff --git a/testing/mochitest/runtestsremote.py b/testing/mochitest/runtestsremote.py index 312b7b1fed6d..00925a828c66 100644 --- a/testing/mochitest/runtestsremote.py +++ b/testing/mochitest/runtestsremote.py @@ -279,11 +279,11 @@ class MochiRemote(Mochitest): options.profilePath = self.remoteProfile return manifest - def buildURLOptions(self, options): + def buildURLOptions(self, options, env): self.localLog = options.logFile options.logFile = self.remoteLog options.profilePath = self.localProfile - retVal = Mochitest.buildURLOptions(self, options) + retVal = Mochitest.buildURLOptions(self, options, env) #we really need testConfig.js (for browser chrome) if self._dm.pushDir(options.profilePath, self.remoteProfile) == None: raise devicemanager.FileError("Unable to copy profile to device.") diff --git a/testing/mochitest/server.js b/testing/mochitest/server.js index f6372a11ab17..8cf5d2b9ed6a 100644 --- a/testing/mochitest/server.js +++ b/testing/mochitest/server.js @@ -604,6 +604,8 @@ function testListing(metadata, response) var [links, count] = list(metadata.path, metadata.getProperty("directory"), true); + var table_class = metadata.queryString.indexOf("hideResultsTable=1") > -1 ? "invisible": ""; + dumpn("count: " + count); var tests = jsonArrayOfTestFiles(links); response.write( @@ -658,7 +660,7 @@ function testListing(metadata, response) BR() ), - TABLE({cellpadding: 0, cellspacing: 0, id: "test-table"}, + TABLE({cellpadding: 0, cellspacing: 0, class: table_class, id: "test-table"}, TR(TD("Passed"), TD("Failed"), TD("Todo"), TD("Test Files")), linksToTableRows(links, 0) ), diff --git a/testing/testsuite-targets.mk b/testing/testsuite-targets.mk index 34cbbfceaa99..c5981144829d 100644 --- a/testing/testsuite-targets.mk +++ b/testing/testsuite-targets.mk @@ -83,10 +83,10 @@ endif mochitest-remote: DM_TRANS?=adb mochitest-remote: - if test -f ${MOZ_HOST_BIN}/xpcshell && [ "${TEST_DEVICE}" != "usb" -o "$(DM_TRANS)" = "adb" ]; \ + @if test -f ${MOZ_HOST_BIN}/xpcshell && [ "${TEST_DEVICE}" != "usb" -o "$(DM_TRANS)" = "adb" ]; \ then $(RUN_MOCHITEST_REMOTE); \ else \ - @echo "please prepare your host with environment variables for TEST_DEVICE and MOZ_HOST_BIN"; \ + echo "please prepare your host with environment variables for TEST_DEVICE and MOZ_HOST_BIN"; \ fi mochitest-plain: diff --git a/toolkit/mozapps/extensions/test/browser/browser_bug586574.js b/toolkit/mozapps/extensions/test/browser/browser_bug586574.js index 3b32aada190e..41c0c9653ab2 100644 --- a/toolkit/mozapps/extensions/test/browser/browser_bug586574.js +++ b/toolkit/mozapps/extensions/test/browser/browser_bug586574.js @@ -10,6 +10,7 @@ var gManagerWindow; var gProvider; var gUtilsBtn; +var gUtilsMenu; var gDropdownMenu; var gSetDefault; var gResetToAutomatic; diff --git a/toolkit/themes/gnomestripe/global/webConsole.css b/toolkit/themes/gnomestripe/global/webConsole.css index 9c7c7a7d4ab6..3bd77d9eaaf3 100644 --- a/toolkit/themes/gnomestripe/global/webConsole.css +++ b/toolkit/themes/gnomestripe/global/webConsole.css @@ -106,7 +106,6 @@ margin: 2px 0; padding-left: 4px; padding-right: 4px; - width: 1em; color: white; background-color: red; border-radius: 40px; diff --git a/toolkit/themes/pinstripe/global/webConsole.css b/toolkit/themes/pinstripe/global/webConsole.css index bb323f7ecaea..db1fe9b60fdf 100644 --- a/toolkit/themes/pinstripe/global/webConsole.css +++ b/toolkit/themes/pinstripe/global/webConsole.css @@ -109,7 +109,6 @@ margin: 2px 0; padding-left: 4px; padding-right: 4px; - width: 1em; color: white; background-color: red; border-radius: 40px; diff --git a/toolkit/themes/winstripe/global/webConsole.css b/toolkit/themes/winstripe/global/webConsole.css index 1b241823c7b8..d15dde35ab4a 100644 --- a/toolkit/themes/winstripe/global/webConsole.css +++ b/toolkit/themes/winstripe/global/webConsole.css @@ -105,7 +105,6 @@ margin: 2px 0; padding-left: 4px; padding-right: 4px; - width: 1em; color: white; background-color: red; border-radius: 40px; diff --git a/widget/src/qt/nsClipboard.cpp b/widget/src/qt/nsClipboard.cpp index 40f84f0b475f..f729c893718a 100644 --- a/widget/src/qt/nsClipboard.cpp +++ b/widget/src/qt/nsClipboard.cpp @@ -436,9 +436,6 @@ nsClipboard::HasDataMatchingFlavors(const char** aFlavorList, PRUint32 aLength, const QMimeData *mimeData = cb->mimeData(); const char *flavor=NULL; QStringList formats = mimeData->formats(); - // Temp QString for comparison - QString utf8text("text/plain;charset=utf-8"); - // And is there matching flavor? for (PRUint32 i = 0; i < aLength; ++i) { flavor = aFlavorList[i]; @@ -451,10 +448,10 @@ nsClipboard::HasDataMatchingFlavors(const char** aFlavorList, PRUint32 aLength, NS_WARNING("DO NOT USE THE text/plain DATA FLAVOR ANY MORE. USE text/unicode INSTEAD"); } - // QClipboard says it has text/plain;charset=utf-8 data, mozilla wants to - // know if the data is text/unicode -> interpret text/plain;charset=utf-8 to text/unicode + // QClipboard says it has text/plain, mozilla wants to + // know if the data is text/unicode -> interpret text/plain to text/unicode if (formats.contains(qflavor) || - ((strcmp(flavor, kUnicodeMime) == 0) && formats.contains(utf8text))) + strcmp(flavor, kUnicodeMime) == 0) { // A match has been found, return' *_retval = PR_TRUE;