Commit graph

107 commits

Author SHA1 Message Date
Oriol Brufau
f1298a84d4 Bug 1808784 - Move tab invalidation methods to gBrowser.tabContainer. r=Gijs
D166962 is moving the cache into gBrowser.tabContainer, so the methods
for invalidating it should also be there.

Differential Revision: https://phabricator.services.mozilla.com/D166966
2023-01-17 14:12:08 +00:00
Oriol Brufau
7802cff266 Bug 1808784 - Cache gBrowser.tabContainer.allTabs. r=Gijs
gBrowser.tabs was either redirecting to gBrowser.tabContainer.allTabs or
using the previously cached result. However, most tabContainer code uses
allTabs directly, which was not benefiting from the cache.

Therefore, this patch caches gBrowser.tabContainer.allTabs, and makes
gBrowser.tabs always redirect to it.

Also makes it consistent for gBrowser.tabContainer._getVisibleTabs() and
gBrowser.visibleTabs. In that case both the logic and the cache were in
gBrowser, and tabContainer was redirecting to that, except when gBrowser
hadn't been initialized.

So it's better to have both the logic and the cache in tabContainer.

Differential Revision: https://phabricator.services.mozilla.com/D166962
2023-01-17 00:36:19 +00:00
Dão Gottwald
0564edd687 Bug 1809465 - Replace _hoveredTab with a private tab property. r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D166441
2023-01-10 17:10:30 +00:00
Oriol Brufau
5f16781e49 Bug 1808965 - Stop calling _mouseleave and _mouseenter from _setPositionalAttributes. r=dao
Calling _mouseleave and _mouseenter from _setPositionalAttributes used
to be needed to update the beforehovered and afterhovered attributes,
as the tabs these attributes were set on might have changed.

However, bug 1808661 removed these attributes, so mouseenter/mouseleave
events should be sufficient for updating _hoveredTab itself.

_setPositionalAttributes is a hot code-path, so avoiding the expensive
querySelector("tab:hover") will improve performance when having lots of
tabs.

Depends on D166094

Differential Revision: https://phabricator.services.mozilla.com/D166225
2023-01-09 18:29:38 +00:00
Oriol Brufau
849bfbb19b Bug 1808661 - Remove beforehovered and afterhovered. r=dao
Differential Revision: https://phabricator.services.mozilla.com/D166094
2023-01-06 21:48:02 +00:00
Oriol Brufau
a1eb3c4eb8 Bug 1808661 - Remove before-multiselected and beforeMultiselected. r=Gijs,dao
Depends on D166026

Differential Revision: https://phabricator.services.mozilla.com/D166027
2023-01-06 21:48:01 +00:00
Oriol Brufau
e4262236d5 Bug 1808661 - Remove last-visible-tab and _lastTab. r=Gijs,dao
Differential Revision: https://phabricator.services.mozilla.com/D166026
2023-01-06 21:48:01 +00:00
Oriol Brufau
ab88c0d61d Bug 1808661 - Remove first-visible-tab and _firstTab. r=Gijs,dao
Differential Revision: https://phabricator.services.mozilla.com/D166025
2023-01-06 21:48:01 +00:00
Oriol Brufau
8ec7bf5a6a Bug 1808661 - Remove beforeselected-visible and _beforeSelectedTab. r=Gijs,dao
Differential Revision: https://phabricator.services.mozilla.com/D166024
2023-01-06 21:48:00 +00:00
Sandor Molnar
24b08f1f9f Backed out 5 changesets (bug 1808661) for causing bc failures in browser/base/content/test/tabs/browser_positional_attributes.js CLOSED TREE
Backed out changeset 16871d37b859 (bug 1808661)
Backed out changeset 607a282e25f5 (bug 1808661)
Backed out changeset c2ad604be361 (bug 1808661)
Backed out changeset b22c7589a7bb (bug 1808661)
Backed out changeset b0c1ee751b7a (bug 1808661)
2023-01-06 22:21:10 +02:00
Oriol Brufau
14f328f107 Bug 1808661 - Remove beforehovered and afterhovered. r=dao
Differential Revision: https://phabricator.services.mozilla.com/D166094
2023-01-06 19:38:54 +00:00
Oriol Brufau
b0b472c28d Bug 1808661 - Remove before-multiselected and beforeMultiselected. r=Gijs,dao
Depends on D166026

