From 92dfe0babdffb21a108a5ff2b0d934445d9ad48f Mon Sep 17 00:00:00 2001 From: "mr. m" <91018726+mr-cheffy@users.noreply.github.com> Date: Mon, 27 Apr 2026 13:24:30 +0200 Subject: [PATCH] gh-13439: Add Boosts implementation (gh-12586) Co-authored-by: fen4flo <75260616+FlorianButz@users.noreply.github.com> Co-authored-by: fen4flo --- crowdin.yml | 2 + locales/en-US/browser/browser/zen-boosts.ftl | 58 + prefs/zen/boosts.yaml | 22 + .../base/content/zen-assets.jar.inc.mn | 1 + .../base/content/zen-locales.inc.xhtml | 1 + .../base/content/zen-panels/site-data.inc | 10 + src/browser/themes/shared/zen-icons/icons.css | 150 +- .../themes/shared/zen-icons/jar.inc.mn | 57 + .../nucleo/arrow-rotate-anticlockwise.svg | 31 + .../themes/shared/zen-icons/nucleo/block.svg | 31 + .../zen-icons/nucleo/blocked-element.svg | 5 + .../themes/shared/zen-icons/nucleo/bolt.svg | 31 + .../themes/shared/zen-icons/nucleo/boost.svg | 28 + .../zen-icons/nucleo/brackets-curly.svg | 31 + .../zen-icons/nucleo/close-filled-round.svg | 28 + .../shared/zen-icons/nucleo/eyedropper.svg | 5 + .../themes/shared/zen-icons/nucleo/hammer.svg | 5 + .../shared/zen-icons/nucleo/lightbulb.svg | 31 + .../zen-icons/nucleo/paintbrush-fill.svg | 27 + .../shared/zen-icons/nucleo/paintbrush.svg | 36 + .../shared/zen-icons/nucleo/sliders.svg | 31 + .../zen-icons/nucleo/square-wand-sparkle.svg | 36 + .../zen-icons/nucleo/text-lowercase.svg | 31 + .../shared/zen-icons/nucleo/text-size.svg | 31 + .../zen-icons/nucleo/text-title-case.svg | 31 + .../zen-icons/nucleo/text-uppercase.svg | 31 + .../shared/zen-icons/nucleo/wand-sparkle.svg | 36 + src/docshell/base/BrowsingContext-h.patch | 31 + .../BrowsingContext-webidl.patch | 14 + src/gfx/layers/AnimationInfo-cpp.patch | 21 + src/layout/base/PresShell-cpp.patch | 21 + src/layout/generic/ViewportFrame-cpp.patch | 33 + src/layout/painting/nsDisplayList-cpp.patch | 23 + src/layout/style/StyleColor-cpp.patch | 44 + src/zen/boosts/ZenBoostStyles.sys.mjs | 124 ++ src/zen/boosts/ZenBoostsEditor.mjs | 1327 +++++++++++++++++ src/zen/boosts/ZenBoostsManager.sys.mjs | 773 ++++++++++ src/zen/boosts/ZenSelectorComponent.sys.mjs | 787 ++++++++++ src/zen/boosts/ZenZapDissolve.sys.mjs | 636 ++++++++ src/zen/boosts/ZenZapOverlayChild.sys.mjs | 424 ++++++ src/zen/boosts/actors/ZenBoostsChild.sys.mjs | 538 +++++++ src/zen/boosts/actors/ZenBoostsParent.sys.mjs | 185 +++ src/zen/boosts/jar.inc.mn | 14 + src/zen/boosts/moz.build | 28 + src/zen/boosts/nsZenBCOverrides.cpp | 69 + src/zen/boosts/nsZenBoostsBackend.cpp | 365 +++++ src/zen/boosts/nsZenBoostsBackend.h | 90 ++ src/zen/boosts/zen-advanced-color-options.css | 43 + src/zen/boosts/zen-boost-editor.inc.xhtml | 153 ++ src/zen/boosts/zen-boosts.css | 805 ++++++++++ src/zen/boosts/zen-selector.css | 200 +++ src/zen/boosts/zen-zap.css | 158 ++ src/zen/common/styles/zen-popup.css | 1 + .../common/styles/zen-single-components.css | 68 +- src/zen/common/sys/ZenActorsManager.sys.mjs | 18 + src/zen/drag-and-drop/nsZenDragAndDrop.cpp | 2 +- src/zen/drag-and-drop/nsZenDragAndDrop.h | 2 +- src/zen/images/boost-indicator.svg | 48 + src/zen/mods/nsZenModsBackend.cpp | 5 +- src/zen/moz.build | 1 + src/zen/spaces/ZenGradientGenerator.mjs | 11 +- src/zen/tests/boosts/browser.toml | 12 + .../boosts/browser_boost_selector_basic.js | 44 + .../boosts/browser_boost_selector_invalid.js | 30 + .../boosts/browser_boost_selector_nthchild.js | 43 + src/zen/tests/boosts/head.js | 7 + src/zen/tests/moz.build | 1 + src/zen/urlbar/ZenSiteDataPanel.sys.mjs | 230 ++- 68 files changed, 8226 insertions(+), 20 deletions(-) create mode 100644 locales/en-US/browser/browser/zen-boosts.ftl create mode 100644 prefs/zen/boosts.yaml create mode 100644 src/browser/themes/shared/zen-icons/nucleo/arrow-rotate-anticlockwise.svg create mode 100644 src/browser/themes/shared/zen-icons/nucleo/block.svg create mode 100644 src/browser/themes/shared/zen-icons/nucleo/blocked-element.svg create mode 100644 src/browser/themes/shared/zen-icons/nucleo/bolt.svg create mode 100644 src/browser/themes/shared/zen-icons/nucleo/boost.svg create mode 100644 src/browser/themes/shared/zen-icons/nucleo/brackets-curly.svg create mode 100644 src/browser/themes/shared/zen-icons/nucleo/close-filled-round.svg create mode 100644 src/browser/themes/shared/zen-icons/nucleo/eyedropper.svg create mode 100644 src/browser/themes/shared/zen-icons/nucleo/hammer.svg create mode 100644 src/browser/themes/shared/zen-icons/nucleo/lightbulb.svg create mode 100644 src/browser/themes/shared/zen-icons/nucleo/paintbrush-fill.svg create mode 100644 src/browser/themes/shared/zen-icons/nucleo/paintbrush.svg create mode 100644 src/browser/themes/shared/zen-icons/nucleo/sliders.svg create mode 100644 src/browser/themes/shared/zen-icons/nucleo/square-wand-sparkle.svg create mode 100644 src/browser/themes/shared/zen-icons/nucleo/text-lowercase.svg create mode 100644 src/browser/themes/shared/zen-icons/nucleo/text-size.svg create mode 100644 src/browser/themes/shared/zen-icons/nucleo/text-title-case.svg create mode 100644 src/browser/themes/shared/zen-icons/nucleo/text-uppercase.svg create mode 100644 src/browser/themes/shared/zen-icons/nucleo/wand-sparkle.svg create mode 100644 src/docshell/base/BrowsingContext-h.patch create mode 100644 src/dom/chrome-webidl/BrowsingContext-webidl.patch create mode 100644 src/gfx/layers/AnimationInfo-cpp.patch create mode 100644 src/layout/base/PresShell-cpp.patch create mode 100644 src/layout/generic/ViewportFrame-cpp.patch create mode 100644 src/layout/painting/nsDisplayList-cpp.patch create mode 100644 src/layout/style/StyleColor-cpp.patch create mode 100644 src/zen/boosts/ZenBoostStyles.sys.mjs create mode 100644 src/zen/boosts/ZenBoostsEditor.mjs create mode 100644 src/zen/boosts/ZenBoostsManager.sys.mjs create mode 100644 src/zen/boosts/ZenSelectorComponent.sys.mjs create mode 100644 src/zen/boosts/ZenZapDissolve.sys.mjs create mode 100644 src/zen/boosts/ZenZapOverlayChild.sys.mjs create mode 100644 src/zen/boosts/actors/ZenBoostsChild.sys.mjs create mode 100644 src/zen/boosts/actors/ZenBoostsParent.sys.mjs create mode 100644 src/zen/boosts/jar.inc.mn create mode 100644 src/zen/boosts/moz.build create mode 100644 src/zen/boosts/nsZenBCOverrides.cpp create mode 100644 src/zen/boosts/nsZenBoostsBackend.cpp create mode 100644 src/zen/boosts/nsZenBoostsBackend.h create mode 100644 src/zen/boosts/zen-advanced-color-options.css create mode 100644 src/zen/boosts/zen-boost-editor.inc.xhtml create mode 100644 src/zen/boosts/zen-boosts.css create mode 100644 src/zen/boosts/zen-selector.css create mode 100644 src/zen/boosts/zen-zap.css create mode 100644 src/zen/images/boost-indicator.svg create mode 100644 src/zen/tests/boosts/browser.toml create mode 100644 src/zen/tests/boosts/browser_boost_selector_basic.js create mode 100644 src/zen/tests/boosts/browser_boost_selector_invalid.js create mode 100644 src/zen/tests/boosts/browser_boost_selector_nthchild.js create mode 100644 src/zen/tests/boosts/head.js diff --git a/crowdin.yml b/crowdin.yml index a9f073ac0..469c8a1cd 100644 --- a/crowdin.yml +++ b/crowdin.yml @@ -20,3 +20,5 @@ files: translation: browser/browser/preferences/zen-preferences.ftl - source: en-US/browser/browser/zen-folders.ftl translation: browser/browser/zen-folders.ftl + - source: en-US/browser/browser/zen-boosts.ftl + translation: browser/browser/zen-boosts.ftl diff --git a/locales/en-US/browser/browser/zen-boosts.ftl b/locales/en-US/browser/browser/zen-boosts.ftl new file mode 100644 index 000000000..65f67d689 --- /dev/null +++ b/locales/en-US/browser/browser/zen-boosts.ftl @@ -0,0 +1,58 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +zen-boost-edit-rename = + .label = Rename Boost +zen-boost-edit-shuffle = + .label = Shuffle Vibes +zen-boost-edit-reset = + .label = Reset All Edits +zen-boost-edit-delete = + .label = Delete Boost +zen-boost-size = Size +zen-boost-zap = Zap +zen-boost-code = Code +zen-boost-back = Back +zen-boost-shuffle = + .tooltiptext = Shuffle Boost Settings +zen-boost-invert = + .tooltiptext = Smart Invert Colors +zen-boost-controls = + .tooltiptext = Advanced Color Controls +zen-boost-disable = + .tooltiptext = Disable Color Adjustments +zen-boost-text-case-toggle = + .tooltiptext = Toggle Text Case +zen-boost-css-picker = + .tooltiptext = Pick Selector +zen-boost-css-inspector = + .tooltiptext = Open Inspector +zen-bootst-color-contrast = Contrast +zen-bootst-color-brightness = Brightness +zen-bootst-color-original-saturation = Original Saturation +zen-add-zap-helper = Click elements on the page to Zap them +zen-remove-zap-helper = ← Click to Unzap +zen-select-this = Insert selector for this +zen-select-related = Insert selector for related +zen-select-cancel = Cancel +zen-zap-this = Zap this +zen-zap-related = Zap all related elements +zen-zap-cancel = Cancel +zen-zap-done = Done +zen-unzap-tooltip = + { + $elementCount -> + [0] No elements zapped + [1] { $elementCount } element zapped + *[other] { $elementCount } elements zapped + } +zen-boost-save = + .tooltiptext = Export Boost +zen-boost-load = + .tooltiptext = Import Boost +zen-panel-ui-boosts-exported-message = Boost exported! +zen-site-data-boosts = Boosts +zen-site-data-create-boost = + .tooltiptext = Create new boost +zen-boost-rename-boost-prompt = Rename Boost? \ No newline at end of file diff --git a/prefs/zen/boosts.yaml b/prefs/zen/boosts.yaml new file mode 100644 index 000000000..b0de3d3fa --- /dev/null +++ b/prefs/zen/boosts.yaml @@ -0,0 +1,22 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +- name: zen.boosts.enabled + value: "@IS_TWILIGHT@" + +- name: zen.boosts.dissolve-on-zap + value: true + +- name: zen.boosts.invert-channel-floor + value: 15 + cpptype: uint32_t + mirror: once + type: static + +- name: zen.boosts.disable-on-anonymous-content + value: true + cpptype: bool + mirror: once + type: static + diff --git a/src/browser/base/content/zen-assets.jar.inc.mn b/src/browser/base/content/zen-assets.jar.inc.mn index 9d470ace8..dac39decc 100644 --- a/src/browser/base/content/zen-assets.jar.inc.mn +++ b/src/browser/base/content/zen-assets.jar.inc.mn @@ -18,4 +18,5 @@ #include ../../../zen/images/jar.inc.mn #include ../../../zen/vendor/jar.inc.mn #include ../../../zen/fonts/jar.inc.mn +#include ../../../zen/boosts/jar.inc.mn #include ../../../zen/live-folders/jar.inc.mn diff --git a/src/browser/base/content/zen-locales.inc.xhtml b/src/browser/base/content/zen-locales.inc.xhtml index 2040154fa..ed52e6fca 100644 --- a/src/browser/base/content/zen-locales.inc.xhtml +++ b/src/browser/base/content/zen-locales.inc.xhtml @@ -9,5 +9,6 @@ + diff --git a/src/browser/base/content/zen-panels/site-data.inc b/src/browser/base/content/zen-panels/site-data.inc index 4929a1645..aa95fb9f8 100644 --- a/src/browser/base/content/zen-panels/site-data.inc +++ b/src/browser/base/content/zen-panels/site-data.inc @@ -75,6 +75,14 @@ data-l10n-id="unified-extensions-manage-extensions" hidden="true" /> + + + + + + +