Automatic update from web-platform-tests
The adjusted_start must be computed based on the part_start
In order to create a new ShapeResultView, we use segments of a previous
instance, analyzing its runs based on a new index range for the new
instance. Since the start/end of the RunInfo structure may be different
than the start index of the ShapeResultView, we use an adjusted_start
to adapt the logic to the different data structures.
We assume that if the passed start_index for the new range is greater
than the current run's part start being processed, we should define the
new run's start as the difference of these two values. However, we must
also ensure that start_index is at least equal to the the part_start
value for such run.
The problem described in the issue 1130153 comes from the fact that
we use the start_index on cases where it's smaller than the run's
part_start. This leads to an incorrect (longer than expected) run.
Bug: 1130153
Change-Id: Id5dd505baf1f990d2fe7a9406e191979cbd6b9f6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2431523
Reviewed-by: Koji Ishii <kojii@chromium.org>
Commit-Queue: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#811105}
--
wpt-commits: f2cb066328f2035c20b2a9726febd82056b7ac41
wpt-pr: 25804
Automatic update from web-platform-tests
Invalidate GraphicsLayer::CcLayer() when switching "create layers after paint"
When we switch on "create layers after paint" and back, the contents of
the original GraphicsLayer::CcLayer() and RasterInvalidator which are
not used during "create layers after paint" may not be valid.
Invalidate them to ensure correct rendering.
Bug: 1132218
Change-Id: Ia717e8202e2627cedbc9e5305619223a5a833f47
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2432766
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Xianzhu Wang <wangxianzhu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#811013}
--
wpt-commits: 589d1d54b73d37f1efde64f75cc408bdd640b44a
wpt-pr: 25796
Automatic update from web-platform-tests
Add testing of :defined prior to call to super()
Per the conversation here [1], there is a desire to add more
testing of the :defined pseudo state, prior to the call to super().
Note that `this` is not accessible prior to super(), so the
instance itself is used. Also note that :defined already does not
match anywhere inside the constructor, for upgrades.
[1] https://github.com/whatwg/dom/pull/894#discussion_r495092027
Bug: 1042130
Change-Id: I2372900981247ea5624e737d2597d004398de477
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2431558
Auto-Submit: Mason Freed <masonfreed@chromium.org>
Commit-Queue: Kouhei Ueno <kouhei@chromium.org>
Reviewed-by: Kouhei Ueno <kouhei@chromium.org>
Cr-Commit-Position: refs/heads/master@{#810991}
--
wpt-commits: 0e252e7d3d8f95725f6ae177148da85eac333ca2
wpt-pr: 25794
The math-depth implementation is refined to take into account the
ScriptPercentScaleDown and ScriptScriptPercentScaleDown constants (if the
parent's first valid font has a MATH table) in order to calculate the
scale factor between math-deth 0 and 1, and between 0 and 2 respectively.
Behavior is unchanged if the legacy scriptsizemultiplier attribute is
specified or if no MATH table is available.
The preference layout.css.math-depth.enabled remains disabled in nightly
until the remaining bit (support for font-size: math) is implemented in
bug 1667090.
Differential Revision: https://phabricator.services.mozilla.com/D91604
Until bug 1617002 Firefox would unintendedly not get unredirected on X11
when used with WR and OpenGL as it didn't fullfill the requirements -
not being transparent.
Now that this is fixed, fullscreen unredirection can happen on certain
compositors. For the basic compositor we already explicitely ask to not
get unredirected - do that for all backends.
Differential Revision: https://phabricator.services.mozilla.com/D92180
The build script was broken because of the usage of the optional chaining operator,
which is not supported by Node yet, so we fix it.
We also move one modification that was made for Bug 1651443 directly to
codemirror.css (which should be an exact copy of what's provided by the library),
to mozilla.css, our internal, devtools-specific stylesheet.
Differential Revision: https://phabricator.services.mozilla.com/D92041
Forward declarations should be part of TypeDecls.h, but it looks like the
forward declaration of SourceText isn't actually needed anywhere.
Depends on D92197
Differential Revision: https://phabricator.services.mozilla.com/D92198
KHR_partial_update allows us to avoid rerendering the entire
backbuffer every frame, and instead only render what has changed on
the current frame, as well as the difference between the current
backbuffer and the current frontbuffer. It works similarily to
EXT_buffer_age, which we already support, with the additional
requirement that we must call eglSetDamageRegion each frame before
rendering to the backbuffer.
Modify GLContextEGL::GetBufferAge() so that it queries the age if
either EXT_buffer_age or KHR_partial_update are available. This will
now automatically be queried by webrender through the
PartialPresentCompositor trait. Add a new function to that trait,
set_buffer_damage_region(), whose RenderCompositorEGL implementation
calls eglSetDamageRegion(). Call this from composite_simple(), once
the damage rect has been calculated but before rendering to the
backbuffer.
Additionally, change both RenderCompositorEGL and
RenderCompositorOGL's implementations of
ShouldDrawPreviousPartialPresentRegions() to unconditionally return
true, rather than checking for the existence of EXT_buffer_age (or
adding a new check for KHR_partial_update). The lack of these
extensions does not mean that webrender is able to skip rendering
previous frames' damage. Rather the opposite, it means we cannot
render *only* the previous frames' damage, and must instead always
render the entire buffer.
Differential Revision: https://phabricator.services.mozilla.com/D91203
Add a trait PartialPresentCompositor with a function get_buffer_age(),
and allow gecko to pass an implementation to webrender during
initialization. This allows webrender to query the age of the current
backbuffer during compositing.
Make webrender track the previous 2 frame's dirty rects, rather than
just the previous 1 frame's, allowing it to calculate the total damage
rect for buffer ages of up to 3. If the age is greater than 3, treat
the entire buffer as invalid. Also handle special cases of ages 0 and
1, 0 meaning the entire buffer is invalid, and 1 meaning the entire
buffer is valid. Make gecko stop requesting a full render for buffer
ages other than 2, as webrender can now handle these cases itself.
Differential Revision: https://phabricator.services.mozilla.com/D91202
This is D86050, rebased on top of current central. I kept it a separate commit, so the new stuff can be reviewed separately in a different revision.
Differential Revision: https://phabricator.services.mozilla.com/D91122
Using extern fn is needed to avoid a warning, but also this avoids copying the
filename when it's already valid utf-8, and makes some other minor cosmetic
tweaks, like removing useless `move` in lambdas and so on.
Differential Revision: https://phabricator.services.mozilla.com/D92182
This is required to support pasting the primary selection into Firefox on compositors only
supporting the public protocol, such as KWin. Getting the selection *from* Firefox is done
via GTK and will be supported from GTK 3.24.23 on.
The public protocol, while practically identical, will replace the gtk-private one eventually.
However, support for the private one will still be needed for a while.
Note: this also updates the auto-generated gtk-primary-selection files.
Differential Revision: https://phabricator.services.mozilla.com/D91594
- Include for "jsapi.h" wasn't necessary at all.
- "NamespaceImports.h" pulls in many headers, so it was replaced with
"js/Value.h".
- Without "NamespaceImports.h" `Value` and `UndefinedValue` need to be prepended
with `JS::`.
Depends on D92058
Differential Revision: https://phabricator.services.mozilla.com/D92059
"jsfriendapi.h" can be replaced with the new "js/friend/ErrorMessages.h" header.
Additional changes needed:
BytecodeUtil.h
- Remove unused `PcVector` so we don't need to pull in "js/AllocPolicy.h" for SystemAllocPolicy
Depends on D92056
Differential Revision: https://phabricator.services.mozilla.com/D92057