Commit Graph

2759 Commits

Author SHA1 Message Date
Marian-Vasile Laza
e32d202d39 Backed out 3 changesets (bug 1797155) for causing bc failures on browser_unified_extensions_overflowable_toolbar.js. CLOSED TREE
Backed out changeset ee3f27f43bc5 (bug 1797155)
Backed out changeset 863603ed770a (bug 1797155)
Backed out changeset 3fbfc3d94e5a (bug 1797155)
2022-10-31 21:29:22 +02:00
Mike Conley
fc80458832 Bug 1797155 - Part 2: Make it possible to redirect browser action widgets to the Unified Extension panel on overflow. r=sclements,willdurand
When Unified Extensions is enabled, we want to make it so that any WebExtension browser_actions
overflow into the Unified Extensions panel instead of the default overflow panel.

Differential Revision: https://phabricator.services.mozilla.com/D160293
2022-10-31 18:05:20 +00:00
Mike Conley
55e8ce7ccc Bug 1797155 - Part 1: Don't walk the #list children directly in OverflowableToolbar.#moveItemsBackToTheirOrigin. r=sclements
This patch makes it so that OverflowableToolbar.#moveItemsBackToTheirOrigin
is not coupled to the existing overflowed item list, and instead takes
advantage of the insert-order provided when calling #overflowedInfo.entries()
and queries the DOM for the overflowed item IDs directly.

A later patch in this series is going to conditionally move overflowed
items into different panels based on whether or not they're provided
by WebExtensions, and so this change means that #moveItemsBackToTheirOrigin
is not going to care which panel the overflowed items are in, it should
behave the same.

Differential Revision: https://phabricator.services.mozilla.com/D160292
2022-10-31 18:05:19 +00:00
Mike Conley
8452e411e0 Bug 1797548 - Move Unified Extensions panelview into its own dedicated lazily created panel. r=cmkm,willdurand
Differential Revision: https://phabricator.services.mozilla.com/D160403
2022-10-27 17:13:43 +00:00
Emilio Cobos Álvarez
49a2acb9ce Bug 1797156 - Fix browser_976792_insertNodeInWindow, and fix a couple minor typos.
MANUAL PUSH: Trivial fix CLOSED TREE
2022-10-26 20:07:30 +02:00
Mike Conley
9eca47fb30 Bug 1797156 - Refactor OverflowableToolbar and add documentation. r=sclements,cmkm
This patch does not aim to change the behaviour of OverflowableToolbar
at all. Instead, it:

1. Migrates off of old-school prototype class to a modern ES6 class
2. Uses actual private members and methods rather than underscore
   pseudo-private members and methods.
3. Tries to group the methods of OverflowableToolbar into groups like
   public methods, private methods, private event handlers, CUI widget
   listener methods and finally XPCOM interface implementations.
4. Tries to add JSDoc-style documentation where possible.

Differential Revision: https://phabricator.services.mozilla.com/D160106
2022-10-26 14:40:49 +00:00
Mike Conley
dd68e9ca7e Bug 1797156 - Add a tag to make it easier to run OverflowableToolbar tests on their own. r=sclements,cmkm
Differential Revision: https://phabricator.services.mozilla.com/D160105
2022-10-26 14:40:48 +00:00
Emilio Cobos Álvarez
0cfce56635 Bug 1796231 - Fix _collapsed map calculations. r=Gijs
The bug fix is in the line:

    this._collapsed.set(child.id, targetContentWidth);

we used to set this._target.clientWidth, which doesn't account for the
potentially-overflowing children of this._target. Propagate that from
the _checkOverflow function instead.

I'm not sure what's the best way to write a test for this. Any ideas?

