This is an automated email from the git hooks/post-receive script.
pierov pushed a commit to branch tor-browser-102.5.0esr-12.5-1 in repository tor-browser.
The following commit(s) were added to refs/heads/tor-browser-102.5.0esr-12.5-1 by this push: new b92006098180 fixup! Bug 40926: Implemented the New Identity feature b92006098180 is described below
commit b9200609818021476cc21c523c147435d814c74f Author: Pier Angelo Vendrame pierov@torproject.org AuthorDate: Tue Nov 22 10:13:45 2022 +0100
fixup! Bug 40926: Implemented the New Identity feature
Bug 41448: Use `danger` style for primary button in new identity modal --- .../newidentity/content/newIdentityDialog.css | 7 ++++ .../newidentity/content/newIdentityDialog.js | 24 +++++++++++ .../newidentity/content/newIdentityDialog.xhtml | 46 ++++++++++++++++++++++ .../components/newidentity/content/newidentity.js | 31 ++++++--------- browser/components/newidentity/jar.mn | 5 ++- 5 files changed, 92 insertions(+), 21 deletions(-)
diff --git a/browser/components/newidentity/content/newIdentityDialog.css b/browser/components/newidentity/content/newIdentityDialog.css new file mode 100644 index 000000000000..850e7c7da625 --- /dev/null +++ b/browser/components/newidentity/content/newIdentityDialog.css @@ -0,0 +1,7 @@ +/* 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/. */ + +#infoTitle { + font-weight: 600; +} diff --git a/browser/components/newidentity/content/newIdentityDialog.js b/browser/components/newidentity/content/newIdentityDialog.js new file mode 100644 index 000000000000..7b29fdaabd19 --- /dev/null +++ b/browser/components/newidentity/content/newIdentityDialog.js @@ -0,0 +1,24 @@ +/* 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/. */ + +document.addEventListener("dialogaccept", () => { + const retvals = window.arguments[0]; + retvals.confirmed = true; + retvals.neverAskAgain = document.querySelector("#neverAskAgain").checked; +}); + +document.addEventListener("DOMContentLoaded", () => { + const { NewIdentityStrings } = window.arguments[0]; + const dialog = document.querySelector("#newIdentityDialog"); + + dialog.querySelector("#infoTitle").textContent = + NewIdentityStrings.new_identity_prompt_title; + dialog.querySelector("#infoBody").textContent = + NewIdentityStrings.new_identity_prompt; + dialog.querySelector("#neverAskAgain").label = + NewIdentityStrings.new_identity_ask_again; + const accept = dialog.getButton("accept"); + accept.label = NewIdentityStrings.new_identity_restart; + accept.classList.add("danger-button"); +}); diff --git a/browser/components/newidentity/content/newIdentityDialog.xhtml b/browser/components/newidentity/content/newIdentityDialog.xhtml new file mode 100644 index 000000000000..067c64015a31 --- /dev/null +++ b/browser/components/newidentity/content/newIdentityDialog.xhtml @@ -0,0 +1,46 @@ +<?xml version="1.0"?> + +<!-- 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/. --> + +<!-- based on resetProfile.xhtml --> + +<?xml-stylesheet href="chrome://global/skin/global.css"?> +<?xml-stylesheet href="chrome://global/content/commonDialog.css"?> +<?xml-stylesheet href="chrome://global/skin/commonDialog.css"?> +<?xml-stylesheet href="chrome://browser/content/newIdentityDialog.css"?> + +<window id="newIdentityDialogWindow" + xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" + xmlns:html="http://www.w3.org/1999/xhtml" + xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" + aria-describedby="infoBody"> +<dialog id="newIdentityDialog" + buttons="accept,cancel" + defaultButton="accept"> + + <linkset> + <!-- Without this document.l10n is not initialized, and we need it for the + cancel button. --> + <html:link rel="localization" href="branding/brand.ftl"/> + </linkset> + + <div xmlns="http://www.w3.org/1999/xhtml"> + <div id="dialogGrid"> + <div class="dialogRow" id="infoRow"> + <div id="iconContainer"> + <xul:image id="infoIcon"/> + </div> + <div id="infoContainer"> + <xul:description id="infoTitle"/> + <xul:description id="infoBody" context="contentAreaContextMenu" noinitialfocus="true"/> + <xul:checkbox id="neverAskAgain"/> + </div> + </div> + </div> + </div> + + <script src="chrome://browser/content/newIdentityDialog.js"/> +</dialog> +</window> diff --git a/browser/components/newidentity/content/newidentity.js b/browser/components/newidentity/content/newidentity.js index cad74e9cddf9..7c1332da6e63 100644 --- a/browser/components/newidentity/content/newidentity.js +++ b/browser/components/newidentity/content/newidentity.js @@ -528,26 +528,17 @@ XPCOMUtils.defineLazyGetter(this, "NewIdentityButton", () => { const prefConfirm = "browser.new_identity.confirm_newnym"; const shouldConfirm = Services.prefs.getBoolPref(prefConfirm, true); if (shouldConfirm) { - // Display two buttons, both with string titles. - const flags = - Services.prompt.BUTTON_TITLE_IS_STRING * - Services.prompt.BUTTON_POS_0 + - Services.prompt.BUTTON_TITLE_CANCEL * Services.prompt.BUTTON_POS_1; - const askAgain = { value: false }; - const confirmed = - Services.prompt.confirmEx( - window, - NewIdentityStrings.new_identity_prompt_title, - NewIdentityStrings.new_identity_prompt, - flags, - NewIdentityStrings.new_identity_restart, - null, - null, - NewIdentityStrings.new_identity_ask_again, - askAgain - ) == 0; - Services.prefs.setBoolPref(prefConfirm, !askAgain.value); - if (!confirmed) { + const params = { + NewIdentityStrings, + confirmed: false, + neverAskAgain: false, + }; + await window.gDialogBox.open( + "chrome://browser/content/newIdentityDialog.xhtml", + params + ); + Services.prefs.setBoolPref(prefConfirm, !params.neverAskAgain); + if (!params.confirmed) { return; } } diff --git a/browser/components/newidentity/jar.mn b/browser/components/newidentity/jar.mn index 57b30b32c0e1..51b9770fc635 100644 --- a/browser/components/newidentity/jar.mn +++ b/browser/components/newidentity/jar.mn @@ -1,5 +1,8 @@ browser.jar: - content/browser/newidentity.js (content/newidentity.js) + content/browser/newidentity.js (content/newidentity.js) + content/browser/newIdentityDialog.xhtml (content/newIdentityDialog.xhtml) + content/browser/newIdentityDialog.css (content/newIdentityDialog.css) + content/browser/newIdentityDialog.js (content/newIdentityDialog.js)
newidentity.jar: # We need to list at least one locale here, to make Firefox load the localized