Bug 1703274 - Enable Proton Urlbar. r=jaws,extension-reviewers,zombie,rpl

Differential Revision: https://phabricator.services.mozilla.com/D110998
This commit is contained in:
Marco Bonardo 2021-04-09 18:20:21 +00:00
Родитель cfbef4a018
Коммит 2c982d3c01
43 изменённых файлов: 154 добавлений и 146 удалений

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

@ -947,7 +947,7 @@ var BrowserPageActions = {
if (
!action ||
// In Proton, only extension actions provide a context menu.
(UrlbarPrefs.get("browser.proton.urlbar.enabled") && !action.extensionID)
(gProton && !action.extensionID)
) {
this._contextAction = null;
event.preventDefault();

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

@ -772,7 +772,7 @@ toolbar:not(#TabsToolbar) > #personal-bookmarks {
}
}
@media (-moz-proton-urlbar) {
@media (-moz-proton) {
/* The page actions menu is hidden by default, it is only shown in small
windows as the overflow target of multiple page action buttons */
#pageActionButton {
@ -791,7 +791,7 @@ toolbar:not(#TabsToolbar) > #personal-bookmarks {
display: none;
}
@media (-moz-proton-urlbar) {
@media (-moz-proton) {
#pageActionButton[multiple-children] {
visibility: visible;
}
@ -1424,7 +1424,7 @@ toolbarpaletteitem > #stop-reload-button {
visibility: visible;
}
@media not (-moz-proton-urlbar) {
@media not (-moz-proton) {
/* These pin/unpin menu options should be removed after Proton is released */
#pageActionContextMenu[state=builtInPinned] > .pageActionContextMenuItem.builtInPinned,
#pageActionContextMenu[state=builtInUnpinned] > .pageActionContextMenuItem.builtInUnpinned,

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

@ -4203,9 +4203,7 @@ const BrowserSearch = {
* has search engines.
*/
updateOpenSearchBadge() {
// When removing browser.proton.urlbar.enabled change this to only check
// gProton.
if (gProton && gURLBar.addSearchEngineHelper) {
if (gProton) {
gURLBar.addSearchEngineHelper.setEnginesFromBrowser(
gBrowser.selectedBrowser
);

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

@ -121,6 +121,14 @@ add_task(async function testDeveloperButtonWrongKey() {
// Test activation of the Page actions button from the keyboard.
// The Page Actions menu should appear and focus should move inside it.
add_task(async function testPageActionsButtonPress() {
// In Proton the page actions button is not normally visible, so we must
// unhide it.
if (gProton) {
BrowserPageActions.mainButtonNode.style.visibility = "visible";
registerCleanupFunction(() => {
BrowserPageActions.mainButtonNode.style.removeProperty("visibility");
});
}
await BrowserTestUtils.withNewTab("https://example.com", async function() {
let button = document.getElementById("pageActionButton");
forceFocus(button);
@ -163,6 +171,10 @@ add_task(async function testBackForwardButtonPress() {
// This is a page action button built at runtime by PageActions.
// The Send Tab to Device menu should appear and focus should move inside it.
add_task(async function testSendTabToDeviceButtonPress() {
// There's no Send to Device page action in proton.
if (gProton) {
return;
}
await BrowserTestUtils.withNewTab("https://example.com", async function() {
PageActions.actionForID("sendToDevice").pinnedToUrlbar = true;
let button = document.getElementById("pageAction-urlbar-sendToDevice");

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

@ -121,6 +121,15 @@ add_task(async function setup() {
guid: PlacesUtils.bookmarks.toolbarGuid,
children: bookmarks,
});
// In Proton the page actions button is not normally visible, so we must
// unhide it.
if (gProton) {
BrowserPageActions.mainButtonNode.style.visibility = "visible";
registerCleanupFunction(() => {
BrowserPageActions.mainButtonNode.style.removeProperty("visibility");
});
}
});
// Test tab stops with no page loaded.

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

@ -1,6 +1,6 @@
[DEFAULT]
prefs =
browser.proton.urlbar.enabled=true
browser.proton.enabled=true
support-files =
head.js

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

@ -1,6 +1,6 @@
[DEFAULT]
prefs =
browser.proton.urlbar.enabled=false
browser.proton.enabled=false
support-files =
head.js

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

@ -774,12 +774,7 @@ async function runUrlbarTest(
};
let urlbarRect = URLBar.textbox.getBoundingClientRect();
const SHADOW_SIZE = Services.prefs.getBoolPref(
"browser.proton.urlbar.enabled",
false
)
? 10
: 4;
const SHADOW_SIZE = gProton ? 14 : 4;
let expectedRects = {
filter: rects => {
// We put text into the urlbar so expect its textbox to change.

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

@ -35,7 +35,7 @@ const TEST_CASES = [
{
type: "chrome about page",
testURL: "about:preferences",
img_url: UrlbarPrefs.get("browser.proton.urlbar.enabled")
img_url: gProton
? `url("chrome://branding/content/icon${
window.devicePixelRatio > 1 ? 32 : 16
}.png")`

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

@ -130,6 +130,14 @@ add_task(async function test_main_menu_touch() {
add_task(async function test_page_action_panel_touch() {
// The page action menu only appears on a web page.
await BrowserTestUtils.withNewTab("https://example.com", async function() {
// In Proton the page actions button is not normally visible, so we must
// unhide it.
if (gProton) {
BrowserPageActions.mainButtonNode.style.visibility = "visible";
registerCleanupFunction(() => {
BrowserPageActions.mainButtonNode.style.removeProperty("visibility");
});
}
let target = document.getElementById("pageActionButton");
await openAndCheckLazyMenu("pageActionPanel", target);
});

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

@ -179,7 +179,7 @@ add_task(async function test_hiddenPageActionContextMenu() {
// change the behavior, hiding them. Then this test won't be necessary anymore
// since the user won't be able to open the context menu on disabled actions.
await SpecialPowers.pushPrefEnv({
set: [["browser.proton.urlbar.enabled", false]],
set: [["browser.proton.enabled", false]],
});
const manifest = {
page_action: {},

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

@ -5,7 +5,7 @@
add_task(async function setup() {
// The page action button is hidden by default for proton.
// This tests the use of pageAction when the button is visible.
if (Services.prefs.getBoolPref("browser.proton.urlbar.enabled", false)) {
if (gProton) {
BrowserPageActions.mainButtonNode.style.visibility = "visible";
registerCleanupFunction(() => {
BrowserPageActions.mainButtonNode.style.removeProperty("visibility");

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

@ -109,13 +109,14 @@ add_task(async function test_pageAction_pinned() {
await extension.startup();
await extension.awaitMessage("page-action-shown");
let elem = await getPageActionButton(extension);
is(elem && elem.parentNode, null, "pageAction is not pinned to urlbar");
// There are plenty of tests for the main action button, we just verify
// that we've properly set the pinned value to false.
// that we've properly set the pinned value.
let action = PageActions.actionForID(makeWidgetId(extension.id));
ok(action && !action.pinnedToUrlbar, "pageAction is in main pageaction menu");
Assert.equal(
action && action.pinnedToUrlbar,
gProton,
"Check pageAction pinning"
);
await extension.unload();
});

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

@ -77,9 +77,14 @@ add_task(async function testAppShutdown() {
await promiseStartupManager();
await extension.awaitStartup();
// Get the action. Its pinnedToUrlbar should remain false.
// Get the action. In non-proton its pinnedToUrlbar should remain false.
// In Proton there is no meatball menu, thus page actions are directly pinned
// to the urlbar.
action = PageActions.actionForID(actionID);
Assert.equal(action.pinnedToUrlbar, false);
Assert.equal(
action.pinnedToUrlbar,
Services.prefs.getBoolPref("browser.proton.enabled", false)
);
// Now unload the extension and quit the app.
await extension.unload();

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

@ -44,6 +44,13 @@ XPCOMUtils.defineLazyServiceGetter(
"nsIClipboardHelper"
);
XPCOMUtils.defineLazyPreferenceGetter(
this,
"protonEnabled",
"browser.proton.enabled",
false
);
const DEFAULT_FORM_HISTORY_NAME = "searchbar-history";
const SEARCH_BUTTON_ID = "urlbar-search-button";
@ -201,6 +208,10 @@ class UrlbarInput {
return new UrlbarValueFormatter(this);
});
XPCOMUtils.defineLazyGetter(this, "addSearchEngineHelper", () => {
return new AddSearchEngineHelper(this);
});
// If the toolbar is not visible in this window or the urlbar is readonly,
// we'll stop here, so that most properties of the input object are valid,
// but we won't handle events.
@ -260,9 +271,6 @@ class UrlbarInput {
this._initCopyCutController();
this._initPasteAndGo();
if (UrlbarPrefs.get("browser.proton.urlbar.enabled")) {
this.addSearchEngineHelper = new AddSearchEngineHelper(this);
}
// Tracks IME composition.
this._compositionState = UrlbarUtils.COMPOSITION.NONE;
@ -1411,7 +1419,7 @@ class UrlbarInput {
this._hideFocus = false;
if (this.focused) {
this.setAttribute("focused", "true");
if (!UrlbarPrefs.get("browser.proton.urlbar.enabled")) {
if (!protonEnabled) {
this.startLayoutExtend();
}
}
@ -1651,7 +1659,7 @@ class UrlbarInput {
return;
}
await this._updateLayoutBreakoutDimensions();
if (!UrlbarPrefs.get("browser.proton.urlbar.enabled")) {
if (!protonEnabled) {
this.startLayoutExtend();
}
}
@ -1665,7 +1673,7 @@ class UrlbarInput {
) {
return;
}
if (UrlbarPrefs.get("browser.proton.urlbar.enabled") && !this.view.isOpen) {
if (protonEnabled && !this.view.isOpen) {
return;
}
// The Urlbar is unfocused or reduce motion is on and the view is closed.
@ -1714,7 +1722,7 @@ class UrlbarInput {
}
if (
!UrlbarPrefs.get("browser.proton.urlbar.enabled") &&
!protonEnabled &&
this.getAttribute("focused") == "true" &&
(!this.window.gReduceMotion ||
!this.window.matchMedia("(prefers-reduced-motion: reduce)").matches)
@ -2732,7 +2740,7 @@ class UrlbarInput {
});
this.removeAttribute("focused");
if (!UrlbarPrefs.get("browser.proton.urlbar.enabled")) {
if (!protonEnabled) {
this.endLayoutExtend();
}
@ -2811,7 +2819,7 @@ class UrlbarInput {
}
_on_contextmenu(event) {
if (UrlbarPrefs.get("browser.proton.urlbar.enabled")) {
if (protonEnabled) {
this.addSearchEngineHelper.refreshContextMenu(event);
}
@ -2848,7 +2856,7 @@ class UrlbarInput {
}
}
if (!UrlbarPrefs.get("browser.proton.urlbar.enabled")) {
if (!protonEnabled) {
this.startLayoutExtend();
}

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

@ -207,11 +207,6 @@ const PREF_URLBAR_DEFAULTS = new Map([
]);
const PREF_OTHER_DEFAULTS = new Map([
["browser.fixup.dns_first_for_single_words", false],
// The Proton pref is here so it can follow a browser.proton.* structure like
// the other Proton subprefs, rather than a browser.urlbar.* structure.
// Once the address bar changes are stable, this pref will be replaed by the
// global Proton pref, browser.proton.enabled.
["browser.proton.urlbar.enabled", false],
["browser.search.suggest.enabled", true],
["browser.search.suggest.enabled.private", false],
["keyword.enabled", true],

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

@ -333,7 +333,7 @@ class UrlbarSearchOneOffs extends SearchOneOffs {
_rebuildEngineList(engines) {
super._rebuildEngineList(engines);
if (UrlbarPrefs.get("browser.proton.urlbar.enabled")) {
if (Services.prefs.getBoolPref("browser.proton.enabled", false)) {
for (let engine of this._webEngines) {
let button = this.document.createXULElement("button");
button.id = this._buttonIDForEngine(engine);

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

@ -5,7 +5,6 @@
[DEFAULT]
prefs =
browser.proton.enabled=true
browser.proton.urlbar.enabled=true
support-files =
head.js

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

@ -24,7 +24,6 @@ XPCOMUtils.defineLazyModuleGetters(this, {
BinarySearch: "resource://gre/modules/BinarySearch.jsm",
PrivateBrowsingUtils: "resource://gre/modules/PrivateBrowsingUtils.jsm",
Services: "resource://gre/modules/Services.jsm",
UrlbarPrefs: "resource:///modules/UrlbarPrefs.jsm",
});
const ACTION_ID_BOOKMARK = "bookmark";
@ -36,7 +35,12 @@ const ACTION_ID_TRANSIENT_SEPARATOR = "transientSeparator";
const PREF_PERSISTED_ACTIONS = "browser.pageActions.persistedActions";
const PERSISTED_ACTIONS_CURRENT_VERSION = 1;
const PROTON_PREF = "browser.proton.urlbar.enabled";
XPCOMUtils.defineLazyPreferenceGetter(
this,
"protonEnabled",
"browser.proton.enabled",
false
);
// Escapes the given raw URL string, and returns an equivalent CSS url()
// value for it.
@ -266,7 +270,7 @@ var PageActions = {
this._persistedActions.ids.push(action.id);
}
if (UrlbarPrefs.get(PROTON_PREF)) {
if (protonEnabled) {
// Actions are always pinned to the urlbar in Proton except for panel
// separators.
action._pinnedToUrlbar = !action.__isSeparator;
@ -442,7 +446,7 @@ var PageActions = {
},
_migratePersistedActionsProton(actions) {
if (UrlbarPrefs.get(PROTON_PREF)) {
if (protonEnabled) {
if (actions?.idsInUrlbarPreProton) {
// continue with Proton
} else if (actions) {
@ -1252,7 +1256,7 @@ PageActions._initBuiltInActions = function() {
},
];
if (UrlbarPrefs.get(PROTON_PREF)) {
if (protonEnabled) {
return;
}

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

@ -79,7 +79,7 @@ add_task(async function simple() {
Assert.equal(action.getIconURL(), iconURL, "iconURL");
Assert.equal(action.id, id, "id");
Assert.equal(action.pinnedToUrlbar, gProtonUrlbar, "pinnedToUrlbar");
Assert.equal(action.pinnedToUrlbar, gProton, "pinnedToUrlbar");
Assert.equal(action.getDisabled(), false, "disabled");
Assert.equal(action.getDisabled(window), false, "disabled in window");
Assert.equal(action.getTitle(), title, "title");
@ -105,7 +105,7 @@ add_task(async function simple() {
);
Assert.equal(
onPlacedInUrlbarCallCount,
gProtonUrlbar ? 1 : 0,
gProton ? 1 : 0,
"onPlacedInUrlbarCallCount after adding the action"
);
Assert.equal(
@ -178,7 +178,7 @@ add_task(async function simple() {
Assert.deepEqual(
PageActions.actionsInUrlbar(window),
(gProtonUrlbar ? [action] : []).concat(initialActionsInUrlbar),
(gProton ? [action] : []).concat(initialActionsInUrlbar),
"Actions in urlbar after adding the action"
);
@ -223,7 +223,7 @@ add_task(async function simple() {
);
let urlbarButtonNode = document.getElementById(urlbarButtonID);
Assert.equal(!!urlbarButtonNode, gProtonUrlbar, "urlbarButtonNode");
Assert.equal(!!urlbarButtonNode, gProton, "urlbarButtonNode");
// Open the panel, click the action's button.
await promiseOpenPageActionPanel();
@ -774,7 +774,7 @@ add_task(async function insertBeforeActionID() {
let panelButtonNode = document.getElementById(panelButtonID);
Assert.notEqual(panelButtonNode, null, "panelButtonNode");
if (!gProtonUrlbar) {
if (!gProton) {
let actionIndex = newActions.findIndex(a => a.id == id);
Assert.equal(
initialBookmarkSeparatorIndex,
@ -1219,7 +1219,7 @@ add_task(async function transient() {
Assert.equal(onPlacedInPanelCount, 0, "onPlacedInPanelCount should remain 0");
Assert.equal(
onBeforePlacedInWindowCount,
gProtonUrlbar ? 1 : 0,
gProton ? 1 : 0,
"onBeforePlacedInWindowCount after adding transient action"
);

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

@ -45,7 +45,7 @@ add_task(async function contextMenu() {
let contextMenuPromise;
let menuItems;
if (!gProtonUrlbar) {
if (!gProton) {
// Open the context menu on the action's button in the main panel.
contextMenuPromise = promisePanelShown("pageActionContextMenu");
EventUtils.synthesizeMouseAtCenter(panelButton, {
@ -109,7 +109,7 @@ add_task(async function contextMenu() {
);
// Click the "manage extension" context menu item. about:addons should open.
let manageItemIndex = gProtonUrlbar ? 0 : 2;
let manageItemIndex = gProton ? 0 : 2;
contextMenuPromise = promisePanelHidden("pageActionContextMenu");
let aboutAddonsPromise = BrowserTestUtils.waitForNewTab(
gBrowser,
@ -128,7 +128,7 @@ add_task(async function contextMenu() {
let urlbarButton;
if (!gProtonUrlbar) {
if (!gProton) {
// Open the context menu on the action's urlbar button.
urlbarButton = BrowserPageActions.urlbarButtonNodeForActionID(actionId);
contextMenuPromise = promisePanelShown("pageActionContextMenu");
@ -342,7 +342,7 @@ function makeContextMenuItemSpecs(actionInUrlbar = false) {
{ label: "Manage Extension\u2026" },
{ label: "Remove Extension" },
];
if (!gProtonUrlbar) {
if (!gProton) {
items.unshift(
{
label: actionInUrlbar

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

@ -5,7 +5,7 @@
"use strict";
const PROTON_PREF = "browser.proton.urlbar.enabled";
const PROTON_PREF = "browser.proton.enabled";
const PERSISTED_ACTIONS_PREF = "browser.pageActions.persistedActions";
const TEST_ACTION_ID = "browser_PageActions_proton";

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

@ -116,7 +116,7 @@ add_task(async function toolbarButtons() {
click(document.querySelector("#PlacesToolbarItems .bookmark-item"));
// Page action panel is removed in proton
if (Services.prefs.getBoolPref("browser.proton.urlbar.enabled", false)) {
if (gProton) {
click(customButton);
assertInteractionScalars({

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

@ -454,7 +454,7 @@ add_task(async function contextMenus() {
add_task(async function pageActions() {
// Built-in page actions are removed in Proton.
if (Services.prefs.getBoolPref("browser.proton.urlbar.enabled", false)) {
if (gProton) {
return;
}

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

@ -12,10 +12,6 @@ ChromeUtils.defineModuleGetter(
const SINGLE_TRY_TIMEOUT = 100;
const NUMBER_OF_TRIES = 30;
const PROTON_URLBAR_PREF = "browser.proton.urlbar.enabled";
let gProtonUrlbar = Services.prefs.getBoolPref(PROTON_URLBAR_PREF, false);
function waitForConditionPromise(
condition,
timeoutMsg,
@ -332,8 +328,7 @@ async function initPageActionsTest() {
const addon = await AddonManager.getAddonByID("screenshots@mozilla.org");
await addon.disable({ allowSystemAddons: true });
gProtonUrlbar = Services.prefs.getBoolPref(PROTON_URLBAR_PREF, false);
if (gProtonUrlbar) {
if (gProton) {
// Make the main button visible. It's not unless the window is narrow. This
// test isn't concerned with that behavior. We have other tests for that.
BrowserPageActions.mainButtonNode.style.visibility = "visible";

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

@ -211,7 +211,7 @@ menuitem.bookmark-item {
--autocomplete-popup-highlight-color: HighlightText;
}
@media not (-moz-proton-urlbar) {
@media not (-moz-proton) {
:root:not(:-moz-lwtheme) {
--urlbar-popup-url-color: -moz-nativehyperlinktext;
}

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

@ -242,7 +242,7 @@
%include ../shared/urlbar-searchbar.inc.css
@media not (prefers-contrast) {
@media (-moz-proton-urlbar) {
@media (-moz-proton) {
:root:not(:-moz-lwtheme) #urlbar:not([focused="true"]) {
--urlbar-box-bgcolor: white;
}

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

@ -8,7 +8,7 @@
border-radius: 4px;
}
@media not (-moz-proton-urlbar) {
@media not (-moz-proton) {
.search-panel-current-engine {
border-radius: 4px 4px 0 0;
}

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

@ -46,11 +46,7 @@
--tab-selected-bgcolor: rgb(255,255,255);
--tabs-border-color: transparent;
--toolbar-color: rgb(21,20,26);
}
} /** END Proton **/
@media (-moz-proton-urlbar) {
:root:not(:-moz-lwtheme) {
--urlbar-popup-action-color: rgb(21,20,26);
--urlbar-popup-url-color: rgb(0,97,224);

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

@ -68,7 +68,7 @@
--urlbar-icon-padding: 7px; /* (34px - 2px border - 2px padding - 16px icon) / 2 */
}
@media not (-moz-proton-urlbar) {
@media not (-moz-proton) {
:root {
--urlbar-min-height: 30px;
--urlbar-icon-padding: 6px; /* (30px - 2px border - 16px icon) / 2 */
@ -107,9 +107,7 @@
--focus-outline-color: #00DDFF;
}
}
} /*** END proton ***/
@media (-moz-proton-urlbar) {
:root[lwt-toolbar-field-focus-brighttext] {
--lwt-popup-brighttext-url-color: #00ddff;
}

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

@ -11,7 +11,7 @@
--autocomplete-popup-background: #2A2A2E !important;
}
@media (-moz-proton-urlbar) {
@media (-moz-proton) {
#urlbar:not([focused="true"]) {
--urlbar-box-bgcolor: var(--lwt-toolbar-field-focus);
}

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

@ -10,7 +10,7 @@
margin-inline-end: var(--identity-box-margin-inline);
}
@media not (-moz-proton-urlbar) {
@media not (-moz-proton) {
#identity-box {
margin-inline-start: var(--identity-box-margin-inline);
}
@ -37,7 +37,7 @@
}
}
@media not (-moz-proton-urlbar) {
@media not (-moz-proton) {
#identity-box[pageproxystate="invalid"] {
margin-inline-end: calc(var(--identity-box-margin-inline) + 2px);
}
@ -68,7 +68,7 @@
background-color: hsla(0,0%,70%,.3);
}
@media not (-moz-proton-urlbar) {
@media not (-moz-proton) {
.identity-box-button:hover:not([open=true]),
.identity-box-button:hover:active,
.identity-box-button[open=true],
@ -91,7 +91,7 @@
border-radius: var(--toolbarbutton-border-radius);
}
@media not (-moz-proton-urlbar) {
@media not (-moz-proton) {
.identity-box-button {
padding-inline: calc(var(--urlbar-icon-padding) / 2);
border-radius: 0;
@ -127,7 +127,7 @@
border-radius: var(--toolbarbutton-border-radius);
}
@media (-moz-proton-urlbar) {
@media (-moz-proton) {
#identity-box[pageproxystate="valid"].notSecureText > .identity-box-button,
#identity-box[pageproxystate="valid"].chromeUI > .identity-box-button,
#identity-box[pageproxystate="valid"].extensionPage > .identity-box-button,
@ -155,7 +155,7 @@
pointer-events: none;
}
@media not (-moz-proton-urlbar) {
@media not (-moz-proton) {
#identity-box[pageproxystate="valid"].notSecureText,
#identity-box[pageproxystate="valid"].chromeUI,
#identity-box[pageproxystate="valid"].extensionPage,
@ -230,7 +230,7 @@
}
}
@media not (-moz-proton-urlbar) {
@media not (-moz-proton) {
#identity-box[pageproxystate="valid"].chromeUI #identity-icon {
list-style-image: url(chrome://branding/content/identity-icons-brand.svg);
}
@ -335,7 +335,7 @@
position: relative;
}
@media not (-moz-proton-urlbar) {
@media not (-moz-proton) {
#tracking-protection-icon-container {
border-radius: 0;
/* Separator */

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

@ -46,7 +46,7 @@
padding-inline: 8px;
}
@media not (-moz-proton-urlbar) {
@media not (-moz-proton) {
.search-panel-header {
padding-block: 3px;
}
@ -87,7 +87,7 @@
border-radius: var(--toolbarbutton-border-radius);
}
@media not (-moz-proton-urlbar) {
@media not (-moz-proton) {
.searchbar-engine-one-off-item {
border-radius: 0;
min-width: 48px;
@ -129,7 +129,7 @@
padding: 0 10px;
}
@media not (-moz-proton-urlbar) {
@media not (-moz-proton) {
.addengine-item {
border-radius: 0;
}
@ -237,7 +237,7 @@
display: none;
}
@media not (-moz-proton-urlbar) {
@media not (-moz-proton) {
.search-setting-button {
border-top: 1px solid var(--panel-separator-color);
border-radius: 0;

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

@ -12,7 +12,7 @@
--toolbar-field-border-color: hsla(240,5%,5%,.25);
}
@media not (-moz-proton-urlbar) {
@media not (-moz-proton) {
:root {
--toolbar-field-focus-border-color: -moz-accent-color;
/* px because it's used in calc */
@ -20,7 +20,7 @@
}
} /*** END !proton ***/
@media (-moz-proton-urlbar) {
@media (-moz-proton) {
:root {
--toolbar-field-focus-border-color: var(--focus-outline-color);
--urlbar-container-padding: 1px;
@ -68,7 +68,7 @@
border-radius: var(--toolbarbutton-border-radius);
}
@media (-moz-proton-urlbar) {
@media (-moz-proton) {
#urlbar-background,
#searchbar {
border-color: transparent;
@ -81,7 +81,7 @@
}
} /*** END proton ***/
@media not (-moz-proton-urlbar) {
@media not (-moz-proton) {
#urlbar-background,
#searchbar {
box-shadow: 0 1px 4px rgba(0,0,0,.05);
@ -106,7 +106,7 @@
outline: none;
}
@media not (-moz-proton-urlbar) {
@media not (-moz-proton) {
#urlbar:not([focused="true"]):hover > #urlbar-background,
#searchbar:not(:focus-within):hover {
border-color: @fieldHoverBorderColor@;
@ -119,7 +119,7 @@
}
} /*** END !proton ***/
@media (-moz-proton-urlbar) {
@media (-moz-proton) {
#urlbar[focused="true"]:not([suppress-focus-border]) > #urlbar-background {
border: var(--focus-outline);
/* We used --focus-outline above to inherit its width and style properties,
@ -278,7 +278,7 @@
width: calc(100% + 2 * @urlbarMarginInline@ + 2 * @urlbarBreakoutExtend@);
}
@media (-moz-proton-urlbar) {
@media (-moz-proton) {
#urlbar[breakout][breakout-extend] {
top: 0;
left: -@urlbarMarginInline@;
@ -286,7 +286,7 @@
}
} /*** END proton ***/
@media not (-moz-proton-urlbar) {
@media not (-moz-proton) {
#urlbar[breakout][breakout-extend] > #urlbar-background {
box-shadow: 0 3px 8px 0 rgba(0,0,0,.15)
}
@ -302,7 +302,7 @@
padding-inline: calc(@urlbarMarginInline@ + @urlbarBreakoutExtend@);
}
@media (-moz-proton-urlbar) {
@media (-moz-proton) {
#urlbar[breakout][breakout-extend] > #urlbar-input-container {
height: var(--urlbar-toolbar-height);
padding-block: calc((var(--urlbar-toolbar-height) - var(--urlbar-height)) / 2 + var(--urlbar-container-padding));
@ -370,7 +370,7 @@
padding-inline: 8px 3px;
}
@media not (-moz-proton-urlbar) {
@media not (-moz-proton) {
#urlbar-search-mode-indicator {
-moz-outline-radius: 2px;
min-width: 16px; /* So the close button never causes motion */
@ -406,7 +406,7 @@
padding-inline: 0 4px;
opacity: var(--identity-box-label-opacity);
}
@media not (-moz-proton-urlbar) {
@media not (-moz-proton) {
#urlbar-search-mode-indicator-title {
padding-inline: 5px;
opacity: 1;
@ -424,7 +424,7 @@
fill: var(--lwt-toolbar-field-focus-color);
}
@media (-moz-proton-urlbar) {
@media (-moz-proton) {
#urlbar-search-mode-indicator-close {
height: 16px;
border-radius: var(--toolbarbutton-border-radius);
@ -444,14 +444,14 @@
fill: FieldText;
fill-opacity: 1.0;
}
@media (-moz-proton-urlbar) {
@media (-moz-proton) {
#urlbar-search-mode-indicator-close {
fill: HighlightText;
}
} /*** END proton ***/
}
@media not (-moz-proton-urlbar) {
@media not (-moz-proton) {
#urlbar-search-mode-indicator-close {
display: none;
margin-inline-start: -16px;
@ -565,14 +565,14 @@
/* URL bar and page action buttons */
@media (-moz-proton-urlbar) {
@media (-moz-proton) {
#pageActionSeparator {
/* Just remove this element once Proton is released */
display: none;
}
} /*** END proton ***/
@media not (-moz-proton-urlbar) {
@media not (-moz-proton) {
#pageActionSeparator {
/* This draws the separator the same way that #urlbar-label-box draws its
left and right borders, which end up looking like separators. It might not
@ -617,7 +617,7 @@
margin-inline: 1px;
}
@media not (-moz-proton-urlbar) {
@media not (-moz-proton) {
.urlbar-icon {
width: calc(var(--urlbar-min-height) - 2px);
height: calc(var(--urlbar-min-height) - 2px);
@ -921,7 +921,7 @@
animation-duration: 250ms;
}
@media not (-moz-proton-urlbar) {
@media not (-moz-proton) {
#urlbar-zoom-button {
background-color: hsla(0,0%,0%,.05);
border: 1px solid hsla(210,4%,50%,.3);

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

@ -33,13 +33,13 @@
--urlbarView-item-inline-padding: calc(var(--urlbar-icon-padding) / 2 + 3px);
}
@media not (-moz-proton-urlbar) {
@media not (-moz-proton) {
:root {
--urlbar-popup-url-color: hsl(210, 77%, 47%);
}
} /*** END !proton ***/
@media (-moz-proton-urlbar) {
@media (-moz-proton) {
:root:-moz-lwtheme {
--urlbar-popup-url-color: rgb(0,97,224);
}
@ -55,7 +55,7 @@
--urlbarView-button-background-active: rgba(249, 249, 250, 0.2);
}
@media (-moz-proton-urlbar) {
@media (-moz-proton) {
:root {
--urlbarView-item-inline-padding: var(--urlbar-icon-padding);
}
@ -93,7 +93,7 @@
border-inline: 1px solid transparent;
}
@media not (-moz-proton-urlbar) {
@media not (-moz-proton) {
.urlbarView {
margin-inline: calc(4px + var(--identity-box-margin-inline));
width: calc(100% - 2 * (4px + var(--identity-box-margin-inline)));
@ -135,7 +135,7 @@
padding-block: 2px;
}
@media (-moz-proton-urlbar) {
@media (-moz-proton) {
:root:not([uidensity=compact]) .urlbarView-row:not([type=tip], [type=dynamic]) {
min-height: 32px;
padding-block: 4px;
@ -153,7 +153,7 @@
padding-block: 6px;
}
@media (-moz-proton-urlbar) {
@media (-moz-proton) {
.urlbarView-row-inner {
border-radius: var(--toolbarbutton-border-radius);
}
@ -178,7 +178,7 @@
justify-content: start;
}
@media (-moz-proton-urlbar) {
@media (-moz-proton) {
.urlbarView-row-inner,
.urlbarView-no-wrap {
align-items: center;
@ -295,7 +295,7 @@
-moz-context-properties: fill, fill-opacity;
}
@media not (-moz-proton-urlbar) {
@media not (-moz-proton) {
.urlbarView-favicon {
/* 2px is from identity-block.inc.css */
margin-inline-end: calc(var(--urlbar-icon-padding) / 2 + var(--identity-box-margin-inline) + 2px);
@ -360,7 +360,7 @@
stroke: rgb(50,49,60);
}
@media not (-moz-proton-urlbar) {
@media not (-moz-proton) {
.urlbarView-row[type=bookmark] > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-type-icon {
color: #0060df; /* Blue-60 */
}
@ -412,7 +412,7 @@
-moz-context-properties: fill, fill-opacity;
}
@media (-moz-proton-urlbar) {
@media (-moz-proton) {
.urlbarView-help {
border-radius: var(--toolbarbutton-border-radius);
}
@ -482,7 +482,7 @@
margin-inline-end: 4px;
}
@media (-moz-proton-urlbar) {
@media (-moz-proton) {
.urlbarView-tip-button {
border-radius: var(--toolbarbutton-border-radius);
}
@ -634,7 +634,7 @@
display: none;
}
@media (-moz-proton-urlbar) {
@media (-moz-proton) {
/* Switch-to-tab action text is styled as a chiclet. */
.urlbarView-row:is([type=switchtab], [type=remotetab]) > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-action {
background-color: var(--urlbar-box-bgcolor);
@ -695,7 +695,7 @@
border-top: 1px solid var(--panel-separator-color);
}
@media (-moz-proton-urlbar) {
@media (-moz-proton) {
#urlbar .search-one-offs:not([hidden]) {
padding-block: 10px;
border-top-color: var(--urlbar-separator-color);
@ -727,7 +727,7 @@
margin-inline-end: 8px;
}
@media (-moz-proton-urlbar) {
@media (-moz-proton) {
#urlbar .searchbar-engine-one-off-item {
border-radius: var(--toolbarbutton-border-radius);
}
@ -784,7 +784,7 @@
fill-opacity: .9;
}
@media not (-moz-proton-urlbar) {
@media not (-moz-proton) {
.urlbarView-row[source="bookmarks"] > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-favicon,
#urlbar-engine-one-off-item-bookmarks {
fill: #0060df; /* Blue-60 */
@ -815,7 +815,7 @@
border-color: var(--arrowpanel-border-color);
}
@media (-moz-proton-urlbar) {
@media (-moz-proton) {
#PopupSearchAutoComplete {
border: 1px solid var(--arrowpanel-border-color);
/* Remove the top border since the panel is flush with the input. */

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

@ -535,7 +535,7 @@ menuitem.bookmark-item {
%include ../shared/urlbar-searchbar.inc.css
@media not (prefers-contrast) {
@media (-moz-proton-urlbar) {
@media (-moz-proton) {
:root:not(:-moz-lwtheme) #urlbar:not([focused="true"]) {
--urlbar-box-bgcolor: white;
}
@ -589,7 +589,7 @@ menuitem.bookmark-item {
}
}
@media not (-moz-proton-urlbar) {
@media not (-moz-proton) {
:root:not(:-moz-lwtheme) {
--urlbar-popup-url-color: -moz-nativehyperlinktext;
}

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

@ -8,7 +8,7 @@
outline: none;
}
@media (-moz-proton-urlbar) and (-moz-os-version: windows-win10) {
@media (-moz-proton) and (-moz-os-version: windows-win10) {
#PopupSearchAutoComplete {
/* A border is necessary because the shadow is bottom-right */
border-color: var(--menu-border-color);

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

@ -27,7 +27,6 @@ const CHROME_ONLY_TOGGLES = [
"-moz-gtk-csd-close-button",
"-moz-gtk-csd-reversed-placement",
"-moz-proton",
"-moz-proton-urlbar",
"-moz-proton-contextmenus",
"-moz-proton-modals",
"-moz-proton-doorhangers",

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

@ -1153,12 +1153,6 @@
mirror: always
rust: true
- name: browser.proton.urlbar.enabled
type: RelaxedAtomicBool
value: false
mirror: always
rust: true
- name: browser.proton.modals.enabled
type: RelaxedAtomicBool
value: false

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

@ -624,7 +624,7 @@ macro_rules! bool_pref_feature {
/// to support new types in these entries and (2) ensuring that either
/// nsPresContext::MediaFeatureValuesChanged is called when the value that
/// would be returned by the evaluator function could change.
pub static MEDIA_FEATURES: [MediaFeatureDescription; 63] = [
pub static MEDIA_FEATURES: [MediaFeatureDescription; 62] = [
feature!(
atom!("width"),
AllowsRanges::Yes,
@ -860,7 +860,6 @@ pub static MEDIA_FEATURES: [MediaFeatureDescription; 63] = [
lnf_int_feature!(atom!("-moz-system-dark-theme"), SystemUsesDarkTheme),
bool_pref_feature!(atom!("-moz-proton"), "browser.proton.enabled"),
bool_pref_feature!(atom!("-moz-proton-urlbar"), "browser.proton.urlbar.enabled"),
bool_pref_feature!(atom!("-moz-proton-modals"), "browser.proton.modals.enabled"),
bool_pref_feature!(atom!("-moz-proton-contextmenus"), "browser.proton.contextmenus.enabled"),
bool_pref_feature!(atom!("-moz-proton-doorhangers"), "browser.proton.doorhangers.enabled"),

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

@ -1,10 +1,5 @@
"use strict";
let gProtonUrlbar = Services.prefs.getBoolPref(
"browser.proton.urlbar.enabled",
false
);
// This test checks whether applied WebExtension themes that attempt to change
// popup properties are applied correctly to the autocomplete bar.
const POPUP_COLOR = "#85A400";
@ -13,10 +8,10 @@ const POPUP_TEXT_COLOR_BRIGHT = "#ffffff";
const POPUP_SELECTED_COLOR = "#9400ff";
const POPUP_SELECTED_TEXT_COLOR = "#09b9a6";
const POPUP_URL_COLOR_DARK = gProtonUrlbar ? "#0061e0" : "#1c78d4";
const POPUP_ACTION_COLOR_DARK = gProtonUrlbar ? "#15141a" : "#008f8a";
const POPUP_URL_COLOR_BRIGHT = gProtonUrlbar ? "#00ddff" : "#74c0ff";
const POPUP_ACTION_COLOR_BRIGHT = gProtonUrlbar ? "#bfbfc9" : "#30e60b";
const POPUP_URL_COLOR_DARK = gProton ? "#0061e0" : "#1c78d4";
const POPUP_ACTION_COLOR_DARK = gProton ? "#15141a" : "#008f8a";
const POPUP_URL_COLOR_BRIGHT = gProton ? "#00ddff" : "#74c0ff";
const POPUP_ACTION_COLOR_BRIGHT = gProton ? "#bfbfc9" : "#30e60b";
const SEARCH_TERM = "urlbar-reflows-" + Date.now();

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

@ -418,7 +418,6 @@ void nsXPLookAndFeel::OnPrefChanged(const char* aPref, void* aClosure) {
static constexpr nsLiteralCString kBoolMediaQueryPrefs[] = {
"browser.proton.enabled"_ns,
"browser.proton.urlbar.enabled"_ns,
"browser.proton.contextmenus.enabled"_ns,
"browser.proton.modals.enabled"_ns,
"browser.proton.doorhangers.enabled"_ns,

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

@ -2220,7 +2220,6 @@ STATIC_ATOMS = [
Atom("_moz_gtk_csd_reversed_placement", "-moz-gtk-csd-reversed-placement"),
Atom("_moz_proton", "-moz-proton"),
Atom("_moz_proton_contextmenus", "-moz-proton-contextmenus"),
Atom("_moz_proton_urlbar", "-moz-proton-urlbar"),
Atom("_moz_proton_doorhangers", "-moz-proton-doorhangers"),
Atom("_moz_proton_modals", "-moz-proton-modals"),
Atom("_moz_proton_infobars", "-moz-proton-infobars"),