The PR#345 [1] of the WebCrypto API specification changed the type
of the deriveBits's length argument to become 'optional' and with
'null' as default value.
The affected WebCrypto algorithms (HKDF, PBKDF2, ECDH and X25519)
will be adapted to handle the case of a null length properly.
[1] https://github.com/w3c/webcrypto/pull/345
Differential Revision: https://phabricator.services.mozilla.com/D217532
This allows code with Chrome priviledges to use the fetch API
to specify a triggering principal instead of needing to use
XMLHttpRequest.
The triggeringPrincipal is only used when the fetch principal
is already the systemPrincipal.
Differential Revision: https://phabricator.services.mozilla.com/D213418
Sub actors are still created, but their only purpose is to allow cancellation
of alreaady created requests. Actual results are now returned as asynchronous
responses to the asynchronous messages.
Differential Revision: https://phabricator.services.mozilla.com/D194097
This test is needed for making sure that upcoming refactoring doesn't regress
getting origin usage, especially the cancelling of requests.
Differential Revision: https://phabricator.services.mozilla.com/D194073
The class which implements the protocol is already refcounted, but the
interaction with IPC still uses manual deallocation.
Differential Revision: https://phabricator.services.mozilla.com/D194042
ResolvableNormalOriginOp::SendResults currently doesn't check the mCanceled
flag despite that it inherits from NormalOriginOperationBase which allows
setting mCanceled to true.
Differential Revision: https://phabricator.services.mozilla.com/D194035
This is one of the things which are needed for making GetUsageOp and
GetOriginUsageOp independent from the actor. In practise, for changing the main
base class of the operations from QuotaUsageRequestBase to
ResolvableNormalOriginOp.
Differential Revision: https://phabricator.services.mozilla.com/D194011
The tile pool keeps a strong reference to all of its allocations and reuses them when their reference count gets down to one.
Jemalloc only uses thread-local arenas for small allocations (<496 bytes) so it does not matter what thread the blob tiles which are typically much larger, are deallocated in.
Differential Revision: https://phabricator.services.mozilla.com/D218547
The UI test sometimes failed because of the HomeActivity ANR.
Let's disable it for the moment and see if we'll keep it after refactoring our suite to use the redesigned toolbar.
Differential Revision: https://phabricator.services.mozilla.com/D218712
When the find in page bar is active:
- all toolbars, no matter their configuration will be hidden
- the engine view will expand to cover all screen minus the find in page bar
When the find in page bar is closed:
- the toolbars are restored - they will be shown as before find in page
- the engine view will be restored to the configuration from before find in page
Differential Revision: https://phabricator.services.mozilla.com/D217742
This is the first patch of the series that actually take
border/padding/margin into account for MathML layout. One subtility is
that Gecko distinguishes the ink nsBoundingMetrics box and the
ReflowOutput box for accurate positioning of math components contrary
to the current version of MathML Core [1].
For MathML Core and the WPT tests, it is assumed that border/padding are
used to inflate the content box [2] [3] and it does not really matter
whether we inflate the ink bounding box, or simply adjust its offsets
inside the normal bounding box. We choose the former and introduce a
helper function InflateReflowAndBoundingMetrics for that purpose, which
will be reused in follow-up patches. After inflating these boxes, the
offsets of children and painted items must also be adjusted by the
left/top border+padding.
Regarding margins, MathML Core says that we should use "margin boxes"
and WPT tests simply check that the layout of MathML constructions
containing mspace elements with margins is not changed if we move
these margins inside the mspace's width/height/depth attributes. To
pass these tests, we similarly need to inflate both the ink and
non-ink bounding boxes by the margin.
However, the margins can be negative possibly leading to negative
dimensions of "margin boxes". To make the code more generic, we
simplify adjust all usages of the children's nsBoundingMetrics and
ReflowOutput to include these margins. When calling FinishReflowChild
at the end, the offsets of children must be adjusted by these margins.
This patch also reimplements the extra one-pixel padding around a
fraction using rules from MathML Core's UA stylesheet at
https://w3c.github.io/mathml-core/#user-agent-stylesheet
[1] https://github.com/w3c/mathml-core/issues/78
[2] 27c8d234ee/mathml/relations/css-styling/padding-border-margin/border-002.html (L25)
[4] 27c8d234ee/mathml/relations/css-styling/padding-border-margin/padding-002.html (L26)
[3] 27c8d234ee/mathml/relations/css-styling/padding-border-margin/margin-003.html (L50)
Differential Revision: https://phabricator.services.mozilla.com/D216670
This patch adds reftests to verify how padding/border/margin values on
an msqrt, mroot and mfrac elements affect the offsets of their painted
bars and radicals.
In addition, it includes a couple of tweaks:
* padding-border-margin-003.html: Wrap the stretchy op in an mrow to
work around Firefox's bug 236963.
* margin-003.html: Use backstick characters for template literals.
* border-002, padding-002, margin-003.html: These tests rely on
compareSpaceWithAndWithoutStyle. Use `<math display="block">` to work
around Firefox's bug 1908913. To get more reliable sizes, force empty
mrow and token elements to contain some text and use ahem fonts. Use
mtext instead of mi so they are not transformed to unicode italic.
Finally, relax a bit the error tolerance.
* mo-lspace-rspace-4: To make the test more reliable, use ahem fonts.
Differential Revision: https://phabricator.services.mozilla.com/D216684
MathML classes has a few Place*() methods used for layout and intrinsic
size calculation. These methods have a parameter "aPlaceOrigin"
indicating whether the children and other painted objects should have
their final positions set, or if the method is only called for measuring.
This parameter is typically set to false when doing intrinsic size
calculation or when performing some non-final measurement for operator
stretching.
For intrinsic size calculation, it is generally enough to perform
placement with aPlaceOrigin=false and ignoring the vertical metrics.
Some Place*() methods also have a parameter "aWidthOnly" for special
handling. For example, msqrt stretches a radical symbol vertically to
match the height of the content but when doing intrinsic size
calculation this is approximated to nsMathMLChar::GetMaxWidth() instead.
When we implement border/padding/margin we should also be able to
choose between using IntrinsicISizeOffsets() or GetUsed*() methods.
Finally, some Place*() methods initially call a place routing of a
parent class before further tweaking the layout. For example, msqrt
uses mrow layout on children and adds some radical symbol on top of
them. When we implement border/padding, we should make sure we don't
add the border/padding before the final result.
In order to handle all these placement behaviors, a new EnumSet is
introduced. This commit does not change behavior. Handling of padding,
border and margin will be handled in follow-up patches.
Differential Revision: https://phabricator.services.mozilla.com/D216669
The isEmpty check against path bounds would inadvertently fails because it checks
if the width/height would fit in an int32. However, since the bounds will be intersected
with a further clip rectangle that is already validated, this check is superfluous and
can filter out some valid clip paths. Replacing this check with isEmpty64, which doesn't
do the final limit check resolves this issue.
Differential Revision: https://phabricator.services.mozilla.com/D218706
This was regressed/missed in bug 1910698, cought by ts check in
extensions code, and I also fixed a couple other places.
Differential Revision: https://phabricator.services.mozilla.com/D218504