henry pushed to branch mullvad-browser-140.1.0esr-15.0-1 at The Tor Project / Applications / Mullvad Browser
Commits:
-
f9f53b49
by henry at 2025-07-30T17:32:14+01:00
5 changed files:
- browser/components/securitylevel/content/securityLevel.js
- browser/components/securitylevel/content/securityLevelButton.css
- browser/components/securitylevel/content/securityLevelPanel.css
- browser/components/securitylevel/content/securityLevelPanel.inc.xhtml
- browser/components/securitylevel/content/securityLevelPreferences.css
Changes:
... | ... | @@ -156,7 +156,6 @@ var SecurityLevelPanel = { |
156 | 156 | _populateXUL() {
|
157 | 157 | this._elements = {
|
158 | 158 | panel: document.getElementById("securityLevel-panel"),
|
159 | - background: document.getElementById("securityLevel-background"),
|
|
160 | 159 | levelName: document.getElementById("securityLevel-level"),
|
161 | 160 | summary: document.getElementById("securityLevel-summary"),
|
162 | 161 | };
|
... | ... | @@ -190,7 +189,7 @@ var SecurityLevelPanel = { |
190 | 189 | const level = SecurityLevelPrefs.securityLevelSummary;
|
191 | 190 | |
192 | 191 | // Descriptions change based on security level
|
193 | - this._elements.background.setAttribute("level", level);
|
|
192 | + this._elements.panel.setAttribute("level", level);
|
|
194 | 193 | let l10nIdLevel;
|
195 | 194 | let l10nIdSummary;
|
196 | 195 | switch (level) {
|
1 | -toolbarbutton#security-level-button[level="standard"] {
|
|
1 | +#security-level-button[level="standard"] {
|
|
2 | 2 | list-style-image: url("chrome://browser/content/securitylevel/securityLevelIcon.svg#standard");
|
3 | 3 | }
|
4 | -toolbarbutton#security-level-button[level="safer"] {
|
|
4 | + |
|
5 | +#security-level-button[level="safer"] {
|
|
5 | 6 | list-style-image: url("chrome://browser/content/securitylevel/securityLevelIcon.svg#safer");
|
6 | 7 | }
|
7 | -toolbarbutton#security-level-button[level="safest"] {
|
|
8 | + |
|
9 | +#security-level-button[level="safest"] {
|
|
8 | 10 | list-style-image: url("chrome://browser/content/securitylevel/securityLevelIcon.svg#safest");
|
9 | 11 | }
|
10 | -toolbarbutton#security-level-button[level="custom"] {
|
|
12 | + |
|
13 | +#security-level-button[level="custom"] {
|
|
11 | 14 | list-style-image: url("chrome://browser/content/securitylevel/securityLevelIcon.svg#standard_custom");
|
12 | 15 | }
|
16 | + |
|
17 | +#security-level-button:-moz-locale-dir(rtl) .toolbarbutton-icon {
|
|
18 | + transform: scaleX(-1);
|
|
19 | +} |
... | ... | @@ -3,40 +3,54 @@ |
3 | 3 | #securityLevel-background {
|
4 | 4 | min-height: 10em;
|
5 | 5 | padding-inline: 16px;
|
6 | - padding-block: 16px 8px;
|
|
7 | - gap: 16px;
|
|
8 | - background-repeat: no-repeat;
|
|
9 | - background-position-y: top 0.4em;
|
|
10 | - /* Icon center should be in-line with end padding.
|
|
11 | - * We set the right-to-left position here, and the left-to-right position
|
|
12 | - * below. */
|
|
13 | - --background-inline-offset: calc(16px - 4.5em);
|
|
14 | - background-position-x: left var(--background-inline-offset);
|
|
15 | - background-size: 9em 9em;
|
|
6 | + column-gap: 0.5em;
|
|
7 | + display: grid;
|
|
8 | + grid-template:
|
|
9 | + "top-pad icon" 16px
|
|
10 | + "title icon" auto
|
|
11 | + "body icon" auto
|
|
12 | + "learn-more icon" auto
|
|
13 | + "bottom-pad icon" minmax(8px, 1fr)
|
|
14 | + / auto auto;
|
|
15 | +}
|
|
16 | + |
|
17 | +#securityLevel-background-image {
|
|
18 | + grid-area: icon;
|
|
19 | + --security-level-icon-size: 9em;
|
|
20 | + width: var(--security-level-icon-size);
|
|
21 | + height: var(--security-level-icon-size);
|
|
22 | + margin-block: 0.4em;
|
|
23 | + /* Middle of shield aligns with the panel padding: */
|
|
24 | + margin-inline-end: calc(-0.5 * var(--security-level-icon-size));
|
|
25 | + align-self: start;
|
|
26 | + justify-self: end;
|
|
27 | + /* This icon is meant to act as background, so disable dragging or interfering
|
|
28 | + * with clicks. */
|
|
29 | + pointer-events: none;
|
|
16 | 30 | -moz-context-properties: fill, fill-opacity;
|
17 | 31 | fill-opacity: 1;
|
18 | 32 | fill: var(--border-color-card);
|
19 | 33 | }
|
20 | 34 | |
21 | 35 | /* NOTE: Use ":dir" instead of ":-moz-locale-dir" when panel switches to HTML. */
|
22 | -#securityLevel-background:-moz-locale-dir(ltr) {
|
|
23 | - background-position-x: right var(--background-inline-offset);
|
|
36 | +#securityLevel-background-image:-moz-locale-dir(rtl) {
|
|
37 | + transform: scaleX(-1);
|
|
24 | 38 | }
|
25 | 39 | |
26 | -#securityLevel-background:is([level="standard"], [level="custom"]) {
|
|
27 | - background-image: url("chrome://browser/content/securitylevel/securityLevelIcon.svg#standard");
|
|
40 | +#securityLevel-panel:is([level="standard"], [level="custom"]) #securityLevel-background-image {
|
|
41 | + content: url("chrome://browser/content/securitylevel/securityLevelIcon.svg#standard");
|
|
28 | 42 | }
|
29 | 43 | |
30 | -#securityLevel-background[level="safer"] {
|
|
31 | - background-image: url("chrome://browser/content/securitylevel/securityLevelIcon.svg#safer");
|
|
44 | +#securityLevel-panel[level="safer"] #securityLevel-background-image {
|
|
45 | + content: url("chrome://browser/content/securitylevel/securityLevelIcon.svg#safer");
|
|
32 | 46 | }
|
33 | 47 | |
34 | -#securityLevel-background[level="safest"] {
|
|
35 | - background-image: url("chrome://browser/content/securitylevel/securityLevelIcon.svg#safest");
|
|
48 | +#securityLevel-panel[level="safest"] #securityLevel-background-image {
|
|
49 | + content: url("chrome://browser/content/securitylevel/securityLevelIcon.svg#safest");
|
|
36 | 50 | }
|
37 | 51 | |
38 | 52 | #securityLevel-background p {
|
39 | - margin: 0;
|
|
53 | + margin-block: 0 16px;
|
|
40 | 54 | }
|
41 | 55 | |
42 | 56 | /* Override margin in panelUI-shared.css */
|
... | ... | @@ -47,13 +61,15 @@ |
47 | 61 | #securityLevel-level {
|
48 | 62 | font-size: 1.25em;
|
49 | 63 | font-weight: 600;
|
64 | + grid-area: title;
|
|
50 | 65 | }
|
51 | 66 | |
52 | 67 | #securityLevel-summary {
|
53 | - padding-inline-end: 5em;
|
|
54 | 68 | max-width: 20em;
|
69 | + grid-area: body;
|
|
55 | 70 | }
|
56 | 71 | |
57 | 72 | #securityLevel-learnMore {
|
58 | 73 | align-self: start;
|
74 | + grid-area: learn-more;
|
|
59 | 75 | } |
1 | 1 | <panel id="securityLevel-panel"
|
2 | 2 | role="dialog"
|
3 | 3 | aria-labelledby="securityLevel-header"
|
4 | - aria-describedby="securityLevel-subheading securityLevel-summary"
|
|
4 | + aria-describedby="securityLevel-level securityLevel-summary"
|
|
5 | 5 | type="arrow"
|
6 | 6 | orient="vertical"
|
7 | 7 | class="cui-widget-panel panel-no-padding">
|
... | ... | @@ -13,9 +13,7 @@ |
13 | 13 | </box>
|
14 | 14 | <toolbarseparator id="securityLevel-separator"></toolbarseparator>
|
15 | 15 | <vbox id="securityLevel-background" class="panel-subview-body">
|
16 | - <html:p id="securityLevel-subheading">
|
|
17 | - <html:span id="securityLevel-level"></html:span>
|
|
18 | - </html:p>
|
|
16 | + <html:p id="securityLevel-level"></html:p>
|
|
19 | 17 | <html:p id="securityLevel-summary"></html:p>
|
20 | 18 | <html:a
|
21 | 19 | is="moz-support-link"
|
... | ... | @@ -23,6 +21,7 @@ |
23 | 21 | tor-manual-page="security-settings"
|
24 | 22 | data-l10n-id="security-level-panel-learn-more-link"
|
25 | 23 | ></html:a>
|
24 | + <html:img id="securityLevel-background-image" alt="" />
|
|
26 | 25 | </vbox>
|
27 | 26 | <html:moz-button-group class="panel-footer">
|
28 | 27 | <button
|
... | ... | @@ -18,6 +18,10 @@ |
18 | 18 | margin-inline-end: var(--space-large);
|
19 | 19 | }
|
20 | 20 | |
21 | +:-moz-locale-dir(rtl) .security-level-icon {
|
|
22 | + transform: scaleX(-1);
|
|
23 | +}
|
|
24 | + |
|
21 | 25 | .security-level-current-badge {
|
22 | 26 | grid-area: badge;
|
23 | 27 | align-self: center;
|