Differential Revision: https://phabricator.services.mozilla.com/D166027
2023-01-06 19:38:54 +00:00
Oriol Brufau
0fea6a7914 Bug 1808661 - Remove last-visible-tab and _lastTab. r=Gijs,dao
Differential Revision: https://phabricator.services.mozilla.com/D166026
2023-01-06 19:38:53 +00:00
Oriol Brufau
f46a7d03a6 Bug 1808661 - Remove first-visible-tab and _firstTab. r=Gijs,dao
Differential Revision: https://phabricator.services.mozilla.com/D166025
2023-01-06 19:38:53 +00:00
Oriol Brufau
968a037708 Bug 1808661 - Remove beforeselected-visible and _beforeSelectedTab. r=Gijs,dao
Differential Revision: https://phabricator.services.mozilla.com/D166024
2023-01-06 19:38:53 +00:00
Oriol Brufau
7eca06dd4c Bug 1760460 - Turn gBrowser._removingTabs into a Set. r=Gijs
Thus avoiding ugly things like:
this._removingTabs.splice(this._removingTabs.indexOf(aTab), 1);

Differential Revision: https://phabricator.services.mozilla.com/D165736
2023-01-01 18:09:28 +00:00
Mark Banner
3a07fcf436 Bug 1806503 - Automatically replace Cu.reportError with console.error (browser/actors, browser/base). r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D165068
2022-12-27 10:08:58 +00:00
Eemeli Aro
56c6f8a57f Bug 1760029 - Migrate tabbrowser.properties strings used by tabbrowser-tabs.js to Fluent. r=gregtatum,dao,fluent-reviewers,flod
This removes the `intl:app-locales-changed` event listener that was added in bug 1760825, as it's not longer required.

Depends on D159017

Differential Revision: https://phabricator.services.mozilla.com/D159018
2022-11-22 17:12:22 +00:00
Simon Friedberger
3c5991df13 Bug 1549057 - Rename (Gg)etCSP to (Gg)etCsp - r=freddyb
Differential Revision: https://phabricator.services.mozilla.com/D159268
2022-10-24 20:38:11 +00:00
Katherine Patenio
ab8582b1d7 Bug 1789978: fix drop indicator position for RTL builds after opening Firefox View. r=dao
Differential Revision: https://phabricator.services.mozilla.com/D157851
2022-10-11 18:30:59 +00:00
James Picone
7a8f248cf4 Bug 1625945: Intercept wheel events in tabbrowser-tabs if switchByScrolling is true so tabs also switch when it's overflown, r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D158077
2022-10-09 08:32:16 +00:00
Emilio Cobos Álvarez
a39bc75841 Bug 1775998 - Update close buttons as a result of overflow/underflow. r=Gijs
The close buttons look at the overflow attribute but are not guaranteed
to update when it changes otherwise.

Differential Revision: https://phabricator.services.mozilla.com/D158622
2022-10-08 00:17:24 +00:00
Emilio Cobos Álvarez
abbd3773c9 Bug 1786513 - Don't use ResizeObserver to deal with window resizes in tabbrowser. r=Gijs
This was introduced alongside the MutationObserver[1], according to the commit
message to "improve performance through coalesence of 'resize' events."

However, that's false, before this bug, resizes on the top level window would
flush layout and resize the document element instantly so there should be the
exact same amount of resize events as of ResizeObserver notifications. I'm not
sure what coalesence would this achieve.

This is causing the previous patch to get backed out, due to a failure on macOS
that I haven't been able to reproduce.

It's likely because on chrome windows some document element resizes can trigger
window resizes due to the size constraint propagation we have, so nothing
super-concerning or new all-in-all, my patch just changed the timing of how
this happened.

[1]: https://hg.mozilla.org/mozilla-central/rev/ad71dde9ed5e28957b124001a78c88fc1d94426a

Differential Revision: https://phabricator.services.mozilla.com/D155986
2022-09-01 10:54:13 +00:00
Tooru Fujisawa
f31cd07e4a Bug 1771831 - Make it possible to reorder tabs in "List all tabs" list by drag-and-drop. r=NeilDeakin
Also the tab list item can be dragged to the tab bar to reorder, or moved to
other window, or detached.

