зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1703274 - Enable Proton Urlbar. r=jaws,extension-reviewers,zombie,rpl
Differential Revision: https://phabricator.services.mozilla.com/D110998
This commit is contained in:
Родитель
cfbef4a018
Коммит
2c982d3c01
|
@ -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"),
|
||||
|
|
Загрузка…
Ссылка в новой задаче