It was made a bitfield so that we could include style. But then style
containment was removed and the bitfield keeps causing us to do wrong
check (since INLINE_SIZE intersects SIZE).
So just make it an enum. This causes a progression and a test that
failed now times out (which is a pre-existing issue, just like the
pseudo-elements test that times out).
Differential Revision: https://phabricator.services.mozilla.com/D160371
By using `--disable-e10s`, VideoFrame can be serialized in same process
but in different origins. To prevent the VideoFrame from being passed
across different origins, origins should be checked before constructing
a VideoFrame.
Depends on D160307
Differential Revision: https://phabricator.services.mozilla.com/D160155
This patch implements `{Read, Write}StructuredClone` for `VideoFrame` so
`VideoFrame` can be *{de,}serialize*d.
Since VideoFrame serialization requires to serialize a member RefPtr
instance, the standard [Serializable] implementation is not possible.
The serialized data can be deserialized any number of times, including
zero. As a result, that RefPtr instance should be able to share its
reference and increase the ref-count any time it needs. Therefore, this
patch implements the [Serializable] functions in a custom fashion, which
storing the RefPtr instance in StructuredCloneHolder when serializing
the VideoFrame.
Depends on D153685
Differential Revision: https://phabricator.services.mozilla.com/D153686
This patch add `Serializable` attribute to `VideoFrame` and add some
necessary changes to make this buildable.
Some expectations of *video-frame-serialization.any.is*'s wpts are
changed to `PASS` since they are implemented in bug 1774300.
The `Verify posting closed frames throws` is currently passed by luck so
the its expectation stays the same.
Depends on D159545
Differential Revision: https://phabricator.services.mozilla.com/D153685
`SharedSubResourceCacheLoadingValueBase` define the `mIsCancelled` field which
is overloaded by `SheetLoadData`. This patch moves all fields including
`mIsLoading` to `SheetLoadData` and add accessors to access these fields.
Differential Revision: https://phabricator.services.mozilla.com/D160226
max-height percentages were not honored, which caused the infoRow to
collapse. With min-height: 0 the info row shrinks too much.
Differential Revision: https://phabricator.services.mozilla.com/D160227
This commit switches the representation of PackedType (and therefore ValType/FieldType)
to use a *TypeDef instead of type index.
There are several changes here:
1. PackedTypeCode is always 64-bits now to pack the pointer. This penalizes 32-bit
platforms, but we likely don't care about them enough to try to optimize this.
2. RefType::TypeIndex is RefType::TypeRef
3. RefType::typeIndex() is RefType::typeDef()
4. TypeContext now stores a map from *TypeDef to original type index for printing errors
5. Decoding a RefType now stores a *TypeDef instead of type index
6. We now just transfer the SharedTypeContext from ModuleEnvironment to Metadata instead
of copying definitions. This is needed for sharing the indexOf map.
7. We now manually serialize/deserialize TypeContext
8. TypeContext now stores SharedTypeDef in vector instead of TypeDef, this is needed so
that *TypeDef is not invalidated across resizing the vector (asm.js does this)
9. The initialization of TypeContext is refactored to keep the indexOf map in-sync
with adding new types (asm.js needs this)
10. We now manually serialize/deserialize PackedTypeCode using a new SerializedTypeCode
11. Serialization now needs a TypeContext in order to get the index of type definitions
12. Deserialization now constructs a TypeContext, and uses that when deserializing
ValType/RefType/FieldType
Differential Revision: https://phabricator.services.mozilla.com/D157387
PackedType will store a pointer to *TypeDef in a later commit, making it
non-cacheable POD. We therefore need to specially handle it in serialization.
This commit starts preparing for that.
Differential Revision: https://phabricator.services.mozilla.com/D157386
TypeIdDesc describes how to load the 'type id' for any type. Right now the
'type id' is an immediate integer for small function types, a *FuncType for
larger function types, and *RttValue for everything else.
The immediate integer case is an optimization for signature checks in
call_indirect. We can simplify our code by adding an 'immediateType_'
field to `FuncType` which stores an alternate representation of the
function type (if any) that can be used with call_indirect. Then
`TypeIdDesc`/`TypeDefWithId` are not needed during instantiation
anymore and we can just pass `TypeDefVector` from compilation to
runtime.
As a drive-by fix, some code for setting up the global data are of
Instance was simplified to allocate whole contiguous areas, instead
of looping, in some cases.
Some uses of TypeIdDesc still remain after this commit, but they are
only in codegen for figuring out how to emit signature checks. The
class is renamed and simplified to CallIndirectId to represent this.
Differential Revision: https://phabricator.services.mozilla.com/D157385
PackedType calls isValid() frequently before calling some accessor on
PackedTypeCode which then also calls isValid(). PT and PTC have slightly
different isValid() methods, with the only difference that PT will ensure
that the typeCode is valid for ValType or FieldType, and that PTC will
ensure that the typeCode has been initialized.
Because we check PT.isValid() when constructing a PT, any check that
PTC has been initialized should be equivalent to PT.isValid().
Differential Revision: https://phabricator.services.mozilla.com/D157384
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
Much like invalidated_descendants. This preserves our invariant that we
only visit elements with data in the post-traversal.
Differential Revision: https://phabricator.services.mozilla.com/D160338
This patch makes tab capture with an unset framerate constraint adhere to the
"media.navigator.video.default_fps" pref and its fallback constant
MediaEnginePrefs::DEFAULT_VIDEO_FPS.
Differential Revision: https://phabricator.services.mozilla.com/D159605
Immediately shutting down the TaskQueue would result in assertion failures if
a request resolves before being disconnected from its handler.
Differential Revision: https://phabricator.services.mozilla.com/D159604
This lets us set up CrossProcessPaint from a TaskQueue on top of main thread.
Prior to this patch if such a TaskQueue was shut down with a pending
CrossProcessPaint in flight, we'd fail MozPromise assertions because of the
failed dispatch when resolving the CrossProcessPaint::ResolvePromise.
Differential Revision: https://phabricator.services.mozilla.com/D159603
Do not wait for gtest process completion in mozdevice; instead, rely
on existing gtest support for waiting for process completion.
The mozdevice no-wait code was broken; fixed here.
Differential Revision: https://phabricator.services.mozilla.com/D160321
GC can be aborted in several states and zones GCRuntime::finishCollection
doesn't always get called. It's easier to clear this state in a signle place at
the start.
Differential Revision: https://phabricator.services.mozilla.com/D160056