author | Gavin Sharp <gavin@gavinsharp.com> |
Sun, 02 Nov 2014 16:08:58 -0800 | |
changeset 213971 | 7d3e942ee8849f233cee6e36d466487b1073cfbe |
parent 213970 | 6f5199eec3c01d86d22a3f96d2bd00beb2681f5e |
child 213972 | 68fe119fa995f77106e45cb0c616d1fb29687b19 |
push id | 27769 |
push user | kwierso@gmail.com |
push date | Wed, 05 Nov 2014 03:53:35 +0000 |
treeherder | mozilla-central@62990ec7ad78 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | dao |
bugs | 1086958 |
milestone | 36.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
|
browser/app/profile/firefox.js | file | annotate | diff | comparison | revisions | |
browser/components/nsBrowserGlue.js | file | annotate | diff | comparison | revisions |
--- a/browser/app/profile/firefox.js +++ b/browser/app/profile/firefox.js @@ -1799,8 +1799,10 @@ pref("privacy.trackingprotection.ui.enab #endif // Temporary pref to allow printing in e10s windows on some platforms. #ifdef UNIX_BUT_NOT_MAC pref("print.enable_e10s_testing", false); #else pref("print.enable_e10s_testing", true); #endif + +pref("browser.defaultbrowser.notificationbar", false);
--- a/browser/components/nsBrowserGlue.js +++ b/browser/components/nsBrowserGlue.js @@ -2280,38 +2280,33 @@ let DefaultBrowserCheck = { claimAllTypes = (parseFloat(version) < 6.2); } catch (ex) { } #endif try { ShellService.setDefaultBrowser(claimAllTypes, false); } catch (ex) { Cu.reportError(ex); } - this.closePrompt(); }, - _createPopup: function(win, bundle) { + _createPopup: function(win, notNowStrings, neverStrings) { let doc = win.document; let popup = doc.createElement("menupopup"); popup.id = this.OPTIONPOPUP; let notNowItem = doc.createElement("menuitem"); notNowItem.id = "defaultBrowserNotNow"; - let label = bundle.getString("setDefaultBrowserNotNow.label"); - notNowItem.setAttribute("label", label); - let accesskey = bundle.getString("setDefaultBrowserNotNow.accesskey"); - notNowItem.setAttribute("accesskey", accesskey); + notNowItem.setAttribute("label", notNowStrings.label); + notNowItem.setAttribute("accesskey", notNowStrings.accesskey); popup.appendChild(notNowItem); let neverItem = doc.createElement("menuitem"); neverItem.id = "defaultBrowserNever"; - label = bundle.getString("setDefaultBrowserNever.label"); - neverItem.setAttribute("label", label); - accesskey = bundle.getString("setDefaultBrowserNever.accesskey"); - neverItem.setAttribute("accesskey", accesskey); + neverItem.setAttribute("label", neverStrings.label); + neverItem.setAttribute("accesskey", neverStrings.accesskey); popup.appendChild(neverItem); popup.addEventListener("command", this); let popupset = doc.getElementById("mainPopupSet"); popupset.appendChild(popup); }, @@ -2327,50 +2322,82 @@ let DefaultBrowserCheck = { prompt: function(win) { let brandBundle = win.document.getElementById("bundle_brand"); let shellBundle = win.document.getElementById("bundle_shell"); let brandShortName = brandBundle.getString("brandShortName"); let promptMessage = shellBundle.getFormattedString("setDefaultBrowserMessage2", [brandShortName]); - let confirmMessage = shellBundle.getFormattedString("setDefaultBrowserConfirm.label", - [brandShortName]); - let confirmKey = shellBundle.getString("setDefaultBrowserConfirm.accesskey"); + let yesButton = shellBundle.getFormattedString("setDefaultBrowserConfirm.label", + [brandShortName]); + + let notNowButton = shellBundle.getString("setDefaultBrowserNotNow.label"); + let notNowButtonKey = shellBundle.getString("setDefaultBrowserNotNow.accesskey"); + + let neverLabel = shellBundle.getString("setDefaultBrowserNever.label"); + let neverKey = shellBundle.getString("setDefaultBrowserNever.accesskey"); - let optionsMessage = shellBundle.getString("setDefaultBrowserOptions.label"); - let optionsKey = shellBundle.getString("setDefaultBrowserOptions.accesskey"); + let useNotificationBar = Services.prefs.getBoolPref("browser.defaultbrowser.notificationbar"); + if (useNotificationBar) { + let optionsMessage = shellBundle.getString("setDefaultBrowserOptions.label"); + let optionsKey = shellBundle.getString("setDefaultBrowserOptions.accesskey"); + + let yesButtonKey = shellBundle.getString("setDefaultBrowserConfirm.accesskey"); - let selectedBrowser = win.gBrowser.selectedBrowser; - let notificationBox = win.document.getElementById("high-priority-global-notificationbox"); + let notificationBox = win.document.getElementById("high-priority-global-notificationbox"); - this._createPopup(win, shellBundle); + this._createPopup(win, { + label: notNowButton, + accesskey: notNowButtonKey + }, { + label: neverLabel, + accesskey: neverKey + }); - let buttons = [ - { - label: confirmMessage, - accessKey: confirmKey, - callback: this.setAsDefault.bind(this) - }, - { - label: optionsMessage, - accessKey: optionsKey, - popup: this.OPTIONPOPUP + let buttons = [ + { + label: yesButton, + accessKey: yesButtonKey, + callback: () => { + this.setAsDefault(); + this.closePrompt(); + } + }, + { + label: optionsMessage, + accessKey: optionsKey, + popup: this.OPTIONPOPUP + } + ]; + + let iconPixels = win.devicePixelRatio > 1 ? "32" : "16"; + let iconURL = "chrome://branding/content/icon" + iconPixels + ".png"; + const priority = notificationBox.PRIORITY_WARNING_HIGH; + let callback = this._onNotificationEvent.bind(this); + this._notification = notificationBox.appendNotification(promptMessage, "default-browser", + iconURL, priority, buttons, + callback); + } else { + // Modal prompt + let promptTitle = shellBundle.getString("setDefaultBrowserTitle"); + + let ps = Services.prompt; + let dontAsk = { value: false }; + let buttonFlags = (ps.BUTTON_TITLE_IS_STRING * ps.BUTTON_POS_0) + + (ps.BUTTON_TITLE_IS_STRING * ps.BUTTON_POS_1) + + ps.BUTTON_POS_0_DEFAULT; + let rv = ps.confirmEx(win, promptTitle, promptMessage, buttonFlags, + yesButton, notNowButton, null, neverLabel, dontAsk); + if (rv == 0) { + this.setAsDefault(); + } else if (dontAsk.value) { + ShellService.shouldCheckDefaultBrowser = false; } - ]; - - - let iconPixels = win.devicePixelRatio > 1 ? "32" : "16"; - let iconURL = "chrome://branding/content/icon" + iconPixels + ".png"; - const priority = notificationBox.PRIORITY_WARNING_HIGH; - let callback = this._onNotificationEvent.bind(this); - this._notification = notificationBox.appendNotification(promptMessage, "default-browser", - iconURL, priority, buttons, - callback); - this._notification.persistence = -1; + } }, _onNotificationEvent: function(eventType) { if (eventType == "removed") { let doc = this._notification.ownerDocument; let popup = doc.getElementById(this.OPTIONPOPUP); popup.removeEventListener("command", this); popup.remove();