People keep shooting themselves in the feet because of this codepath and writing
slow code.
There are just a few elements with bindings left, so just check those.
Also simplify a bit the code. The XUL element + tagname check should be pretty
fast now, and ComputedStyle objects no longer keep weak pointers to pres
contexts and such, so can be safely kept on a RefPtr across an style flush.
Differential Revision: https://phabricator.services.mozilla.com/D47995
--HG--
extra : moz-landing-system : lando
Previously, picture cache tiles were added to normal batches, and drawn
via the brush_image shader. Since all content is now in picture cache
tiles, we can instead draw the tiles via a separate code path. The tiles
for all picture caches are collected into a single composite config, that
is stored in the Frame structure. These two changes provide a number of
advantages:
* The composite shader is very simple - it doesn't need to deal with
transforms, anti-aliasing, repetition etc.
* Since we create the tile batches in render(), rather than in the
backend, we can take advantage of information not available until
the render() call. For example, Gecko will provide information here
when the partial presentation rects need to be reset. This will be
used to enable partial presentation parameters on Windows.
* In future, we can access this list of tiles to be composited, and use
them to configure the OS compositor integration, and hand the tiles
directly to the OS compositor.
* In future, we can apply global optimizations to the set of picture
cache tiles (e.g. occlude background tiles on CPU to skip paying
the z-reject cost of drawing them).
* In future, we can take advantage of the simpler composite path
for software rasterizer implementations.
Differential Revision: https://phabricator.services.mozilla.com/D47724
--HG--
extra : moz-landing-system : lando
Lazily creating children might cause us to make layout calls at unsafe times.
Differential Revision: https://phabricator.services.mozilla.com/D47361
--HG--
extra : moz-landing-system : lando
This uses Shadow DOM slotting instead of XBL, and migrates styles from
using XBL anonymous traversal to using CSS Shadow Parts.
This also removes the basecontrol binding, since this was the last
binding to extend it.
Differential Revision: https://phabricator.services.mozilla.com/D43651
--HG--
rename : toolkit/content/widgets/scrollbox.xml => toolkit/content/widgets/arrowscrollbox.js
extra : moz-landing-system : lando
This patch enables the iris test suite to run in CI against Windows and Linux shippable builds on mozilla-central and try. The framework is in place for Iris to run against MacOS in CI, but it is currently disabled while bootstrapping issues are sorted out.
Linux uses a new docker image based on the debian10-test parent image that installs preinstalls most of Iris's dependencies. Windows installs a few dependencies using the scoop package manager. Both then install the rest of the python dependencies via pip.
This adds a new toolchain artifact to fetch the iris_firefox git repo without touching the outside network.
Differential Revision: https://phabricator.services.mozilla.com/D41638
--HG--
extra : moz-landing-system : lando
This was added as part of an intermediate step to blob
recoordination. It's not used anymore.
Differential Revision: https://phabricator.services.mozilla.com/D47354
--HG--
extra : moz-landing-system : lando
The original atom deduplication patch in bug 1575370 rooted the atom map used when encoding data, but not the atom table used when decoding data. This patch fixes that problem by turning it into a RootedVector.
This means the decoder needs to be stack-allocated. (Fortunately, we already always allocate the decoder on the stack.) Currently, XDRDecoder is the templatized sibling of XDRDecoder, which means there's no base decoder class to put the RootedVector in (and mark with MOZ_RAII). This patch adds a real XDRDecoder class to make it all work.
Differential Revision: https://phabricator.services.mozilla.com/D47680
--HG--
extra : moz-landing-system : lando
Before this patch, we only considered the primary screen when deciding
whether or not WebRender should be enabled. This is problematic for
Intel users where we don't want to turn on WebRender for large screens;
several small screens are just as bad as one large screen. Now we sum
the pixel count for all the screens when making this decision.
Differential Revision: https://phabricator.services.mozilla.com/D46066
--HG--
extra : moz-landing-system : lando
This avoids an intermittent test failure when other parts of Firefox set
experiments active while this test is running.
Differential Revision: https://phabricator.services.mozilla.com/D47947
--HG--
extra : moz-landing-system : lando
mochitest-chrome is not supported with geckoview and attempts to run chrome
tests with geckoview result in a hang. mach test runs can accidentally attempt
to run chrome tests if the flavor is not specified and the directory contains
a chrome.ini manifest.
Existing harness support allows for filtering flavors based on buildapp, like
android, but not by run-time app like geckoview, so this patch disables
mochitest-chrome for all android runs.
Differential Revision: https://phabricator.services.mozilla.com/D47943
--HG--
extra : moz-landing-system : lando