Differential Revision: https://phabricator.services.mozilla.com/D147709
2022-08-31 13:22:53 +00:00
Butkovits Atila
9faa735912 Backed out changeset f47d9c27992d (bug 1771831) for causing failures at browser_tabdetach.js. CLOSED TREE 2022-08-31 03:54:04 +03:00
Tooru Fujisawa
d50c882977 Bug 1771831 - Make it possible to reorder tabs in "List all tabs" list by drag-and-drop. r=NeilDeakin
Also the tab list item can be dragged to the tab bar to reorder, or moved to
other window, or detached.

Differential Revision: https://phabricator.services.mozilla.com/D147709
2022-08-30 22:49:43 +00:00
Kagami Sascha Rosylight
102bd338be Bug 1695435 - Part 2: Add more words to the chrome script heuristic in use-isInstance r=preferences-reviewers,Gijs,webdriver-reviewers,whimboo,sgalich
Differential Revision: https://phabricator.services.mozilla.com/D110932
2022-08-24 22:47:42 +00:00
Paul Zuehlcke
0a07b885b5 Bug 1779055 - Change private browsing new tab title to "New Private Tab". r=timhuang
Differential Revision: https://phabricator.services.mozilla.com/D151534
2022-07-14 18:45:43 +00:00
Dão Gottwald
6a1e5604c2 Bug 1767802 - Add another tab stop to the tabs toolbar. r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D149277
2022-06-15 11:13:36 +00:00
Dão Gottwald
6dcb722fe8 Bug 1770808 - Preserve space around the Fx View button / tabstrip separator when there are pinned tabs and tabs overflow. r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D147101
2022-05-24 17:05:28 +00:00
Cosmin Sabou
63f7b7912d Backed out changeset 9e4593ef59f1 (bug 1770808) for causing Bug 1770968. a=backout 2022-05-24 19:17:00 +03:00
Dão Gottwald
51458625c7 Bug 1770808 - Preserve space around the Fx View button / tabstrip separator when there are pinned tabs and tabs overflow. r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D147101
2022-05-23 23:55:21 +00:00
Oriol Brufau
6a8eb0943c Bug 1763712 - Prevent getRelatedElement() from passing empty string to getElementById(). r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D143234
2022-04-07 23:44:49 +00:00
Greg Tatum
27ed680c0b Bug 1760825 - Fix New Tab text to change on a live language reload; r=amy
This text is cached, and so needs invalidating when the app locale is
changed.

Differential Revision: https://phabricator.services.mozilla.com/D142256
2022-03-30 20:12:10 +00:00
Oriol Brufau
28b9fcc2b7 Bug 1759858 - Make gBrowser.tabContainer.on_drop handle adoptTab failures. r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D141237
2022-03-28 08:56:23 +00:00
Oriol Brufau
413a559c70 Bug 1758295 - Preserve tab laziness when dragging into another window. r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D140456
2022-03-10 09:28:02 +00:00
Emilio Cobos Álvarez
92ca1990a3 Bug 1756241 - Improve tab dragging calculations to work correctly between mixed-dpi screens. r=dao
The root cause of the bug is fixed by the previous patch. This patch improves
the calculations to work properly across mixed dpi displays (which doesn't work
on release either by any stretch).

Hopefully it's somewhat straight-forward to follow.

Depends on D139243

Differential Revision: https://phabricator.services.mozilla.com/D139244
2022-02-22 19:06:59 +00:00
Emilio Cobos Álvarez
6ab8201db0 Bug 1755315 - Add more convenient accessors for widget screen to chrome code. r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D138662
2022-02-17 16:22:58 +00:00
Emilio Cobos Álvarez
a8883d1cfc Bug 1753836 - Fix callers of screenForRect to pass desktop pixels. r=jfkthame,Gijs
Device pixels and desktop pixels are not the same on macOS and Win7.
Expose the desktop-to-device scale to JS and use it appropriately.

Depends on D138038

