author | Joseph Yeh <jyeh@mozilla.com> |
Thu, 20 Oct 2016 15:09:12 -0700 | |
changeset 318822 | ba6fc133264d8e7aa8adf43d9d88f48b6dc2ffac |
parent 318821 | 4be40c5468626cd5065cbc79674c933b908a2450 |
child 318823 | 75c306c21c0f719b590d4ebd63e1ca7ad8981adc |
push id | 30853 |
push user | cbook@mozilla.com |
push date | Fri, 21 Oct 2016 14:56:24 +0000 |
treeherder | mozilla-central@28681d252003 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | MattN |
bugs | 1036595 |
milestone | 52.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/browser/components/preferences/in-content/privacy.js +++ b/browser/components/preferences/in-content/privacy.js @@ -646,32 +646,32 @@ var gPrivacyPane = { gSubDialog.open("chrome://browser/content/preferences/sanitize.xul", "resizable=no"); }, /** * Displays a dialog from which individual parts of private data may be * cleared. */ - clearPrivateDataNow: function (aClearEverything) - { + clearPrivateDataNow: function (aClearEverything) { var ts = document.getElementById("privacy.sanitize.timeSpan"); var timeSpanOrig = ts.value; - if (aClearEverything) + + if (aClearEverything) { ts.value = 0; + } - const Cc = Components.classes, Ci = Components.interfaces; - var glue = Cc["@mozilla.org/browser/browserglue;1"] - .getService(Ci.nsIBrowserGlue); - glue.sanitize(window); + gSubDialog.open("chrome://browser/content/sanitize.xul", "resizable=no", null, () => { + // reset the timeSpan pref + if (aClearEverything) { + ts.value = timeSpanOrig; + } - // reset the timeSpan pref - if (aClearEverything) - ts.value = timeSpanOrig; - Services.obs.notifyObservers(null, "clear-private-data", null); + Services.obs.notifyObservers(null, "clear-private-data", null); + }); }, /** * Enables or disables the "Settings..." button depending * on the privacy.sanitize.sanitizeOnShutdown preference value */ _updateSanitizeSettingsButton: function () { var settingsButton = document.getElementById("clearDataSettings");
--- a/browser/components/preferences/in-content/subdialogs.js +++ b/browser/components/preferences/in-content/subdialogs.js @@ -168,16 +168,28 @@ var gSubDialog = { this.injectXMLStylesheet(styleSheetURL); } // Provide the ability for the dialog to know that it is being loaded "in-content". this._frame.contentDocument.documentElement.setAttribute("subdialog", "true"); this._frame.contentWindow.addEventListener("dialogclosing", this); + let oldResizeBy = this._frame.contentWindow.resizeBy; + this._frame.contentWindow.resizeBy = function(resizeByWidth, resizeByHeight) { + // Only handle resizeByHeight currently. + let frameHeight = gSubDialog._frame.clientHeight; + let boxMinHeight = parseFloat(getComputedStyle(gSubDialog._box).minHeight, 10); + + gSubDialog._frame.style.height = (frameHeight + resizeByHeight) + "px"; + gSubDialog._box.style.minHeight = (boxMinHeight + resizeByHeight) + "px"; + + oldResizeBy.call(gSubDialog._frame.contentWindow, resizeByWidth, resizeByHeight); + }; + // Make window.close calls work like dialog closing. let oldClose = this._frame.contentWindow.close; this._frame.contentWindow.close = function() { var closingEvent = gSubDialog._closingEvent; if (!closingEvent) { closingEvent = new CustomEvent("dialogclosing", { bubbles: true, detail: { button: null }, @@ -268,18 +280,20 @@ var gSubDialog = { this._frame.style.height = frameHeight; this._box.style.minHeight = "calc(" + (boxVerticalBorder + groupBoxTitleHeight + boxVerticalPadding) + "px + " + frameMinHeight + ")"; this._overlay.style.visibility = "visible"; this._overlay.style.opacity = ""; // XXX: focus hack continued from _onContentLoaded - this._resizeObserver = new MutationObserver(this._onResize); - this._resizeObserver.observe(this._box, {attributes: true}); + if (this._box.getAttribute("resizable") == "true") { + this._resizeObserver = new MutationObserver(this._onResize); + this._resizeObserver.observe(this._box, {attributes: true}); + } this._trapFocus(); }, _onResize: function(mutations) { let frame = gSubDialog._frame; // The width and height styles are needed for the initial // layout of the frame, but afterward they need to be removed
--- a/browser/themes/linux/sanitizeDialog.css +++ b/browser/themes/linux/sanitizeDialog.css @@ -51,17 +51,17 @@ } /* Progressive disclosure button */ #detailsExpanderWrapper { padding: 0; margin-top: 6px; margin-bottom: 6px; - margin-inline-start: -6px; + margin-inline-start: -4px; margin-inline-end: 0; } .expander-up, .expander-down { min-width: 0; padding: 2px 0; padding-inline-start: 2px;
--- a/browser/themes/shared/incontentprefs/preferences.inc.css +++ b/browser/themes/shared/incontentprefs/preferences.inc.css @@ -364,17 +364,16 @@ description > html|a { #dialogBox > .groupbox-body { -moz-appearance: none; padding: 20px; } #dialogFrame { -moz-box-flex: 1; /* Default dialog dimensions */ - height: 20em; width: 66ch; } .largeDialogContainer.doScroll { overflow-y: auto; -moz-box-flex: 1; }
--- a/browser/tools/mozscreenshots/mozscreenshots/extension/configurations/Preferences.jsm +++ b/browser/tools/mozscreenshots/mozscreenshots/extension/configurations/Preferences.jsm @@ -18,16 +18,17 @@ this.Preferences = { init(libDir) { let panes = [ ["paneGeneral", null], ["paneSearch", null], ["paneContent", null], ["paneApplications", null], ["panePrivacy", null], ["panePrivacy", null, DNTDialog], + ["panePrivacy", null, clearRecentHistoryDialog], ["paneSecurity", null], ["paneSync", null], ["paneAdvanced", "generalTab"], ["paneAdvanced", "dataChoicesTab"], ["paneAdvanced", "networkTab"], ["paneAdvanced", "networkTab", connectionDialog], ["paneAdvanced", "updateTab"], ["paneAdvanced", "encryptionTab"], @@ -102,16 +103,22 @@ function* DNTDialog(aBrowser) { } function* connectionDialog(aBrowser) { yield ContentTask.spawn(aBrowser, null, function* () { content.document.getElementById("connectionSettings").click(); }); } +function* clearRecentHistoryDialog(aBrowser) { + yield ContentTask.spawn(aBrowser, null, function* () { + content.document.getElementById("historyRememberClear").click(); + }); +} + function* certManager(aBrowser) { yield ContentTask.spawn(aBrowser, null, function* () { content.document.getElementById("viewCertificatesButton").click(); }); } function* deviceManager(aBrowser) { yield ContentTask.spawn(aBrowser, null, function* () {