Automatic update from web-platform-tests
Pass parent constraint space to child space builder when possible.
Prefer using the NGConstraintSpaceBuilder(const NGConstraintSpace&
parent_space...) constructor, when possible. It inherits a flag from the
parent - "ShouldPropagateChildBreakValues". Failing to inherit this
inside the table layout code was actually causing bugs (see test
included).
The real motivation behind this change, though, is that I'm planning on
adding one more flag here for repeated content (repeated table headers /
footers, and also fixed-positioned elements when printing).
The changes here are all about tables and out-of-flow positioning. We
can now get rid of a couple of members from NGOutOfFlowLayoutPart. At
the same time, now that we're using the NGConstraintSpaceBuilder that
takes a constraint space, we can no longer "cheat" about what the
parent's writing mode is. So NGOutOfFlowLayoutPart::GenerateFragment()
needs to convert the size of the child from the writing-mode of the
child to the writing-mode of the container, and pass that as available
size to the constraint space builder.
LayoutNGMixin<Base>::UpdateOutOfFlowBlockLayout() was also passing an
incorrect constraint space to NGOutOfFlowLayoutPart. It should be
created based on the container, NOT the child. Because of this change,
we now need to remove the DCHECK for formatting context root from
NGConstraintSpace::CreateFromLayoutObject(), since we may now end up
here even if the containing block isn't a formatting context root. But
that's okay, as long as we're not going to lay it out. Re-add [1] an
equivalent DCHECK to UpdateInFlowBlockLayout().
[1] Was removed in CL:1473393, in favor of the one in
CreateFromLayoutObject(), which now is gone.
Bug: 1078927
Change-Id: I28783925326df87311c9894b72f898525daa5811
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3673761
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Commit-Queue: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1008987}
--
wpt-commits: 76bd0b1aee55e55bece826094be696f4c1ee54fa
wpt-pr: 34249
Since backdrop_surface is not cleared on prepare_for_new_scene, it's possible
that the tile cache might be carrying "old" backdrop info. Existing code
correctly handles this case *as long as* the new scene also has a backdrop.
This change is necessary to make sure that old backdrop info is cleared
even when the new scene does not contain a backdrop.
Differential Revision: https://phabricator.services.mozilla.com/D148848
It's not necessary to clear the tile cache backdrop surface when a new
scene arrives. Doing so has unintended consequences because clearing the
backdrop surface forces the destruction of the associated native surface.
That native surface will very likely just have to be recreated. If the new
scene doesn't have a backdrop, or has a different backdrop, the logic in
take_context is sufficient to destroy the old one.
Depends on D148704
Differential Revision: https://phabricator.services.mozilla.com/D148705
This ensures that the native surfaces for color backdrops are destroyed
when the tile cache itself is destroyed.
Depends on D148678
Differential Revision: https://phabricator.services.mozilla.com/D148704
This includes two versions of the function, one which takes an already-computed
page size to avoid computing this multiple times for a caller, and the other
which computes this value itself for convenience.
Differential Revision: https://phabricator.services.mozilla.com/D146601
When enabling `pingsender2`, I witnessed Unicode encoding differences
that were not caught by testing. In addition, the resultant 500
status codes when submitting shutdown pings were not caught.
Differential Revision: https://phabricator.services.mozilla.com/D147611
GTK already did this, sorta, in a platform-specific way: by hacking in the
scale factor in the CSS screen code. I think this is cleaner, since we have a
centralized place to compute the full zoom in nsPresContext, and that code path
is fairly well tested.
This also would make it trivial to make this text zoom rather than full zoom in
the future, if we wanted (which is probably _technically_ more correct, even
though less pretty less pretty).
This also allows us to remove some hacks where we were undoing the text scale
factor on Linux (since stuff like scrollbars already ignore full zoom).
Depends on D148675
Differential Revision: https://phabricator.services.mozilla.com/D148676
wasm-smith should always generate a valid wasm module. We may catch bugs in
our validation algorithm if we check for this while fuzzing. Adding this
uncovered an issue in our handling of export names.
Differential Revision: https://phabricator.services.mozilla.com/D147366
A WebAssembly 'name' is a length terminated sequence of UTF-8 characters.
This implies that '\0' can show up in a string before the end, and we
cannot treat them like c-strings. A new CacheableName struct is added
to support this. CacheableChars is still used in unrelated areas and
left as-is.
The test importer is extended to handle escaping unusual unicode
sequences better, and names.wast is now imported.
Differential Revision: https://phabricator.services.mozilla.com/D147365