[tor-commits] [tor-browser] 01/06: Revert "Bug 32220: Improve the letterboxing experience"

gitolite role git at cupani.torproject.org
Tue Nov 15 20:52:54 UTC 2022


This is an automated email from the git hooks/post-receive script.

richard pushed a commit to branch tor-browser-102.4.0esr-12.0-2
in repository tor-browser.

commit 2d9fb2cb57bcc268da06f451a9e13d17587169bc
Author: hackademix <giorgio at maone.net>
AuthorDate: Thu Nov 10 19:56:30 2022 +0100

    Revert "Bug 32220: Improve the letterboxing experience"
    
    This reverts commit 7d37c04b9efb676678cfa34eb11c3014c83012be.
---
 browser/base/content/browser.css                   |  7 --
 browser/base/content/tabbrowser-tab.js             |  9 --
 browser/themes/shared/tabs.css                     |  6 --
 .../components/resistfingerprinting/RFPHelper.jsm  | 97 +++-------------------
 4 files changed, 12 insertions(+), 107 deletions(-)

diff --git a/browser/base/content/browser.css b/browser/base/content/browser.css
index 2f181244982d..03a778809dc8 100644
--- a/browser/base/content/browser.css
+++ b/browser/base/content/browser.css
@@ -98,13 +98,6 @@ body {
   -moz-window-dragging: drag;
 }
 
-.browserStack > browser.letterboxing {
-  border-color: var(--chrome-content-separator-color);
-  border-style: solid;
-  border-width : 1px;
-  border-top: none;
-}
-
 #toolbar-menubar[autohide="true"] {
   overflow: hidden;
 }
diff --git a/browser/base/content/tabbrowser-tab.js b/browser/base/content/tabbrowser-tab.js
index 4243079a84b9..abcabb98503e 100644
--- a/browser/base/content/tabbrowser-tab.js
+++ b/browser/base/content/tabbrowser-tab.js
@@ -239,15 +239,6 @@
       return true;
     }
 
-    get needsLetterbox() {
-      let browser = this.linkedBrowser;
-      if (isBlankPageURL(browser.currentURI.spec)) {
-        return false;
-      }
-
-      return true;
-    }
-
     get lastAccessed() {
       return this._lastAccessed == Infinity ? Date.now() : this._lastAccessed;
     }
diff --git a/browser/themes/shared/tabs.css b/browser/themes/shared/tabs.css
index 9597205f7606..2eb7405c78d5 100644
--- a/browser/themes/shared/tabs.css
+++ b/browser/themes/shared/tabs.css
@@ -56,12 +56,6 @@
   background-color: var(--tabpanel-background-color);
 }
 
-/* extend down the toolbar's colors when letterboxing is enabled*/
-#tabbrowser-tabpanels.letterboxing {
-  background-color: var(--toolbar-bgcolor);
-  background-image: var(--toolbar-bgimage);
-}
-
 #tabbrowser-tabs,
 #tabbrowser-arrowscrollbox,
 #tabbrowser-tabs[positionpinnedtabs] > #tabbrowser-arrowscrollbox > .tabbrowser-tab[pinned] {
diff --git a/toolkit/components/resistfingerprinting/RFPHelper.jsm b/toolkit/components/resistfingerprinting/RFPHelper.jsm
index 146e4a86514e..d2191ee14aa5 100644
--- a/toolkit/components/resistfingerprinting/RFPHelper.jsm
+++ b/toolkit/components/resistfingerprinting/RFPHelper.jsm
@@ -40,7 +40,6 @@ class _RFPHelper {
   // ============================================================================
   constructor() {
     this._initialized = false;
-    this._borderDimensions = null;
   }
 
   init() {
@@ -353,24 +352,6 @@ class _RFPHelper {
     });
   }
 
