Commit 37b63f8b authored by henry's avatar henry Committed by morgan
Browse files

fixup! BB 41916: Letterboxing preferences UI

BB 45079: Move letterboxing controls into appearance settings.
parent b0d20211
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -5,6 +5,11 @@
import { Preferences } from "chrome://global/content/preferences/Preferences.mjs";
import { SettingGroupManager } from "chrome://browser/content/preferences/config/SettingGroupManager.mjs";

ChromeUtils.importESModule(
  "chrome://browser/content/preferences/config/letterboxing.mjs",
  { global: "current" }
);

const FORCED_COLORS_QUERY = matchMedia("(forced-colors)");

Preferences.addAll([
+37 −44
Original line number Diff line number Diff line
/* import-globals-from preferences.js */
/* import-globals-from findInPage.js */
import { Preferences } from "chrome://global/content/preferences/Preferences.mjs";
import { SettingGroupManager } from "chrome://browser/content/preferences/config/SettingGroupManager.mjs";

Preferences.addAll([
  {
@@ -22,21 +22,29 @@ Preferences.addSetting({
});

Preferences.addSetting({
  id: "letterboxingRememberSize",
  pref: "privacy.resistFingerprinting.letterboxing.rememberSize",
  id: "letterboxingWindowSize",
  deps: ["letterboxingEnabled", "resistFingerprinting"],
  visible: ({ letterboxingEnabled, resistFingerprinting }) => {
    return letterboxingEnabled.value && resistFingerprinting.value;
  },
});

Preferences.addSetting({
  id: "letterboxingRememberSize",
  pref: "privacy.resistFingerprinting.letterboxing.rememberSize",
});

Preferences.addSetting({
  id: "letterboxingContentAlignment",
  pref: "privacy.resistFingerprinting.letterboxing.vcenter",
  deps: ["letterboxingEnabled", "resistFingerprinting"],
  visible: ({ letterboxingEnabled, resistFingerprinting }) => {
    return letterboxingEnabled.value && resistFingerprinting.value;
  },
});

Preferences.addSetting({
  id: "letterboxingContentAlignmentOptions",
  pref: "privacy.resistFingerprinting.letterboxing.vcenter",
  get: val => {
    return val ? "middle" : "top";
  },
@@ -57,28 +65,21 @@ Preferences.addSetting({
      return;
    }
    letterboxingEnabled.value = true;
    setTimeout(() => {
      // Need to re-search to remove the "hidden" attribute on the groupbox
      // elements (after the data-hidden-from-search attributes are changed by
      // the "visible" callback).
      // TODO: Is this an upstream issue that "hidden" is not removed?
      if (!gSearchResultsPane.query) {
        search(gLastCategory.category, "data-category");
      }
    // Button should have focus when activated but will be hidden now,
      // so re-assign focus to the newly revealed options.
      Services.focus.moveFocus(
        window,
        buttonEl,
        Services.focus.MOVEFOCUS_FORWARD,
        0
      );
    // so re-assign focus after the new section is revealed.
    document
      .getElementById("letterboxingWindowSize")
      .updateComplete.then(() => {
        document.getElementById("letterboxingRememberSize").focus();
      });
  },
});

SettingGroupManager.registerGroups({
  letterboxingDisabled: {
  letterboxing: {
    l10nId: "letterboxing-settings-group",
    supportPage: "tor-manual:features__fingerprinting-protections___letterboxing",
    headingLevel: 2,
    items: [
      {
        id: "letterboxingShouldEnable",
@@ -93,11 +94,13 @@ SettingGroupManager.registerGroups({
          },
        ],
      },
    ],
  },
  letterboxingSize: {
      {
        id: "letterboxingWindowSize",
        l10nId: "letterboxing-window-size-group",
    headingLevel: 2,
        control: "moz-fieldset",
        controlAttrs: {
          headinglevel: 3,
        },
        items: [
          {
            id: "letterboxingRememberSize",
@@ -106,12 +109,16 @@ SettingGroupManager.registerGroups({
          },
        ],
      },
  letterboxingAlignment: {
      {
        id: "letterboxingContentAlignment",
        l10nId: "letterboxing-alignment-group",
    headingLevel: 2,
        control: "moz-fieldset",
        controlAttrs: {
          headinglevel: 3,
        },
        items: [
          {
        id: "letterboxingContentAlignment",
            id: "letterboxingContentAlignmentOptions",
            control: "moz-visual-picker",
            options: [
              {
@@ -136,20 +143,6 @@ SettingGroupManager.registerGroups({
          },
        ],
      },
    ],
  },
});

var gLetterboxingPrefs = {
  init() {
    const rfpSetting = Preferences.getSetting("resistFingerprinting");
    const updateCategoryVisibility = () => {
      document
        .getElementById("letterboxingCategory")
        .classList.toggle("hide-all-letterboxing", !rfpSetting.value);
    };
    rfpSetting.on("change", updateCategoryVisibility);
    updateCategoryVisibility();
    initSettingGroup("letterboxingDisabled");
    initSettingGroup("letterboxingSize");
    initSettingGroup("letterboxingAlignment");
  },
};
+4 −4
Original line number Diff line number Diff line
@@ -71,7 +71,7 @@ browser.jar:
   content/browser/preferences/widgets/update-state.mjs          (widgets/update-state/update-state.mjs)
   content/browser/preferences/widgets/update-state.css          (widgets/update-state/update-state.css)

   content/browser/preferences/letterboxing.js
   content/browser/preferences/letterboxing.css
   content/browser/preferences/letterboxing-middle.svg
   content/browser/preferences/letterboxing-top.svg
   content/browser/preferences/config/letterboxing.mjs                  (config/letterboxing.mjs)
   content/browser/preferences/letterboxing.css                         (letterboxing.css)
   content/browser/preferences/letterboxing-middle.svg                  (letterboxing-middle.svg)
   content/browser/preferences/letterboxing-top.svg                     (letterboxing-top.svg)
+0 −26
Original line number Diff line number Diff line
<script src="chrome://browser/content/preferences/letterboxing.js" />
<vbox
  id="letterboxingCategory"
  class="subcategory"
  hidden="true"
  data-category="paneGeneral"
>
  <html:h1 data-l10n-id="letterboxing-header" />
  <description class="letterboxing-overview description-deemphasized">
    <html:span data-l10n-id="letterboxing-overview"></html:span>
    <html:a
      is="moz-support-link"
      support-page="tor-manual:features__fingerprinting-protections___letterboxing"
      data-l10n-id="letterboxing-learn-more"
    ></html:a>
  </description>
</vbox>
<groupbox data-category="paneGeneral" hidden="true">
  <html:setting-group groupid="letterboxingDisabled"></html:setting-group>
</groupbox>
<groupbox data-category="paneGeneral" hidden="true">
  <html:setting-group groupid="letterboxingSize"></html:setting-group>
</groupbox>
<groupbox data-category="paneGeneral" hidden="true">
  <html:setting-group groupid="letterboxingAlignment"></html:setting-group>
</groupbox>
+1 −1
Original line number Diff line number Diff line
@@ -40,7 +40,7 @@
<html:setting-group groupid="browserLayout" data-category="paneGeneral" data-subcategory="layout" data-srd-migrated="" hidden="true"></html:setting-group>

<!-- Letterboxing -->
#include ./letterboxing.inc.xhtml
<html:setting-group data-category="paneGeneral" groupid="letterboxing" data-srd-migrated="" hidden="true"></html:setting-group>

<hbox id="languageAndAppearanceCategory"
      class="subcategory"
Loading