Differential Revision: https://phabricator.services.mozilla.com/D159773
2022-10-24 18:32:08 +00:00
Emilio Cobos Álvarez
8ab75b80ef Bug 1797052 - Improve behavior of customize mode in small windows. r=Gijs
There was only a min-height: 0 missing. I also cleaned-up a bit because
flex: 1 is the same as flex: 1 1 auto, and flex attribute (which only
sets -moz-box-flex) is not doing anything because it was inside flex
layout (so legacy properties aren't looked at).

Differential Revision: https://phabricator.services.mozilla.com/D160094
2022-10-24 18:26:26 +00:00
Cosmin Sabou
6c2dad886b Bug 1682752 - Disable browser_876926_customize_mode_wrapping.js on linux opt for frequent failures. r=intermittent-reviewers,MasterWayZ DONTBUILD
Differential Revision: https://phabricator.services.mozilla.com/D159981
2022-10-23 23:34:16 +00:00
Emilio Cobos Álvarez
f1aec2f463 Bug 1796735 - Remove XULPopupElement.autoPosition. r=dao
This was used to prevent reflows due to popuppositioned events during
view transitions.

The previous patch should've prevented the popuppositioned events to
begin with, plus we no longer use arrows that need positioning etc,
which means we shouldn't be triggering the reflows anyways.

Since this is the only consumer of autoPosition = true/false, we can
remove the code supporting it. It's a bit bogus as per the commit
message of the previous patch and, while fixable, it doesn't seem worth
fixing if we can just get rid of it.

Depends on D159936

Differential Revision: https://phabricator.services.mozilla.com/D159937
2022-10-21 13:13:54 +00:00
Emilio Cobos Álvarez
ca1a37b75f Bug 1796735 - Use getBoundsWithoutFlushing rather than getOuterScreenRect to lock the size of the panel. r=dao
getOuterScreenRect doesn't flush layout, so not flushing here should be
fine.

We only care about the CSS width / height, not about the screen
positioning, so this is more accurate.

The flickering in comment 8 (the hover effect in the "restore previous
session" button) happens because the following set of events:

 * We try to lock the size of the panel.
 * The size returned by getOuterScreenRect() is fractionally different
   to the actual size.
 * We get to [1], realize we've changed size (even though fractionally),
   set the origin at 0, 0, and then call SetPopupPosition to fix that
   up.
 * But we've disabled autopositioning[1], so the layout position of the
   panel remains at 0, 0.

This prevents the flickering by using the actual layout size
(getBoundsWithoutFlushing / getBoundingClientRect) rather than the
potentially-rounded getOuterScreenRect, to prevent the resize.

We could fix autoPosition = false, but I don't think it's needed
anymore, so I'm going to try removing it instead. However this change
should still avoid work, so seems worth landing regardless.

[1]: https://searchfox.org/mozilla-central/rev/c5c002f81f08a73e04868e0c2bf0eb113f200b03/layout/xul/nsMenuPopupFrame.cpp#621-626
[2]: https://searchfox.org/mozilla-central/rev/c5c002f81f08a73e04868e0c2bf0eb113f200b03/browser/components/customizableui/PanelMultiView.jsm#668

Depends on D159935

Differential Revision: https://phabricator.services.mozilla.com/D159936
2022-10-21 13:02:06 +00:00
Emilio Cobos Álvarez
5d9735877d Bug 1796735 - Don't use width/height attributes for panel sizing. r=dao
While these work now because I haven't ported popups to modern flexbox,
let's remove usage of these attributes so I don't have to later. This
doesn't change behavior.

Depends on D159934

Differential Revision: https://phabricator.services.mozilla.com/D159935
2022-10-21 13:01:51 +00:00
Emilio Cobos Álvarez
121f6962a3 Bug 1793359 - Simplify bookmarks popup placement. r=Itiel,dao,mak
By using delegatesanchor="true", we delegate the anchor node to the
first in-flow box (that is the icon), simplifying a lot of the
hard-coded margins in the CSS.

Do that, plus make menupopup[type="arrow"] work consistently, to
simplify the styling of the bookmarks popup a bit.

Differential Revision: https://phabricator.services.mozilla.com/D158569
2022-10-20 15:50:23 +00:00
Emilio Cobos Álvarez
a354c85b02 Bug 1796199 - Remove script access to XUL layout attributes. r=Gijs
These don't work on emulated flexbox. We only have a couple of uses.

See D159726 for the diagnostic patch I used to catch these.

Differential Revision: https://phabricator.services.mozilla.com/D159727
2022-10-20 08:36:00 +00:00
Butkovits Atila
82536ebfc5 Backed out changeset 39f39360ae48 (bug 1796199) for causing failures at test_panel.xhtml. CLOSED TREE 2022-10-20 00:39:56 +03:00
Emilio Cobos Álvarez
5d4865adb2 Bug 1796199 - Remove script access to XUL layout attributes. r=Gijs
These don't work on emulated flexbox. We only have a couple of uses.

See D159726 for the diagnostic patch I used to catch these.

Differential Revision: https://phabricator.services.mozilla.com/D159727
2022-10-19 19:18:04 +00:00
Emilio Cobos Álvarez
8eb4bd796d Bug 1795944 - Remove descriptionheightworkaround. r=Gijs
Stuff wraps properly now with flexbox emulation.

Differential Revision: https://phabricator.services.mozilla.com/D159621
2022-10-19 11:55:29 +00:00
Mark Banner
5407bdffa8 Bug 1792341 - Migrate more toolkit/modules consumers to use direct ES module import. r=Gijs,webdriver-reviewers,perftest-reviewers,necko-reviewers,geckoview-reviewers,preferences-reviewers,application-update-reviewers,pip-reviewers,credential-management-reviewers,sgalich,owlish,bytesized,AlexandruIonescu,whimboo,mconley,mixedpuppy
Mainly automated changes. Some manual ESLint fixes and whitespace cleanup.

Differential Revision: https://phabricator.services.mozilla.com/D158452
2022-10-18 11:21:26 +00:00
Emilio Cobos Álvarez
c36fff83db Bug 1795260 - Also clear the inNavbar pref so that following test keeps working.
MANUAL PUSH: Trivial orange fix CLOSED TREE
2022-10-17 23:28:10 +02:00
Emilio Cobos Álvarez
299ce96ba4 Bug 1795260 - Test that the searchbar doesn't overflow the toolbar even with a big user-imposed size. r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D159521
2022-10-17 20:59:59 +00:00
Emilio Cobos Álvarez
73834cb895 Bug 1795199 - Make searchbar take something closer to the resized width. r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D159381
2022-10-17 17:18:22 +00:00
Emilio Cobos Álvarez
8021f0ab2a Bug 1795260 - Make a too-big searchbar not push the rest of the UI out. r=Gijs
For that, we need to min-width: 0 the nav-bar target, which itself
requires us to tweak the overflow detection so that we look at all
children of the customization target, not only the target itself.

Differential Revision: https://phabricator.services.mozilla.com/D159377
2022-10-17 17:07:15 +00:00
Alexandre Poirot
bde84f5b65 Bug 1793604 - [devtools] Convert Loader.jsm to ESM. r=perftest-reviewers,geckoview-reviewers,preferences-reviewers,owlish,kshampur,jdescottes
Differential Revision: https://phabricator.services.mozilla.com/D158582
2022-10-14 12:19:42 +00:00
Emilio Cobos Álvarez
19be74f344 Bug 1794630 - Use resize*=sibling for searchbar container. r=dao
This simplifies the widget tracker code to avoid having to remove random
width attributes in all children.

Resize only the searchbar, since that's the only thing that's
effectively restored already on nightly.

Differential Revision: https://phabricator.services.mozilla.com/D159071
2022-10-13 15:01:20 +00:00
Emilio Cobos Álvarez
1f2ad76857 Bug 1790616 - Minor CSS tweaks that are needed for modern flexbox. r=dao
These fix rendering or test issues with flex emulation, but don't change
rendering without, so can land separately.

Differential Revision: https://phabricator.services.mozilla.com/D159073
2022-10-13 14:38:01 +00:00
Emilio Cobos Álvarez
16925fd709 Bug 1793622 - Remove unused argument in PanelMultiView. r=dao
_transitionViews doesn't take an anchor argument.

Differential Revision: https://phabricator.services.mozilla.com/D158586
2022-10-12 21:24:28 +00:00
William Durand
88081727c8 Bug 1788994 - Fix test cases when the unifiedExtensions pref is enabled by default. r=rpl,Gijs
Differential Revision: https://phabricator.services.mozilla.com/D157185
2022-10-04 08:45:57 +00:00
Mark Banner
a49b8ef78f Bug 1792365 - Convert toolkit/modules consumers to use ES module imports directly. r=webdriver-reviewers,perftest-reviewers,geckoview-reviewers,extension-reviewers,preferences-reviewers,desktop-theme-reviewers,application-update-reviewers,pip-reviewers,credential-management-reviewers,robwu,Gijs,sgalich,bytesized,AlexandruIonescu,dao,m_kato
Differential Revision: https://phabricator.services.mozilla.com/D158094
2022-09-29 06:52:34 +00:00
Emilio Cobos Álvarez
4ab80589c9 Bug 1689816 - Implement <tabpanels> and <deck> without XUL layout. r=Gijs,Jamie,morgan,preferences-reviewers,mconley,TYLin
Gijs for front-end bits, layout for the new CSS properties and the
removal of nsDeckFrame / nsStackLayout, Jamie and Morgan for the a11y
changes.

As discussed in the bug, the main tricky part here is handling a11y
correctly. For <deck>, that's trivial (just use `visibility: hidden` to
hide the panels visually, while removing the unselected panels from the
a11y tree).

For <tabpanels> however we need to do something special. We do want to
hide stuff visually, but we want to preserve the contents in the a11y
tree.

For that, the easiest fix is introducing a new privileged CSS property
(-moz-subtree-hidden-only-visually), which takes care of not painting
the frame, but marks stuff offscreen in the accessibility tree. This is
not intended to be a property used widely.

Other than that, the changes are relatively straight-forward, though
some of the accessible/mac changes I could get a sanity-check on.

Differential Revision: https://phabricator.services.mozilla.com/D157875
2022-09-27 04:18:16 +00:00
Marian-Vasile Laza
338fc0a451 Backed out changeset 2f74f8f2ed19 (bug 1689816) for causing reftest failures on skip-ink-multiline-position.html. 2022-09-26 23:24:03 +03:00
Emilio Cobos Álvarez
ba878e30c1 Bug 1689816 - Implement <tabpanels> and <deck> without XUL layout. r=Gijs,Jamie,morgan,preferences-reviewers,mconley,TYLin
Gijs for front-end bits, layout for the new CSS properties and the
removal of nsDeckFrame / nsStackLayout, Jamie and Morgan for the a11y
changes.

As discussed in the bug, the main tricky part here is handling a11y
correctly. For <deck>, that's trivial (just use `visibility: hidden` to
hide the panels visually, while removing the unselected panels from the
a11y tree).