-  getBorderDimensions(aBrowser) {
-    if (this._borderDimensions) {
-      return this._borderDimensions;
-    }
-
-    const win = aBrowser.ownerGlobal;
-    const browserStyle = win.getComputedStyle(aBrowser);
-
-    this._borderDimensions = {
-      top: parseInt(browserStyle.borderTopWidth),
-      right: parseInt(browserStyle.borderRightWidth),
-      bottom: parseInt(browserStyle.borderBottomWidth),
-      left: parseInt(browserStyle.borderLeftWidth),
-    };
-
-    return this._borderDimensions;
-  }
-
   _addOrClearContentMargin(aBrowser) {
     let tab = aBrowser.getTabBrowser().getTabForBrowser(aBrowser);
 
@@ -379,13 +360,9 @@ class _RFPHelper {
       return;
     }
 
-    // we add the letterboxing class even if the content does not need letterboxing
-    // in which case margins are set such that the borders are hidden
-    aBrowser.classList.add("letterboxing");
-
     // We should apply no margin around an empty tab or a tab with system
     // principal.
-    if (!tab.needsLetterbox || aBrowser.contentPrincipal.isSystemPrincipal) {
+    if (tab.isEmpty || aBrowser.contentPrincipal.isSystemPrincipal) {
       this._clearContentViewMargin(aBrowser);
     } else {
       this._roundContentView(aBrowser);
@@ -553,32 +530,10 @@ class _RFPHelper {
     // Calculating the margins around the browser element in order to round the
     // content viewport. We will use a 200x100 stepping if the dimension set
     // is not given.
-
-    const borderDimensions = this.getBorderDimensions(aBrowser);
-    const marginDims = calcMargins(
-      containerWidth,
-      containerHeight - borderDimensions.top
-    );
-
-    let margins = {
-      top: 0,
-      right: 0,
-      bottom: 0,
-      left: 0,
-    };
-
-    // snap browser element to top
-    margins.top = 0;
-    // and leave 'double' margin at the bottom
-    margins.bottom = 2 * marginDims.height - borderDimensions.bottom;
-    // identical margins left and right
-    margins.right = marginDims.width - borderDimensions.right;
-    margins.left = marginDims.width - borderDimensions.left;
-
-    const marginStyleString = `${margins.top}px ${margins.right}px ${margins.bottom}px ${margins.left}px`;
+    let margins = calcMargins(containerWidth, containerHeight);
 
     // If the size of the content is already quantized, we do nothing.
-    if (aBrowser.style.margin === marginStyleString) {
+    if (aBrowser.style.margin == `${margins.height}px ${margins.width}px`) {
       log("_roundContentView[" + logId + "] is_rounded == true");
       if (this._isLetterboxingTesting) {
         log(
@@ -599,35 +554,19 @@ class _RFPHelper {
         "_roundContentView[" +
           logId +
           "] setting margins to " +
-          marginStyleString
+          margins.width +
+          " x " +
+          margins.height
       );
-
-      // The margin background color is determined by the background color of the
-      // window's tabpanels#tabbrowser-tabpanels element
-      aBrowser.style.margin = marginStyleString;
+      // One cannot (easily) control the color of a margin unfortunately.
+      // An initial attempt to use a border instead of a margin resulted
+      // in offset event dispatching; so for now we use a colorless margin.
+      aBrowser.style.margin = `${margins.height}px ${margins.width}px`;
     });
   }
 
   _clearContentViewMargin(aBrowser) {
-    const borderDimensions = this.getBorderDimensions(aBrowser);
-    // set the margins such that the browser elements border is visible up top, but
-    // are rendered off-screen on the remaining sides
-    let margins = {
-      top: 0,
-      right: -borderDimensions.right,
-      bottom: -borderDimensions.bottom,
-      left: -borderDimensions.left,
-    };
-    const marginStyleString = `${margins.top}px ${margins.right}px ${margins.bottom}px ${margins.left}px`;
-
     aBrowser.ownerGlobal.requestAnimationFrame(() => {
-      aBrowser.style.margin = marginStyleString;
-    });
-  }
-
-  _removeLetterboxing(aBrowser) {
-    aBrowser.ownerGlobal.requestAnimationFrame(() => {
-      aBrowser.classList.remove("letterboxing");
       aBrowser.style.margin = "";
     });
   }
@@ -645,11 +584,6 @@ class _RFPHelper {
     aWindow.gBrowser.addTabsProgressListener(this);
     aWindow.addEventListener("TabOpen", this);
 
-    const tabPanel = aWindow.document.getElementById("tabbrowser-tabpanels");
-    if (tabPanel) {
-      tabPanel.classList.add("letterboxing");
-    }
-
     // Rounding the content viewport.
     this._updateMarginsForTabsInWindow(aWindow);
   }
@@ -673,17 +607,10 @@ class _RFPHelper {
     tabBrowser.removeTabsProgressListener(this);
     aWindow.removeEventListener("TabOpen", this);
 
-    // revert tabpanel's background colors to default
-    const tabPanel = aWindow.document.getElementById("tabbrowser-tabpanels");
-    if (tabPanel) {
-      tabPanel.classList.remove("letterboxing");
-    }
-
-    // and revert each browser element to default,
-    // restore default margins and remove letterboxing class
+    // Clear all margins and tooltip for all browsers.
     for (let tab of tabBrowser.tabs) {
       let browser = tab.linkedBrowser;
-      this._removeLetterboxing(browser);
+      this._clearContentViewMargin(browser);
     }
   }
 

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the tor-commits mailing list