morgan pushed to branch base-browser-140.2.0esr-15.0-1 at The Tor Project / Applications / Tor Browser
Commits:
-
e95dea25
by Henry Wilkes at 2025-08-26T20:18:26+00:00
3 changed files:
- browser/components/aboutlogins/content/aboutLogins.mjs
- browser/components/aboutlogins/content/components/login-command-button.mjs
- browser/components/aboutlogins/content/components/login-list.mjs
Changes:
... | ... | @@ -27,9 +27,6 @@ const gElements = { |
27 | 27 | ".menuitem-remove-all-logins"
|
28 | 28 | );
|
29 | 29 | },
|
30 | - get createNewLoginButton() {
|
|
31 | - return this.loginList.shadowRoot.querySelector(".create-login-button");
|
|
32 | - },
|
|
33 | 30 | };
|
34 | 31 | |
35 | 32 | let numberOfLogins = 0;
|
... | ... | @@ -136,9 +133,7 @@ window.addEventListener("AboutLoginsChromeToContent", event => { |
136 | 133 | gElements.loginList.setSortDirection(event.detail.value.selectedSort);
|
137 | 134 | document.documentElement.classList.add("initialized");
|
138 | 135 | gElements.loginList.classList.add("initialized");
|
139 | - if (!event.detail.value.canCreateLogins) {
|
|
140 | - gElements.createNewLoginButton.disabled = true;
|
|
141 | - }
|
|
136 | + gElements.loginList.canCreateLogins = event.detail.value.canCreateLogins;
|
|
142 | 137 | break;
|
143 | 138 | }
|
144 | 139 | case "ShowLoginItemError": {
|
... | ... | @@ -48,6 +48,9 @@ export class CreateLoginButton extends MozLitElement { |
48 | 48 | static get properties() {
|
49 | 49 | return {
|
50 | 50 | disabled: { type: Boolean, reflect: true },
|
51 | + // Whether the button is disabled no matter if the "disabled" attribute is
|
|
52 | + // switched.
|
|
53 | + hardDisabled: { type: Boolean, reflect: true },
|
|
51 | 54 | };
|
52 | 55 | }
|
53 | 56 | |
... | ... | @@ -62,7 +65,7 @@ export class CreateLoginButton extends MozLitElement { |
62 | 65 | l10nId: "create-login-button",
|
63 | 66 | variant: "icon-button",
|
64 | 67 | icon: "chrome://global/skin/icons/plus.svg",
|
65 | - disabled: this.disabled,
|
|
68 | + disabled: this.disabled || this.hardDisabled,
|
|
66 | 69 | })}
|
67 | 70 | `;
|
68 | 71 | }
|
... | ... | @@ -111,6 +111,28 @@ export default class LoginList extends HTMLElement { |
111 | 111 | this._blankLoginListItem.hidden = true;
|
112 | 112 | }
|
113 | 113 | |
114 | + /**
|
|
115 | + * Whether the user can create logins.
|
|
116 | + *
|
|
117 | + * @type {boolean}
|
|
118 | + */
|
|
119 | + _canCreateLogins = false;
|
|
120 | + |
|
121 | + get canCreateLogins() {
|
|
122 | + return this._canCreateLogins;
|
|
123 | + }
|
|
124 | + |
|
125 | + set canCreateLogins(value) {
|
|
126 | + this._canCreateLogins = Boolean(value);
|
|
127 | + this._canCreateLoginsUpdate();
|
|
128 | + }
|
|
129 | + |
|
130 | + _canCreateLoginsUpdate() {
|
|
131 | + if (this._createLoginButton) {
|
|
132 | + this._createLoginButton.hardDisabled = !this.canCreateLogins;
|
|
133 | + }
|
|
134 | + }
|
|
135 | + |
|
114 | 136 | connectedCallback() {
|
115 | 137 | if (this.shadowRoot) {
|
116 | 138 | return;
|
... | ... | @@ -122,6 +144,7 @@ export default class LoginList extends HTMLElement { |
122 | 144 | |
123 | 145 | this._count = shadowRoot.querySelector(".count");
|
124 | 146 | this._createLoginButton = shadowRoot.querySelector("create-login-button");
|
147 | + this._canCreateLoginsUpdate();
|
|
125 | 148 | this._list = shadowRoot.querySelector("ol");
|
126 | 149 | this._list.appendChild(this._blankLoginListItem);
|
127 | 150 | this._sortSelect = shadowRoot.querySelector("#login-sort");
|
... | ... | @@ -426,7 +449,7 @@ export default class LoginList extends HTMLElement { |
426 | 449 | break;
|
427 | 450 | }
|
428 | 451 | case "AboutLoginsShowBlankLogin": {
|
429 | - if (!event.defaultPrevented) {
|
|
452 | + if (!event.defaultPrevented && this.canCreateLogins) {
|
|
430 | 453 | this._selectedGuid = null;
|
431 | 454 | this._setListItemAsSelected(this._blankLoginListItem);
|
432 | 455 | }
|