For <tabpanels> however we need to do something special. We do want to
hide stuff visually, but we want to preserve the contents in the a11y
tree.

For that, the easiest fix is introducing a new privileged CSS property
(-moz-subtree-hidden-only-visually), which takes care of not painting
the frame, but marks stuff offscreen in the accessibility tree. This is
not intended to be a property used widely.

Other than that, the changes are relatively straight-forward, though
some of the accessible/mac changes I could get a sanity-check on.

Differential Revision: https://phabricator.services.mozilla.com/D157875
2022-09-26 17:40:30 +00:00
Emilio Cobos Álvarez
38385a3c86 Bug 1790920 - Propagate modifiers properly in PanelMultiView's key event handling. r=Gijs
This is needed to fix browser_ext_browserAction_click_types.js.

Before the first patch in this bug, the order of the built-in command
event and the synthetic event here was slightly different, so it was
papered over. Also, the click event will trigger a command event if
needed, so there's no need to do it explicitly.

Differential Revision: https://phabricator.services.mozilla.com/D157591
2022-09-19 17:02:38 +00:00
Emilio Cobos Álvarez
63996e4f6c Bug 1790920 - Don't check defaultPrevented for click events closing panels. r=Gijs
(To be landed right after the soft freeze is over)

One interesting consequence of my previous patch in this bug, is that
the time at which the XUL element processes the click event is different
(earlier, at bubbling phase rather than after everything).

