diff --git a/Makefile.in b/Makefile.in index 2b1c3b88a62..5f823293f57 100644 --- a/Makefile.in +++ b/Makefile.in @@ -213,6 +213,8 @@ maybe_clobber_profiledbuild: endif else maybe_clobber_profiledbuild: + $(RM) $(DIST)/bin/*.pgc + find $(DIST)/$(MOZ_APP_NAME) -name "*.pgc" -exec mv {} $(DIST)/bin \; endif .PHONY: maybe_clobber_profiledbuild diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js index aa9f364d2f8..e4b30bf3703 100644 --- a/browser/app/profile/firefox.js +++ b/browser/app/profile/firefox.js @@ -1008,6 +1008,9 @@ pref("devtools.inspector.enabled", true); // Enable the style inspector pref("devtools.styleinspector.enabled", true); +// Enable the rules view +pref("devtools.ruleview.enabled", true); + // Enable the Scratchpad tool. pref("devtools.scratchpad.enabled", true); diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js index 24ee6669f09..13a8c8103a0 100644 --- a/browser/base/content/browser.js +++ b/browser/base/content/browser.js @@ -3908,12 +3908,29 @@ var FullScreen = { } }, + exitDomFullScreen : function(e) { + document.mozCancelFullScreen(); + }, + enterDomFullScreen : function(event) { - if (!document.mozFullScreen) { + // We receive "mozfullscreenchange" events for each subdocument which + // is an ancestor of the document containing the element which requested + // full-screen. Only add listeners and show warning etc when the event we + // receive is targeted at the chrome document, i.e. only once every time + // we enter DOM full-screen mode. + if (!document.mozFullScreen || event.target.ownerDocument != document) { return; } this.showWarning(true); + // Exit DOM full-screen mode upon open, close, or change tab. + gBrowser.tabContainer.addEventListener("TabOpen", this.exitDomFullScreen); + gBrowser.tabContainer.addEventListener("TabClose", this.exitDomFullScreen); + gBrowser.tabContainer.addEventListener("TabSelect", this.exitDomFullScreen); + + // Exit DOM full-screen mode when the browser window loses focus (ALT+TAB, etc). + window.addEventListener("deactivate", this.exitDomFullScreen, true); + // Cancel any "hide the toolbar" animation which is in progress, and make // the toolbar hide immediately. clearInterval(this._animationInterval); @@ -3946,6 +3963,10 @@ var FullScreen = { fullScrToggler.removeEventListener("dragenter", this._expandCallback, false); } this.cancelWarning(); + gBrowser.tabContainer.removeEventListener("TabOpen", this.exitDomFullScreen); + gBrowser.tabContainer.removeEventListener("TabClose", this.exitDomFullScreen); + gBrowser.tabContainer.removeEventListener("TabSelect", this.exitDomFullScreen); + window.removeEventListener("deactivate", this.exitDomFullScreen, true); } }, @@ -8169,7 +8190,7 @@ let DownloadMonitorPanel = { let maxTime = -Infinity; let dls = gDownloadMgr.activeDownloads; while (dls.hasMoreElements()) { - let dl = dls.getNext().QueryInterface(Ci.nsIDownload); + let dl = dls.getNext(); if (dl.state == gDownloadMgr.DOWNLOAD_DOWNLOADING) { // Figure out if this download takes longer if (dl.speed > 0 && dl.size > 0) diff --git a/browser/base/content/browser.xul b/browser/base/content/browser.xul index d078c39b64e..1ca600b86d9 100644 --- a/browser/base/content/browser.xul +++ b/browser/base/content/browser.xul @@ -967,7 +967,7 @@