Instead of a repeating timeout of only twice the parent's serialization time + 1s, use that double parent time and multiply it by the number of children, and add the number of seconds from the about:config preference "devtools.performance.recording.child.timeout_s" (still 1s by default).
Differential Revision: https://phabricator.services.mozilla.com/D94955
Even when the margins don't come from APZ, they are relative to
the visual viewport, and for the RCD-RSF there may be an offset
between the visual and layout viewports that they should be
translated by.
Bug 1669982 modified the call site in
CalculateAndSetDisplayPortMargins() to do this. This patch
refactors things such that all setters of the display port
do this if appropriate.
Differential Revision: https://phabricator.services.mozilla.com/D93428
Moving the ExternalPixel types from APZPublicUtils.h to Units.h to
reduce the transitive include graph from that dependency.
Signed-off-by: Joey Salazar <grey.lila@yahoo.com>
Differential Revision: https://phabricator.services.mozilla.com/D94932
> CSSStyleSheet.cssRules getter: Can't access rules of still-loading
> stylsheet
I have no idea what an stylsheet is :)
Differential Revision: https://phabricator.services.mozilla.com/D95064
The heavily nested structure of UrlbarInput.setValueFromResult made it difficult to handle a result that was both a keywordoffer and autofilled. I took this opportunity to refactor setValueFromResult to be flatter. I think it's a bit easier to read now.
Differential Revision: https://phabricator.services.mozilla.com/D94903
By using LogicalSize instead of a pair of mISize and mBSize, most of the
ReflowOutput's methods can delegate to LogicalSize's methods.
This change shouldn't change behavior.
Differential Revision: https://phabricator.services.mozilla.com/D93869
After applying the next part, 1161752.html's runTest2() can trigger the
following assertion without this patch.
```
ASSERTION: writing-mode mismatch: 'aWritingMode.IgnoreSideways() == GetWritingMode().IgnoreSideways()'
```
`kidDesiredSize` is initialized by ViewportFrame's reflow input, so it
stores the ViewportFrame's writing mode. But after calling
`ReflowChild`, the old code is accessing the kid's block-size by using
`kidDesiredSize.BSize(wm)`, where `wm` is being shadowed within the
inner if and becomes the kid's writing mode. This patch fixed it by
changing the inner `wm` to `kidWM` for the clarity and avoiding the
variable shadowing.
In the next part, ReflowOutput's documentation is updated, hoping to
prevent the writing mode misusages in the future.
Differential Revision: https://phabricator.services.mozilla.com/D93868
Poison was setup at the start of xpcom init when that was assumed to be early enough.
Since then, Poison was added to Maybe, and Maybe has been used everywhere, including in
our channel implementation. As a result, poison was being used before it was initialized.
This basically meant our poison pointers were being replaced with null instead, which
dances into some more UB than accessing a page we have actually allocated. Also, tsan
noticed that accesses to the value were racing with the initializer actually being
called!
A (dynamic) static initializer forces the poison initialization as we can reasonably
hope without getting CallOnce or singleton patterns involved.
Other changes:
* Cleaned up the outdated documentation for mozWritePoison (the alignment
restriction was removed in Bug 1414901)
* Removed the poison supression from TSan
Differential Revision: https://phabricator.services.mozilla.com/D94251
Traits support was added to the storage actor in FF80.
Firefox release is now FF81 so we can cleanup the related backward compatibility code.
Differential Revision: https://phabricator.services.mozilla.com/D93081
If an HTML table's children (tr/thead/tfoot) are anything but row or row
group frames, our layout-based HTMLTableAccessible implementation won't work.
Differential Revision: https://phabricator.services.mozilla.com/D94888
We add new metrics `distro` and `distro_version`. Their meaning varies based on the actual OS:
1. For Linux, the pair will be the name of the distribution and the distribution's version (e.g. `ubuntu`/`20.04`);
2. for macOS, the pair will be the string `macos` and the macOS version (e.g. `10.15.7`); and
3. for Windows, the pair will be the string (`windows`, `MAJOR.MINOR.BUILD`);
4. and for all other OS'es, the first will be the value of `sys.platform`, and the version string will be empty.
Differential Revision: https://phabricator.services.mozilla.com/D94781
The goal here is to hook up the ctrl+0 keyboard shortcut to reset the scaling
zoom applied by pinch gestures (on touchscreen or trackpad), in addition to
resetting the reflow zoom (aka full zoom). This patch also makes other mechanisms
to reset the reflow zoom (e.g. clicking on the "100%" label in the hamburger menu)
also reset scaling zoom, which I think makes sense for consistency.
Most of this patch is just plumbing, but I'm unfamiliar with these codepaths
so requesting review from relevant owners to make sure it's sane.
Differential Revision: https://phabricator.services.mozilla.com/D94624
Instead, sort stuff using CSSOrderAwareFrameIterator. The current
sorting is broken in presence of dynamic insertions, consider the
following <Child(order)> combination in the DOM:
<A(1000)> <B(0)>
That'd look like:
<B(0)> <A(1000)>
On the frame tree. However when appending a child before B so that the
DOM looks like:
<A(1000)> <C(0)> <B(0)>
The frame constructor will properly insert after A, and the reordering,
which is stable, will end up with:
<B(0)> <C(0)> <A(1000)>
Which is the wrong frame tree order.
We only use -moz-box-ordinal-group in regular sprocket layout, so just
handle it there rather than everywhere. Similarly, we only rely on it
for in-flow stuff, so remove the test for that added in bug 877890 (flex
changed behavior afterwards, interestingly enough).
Differential Revision: https://phabricator.services.mozilla.com/D94790
This moves most of the windows ccov tests to run with WebRender enabled by
putting them in the windows10-64-ccov-qr test platform. (The -qr suffix causes
the taskgraph code to enable WebRender for these jobs).
The only one skipped is the marionette GPU test because it contains a test that
specifically requires WebRender disabled.
The existing non-regex config keys that referred to `windows10-64-ccov` also
get updated, and in a couple of places we need to add a new non-regex key to
disambiguate between two matching regex keys.
Differential Revision: https://phabricator.services.mozilla.com/D94769
Each script for target source has a SourceExtent that represents the source
start as both an offset and a line/column value. We use these mappings to
compute a lower-bound on the source offset of a target line when performing
`findScripts`. This lower bound lets us quickly eliminate candidate scripts
without needing to compile their bytecode and inspect SrcNotes.
Depends on D93177
Differential Revision: https://phabricator.services.mozilla.com/D95019