Cleanup the visibility of members and methods to better reflect what is and
isn't internal details. Move the XDR signature to exist only within the
JSScript.cpp file.
Depends on D71467
Differential Revision: https://phabricator.services.mozilla.com/D71469
Move the flag definitions to the enums header, but leave the wrapper types in
SharedStencil.h since they are less universal.
Differential Revision: https://phabricator.services.mozilla.com/D71467
We invalidate for more things than just frames advancing (if we are redecoding and still showing the same frame as before discarding for example). So there is no reason that the dirty rect and a frame being advanced should be linked.
Differential Revision: https://phabricator.services.mozilla.com/D71483
This is actually a one line change. The rest is just removing unneeded parameters.
The composited frame used to be valid for animations that had finished because we saved a separate composited frame, and since the animation had finished it was the final frame, so it had to be valid to display.
Now we don't have a separate composited frame so we only have a valid frame to display if we've decoded up to the current frame. For non-finished animations RequestRefresh will clear mCompositedFrameInvalid, but for finished animations we have to clear it, the easiest place is when we know we are fully decoded.
This problem caused img.decode to never fulfill or reject because we never sent out any frame update notifications because mCompositedFrameInvalid was always false because mAnimationFinished was always true. So we didn't get the invalidation that flipping mCompositedFrameInvalid to false when a full decode finished would cause.
Differential Revision: https://phabricator.services.mozilla.com/D70838
RawWordField had to be split in RawWordField (writer takes uintptr_t) and
RawPointerField (writer takes `const void*`).
Differential Revision: https://phabricator.services.mozilla.com/D71309
RawWordField had to be split in RawWordField (writer takes uintptr_t) and
RawPointerField (writer takes `const void*`).
Differential Revision: https://phabricator.services.mozilla.com/D71309
Just because we didn't find a child when read-locking a node children list
doesn't mean it still won't exist while we wait to upgrade the read lock
into a write lock to create the child.
This cherry-picks https://github.com/servo/servo/pull/26220
MANUAL PUSH: So that I can preserve reviewer information.
and there is no fallback global available.
I assume there is little value in attempting to create another global if a
previous attempt failed.
Differential Revision: https://phabricator.services.mozilla.com/D71152
The reason this didn't pass before is that the sweep task may be started for every group of zones, so a single instance finishing doesn't mean that we've finished sweeping all zones, and there may be more arenas to sweep in this case.
Depends on D71330
Differential Revision: https://phabricator.services.mozilla.com/D71332
I think I meant to do this when I added the separate GCRuntime::freeTask, but as it stands both this and sweepTask try and free the LIFO data. This is unnecessary.
Depends on D71329
Differential Revision: https://phabricator.services.mozilla.com/D71330
A while back we added a heuristic to delay a GC if it would cause a reset (bug 1367455), but it was turned off after it caused a performance regression and hasn't been reenabled since.
Telemetry shows that that only 0.2% of GCs get reset anyway so we should probably just remove this.
Depends on D71328
Differential Revision: https://phabricator.services.mozilla.com/D71329
This is checkd in the allocator on every allocation, but we also check this when we allocate a new arena in maybeAllocTriggerZoneGC. It's possible that this one will hit first if background sweeping reduces the heap threshold after the last arena was allocated, but this doesn't really make any difference.
Differential Revision: https://phabricator.services.mozilla.com/D71328
The PropertyNameField type behaves just like StringField, except the generated writer
method takes a PropertyName* instead of JSString* for better type safety.
Depends on D71283
Differential Revision: https://phabricator.services.mozilla.com/D71284