This caused some test failures caused by the panel autohide, since now
it goes after than the native handling and the native handling
default-prevents to dispatch the XUL command.

Given we don't check key events for defaultPrevented either, it makes
sense to be consistent.

This uncovered an interesting failure, where the "show more tabs" button
in the sync menu starts closing the panel unexpectedly on click. The
right fix is to use closemenu="none" in that button, since otherwise
that button is not keyboard accessible (this is an issue on current
nightly that this patch fixes).

Differential Revision: https://phabricator.services.mozilla.com/D157584
2022-09-19 17:02:37 +00:00
Emilio Cobos Álvarez
0bc3c999e8 Bug 1775674 - Synchronize _checkOverflow properly. r=mak
My guess is that this didn't use to fail so much because
_getOverflowInfo was effectively synchronous before, but after my patch
the flush is lazy, and the promiseDocumentFlushed call is actually
async.

With this change I can't reproduce the failure locally anymore, while
it's trivial to repro this failure with --run-until-failure before this
change.

Differential Revision: https://phabricator.services.mozilla.com/D156418
2022-09-05 14:58:38 +00:00
Emilio Cobos Álvarez
abab9b2db7 Bug 1788273 - Tweak popup alignment so that it looks good on mirrored wayland popups. r=dao,mak
When these panels had arrows, I guess the bottomcenter topleft alignment
made sense so that you could precisely align the arrow, but that's not
what we do now.

