Bug 1679463 - Replace :not(foo):not(bar) with :not(foo,bar) in browser/. r=ntim

Differential Revision: https://phabricator.services.mozilla.com/D98028
This commit is contained in:
Dão Gottwald 2020-11-26 21:54:32 +00:00
Родитель 55fe392eba
Коммит 57d8ec78b2
25 изменённых файлов: 90 добавлений и 93 удалений

Просмотреть файл

@ -1717,9 +1717,9 @@ var BookmarkingUI = {
// Do we have visible kids?
let hasVisibleChildren = !!this.toolbar.querySelector(
`:scope > toolbarpaletteitem > toolbarbutton:not([hidden]),
:scope > toolbarpaletteitem > toolbaritem:not([hidden]):not(#personal-bookmarks),
:scope > toolbarpaletteitem > toolbaritem:not([hidden], #personal-bookmarks),
:scope > toolbarbutton:not([hidden]),
:scope > toolbaritem:not([hidden]):not(#personal-bookmarks)`
:scope > toolbaritem:not([hidden], #personal-bookmarks)`
);
if (!hasVisibleChildren) {

Просмотреть файл

@ -156,7 +156,7 @@ panelview[mainview] > .panel-header {
}
@supports not -moz-bool-pref("browser.tabs.tabmanager.enabled") {
#tabbrowser-tabs:not([overflow="true"]):not([hashiddentabs]) ~ #alltabs-button {
#tabbrowser-tabs:not([overflow="true"], [hashiddentabs]) ~ #alltabs-button {
display: none;
}
#tabbrowser-tabs:not([overflow="true"])[using-closing-tabs-spacer] ~ #alltabs-button {
@ -187,7 +187,7 @@ panelview[mainview] > .panel-header {
min-width: calc(var(--tab-min-width) + 10px);
}
.tabbrowser-tab:not([pinned]):not([fadein]) {
.tabbrowser-tab:not([pinned], [fadein]) {
max-width: 0.1px;
min-width: 0.1px;
visibility: hidden;
@ -652,7 +652,7 @@ toolbar:not(#TabsToolbar) > #personal-bookmarks {
}
#urlbar[actionoverride] > #urlbar-input-container > #urlbar-label-box,
#urlbar:not([actiontype="switchtab"]):not([actiontype="extension"]):not([searchmode]) > #urlbar-input-container > #urlbar-label-box,
#urlbar:not([actiontype="switchtab"], [actiontype="extension"], [searchmode]) > #urlbar-input-container > #urlbar-label-box,
#urlbar:not([actiontype="switchtab"]) > #urlbar-input-container > #urlbar-label-box > #urlbar-label-switchtab,
#urlbar:not([actiontype="extension"]) > #urlbar-input-container > #urlbar-label-box > #urlbar-label-extension,
#urlbar[searchmode][breakout-extend] > #urlbar-input-container > #urlbar-label-box,
@ -1444,7 +1444,7 @@ toolbarpaletteitem > toolbaritem {
}
}
toolbar[keyNav=true]:not([collapsed=true]):not([customizing=true]) toolbartabstop {
toolbar[keyNav=true]:not([collapsed=true], [customizing=true]) toolbartabstop {
-moz-user-focus: normal;
}

Просмотреть файл

@ -7,11 +7,11 @@
.tab-icon-pending:not([pendingicon]),
.tab-icon-pending[busy],
.tab-icon-pending[pinned],
.tab-icon-image:not([src]):not([pinned]):not([crashed]):not([pictureinpicture])[selected],
.tab-icon-image:not([src]):not([pinned]):not([crashed]):not([sharing]):not([pictureinpicture]),
.tab-icon-image:not([src], [pinned], [crashed], [pictureinpicture])[selected],
.tab-icon-image:not([src], [pinned], [crashed], [sharing], [pictureinpicture]),
.tab-icon-image[busy],
.tab-throbber:not([busy]),
.tab-icon-sound:not([soundplaying]):not([muted]):not([activemedia-blocked]):not([pictureinpicture]),
.tab-icon-sound:not([soundplaying], [muted], [activemedia-blocked], [pictureinpicture]),
.tab-icon-sound[pinned],
.tab-sharing-icon-overlay,
.tab-icon-overlay {
@ -40,13 +40,13 @@
}
.tab-label-container[textoverflow][labeldirection=ltr]:not([pinned]),
.tab-label-container[textoverflow]:not([labeldirection]):not([pinned]):-moz-locale-dir(ltr) {
.tab-label-container[textoverflow]:not([labeldirection], [pinned]):-moz-locale-dir(ltr) {
direction: ltr;
mask-image: linear-gradient(to left, transparent, black 2em);
}
.tab-label-container[textoverflow][labeldirection=rtl]:not([pinned]),
.tab-label-container[textoverflow]:not([labeldirection]):not([pinned]):-moz-locale-dir(rtl) {
.tab-label-container[textoverflow]:not([labeldirection], [pinned]):-moz-locale-dir(rtl) {
direction: rtl;
mask-image: linear-gradient(to right, transparent, black 2em);
}

Просмотреть файл

@ -56,7 +56,7 @@ login-list {
:root:not(.initialized) login-intro,
:root:not(.initialized) login-item,
:root.empty-search login-intro,
:root:not(.no-logins):not(.empty-search):not(.login-selected) login-intro,
:root:not(.no-logins, .empty-search, .login-selected) login-intro,
login-item[data-editing="true"] + login-intro,
.login-selected login-intro,
:root:not(.login-selected) login-item:not([data-editing="true"]),

Просмотреть файл

@ -220,7 +220,7 @@ add_task(async function test_empty_login_username_in_list() {
}));
gLoginList.setLogins([TEST_LOGIN_3]);
let loginListItems = gLoginList.shadowRoot.querySelectorAll(".login-list-item:not(#new-login-list-item):not([hidden])");
let loginListItems = gLoginList.shadowRoot.querySelectorAll(".login-list-item:not(#new-login-list-item, [hidden])");
is(loginListItems.length, 1, "The one stored login should be displayed");
is(loginListItems[0].dataset.guid, TEST_LOGIN_3.guid, "login-list-item should have correct guid attribute");
let loginUsername = loginListItems[0].querySelector(".username");
@ -229,7 +229,7 @@ add_task(async function test_empty_login_username_in_list() {
add_task(async function test_populated_list() {
gLoginList.setLogins([TEST_LOGIN_1, TEST_LOGIN_2]);
let loginListItems = gLoginList.shadowRoot.querySelectorAll(".login-list-item:not(#new-login-list-item):not([hidden])");
let loginListItems = gLoginList.shadowRoot.querySelectorAll(".login-list-item:not(#new-login-list-item, [hidden])");
is(loginListItems.length, 2, "The two stored logins should be displayed");
is(loginListItems[0].getAttribute("role"), "option", "Each login-list-item should have role='option'");
is(loginListItems[0].dataset.guid, TEST_LOGIN_1.guid, "login-list-item should have correct guid attribute");
@ -240,7 +240,7 @@ add_task(async function test_populated_list() {
ok(loginListItems[0].classList.contains("selected"), "The first item should be selected by default");
ok(!loginListItems[1].classList.contains("selected"), "The second item should not be selected by default");
loginListItems[0].click();
loginListItems = gLoginList.shadowRoot.querySelectorAll(".login-list-item:not(#new-login-list-item):not([hidden])");
loginListItems = gLoginList.shadowRoot.querySelectorAll(".login-list-item:not(#new-login-list-item, [hidden])");
is(loginListItems.length, 2, "After selecting one, only the two stored logins should be displayed");
ok(loginListItems[0].classList.contains("selected"), "The first item should be selected");
ok(!loginListItems[1].classList.contains("selected"), "The second item should still not be selected");
@ -253,7 +253,7 @@ add_task(async function test_breach_indicator() {
vulnerableLogins.set(TEST_LOGIN_1.guid, true);
vulnerableLogins.set(TEST_LOGIN_3.guid, true);
gLoginList.setVulnerableLogins(vulnerableLogins);
let loginListItems = gLoginList.shadowRoot.querySelectorAll(".login-list-item:not(#new-login-list-item):not([hidden])");
let loginListItems = gLoginList.shadowRoot.querySelectorAll(".login-list-item:not(#new-login-list-item, [hidden])");
let alertIcon = loginListItems[0].querySelector(".alert-icon");
is(loginListItems[0].dataset.guid, TEST_LOGIN_1.guid, "The first login should be TEST_LOGIN_1");
ok(!loginListItems[0].classList.contains("vulnerable"), "The first login should not have the .vulnerable class");
@ -275,7 +275,7 @@ add_task(async function test_filtered_list() {
gLoginList.setLogins([TEST_LOGIN_1, TEST_LOGIN_2]);
let emptySearchText = gLoginList.shadowRoot.querySelector(".empty-search-message");
ok(isHidden(emptySearchText), "The empty search text should be hidden when there are results in the list");
is(gLoginList.shadowRoot.querySelectorAll(".login-list-item:not(#new-login-list-item):not([hidden])").length, 2, "Both logins should be visible");
is(gLoginList.shadowRoot.querySelectorAll(".login-list-item:not(#new-login-list-item, [hidden])").length, 2, "Both logins should be visible");
let countSpan = gLoginList.shadowRoot.querySelector(".count");
is(JSON.parse(countSpan.getAttribute("data-l10n-args")).count, 2, "Count should match full list length");
window.dispatchEvent(new CustomEvent("AboutLoginsFilterLogins", {
@ -399,12 +399,12 @@ add_task(async function test_login_modified() {
add_task(async function test_login_added() {
info("selected sort: " + gLoginList.shadowRoot.getElementById("login-sort").selectedIndex);
let loginListItems = gLoginList.shadowRoot.querySelectorAll(".login-list-item:not(#new-login-list-item):not([hidden])");
let loginListItems = gLoginList.shadowRoot.querySelectorAll(".login-list-item:not(#new-login-list-item, [hidden])");
is(loginListItems.length, 2, "Should have two logins at start of test");
let newLogin = Object.assign({}, TEST_LOGIN_1, {title: "example2.example.com", guid: "111222"});
gLoginList.loginAdded(newLogin);
await asyncElementRendered();
loginListItems = gLoginList.shadowRoot.querySelectorAll(".login-list-item:not(#new-login-list-item):not([hidden])");
loginListItems = gLoginList.shadowRoot.querySelectorAll(".login-list-item:not(#new-login-list-item, [hidden])");
is(loginListItems.length, 3, "New login should be added to the list");
is(loginListItems[0].dataset.guid, TEST_LOGIN_1.guid, "login-list-item1 should have correct guid attribute");
is(loginListItems[1].dataset.guid, TEST_LOGIN_2.guid, "login-list-item2 should have correct guid attribute");
@ -418,7 +418,7 @@ add_task(async function test_login_added() {
add_task(async function test_login_removed() {
gLoginList.loginRemoved({guid: "111222"});
await asyncElementRendered();
let loginListItems = gLoginList.shadowRoot.querySelectorAll(".login-list-item:not(#new-login-list-item):not([hidden])");
let loginListItems = gLoginList.shadowRoot.querySelectorAll(".login-list-item:not(#new-login-list-item, [hidden])");
is(loginListItems.length, 2, "New login should be removed from the list");
is(loginListItems[0].dataset.guid, TEST_LOGIN_1.guid, "login-list-item1 should have correct guid attribute");
is(loginListItems[1].dataset.guid, TEST_LOGIN_2.guid, "login-list-item2 should have correct guid attribute");
@ -479,7 +479,7 @@ add_task(async function test_sorted_list() {
let loginSort = gLoginList.shadowRoot.getElementById("login-sort");
loginSort.value = "last-used";
dispatchChangeEvent(loginSort);
let loginListItems = gLoginList.shadowRoot.querySelectorAll(".login-list-item:not(#new-login-list-item):not([hidden])");
let loginListItems = gLoginList.shadowRoot.querySelectorAll(".login-list-item:not(#new-login-list-item, [hidden])");
is(loginListItems.length, 3, "The list should contain the three stored logins");
let timeUsed1 = gLoginList._logins[loginListItems[0].dataset.guid].login.timeLastUsed;
let timeUsed2 = gLoginList._logins[loginListItems[1].dataset.guid].login.timeLastUsed;
@ -490,7 +490,7 @@ add_task(async function test_sorted_list() {
// sort by title
loginSort.value = "name";
dispatchChangeEvent(loginSort);
loginListItems = gLoginList.shadowRoot.querySelectorAll(".login-list-item:not(#new-login-list-item):not([hidden])");
loginListItems = gLoginList.shadowRoot.querySelectorAll(".login-list-item:not(#new-login-list-item, [hidden])");
let title1 = gLoginList._logins[loginListItems[0].dataset.guid].login.title;
let title2 = gLoginList._logins[loginListItems[1].dataset.guid].login.title;
let title3 = gLoginList._logins[loginListItems[2].dataset.guid].login.title;
@ -500,7 +500,7 @@ add_task(async function test_sorted_list() {
// sort by title in reverse alphabetical order
loginSort.value = "name-reverse";
dispatchChangeEvent(loginSort);
loginListItems = gLoginList.shadowRoot.querySelectorAll(".login-list-item:not(#new-login-list-item):not([hidden])");
loginListItems = gLoginList.shadowRoot.querySelectorAll(".login-list-item:not(#new-login-list-item, [hidden])");
title1 = gLoginList._logins[loginListItems[0].dataset.guid].login.title;
title2 = gLoginList._logins[loginListItems[1].dataset.guid].login.title;
title3 = gLoginList._logins[loginListItems[2].dataset.guid].login.title;
@ -511,7 +511,7 @@ add_task(async function test_sorted_list() {
// sort by last changed
loginSort.value = "last-changed";
dispatchChangeEvent(loginSort);
loginListItems = gLoginList.shadowRoot.querySelectorAll(".login-list-item:not(#new-login-list-item):not([hidden])");
loginListItems = gLoginList.shadowRoot.querySelectorAll(".login-list-item:not(#new-login-list-item, [hidden])");
let pwChanged1 = gLoginList._logins[loginListItems[0].dataset.guid].login.timePasswordChanged;
let pwChanged2 = gLoginList._logins[loginListItems[1].dataset.guid].login.timePasswordChanged;
let pwChanged3 = gLoginList._logins[loginListItems[2].dataset.guid].login.timePasswordChanged;
@ -524,7 +524,7 @@ add_task(async function test_sorted_list() {
let vulnerableLogins = new Map();
gLoginList.setVulnerableLogins(vulnerableLogins);
dispatchChangeEvent(loginSort);
loginListItems = gLoginList.shadowRoot.querySelectorAll(".login-list-item:not(#new-login-list-item):not([hidden])");
loginListItems = gLoginList.shadowRoot.querySelectorAll(".login-list-item:not(#new-login-list-item, [hidden])");
is(loginListItems[0].classList.contains("breached"), true, "Breached login should be displayed at top of list");
is(!loginListItems[1].classList.contains("breached"), true, "Non-breached login should be displayed below breached");
@ -532,7 +532,7 @@ add_task(async function test_sorted_list() {
gLoginList.setBreaches(new Map());
loginSort.value = "alerts";
dispatchChangeEvent(loginSort);
loginListItems = gLoginList.shadowRoot.querySelectorAll(".login-list-item:not(#new-login-list-item):not([hidden])");
loginListItems = gLoginList.shadowRoot.querySelectorAll(".login-list-item:not(#new-login-list-item, [hidden])");
title1 = gLoginList._logins[loginListItems[0].dataset.guid].login.title;
title2 = gLoginList._logins[loginListItems[1].dataset.guid].login.title;
is(title1.localeCompare(title2), -1, "Logins should be sorted alphabetically by hostname");

Просмотреть файл

@ -419,7 +419,7 @@ CustomizeMode.prototype = {
this.document.documentElement.setAttribute("customizing", true);
let customizableToolbars = document.querySelectorAll(
"toolbar[customizable=true]:not([autohide=true]):not([collapsed=true])"
"toolbar[customizable=true]:not([autohide=true], [collapsed=true])"
);
for (let toolbar of customizableToolbars) {
toolbar.setAttribute("customizing", true);

Просмотреть файл

@ -265,24 +265,24 @@ button.browser-style.expander {
}
/* Interactive States */
button.browser-style:hover:not(.pressed):not(:disabled):not(.focused),
select.browser-style:hover:not(.pressed):not(:disabled):not(.focused) {
button.browser-style:hover:not(.pressed, :disabled, .focused),
select.browser-style:hover:not(.pressed, :disabled, .focused) {
background-color: #ebebeb;
border: 1px solid #b1b1b1;
}
button.browser-style:hover:active:not(.hover):not(:disabled):not(.focused),
select.browser-style:hover:active:not(.hover):not(:disabled):not(.focused) {
button.browser-style:hover:active:not(.hover, :disabled, .focused),
select.browser-style:hover:active:not(.hover, :disabled, .focused) {
background-color: #d4d4d4;
border: 1px solid #858585;
}
button.browser-style.default:hover:not(.pressed):not(:disabled):not(.focused) {
button.browser-style.default:hover:not(.pressed, :disabled, .focused) {
background-color: #0670cc;
border-color: #005bab;
}
button.browser-style.default:hover:active:not(.hover):not(:disabled):not(.focused) {
button.browser-style.default:hover:active:not(.hover, :disabled, .focused) {
background-color: #005bab;
border-color: #004480;
}

Просмотреть файл

@ -8,8 +8,7 @@ test_newtab({
before: setDefaultTopSites,
// Test verifies the menu options for a default top site.
test: async function defaultTopSites_menuOptions() {
const siteSelector =
".top-site-outer:not(.search-shortcut):not(.placeholder)";
const siteSelector = ".top-site-outer:not(.search-shortcut, .placeholder)";
await ContentTaskUtils.waitForCondition(
() => content.document.querySelector(siteSelector),
"Topsite tippytop icon not found"
@ -48,8 +47,7 @@ test_newtab({
before: setDefaultTopSites,
// Test verifies that the next top site in queue replaces a dismissed top site.
test: async function defaultTopSites_dismiss() {
const siteSelector =
".top-site-outer:not(.search-shortcut):not(.placeholder)";
const siteSelector = ".top-site-outer:not(.search-shortcut, .placeholder)";
await ContentTaskUtils.waitForCondition(
() => content.document.querySelector(siteSelector),
"Topsite tippytop icon not found"

Просмотреть файл

@ -31,8 +31,7 @@ test_newtab({
before: setDefaultTopSites,
// it should pin the website when we click the first option of the topsite context menu.
test: async function topsites_pin_unpin() {
const siteSelector =
".top-site-outer:not(.search-shortcut):not(.placeholder)";
const siteSelector = ".top-site-outer:not(.search-shortcut, .placeholder)";
await ContentTaskUtils.waitForCondition(
() => content.document.querySelector(siteSelector),
"Topsite tippytop icon not found"

Просмотреть файл

@ -260,7 +260,7 @@ var gSearchResultsPane = {
// Building the range for highlighted areas
let rootPreferencesChildren = [
...document.querySelectorAll(
"#mainPrefPane > *:not([data-hidden-from-search]):not(script):not(stringbundle)"
"#mainPrefPane > *:not([data-hidden-from-search], script, stringbundle)"
),
];

Просмотреть файл

@ -185,8 +185,8 @@ menuitem.bookmark-item {
}
}
#urlbar:not(:-moz-lwtheme):not([focused="true"]) > #urlbar-background,
#searchbar:not(:-moz-lwtheme):not(:focus-within) {
#urlbar:not(:-moz-lwtheme, [focused="true"]) > #urlbar-background,
#searchbar:not(:-moz-lwtheme, :focus-within) {
border-color: ThreeDShadow;
}

Просмотреть файл

@ -19,7 +19,7 @@
margin-inline-start: 4px;
}
#viewButton:-moz-focusring:not(:hover):not([open]) {
#viewButton:-moz-focusring:not(:hover, [open]) {
outline: 1px dotted -moz-DialogText;
}

Просмотреть файл

@ -487,7 +487,7 @@
margin-block: 1px 0;
}
.tabbrowser-tab:not(:hover) > .tab-stack > .tab-content > .tab-icon-image:not([selected="true"]):not([multiselected]) {
.tabbrowser-tab:not(:hover) > .tab-stack > .tab-content > .tab-icon-image:not([selected="true"], [multiselected]) {
opacity: .9;
}
@ -499,7 +499,7 @@
opacity: 0.9999;
}
.tab-label-container:not([selected="true"]):not([multiselected]) {
.tab-label-container:not([selected="true"], [multiselected]) {
opacity: .7;
}

Просмотреть файл

@ -121,7 +121,7 @@
transition-duration: 150ms;
}
#UITourTooltipButtons > button:not(.button-link):not(:active):hover {
#UITourTooltipButtons > button:not(.button-link, :active):hover {
background-color: hsla(210,4%,10%,.15);
border-color: hsla(210,4%,10%,.15);
box-shadow: 0 1px 0 0 hsla(210,4%,10%,.05) inset;

Просмотреть файл

@ -75,7 +75,7 @@
padding: 2px 5px;
}
.customizationmode-checkbox:not(:-moz-lwtheme):not([disabled]),
.customizationmode-checkbox:not(:-moz-lwtheme, [disabled]),
.customizationmode-button {
/* !important overrides :hover:active color from button.css on Mac */
color: rgb(71, 71, 71) !important;

Просмотреть файл

@ -32,7 +32,7 @@
%define appmenuWarningBackgroundColorActiveBrightText hsla(55,100%,50%,.2)
%define appmenuWarningColorBrightText #F9F9FA
:root:not([uidensity=compact]):not([chromehidden~="toolbar"]) #PanelUI-button {
:root:not([uidensity=compact], [chromehidden~="toolbar"]) #PanelUI-button {
margin-inline-start: 3px;
border-inline-start: 1px solid;
border-image: linear-gradient(
@ -44,7 +44,7 @@
border-image-slice: 1;
}
:root:not([uidensity=compact]):not([chromehidden~="toolbar"]) #nav-bar[brighttext] > #PanelUI-button {
:root:not([uidensity=compact], [chromehidden~="toolbar"]) #nav-bar[brighttext] > #PanelUI-button {
border-image-source: linear-gradient(
transparent 4px,
var(--lwt-toolbar-vertical-separator, rgba(255,255,255,.2)) 4px,
@ -1811,7 +1811,7 @@ toolbarpaletteitem[place="menu-panel"] > .subviewbutton-nav::after {
list-style-image: url("chrome://browser/skin/reload.svg");
}
.subviewbutton.download:not([canShow]):not([canRetry]) > .action-button {
.subviewbutton.download:not([canShow], [canRetry]) > .action-button {
fill: currentColor;
fill-opacity: 0.4;
}

Просмотреть файл

@ -40,7 +40,7 @@
-moz-user-focus: ignore;
}
#identity-box:hover:not(.no-hover):not([open=true]),
#identity-box:hover:not(.no-hover, [open=true]),
#tracking-protection-icon-container:hover:not([open=true]) {
background-color: hsla(0,0%,70%,.2);
fill-opacity: .8;
@ -69,7 +69,7 @@
#identity-icon-label {
padding-inline-start: 4px;
}
#identity-box:not(.chromeUI):not(.extensionPage):not(.notSecureText) {
#identity-box:not(.chromeUI, .extensionPage, .notSecureText) {
--urlbar-separator-color: transparent;
}

Просмотреть файл

@ -78,8 +78,8 @@
padding: 2px 4px;
}
#sidebar-switcher-target:-moz-focusring:not(:hover):not([open]),
#sidebar-close:-moz-focusring:not(:hover):not([open]) {
#sidebar-switcher-target:-moz-focusring:not(:hover, [open]),
#sidebar-close:-moz-focusring:not(:hover, [open]) {
outline: 1px dotted;
}

Просмотреть файл

@ -460,8 +460,8 @@
opacity: .8;
}
.tab-icon-sound[soundplaying-scheduledremoval]:not([muted]):not(:hover),
.tab-icon-overlay[soundplaying-scheduledremoval]:not([muted]):not(:hover) {
.tab-icon-sound[soundplaying-scheduledremoval]:not([muted], :hover),
.tab-icon-overlay[soundplaying-scheduledremoval]:not([muted], :hover) {
transition: opacity .3s linear var(--soundplaying-removal-delay);
opacity: 0;
}
@ -506,7 +506,7 @@
transition: opacity 150ms ease;
}
.tabbrowser-tab:not([visuallyselected=true]):not([multiselected]),
.tabbrowser-tab:not([visuallyselected=true], [multiselected]),
.tabbrowser-tab:-moz-lwtheme {
color: inherit;
}
@ -582,32 +582,32 @@
/* Tab hover */
.tabbrowser-tab:hover > .tab-stack > .tab-background:not([selected=true]):not([multiselected]) {
.tabbrowser-tab:hover > .tab-stack > .tab-background:not([selected=true], [multiselected]) {
background-color: rgba(0,0,0,.1);
}
#TabsToolbar[brighttext] .tabbrowser-tab:hover > .tab-stack > .tab-background:not([selected=true]):not([multiselected]) {
#TabsToolbar[brighttext] .tabbrowser-tab:hover > .tab-stack > .tab-background:not([selected=true], [multiselected]) {
background-color: rgba(255,255,255,.1);
}
@media (prefers-reduced-motion: no-preference) {
.tab-line:not([selected=true]):not([multiselected]) {
.tab-line:not([selected=true], [multiselected]) {
transition: transform 250ms var(--animation-easing-function), opacity 250ms var(--animation-easing-function);
}
}
.tab-line:not([selected=true]):not([multiselected]) {
.tab-line:not([selected=true], [multiselected]) {
opacity: 0;
transform: scaleX(0);
}
.tabbrowser-tab:hover > .tab-stack > .tab-background > .tab-line:not([selected=true]):not([multiselected]) {
.tabbrowser-tab:hover > .tab-stack > .tab-background > .tab-line:not([selected=true], [multiselected]) {
background-color: rgba(0,0,0,.2);
opacity: 1;
transform: none;
}
#TabsToolbar[brighttext] .tabbrowser-tab:hover > .tab-stack > .tab-background > .tab-line:not([selected=true]):not([multiselected]) {
#TabsToolbar[brighttext] .tabbrowser-tab:hover > .tab-stack > .tab-background > .tab-line:not([selected=true], [multiselected]) {
background-color: rgba(255,255,255,.2);
}
@ -636,11 +636,11 @@
background-repeat: no-repeat;
}
.tabbrowser-tab[image] > .tab-stack > .tab-content[attention]:not([pinned]):not([selected="true"]) {
.tabbrowser-tab[image] > .tab-stack > .tab-content[attention]:not([pinned], [selected="true"]) {
background-position-x: left 11px;
}
.tabbrowser-tab[image] > .tab-stack > .tab-content[attention]:not([pinned]):not([selected="true"]):-moz-locale-dir(rtl) {
.tabbrowser-tab[image] > .tab-stack > .tab-content[attention]:not([pinned], [selected="true"]):-moz-locale-dir(rtl) {
background-position-x: right 11px;
}

Просмотреть файл

@ -171,14 +171,14 @@ toolbar[brighttext] .toolbaritem-combined-buttons > separator {
opacity: .3;
}
#PersonalToolbar .toolbarbutton-1:not([disabled=true]):not([checked]):not([open]):not(:active):hover,
#PersonalToolbar .toolbarbutton-1:not([disabled=true], [checked], [open], :active):hover,
#tabbrowser-arrowscrollbox:not([scrolledtostart=true])::part(scrollbutton-up):hover,
#tabbrowser-arrowscrollbox:not([scrolledtoend=true])::part(scrollbutton-down):hover,
.findbar-button:not([checked="true"],[disabled="true"]):hover,
toolbarbutton.bookmark-item:not(.subviewbutton):hover:not([disabled="true"]):not([open]),
toolbar .toolbarbutton-1:not([disabled=true]):not([checked]):not([open]):not(:active):hover > .toolbarbutton-icon,
toolbar .toolbarbutton-1:not([disabled=true]):not([checked]):not([open]):not(:active):hover > .toolbarbutton-text,
toolbar .toolbarbutton-1:not([disabled=true]):not([checked]):not([open]):not(:active):hover > .toolbarbutton-badge-stack {
toolbarbutton.bookmark-item:not(.subviewbutton, [disabled=true], [open]):hover,
toolbar .toolbarbutton-1:not([disabled=true], [checked], [open], :active):hover > .toolbarbutton-icon,
toolbar .toolbarbutton-1:not([disabled=true], [checked], [open], :active):hover > .toolbarbutton-text,
toolbar .toolbarbutton-1:not([disabled=true], [checked], [open], :active):hover > .toolbarbutton-badge-stack {
background-color: var(--toolbarbutton-hover-background);
color: inherit;
}
@ -278,7 +278,7 @@ toolbar .toolbarbutton-1:-moz-focusring {
padding: 10px;
}
:root:not([uidensity=compact]) #back-button:not([disabled]):not([open]):hover > .toolbarbutton-icon {
:root:not([uidensity=compact]) #back-button:not([disabled], [open]):hover > .toolbarbutton-icon {
background-color: var(--backbutton-hover-background) !important;
box-shadow: 0 1px 6px hsla(0,0%,0%,.1);
border-color: hsla(240,5%,5%,.35);

Просмотреть файл

@ -505,7 +505,7 @@
height: 30px;
}
#page-action-buttons > :not([hidden]):not(toolbartabstop) ~ #pageActionSeparator {
#page-action-buttons > :not([hidden], toolbartabstop) ~ #pageActionSeparator {
/* Show the separator between the page actions and other elements when at
least one of the latter is shown. */
visibility: visible;

Просмотреть файл

@ -99,7 +99,7 @@
padding-block: 6px;
}
:root[uidensity=touch] .urlbarView-row:not([type=tip]):not([type=dynamic]) {
:root[uidensity=touch] .urlbarView-row:not([type=tip], [type=dynamic]) {
padding-block: 11px;
}
@ -151,7 +151,7 @@
/* Note: switchtab entries show the url only in override mode,
remotetab and sponsored ones only when selected or :hover. */
.urlbarView[actionoverride] .urlbarView-results[wrap] > .urlbarView-row[has-url] > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-title-separator,
.urlbarView-results[wrap] > .urlbarView-row[has-url]:not([type$=tab]):not([sponsored]) > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-title-separator,
.urlbarView-results[wrap] > .urlbarView-row[has-url]:not([type$=tab], [sponsored]) > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-title-separator,
.urlbarView-results[wrap] > .urlbarView-row:is([type=remotetab], [sponsored]):is(:hover, [selected]) > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-title-separator,
.urlbarView-results[wrap] > .urlbarView-row[type=tabtosearch] > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-title-separator {
display: none;
@ -172,12 +172,12 @@
flex-wrap: wrap;
}
.urlbarView-row:not([type=tip]):not([type=dynamic]) > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-title[overflow],
.urlbarView-row:not([type=tip], [type=dynamic]) > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-title[overflow],
.urlbarView-url[overflow] {
mask-image: linear-gradient(to left, transparent, black 2em);
}
.urlbarView-row:not([type=tip]):not([type=dynamic]) > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-title[overflow]:not([isurl]):-moz-locale-dir(rtl) {
.urlbarView-row:not([type=tip], [type=dynamic]) > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-title[overflow]:not([isurl]):-moz-locale-dir(rtl) {
mask-image: linear-gradient(to right, transparent, black 2em);
}
@ -186,11 +186,11 @@
direction: ltr !important;
}
.urlbarView-row:not([type=tip]):not([type=dynamic]):hover > .urlbarView-row-inner {
.urlbarView-row:not([type=tip], [type=dynamic]):hover > .urlbarView-row-inner {
background: var(--arrowpanel-dimmed);
}
.urlbarView-row:not([type=tip]):not([type=dynamic])[selected] > .urlbarView-row-inner {
.urlbarView-row:not([type=tip], [type=dynamic])[selected] > .urlbarView-row-inner {
background: var(--autocomplete-popup-highlight-background);
color: var(--autocomplete-popup-highlight-color);
fill-opacity: 1;
@ -494,8 +494,8 @@
color: inherit;
}
.urlbarView-row:is([type=remotetab], [sponsored]):not([selected]):not(:hover) > .urlbarView-row-inner > .urlbarView-url,
.urlbarView-row[type=search]:not([selected]):not(:hover):not([show-action-text]) > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-title-separator,
.urlbarView-row:is([type=remotetab], [sponsored]):not([selected], :hover) > .urlbarView-row-inner > .urlbarView-url,
.urlbarView-row[type=search]:not([selected], :hover, [show-action-text]) > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-title-separator,
.urlbarView:not([actionoverride]) .urlbarView-row[type=switchtab] > .urlbarView-row-inner > .urlbarView-url {
/* Use visibility:collapse instead of display:none since the latter can
confuse the overflow state of title and url elements when their content
@ -504,7 +504,7 @@
}
.urlbarView-row:is([type=remotetab], [sponsored]):is([selected], :hover) > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-action,
.urlbarView-row[type=search]:not([selected]):not(:hover):not([show-action-text]) > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-action,
.urlbarView-row[type=search]:not([selected], :hover, [show-action-text]) > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-action,
.urlbarView[actionoverride] .urlbarView-row[type=switchtab] > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-action {
display: none;
}

Просмотреть файл

@ -65,7 +65,7 @@
:root[sizemode=normal][tabsintitlebar] {
border-top: 1px solid -moz-win-accentcolor;
}
:root[tabsintitlebar]:not(:-moz-window-inactive):not(:-moz-lwtheme),
:root[tabsintitlebar]:not(:-moz-window-inactive, :-moz-lwtheme),
:root[tabsintitlebar]:not(:-moz-window-inactive)[lwt-default-theme-in-dark-mode] {
background-color: -moz-win-accentcolor;
color: -moz-win-accentcolortext;
@ -301,7 +301,7 @@
}
}
:root[darkwindowframe="true"]:not(:-moz-window-inactive):not(:-moz-lwtheme) {
:root[darkwindowframe="true"]:not(:-moz-window-inactive, :-moz-lwtheme) {
color: white;
}
@ -309,7 +309,7 @@
@media (-moz-os-version: windows-win7),
(-moz-os-version: windows-win8) {
/* Vertical toolbar border */
#main-window[sizemode=normal] .browser-toolbar:not(.titlebar-color):not(:-moz-lwtheme),
#main-window[sizemode=normal] .browser-toolbar:not(.titlebar-color, :-moz-lwtheme),
#main-window[sizemode=normal] .browser-toolbar:-moz-lwtheme {
border-inline: 1px solid @glassShadowColor@;
background-clip: padding-box;
@ -360,7 +360,7 @@
text-shadow: 0 0 .5em white, 0 0 .5em white, 0 1px 0 rgba(255,255,255,.4);
}
#main-menubar:not(:-moz-lwtheme):not(:-moz-window-inactive) {
#main-menubar:not(:-moz-lwtheme, :-moz-window-inactive) {
background-color: rgba(255,255,255,.5);
color: black;
border-radius: 4px;

Просмотреть файл

@ -190,11 +190,11 @@
/* Please keep the menu text colors in this media block in sync with
* compacttheme.css, minus the :not(:-moz-lwtheme) condition - see Bug 1165718.
*/
:root[tabsintitlebar]:not([inFullscreen]):not(:-moz-lwtheme) {
:root[tabsintitlebar]:not([inFullscreen], :-moz-lwtheme) {
color: CaptionText;
}
:root[tabsintitlebar]:not([inFullscreen]):not(:-moz-lwtheme):-moz-window-inactive {
:root[tabsintitlebar]:not([inFullscreen], :-moz-lwtheme):-moz-window-inactive {
color: InactiveCaptionText;
}
}
@ -274,8 +274,8 @@
:root:not([inDOMFullscreen]) #titlebar:-moz-lwtheme {
visibility: hidden;
}
:root:not([inDOMFullscreen]):not([chromehidden~="menubar"]) #toolbar-menubar:-moz-lwtheme,
:root:not([inDOMFullscreen]):not([chromehidden~="toolbar"]) #TabsToolbar:-moz-lwtheme {
:root:not([inDOMFullscreen], [chromehidden~="menubar"]) #toolbar-menubar:-moz-lwtheme,
:root:not([inDOMFullscreen], [chromehidden~="toolbar"]) #TabsToolbar:-moz-lwtheme {
visibility: visible;
}
}
@ -530,8 +530,8 @@ menuitem.bookmark-item {
}
@media (-moz-windows-default-theme: 0) {
#urlbar:not(:-moz-lwtheme):not([focused="true"]) > #urlbar-background,
#searchbar:not(:-moz-lwtheme):not(:focus-within) {
#urlbar:not(:-moz-lwtheme, [focused="true"]) > #urlbar-background,
#searchbar:not(:-moz-lwtheme, :focus-within) {
border-color: ThreeDShadow;
}
}

Просмотреть файл

@ -36,10 +36,10 @@
/* Because we're forcing the tabs toolbar to be [brighttext] to
* get white toolbar button icons, we need to manually set the
* correct color for the tab hover state for the light theme. */
.tabbrowser-tab:hover > .tab-stack > .tab-background:not([selected=true]):not([multiselected]):-moz-lwtheme-darktext {
.tabbrowser-tab:hover > .tab-stack > .tab-background:not([selected=true], [multiselected]):-moz-lwtheme-darktext {
background-color: rgba(0,0,0,.1) !important;
}
.tabbrowser-tab:hover > .tab-stack > .tab-background > .tab-line:not([selected=true]):not([multiselected]):-moz-lwtheme-darktext {
.tabbrowser-tab:hover > .tab-stack > .tab-background > .tab-line:not([selected=true], [multiselected]):-moz-lwtheme-darktext {
background-color: rgba(0,0,0,.2) !important;
}
}