Verified Commit 41fd3b34 authored by ma1's avatar ma1
Browse files

fixup! BB 41919: Letterboxing, add temporarily visible web content-size...

fixup! BB 41919: Letterboxing, add temporarily visible web content-size indicator on window resizing.

BB 43632: Letterboxing, always show the correct size for the active tab on resizing.
BB 43642: New tab shows letterboxing size indicator.
parent a97a4df4
Loading
Loading
Loading
Loading
+1 −0
Changes for browser/themes/shared/tabbrowser/content-area.css: 1 added line, 0 removed lines.
Original line number Diff line number Diff line
@@ -124,6 +124,7 @@
    direction: ltr;
  }

  .browserStack:not(.letterboxingStatus) &[type=letterboxingStatus],
  .exclude-letterboxing &[type=letterboxingStatus],
  &[inactive],
  :root[inDOMFullscreen] &:not([type=overLink]) {
+32 −9
Changes for toolkit/components/resistfingerprinting/RFPHelper.sys.mjs: 32 added lines, 9 removed lines.
Original line number Diff line number Diff line
@@ -717,13 +717,7 @@ class _RFPHelper {
          borderRadius === 0 ? "hidden" : "",
        "--letterboxing-border-radius": borderRadius,
      });

      if (
        isResize &&
        this.letterboxingEnabled &&
        (parentWidth > lastRoundedSize.width ||
          parentHeight > lastRoundedSize.height)
      ) {
      if (win.gBrowser.selectedBrowser == aBrowser) {
        const updateStatus = async args => {
          win.XULBrowserWindow.letterboxingStatus = args
            ? await win.document.l10n.formatValue(
@@ -733,9 +727,24 @@ class _RFPHelper {
            : "";
          win.StatusPanel.update();
        };
        if (
          isResize &&
          this.letterboxingEnabled &&
          (parentWidth > lastRoundedSize.width ||
            parentHeight > lastRoundedSize.height)
        ) {
          const clazz = "letterboxingStatus";
          const currentParent = win.document.getElementsByClassName(clazz)[0];
          if (currentParent != browserParent) {
            currentParent?.classList.remove(clazz);
            browserParent.classList.add(clazz);
          }
          updateStatus(lastRoundedSize);
          win.clearTimeout(win._letterboxingStatusTimeout);
          win._letterboxingStatusTimeout = win.setTimeout(updateStatus, 1000);
        } else {
          updateStatus("");
        }
      }
    }

@@ -840,9 +849,23 @@ class _RFPHelper {
    const resizeObserver = (aWindow._rfpResizeObserver =
      new aWindow.ResizeObserver(entries => {
        const context = { isResize: true };
        for (let { target } of entries) {
        if (entries.length == 1) {
          const { target } = entries[0];
          if (!("_letterboxingNew" in target)) {
            target._letterboxingNew = !entries[0].contentRect.width;
            if (target._letterboxingNew) {
              return;
            }
            context.isResize = false;
          } else if (target._letterboxingNew) {
            target._letterboxingNew = false;
            context.isResize = false;
          }
        }

        for (const { target } of entries) {
          this._roundOrResetContentSize(
            target.querySelector("browser"),
            target.getElementsByTagName("browser")[0],
            context
          );
        }