Don't use bottomcenter / leftcenter / rightcenter, since we really want
the sides to align.

This shouldn't change behavior on any platform except Linux + Wayland,
where the alignment looks good now in the case of bug 1784876.

Differential Revision: https://phabricator.services.mozilla.com/D156099
2022-09-02 20:26:29 +00:00
Butkovits Atila
e4a4a23311 Backed out changeset 368a7ce1b104 (bug 1788273) for causing failures at browser_recently_closed_tabs.js. CLOSED TREE 2022-09-02 16:35:55 +03:00
Emilio Cobos Álvarez
72c00adfaa Bug 1788273 - Tweak popup alignment so that it looks good on mirrored wayland popups. r=dao,mak
When these panels had arrows, I guess the bottomcenter topleft alignment
made sense so that you could precisely align the arrow, but that's not
what we do now.

Don't use bottomcenter / leftcenter / rightcenter, since we really want
the sides to align.

This shouldn't change behavior on any platform except Linux + Wayland,
where the alignment looks good now in the case of bug 1784876.

Differential Revision: https://phabricator.services.mozilla.com/D156099
2022-09-02 11:18:54 +00:00
Gijs Kruitbosch
4803f07d33 Bug 1787443 - ensure fxview button is always present by default, also for upgrading profiles, r=dao
Differential Revision: https://phabricator.services.mozilla.com/D155695
2022-08-26 15:50:18 +00:00
Shane Caraveo
2a74411693 Bug 1786587 Fix browser action panel when toolbar is overflowed r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D155527
2022-08-26 15:31:01 +00:00
Gijs Kruitbosch
da1af5a7a7 Bug 1787439 - call buildArea if toolbar default placements contain API-provided widgets that therefore cannot be in the DOM when the toolbar is registered, r=dao
Differential Revision: https://phabricator.services.mozilla.com/D155696
2022-08-26 13:34:19 +00:00
Dão Gottwald
c8e65627ce Bug 1786293 - Move Firefox View button from CustomizableWidgets to markup. r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D155356
2022-08-24 15:51:44 +00:00
Shane Caraveo
c114951f8b Bug 1783972 make browser actions pop out of overflow r=zombie,Gijs
Differential Revision: https://phabricator.services.mozilla.com/D154179
2022-08-22 18:55:59 +00:00
William Durand
eb8b86f19c Bug 1785204 - Separate primary and secondary buttons in the unified extensions panel. r=Itiel,Jamie,rpl,desktop-theme-reviewers
Depends on D154282

Differential Revision: https://phabricator.services.mozilla.com/D154873
2022-08-19 13:57:12 +00:00
Dão Gottwald
7f9a2aae48 Bug 1785819 - Announce Firefox View toolbar button as a tab to screen readers. r=ayeddi
Differential Revision: https://phabricator.services.mozilla.com/D154986
2022-08-18 17:02:02 +00:00
William Durand
4e9ea12108 Bug 1784118 - Activate scripts when clicking an extension item in the unified extensions panel. r=Jamie,rpl
Differential Revision: https://phabricator.services.mozilla.com/D154282
2022-08-18 12:22:43 +00:00
Niklas Baumgardner
6b4694676a Bug 1782709 - Place Firefox View widget in existing position. r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D153749
2022-08-10 13:37:41 +00:00
Mark Banner
1e3410cbdd Bug 1782008 - Remove now unnecessary .eslintrc.js files. r=webcompat-reviewers,extension-reviewers,media-playback-reviewers,pip-reviewers,denschub,rpl,alwu,mossop
Differential Revision: https://phabricator.services.mozilla.com/D152736
2022-08-03 11:16:20 +00:00
Dão Gottwald
cc8f4768eb Bug 1778907 - Open Firefox View tab on mousedown. r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D153387
2022-08-02 09:30:36 +00:00
Niklas Baumgardner
d5b3904067 Bug 1774397 - Add notification dot to Firefox View button. r=Gijs,sfoster,desktop-theme-reviewers,dao
Differential Revision: https://phabricator.services.mozilla.com/D151401
2022-08-01 15:19:58 +00:00