mirror of
https://github.com/zen-browser/desktop.git
synced 2025-12-19 12:55:43 +00:00
196 lines
7.1 KiB
C++
196 lines
7.1 KiB
C++
diff --git a/browser/base/content/browser-addons.js b/browser/base/content/browser-addons.js
|
|
index fadcbfca95ee28140579430c0371baad0e2f216a..1947b4ab1c0b4ba0099147c9f13ae78d6e425bdf 100644
|
|
--- a/browser/base/content/browser-addons.js
|
|
+++ b/browser/base/content/browser-addons.js
|
|
@@ -1069,7 +1069,7 @@ var gXPInstallObserver = {
|
|
persistent: true,
|
|
hideClose: true,
|
|
popupOptions: {
|
|
- position: "bottomright topright",
|
|
+ position: gZenUIManager.panelUIPosition(),
|
|
},
|
|
};
|
|
|
|
@@ -1279,7 +1279,7 @@ var gXPInstallObserver = {
|
|
hideClose: true,
|
|
timeout: Date.now() + 30000,
|
|
popupOptions: {
|
|
- position: "bottomright topright",
|
|
+ position: gZenUIManager.panelUIPosition(),
|
|
},
|
|
};
|
|
|
|
@@ -2211,7 +2211,7 @@ var gUnifiedExtensions = {
|
|
// If the new ID is not added in NOTIFICATION_IDS, consider handling the case
|
|
// in the "PopupNotificationsBeforeAnchor" handler elsewhere in this file.
|
|
getPopupAnchorID(aBrowser, aWindow) {
|
|
- const anchorID = "unified-extensions-button";
|
|
+ const anchorID = "zen-site-data-icon-button";
|
|
const attr = anchorID + "popupnotificationanchor";
|
|
|
|
if (!aBrowser[attr]) {
|
|
@@ -2222,7 +2222,7 @@ var gUnifiedExtensions = {
|
|
anchorID
|
|
// Anchor on the toolbar icon to position the popup right below the
|
|
// button.
|
|
- ).firstElementChild;
|
|
+ );
|
|
}
|
|
|
|
return anchorID;
|
|
@@ -2547,7 +2547,7 @@ var gUnifiedExtensions = {
|
|
requestAnimationFrame(() => this.updateAttention());
|
|
},
|
|
|
|
- onToolbarVisibilityChange(toolbarId, isVisible) {
|
|
+ onToolbarVisibilityChange(toolbarId, isVisible, panel = this.panel) {
|
|
// A list of extension widget IDs (possibly empty).
|
|
let widgetIDs;
|
|
|
|
@@ -2561,7 +2561,7 @@ var gUnifiedExtensions = {
|
|
}
|
|
|
|
// The list of overflowed extensions in the extensions panel.
|
|
- const overflowedExtensionsList = this.panel.querySelector(
|
|
+ const overflowedExtensionsList = panel.querySelector(
|
|
"#overflowed-extensions-list"
|
|
);
|
|
|
|
@@ -2662,37 +2662,41 @@ var gUnifiedExtensions = {
|
|
);
|
|
template.replaceWith(template.content);
|
|
this._panel = document.getElementById("unified-extensions-panel");
|
|
- let customizationArea = this._panel.querySelector(
|
|
- "#unified-extensions-area"
|
|
- );
|
|
- CustomizableUI.registerPanelNode(
|
|
- customizationArea,
|
|
- CustomizableUI.AREA_ADDONS
|
|
- );
|
|
- CustomizableUI.addPanelCloseListeners(this._panel);
|
|
-
|
|
- this._panel
|
|
- .querySelector("#unified-extensions-manage-extensions")
|
|
- .addEventListener("command", () => {
|
|
- BrowserAddonUI.openAddonsMgr("addons://list/extension");
|
|
- });
|
|
-
|
|
- // Lazy-load the l10n strings. Those strings are used for the CUI and
|
|
- // non-CUI extensions in the unified extensions panel.
|
|
- document
|
|
- .getElementById("unified-extensions-context-menu")
|
|
- .querySelectorAll("[data-lazy-l10n-id]")
|
|
- .forEach(el => {
|
|
- el.setAttribute("data-l10n-id", el.getAttribute("data-lazy-l10n-id"));
|
|
- el.removeAttribute("data-lazy-l10n-id");
|
|
- });
|
|
+ this.initializePanel(this._panel);
|
|
}
|
|
return this._panel;
|
|
},
|
|
|
|
+ initializePanel(panel) {
|
|
+ let customizationArea = panel.querySelector(
|
|
+ "#unified-extensions-area"
|
|
+ );
|
|
+ CustomizableUI.registerPanelNode(
|
|
+ customizationArea,
|
|
+ CustomizableUI.AREA_ADDONS
|
|
+ );
|
|
+ CustomizableUI.addPanelCloseListeners(panel);
|
|
+
|
|
+ panel
|
|
+ .querySelector("#unified-extensions-manage-extensions")
|
|
+ .addEventListener("command", () => {
|
|
+ BrowserAddonUI.openAddonsMgr("addons://list/extension");
|
|
+ });
|
|
+
|
|
+ // Lazy-load the l10n strings. Those strings are used for the CUI and
|
|
+ // non-CUI extensions in the unified extensions panel.
|
|
+ document
|
|
+ .getElementById("unified-extensions-context-menu")
|
|
+ .querySelectorAll("[data-lazy-l10n-id]")
|
|
+ .forEach(el => {
|
|
+ el.setAttribute("data-l10n-id", el.getAttribute("data-lazy-l10n-id"));
|
|
+ el.removeAttribute("data-lazy-l10n-id");
|
|
+ });
|
|
+ },
|
|
+
|
|
// `aEvent` and `reason` are optional. If `reason` is specified, it should be
|
|
// a valid argument to gUnifiedExtensions.recordButtonTelemetry().
|
|
- async togglePanel(aEvent, reason) {
|
|
+ async togglePanel(aEvent, reason, panel = this._panel, view = "unified-extensions-view", button = this._button) {
|
|
if (!CustomizationHandler.isCustomizing()) {
|
|
if (aEvent) {
|
|
if (
|
|
@@ -2714,6 +2718,7 @@ var gUnifiedExtensions = {
|
|
// and no alternative content is available for display in the panel.
|
|
const policies = this.getActivePolicies();
|
|
if (
|
|
+ false &&
|
|
policies.length &&
|
|
!this.hasExtensionsInPanel(policies) &&
|
|
!this.isPrivateWindowMissingExtensionsWithoutPBMAccess() &&
|
|
@@ -2729,32 +2734,30 @@ var gUnifiedExtensions = {
|
|
this.blocklistAttentionInfo =
|
|
await AddonManager.getBlocklistAttentionInfo();
|
|
|
|
- let panel = this.panel;
|
|
-
|
|
if (!this._listView) {
|
|
this._listView = PanelMultiView.getViewNode(
|
|
document,
|
|
- "unified-extensions-view"
|
|
+ view,
|
|
);
|
|
this._listView.addEventListener("ViewShowing", this);
|
|
this._listView.addEventListener("ViewHiding", this);
|
|
}
|
|
|
|
- if (this._button.open) {
|
|
+ if (button.open) {
|
|
PanelMultiView.hidePopup(panel);
|
|
- this._button.open = false;
|
|
+ button.open = false;
|
|
} else {
|
|
// Overflow extensions placed in collapsed toolbars, if any.
|
|
for (const toolbarId of CustomizableUI.getCollapsedToolbarIds(window)) {
|
|
// We pass `false` because all these toolbars are collapsed.
|
|
- this.onToolbarVisibilityChange(toolbarId, /* isVisible */ false);
|
|
+ this.onToolbarVisibilityChange(toolbarId, /* isVisible */ false, panel);
|
|
}
|
|
|
|
panel.hidden = false;
|
|
this.recordButtonTelemetry(reason || "extensions_panel_showing");
|
|
this.ensureButtonShownBeforeAttachingPanel(panel);
|
|
- PanelMultiView.openPopup(panel, this._button, {
|
|
- position: "bottomright topright",
|
|
+ PanelMultiView.openPopup(panel, button, {
|
|
+ position: gZenUIManager.panelUIPosition(panel, button),
|
|
triggerEvent: aEvent,
|
|
});
|
|
}
|
|
@@ -2941,18 +2944,20 @@ var gUnifiedExtensions = {
|
|
this._maybeMoveWidgetNodeBack(widgetId);
|
|
}
|
|
|
|
- this.pinToToolbar(widgetId, shouldPinToToolbar);
|
|
+ await this.pinToToolbar(widgetId, shouldPinToToolbar);
|
|
},
|
|
|
|
- pinToToolbar(widgetId, shouldPinToToolbar) {
|
|
+ async pinToToolbar(widgetId, shouldPinToToolbar) {
|
|
let newArea = shouldPinToToolbar
|
|
? CustomizableUI.AREA_NAVBAR
|
|
: CustomizableUI.AREA_ADDONS;
|
|
let newPosition = shouldPinToToolbar ? undefined : 0;
|
|
+ await gZenVerticalTabsManager._preCustomize();
|
|
|
|
CustomizableUI.addWidgetToArea(widgetId, newArea, newPosition);
|
|
// addWidgetToArea() will trigger onWidgetAdded or onWidgetMoved as needed,
|
|
// and our handlers will call updateAttention() as needed.
|
|
+ await gZenVerticalTabsManager._postCustomize();
|
|
},
|
|
|
|
async moveWidget(menu, direction) {
|