It was for the sake of legacy extensions, which we don't care about, and
applies to `contract` manifest entries, which are being removed.
Differential Revision: https://phabricator.services.mozilla.com/D148190
These tests just test XPConnect wrapping, and don't actually have anything to
do with component registration. There are simpler ways to get wrapping that
are just as effective.
Differential Revision: https://phabricator.services.mozilla.com/D148186
This makes it easier to migrate some tests that use chrome manifest
registration. It lets us register JSMs as components in a similar way to how
we register them in static component manifests.
Differential Revision: https://phabricator.services.mozilla.com/D148181
This apparently hasn't been used for a while and has bit rotted, but it's
necessary for some migrations in later patches.
Differential Revision: https://phabricator.services.mozilla.com/D148180
persistTabs should only be used when we want to clear the tabs list
and have the persisted tab to be re-created (made visible, with a sourceId) when a new source matching the same url is created.
Also cleanup a few things and avoid returning new state objects unless we really changed something.
Differential Revision: https://phabricator.services.mozilla.com/D149523
I didn't aware there is any spec that ensure the order of load event and initial
focus event. It could be possible that the initial focus event comes after load
event and cause test failures. But I didn't figure out a way to detect whether
we should wait for the initial focus event, so just delay logging for focus
event a bit to ignore the initial one.
Differential Revision: https://phabricator.services.mozilla.com/D150002
nsImageGeometryMixin is used to redraw images with sync decoding. Without it,
if we paint an image with non-sync decoding, we won't know that it will be
drawn differently with sync decoding and so don't have a mechanism to include
it in the invalid region.
Currently the main situation where we draw images with non-sync decoding and
then with sync decoding is during reftests. If we unconditionally use sync
decoding during reftests we don't have to worry about the situation where we
switch. This will let us resolve the problems associated with nsImageGeometryMixin.
Differential Revision: https://phabricator.services.mozilla.com/D149657
It was needed before we had remote lookandfeel and non-native theme, but now we
no longer call any of the APIs in child processes.
Differential Revision: https://phabricator.services.mozilla.com/D149907
When we request a sync decode, if there is an outstanding pending
async decode, but we don't have all the network data, we would end up
triggering an extra async decode. This patch ensures that we only
trigger sync decodes if they will actually execute as sync.
Differential Revision: https://phabricator.services.mozilla.com/D150008
This ensures they're clamped on Animated -> sRGB conversion, and in the
future we'll have to implement different color spaces so we'll need to
use it anyways.
Differential Revision: https://phabricator.services.mozilla.com/D149792
Add an implementation of CSS `contain: style`. This introduces two new
data structures, the ContainStyleScope and ContainStyleScopeManager.
ContainStyleScope manages one `contain: style` "world" which has its own
counter and quote lists. The contents of these lists depend on their
parent scopes, but are not affected by their children.
ContainStyleScopeManager manages a tree of scopes starting at a root
scope which is outside of any `contain: style` element.
Scopes are stored in a hash table that is keyed off of the nsIContent
which establishes the `contain: style` scope. When modifying quote or
content lists, the ContainStyleScopeManager is responsible for finding
the appropriate `contain: style` scope to modify.
Perhaps the most complex part of this is that counters and quotes have
read access to the state of counters and quotes that are in ancestor
`contain: style` scopes. In the case of counters, USE nodes that are at
the beginning of counter lists might have a counter scope that starts in
an ancestor `contain: style` scope. When nsCounterNode::SetScope() is
called, the code may look upward in the `contain: style` scope tree to
find the start of the counter scope. In the case of quotes, the first
node in the quote list must look for the state of quotes in ancestor
`contain: style` scopes.
Differential Revision: https://phabricator.services.mozilla.com/D149508