Differential Revision: https://phabricator.services.mozilla.com/D138039
2022-02-16 12:18:12 +00:00
smolnar
33c038ec0d Backed out 6 changesets (bug 1753836) for causing mochitest failures in test_event_screenXY_with_zoom. CLOSED TREE
Backed out changeset a572cbc0fac2 (bug 1753836)
Backed out changeset 371a495ff728 (bug 1753836)
Backed out changeset 774af76be463 (bug 1753836)
Backed out changeset faa8a8f2d40f (bug 1753836)
Backed out changeset 9209832ecffe (bug 1753836)
Backed out changeset db443ce0406d (bug 1753836)
2022-02-16 01:47:51 +02:00
Emilio Cobos Álvarez
c879265a3a Bug 1753836 - Fix callers of screenForRect to pass desktop pixels. r=jfkthame,Gijs
Device pixels and desktop pixels are not the same on macOS and Win7.
Expose the desktop-to-device scale to JS and use it appropriately.

Depends on D138038

Differential Revision: https://phabricator.services.mozilla.com/D138039
2022-02-15 22:25:04 +00:00
Sarah Clements
bdd15984a3 Bug 1747430 - remove tabIndicatorReplacesIcon in browser tabs css file r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D137775
2022-02-11 16:19:52 +00:00
Emilio Cobos Álvarez
00cc720134 Bug 1753995 - Remove non-test usage of WindowUtils.screenPixelsPerCSSPixel. r=mconley
It does the same as window.devicePixelRatio. However a bunch of this
code is copy-pasted code trying to scale a canvas, but not messing with
full zoom is the right thing to do.

The full zoom value in the top level browser.xhtml page is always 1
anyways, and WindowsPreviewPerTab looking at the current browser tab's
full zoom is just bizarre...

Differential Revision: https://phabricator.services.mozilla.com/D138020
2022-02-07 18:23:35 +00:00
Emilio Cobos Álvarez
a6cf56481f Bug 1741830 - Fix front-end callers of screenForRect in HiDPI environments. r=Gijs
screenForRect takes screen coordinates (device pixels, for our purpose here).

However screenX / screenY are in CSS pixels, so we need to convert them to the
right coordinate space before looking up the screen.

Differential Revision: https://phabricator.services.mozilla.com/D137895
2022-02-05 15:44:43 +00:00
Gijs Kruitbosch
ccec3363d4 Bug 1749134 - fix error message when toggling containers caused by not removing from gClickAndHoldListenersOnElement, r=jaws
Differential Revision: https://phabricator.services.mozilla.com/D135948
2022-01-17 13:49:05 +00:00
Kagami Sascha Rosylight
8258e76e3b Bug 1635018 - Part 2: Replace dragexit with dragleave in browser/ r=Gijs,mak
Differential Revision: https://phabricator.services.mozilla.com/D121190
2021-08-05 14:33:39 +00:00
Jared Wein
c4e12413fb Bug 1695472 - Add a mutation observer for fullscreen changes so we don't have to rely on timing of resize events. r=Gijs
A resize observer was also introduced to improve performance through coalesence of 'resize' events.

Differential Revision: https://phabricator.services.mozilla.com/D116522
2021-06-08 05:11:13 +00:00
Alexandru Michis
f2f6bad653 Backed out changeset 7fa771d9f62d (bug 1695472) for causing bc failures in browser_bug1620341.js (Bug 1714691) 2021-06-05 11:03:34 +03:00
Jared Wein
a634816fff Bug 1695472 - Add a mutation observer for fullscreen changes so we don't have to rely on timing of resize events. r=Gijs
A resize observer was also introduced to improve performance through coalesence of 'resize' events.

Differential Revision: https://phabricator.services.mozilla.com/D116522
2021-06-04 20:47:44 +00:00
James Teh
a8a9eee88d Bug 1700708: Don't insert the browser for unselected browser tabs when calling getRelatedElement. r=Gijs,dao
Otherwise, callers might end up unintentionally binding the browser for lazy background tabs.
This was happening when a11y queried the LABEL_FOR relation while building the a11y tree, causing all lazy tabs to be loaded.
All callers of this method only need it to insert a browser when the tab is selected anyway.

Differential Revision: https://phabricator.services.mozilla.com/D114566
2021-05-21 05:17:56 +00:00