Firefox uses synchronized clipboard data get/set which causes issues when clipboard data is transferred in scope of Firefox
itself as getting code blocks the sending one. As a workaround X11 clipboard code runs restricted message loop (processes clipboard events only),
Wayland clipboard handler uses fast (direct) path when clipboard data is owned by Firefox and D&D code runs main loop for some limited time.
When D&D operation is used on Wayland we can't determine clipboard data owner - so we can't use the fast (direct) data transfer but we always
read data from wayland clipboard. That approach block when D&D data comes from Firefox itself.
In orded to fix that this patch does:
- Implement DataOffer::GetDataInternal() as non-blocking, i.e. fail when we can't get data from file descriptor provided by Wayland clipboard code.
- Create new thread and run DataOffer::GetDataInternal() there
- Run limited main event loop as D&D code does.
In order to make the changes possible we also need to better track wayland data offers:
- Implement DataOffer as ref counted general wayland clipboard data placeholder
- Implement WaylandDragAndDropDataOffer for D&D data events
- Track all offers in offer cache (mActiveOffers)
Differential Revision: https://phabricator.services.mozilla.com/D118577
If one closes the last tab with the session restore enabled, it will re-open after restart.
Fix that by closing completely the tabs before the stop of the browser.
Differential Revision: https://phabricator.services.mozilla.com/D118270
Unify shared declarations, and avoid unneeded [placespopup=true], since
there's no element that matches:
:is(#BMB_bookmarksPopup, #PlacesToolbar) menupopup:not([placespopup])
Depends on D120080
Differential Revision: https://phabricator.services.mozilla.com/D120197
With the system theme otherwise we show square corners.
Also remove a margin rule which other menupopups don't have and which feels a
bit ugly, but let me know if you want that one back (without the :-moz-lwtheme
selector).
Differential Revision: https://phabricator.services.mozilla.com/D120080
The flag is now used to guard against both cases teleporting has to watch out
for: proto changes and shadowed properties.
This lets us get rid of dictionary conversions and reshaping for ReshapeForShadowedProp.
Differential Revision: https://phabricator.services.mozilla.com/D118361
The flag is now only used for the shape teleporting optimization so be more explicit
about this. The next patch will use this flag also for the shadowed-property case.
Differential Revision: https://phabricator.services.mozilla.com/D118360
This reverts the change in bug 1507433. Now that shape always implies prototype,
we don't need to check the objects between receiver and holder have the uncacheable-proto
flag. This simplifies the next parts.
The comment is updated in part 3.
Differential Revision: https://phabricator.services.mozilla.com/D118359
Explicitly add python2 to some docker images because it was
previously installed as a side effect of installing mercurial and is
required.
Differential Revision: https://phabricator.services.mozilla.com/D119379
Not sure how it happened (probably copy-paste?) but a lot of Android jobs are
marked for "Android 4.0" (API 14) or "Android 4.2" (API 18) while really they
are all for Android 4.1 (API 16). This patch fixes that.
Differential Revision: https://phabricator.services.mozilla.com/D117050
This patch adds a new GeckoView build variant dubbed "lite". We are in the
process of adding some optional dependencies to GeckoView that are needed by
Fenix (like Glean and Nimbus) which are likely not going to be used by anyone
else at Mozilla. To avoid bloating third party consumers, we provide a
geckoview-lite build that doesn't contain any optional dependency.
The min SDK version of GeckoView (non-lite) is being increased to 21 to match
Glean's min SDK. Given that Fenix's min SDK version is already 21 and that the
lite version's min SDK is still at 16 this change is safe to do and will not
incur in any loss of usability.
Differential Revision: https://phabricator.services.mozilla.com/D114370