With tracks in different MTGs we risk of having thread races if we stop and start immediatelly. Previously, stoping and starting was happenign to the same MTG so this problem did not exist. This change wires a promise in the `MediaTrack::RemoveListener` method and perform the start when that step has been completed.
Differential Revision: https://phabricator.services.mozilla.com/D57947
--HG--
extra : moz-landing-system : lando
In `MediaPipelineTransmit::SetTrack()` the provided `MediaStreamTrack` connects to the existing send-track. This step crashes if the two tracks belong to different MTGs. With this change, when the two tracks belong to different MTGs, the existing send-track is stopped and deleted and a new send-track is created in the same MTG with the provided `MediaStreamTrack`.
Differential Revision: https://phabricator.services.mozilla.com/D57627
--HG--
extra : moz-landing-system : lando
By doing this we guarantee RegExpCreationData are cleaned up, avoiding a possible leak where
dead code elimination removes a ParseNode without cleaning up the RegExpCreationData.
Differential Revision: https://phabricator.services.mozilla.com/D57904
--HG--
extra : moz-landing-system : lando
As a side effect of removing a now-cylic-dependency, this rehomes
FunctionSytaxKind.
Differential Revision: https://phabricator.services.mozilla.com/D57903
--HG--
extra : moz-landing-system : lando
Because I'm planning on moving non-function data into this, I think the time is
potentially right to start calling this stencil.h
Differential Revision: https://phabricator.services.mozilla.com/D57902
--HG--
rename : js/src/frontend/FunctionCreationData.h => js/src/frontend/Stencil.h
extra : moz-landing-system : lando
Since we made backwards incompatible changes, let's do a major version bump.
Differential Revision: https://phabricator.services.mozilla.com/D57478
--HG--
extra : moz-landing-system : lando
This commit vendors `robustcheckout` from commit ff8a7c9c843a9c in
version-control-tools. Updates include the removal of some dead code,
compatibility with the latest Mercurial, and Python 3 compatibility.
Differential Revision: https://phabricator.services.mozilla.com/D57836
--HG--
extra : moz-landing-system : lando
We were breaking twice in the browser toolbox because we were attaching to
all the content process targets as well as all frame targets.
But as frames (i.e. web pages) are running within the content processes,
we were having two thread actor attached to the same thread.
This is a stopgap solution for the browser toolbox and we would need
to do something better for the content toolboxes.
Differential Revision: https://phabricator.services.mozilla.com/D57505
--HG--
extra : moz-landing-system : lando
The test fails with my <input type=number> rewrite because editor fails to
dispatch one input event caused by these mouse events.
The reason for this is that we schedule them from an input event, which fires
from here:
https://searchfox.org/mozilla-central/rev/6305f6935f496b3a302c7afcc579399a4217729c/editor/libeditor/EditorBase.cpp#965
Not how at that point we still haven't decremented mPlaceholderBatch. That means
that other stuff that triggers input events from there will not dispatch events.
I think that's a bit unexpected, but it is a preexisting problem, and can't
happen for users because mouse events go through the event loop.
Differential Revision: https://phabricator.services.mozilla.com/D57810
--HG--
extra : moz-landing-system : lando
Some calls to `ComparePoints_Deprecated` remain, because adapting them
would require to add boilerplate code, which potentially will be deleted
again once `ComparePoints` supports crossing the Shadow DOM boundary.
Differential Revision: https://phabricator.services.mozilla.com/D57615
--HG--
extra : moz-landing-system : lando
The closed-over-binding data is generated for each scope with a nullptr
delimiter per scope. This is wasteful when there are no closed-over bindings.
This patch removes trailing nullptr entries and for leaf-functions may result
in the script-data allocation being avoided altogether.
The FullParseHandler::nextLazyClosedOverBinding() will return nullptr after
the end of the gcthings data so that the delazification process is otherwise
unchanged.
Differential Revision: https://phabricator.services.mozilla.com/D57885
--HG--
extra : moz-landing-system : lando
Move the transcoding from XDRLazyScript and XDRRelazificationInfo into
LazyScript::XDRScriptData to avoid duplication. Add similar code for non-lazy
scripts for consistency.
Depends on D57919
Differential Revision: https://phabricator.services.mozilla.com/D57920
--HG--
extra : moz-landing-system : lando
We had a few extra RootedFunction when we only cared if about if the pointer
was null or not, so lets remove them. Also rename to isFunctionScript since
this is called for stand-alone functions as well. Semantics should be
unchanged.
Depends on D57862
Differential Revision: https://phabricator.services.mozilla.com/D57917
--HG--
extra : moz-landing-system : lando
Pass appropriate arguments to NewFunctionWithProto instead of filling them
after the fact. The script should be transcoded after the function is set up.
Also stop preserving the NEW_SCRIPT_CLEARED flag in XDR.
Differential Revision: https://phabricator.services.mozilla.com/D57862
--HG--
extra : moz-landing-system : lando
Cleanup the aliases we use for constructing different types of functions.
Always specify the function kind explicitly for readability.
Depends on D57851
Differential Revision: https://phabricator.services.mozilla.com/D57852
--HG--
extra : moz-landing-system : lando
Fix the formatting, commenting, ordering of the flags. Also move the function
kind bits to the beginning of the flag word.
Differential Revision: https://phabricator.services.mozilla.com/D57851
--HG--
extra : moz-landing-system : lando
The ReflowTracker was based on the assumption that there was only ever going to
be one target to be observed.
With Fission, this is no longer true.
Turning the ReflowTracker into something that is multi-target aware seemed more
complex than really worth it. After all, all it was doing is getting a ReflowFront
and listening for events on it.
The only 3 things that needed it are the grid inspector, flex inspector and box
model widget. They all needed it for the same reason: updating the data displayed
in the UI when the size/geometry/box-model regions of the selected node changed.
So, it seems simpler to let the inspector instantiate the right ReflowFront when
it needs it (upon a new node selection).
There's only one node selected at any given time in the inspector, so it's simple
to just listen for reflow in that node's target, and dispatch events to the grid,
flex and box-model tools so they can update themselves.
Note that once a new node is selected, we do the `getFront("Reflow")` again
since that node can be in a different target than the previous one. If it is,
however, in the same target, then `getFront` will return the same instance which
is nice.
Differential Revision: https://phabricator.services.mozilla.com/D55987
--HG--
extra : moz-landing-system : lando
Talkback users expect that when you navigate past the end of the text in a node, Talkback will move into the next node and navigate there.
However, even though text navigation is async (client performs an action on the focused accessible and then waits for a text traversal event), firing a traversal event with a different accessible from the focused accessible is not supported by Talkback.
Firing a11y focus on the new node (as we did previously) doesn't fix this, but instead causes the entire node to be reported, among other weird behaviour.
1. Don't fire a11y focus for text traversal.
Aside from Talkback reporting the entire node, this was also confusing Talkback, causing it to try to navigate several times into the new node.
2. When navigating text, cache whether we're at either edge.
We do this because we need to be able to synchronously query whether we're at the edge, but we do navigation async.
Special handling is needed for words at the end because words don't include trailing space.
3. When performing a text navigation action, check if we're already at the edge using the cache described above.
If we are, synchronously return false, as Talkback expects.
Talkback will then move to the next/previous node itself and navigate the text there.
Differential Revision: https://phabricator.services.mozilla.com/D57926
--HG--
extra : moz-landing-system : lando
This is the last part needed to be able to restrict results without an explicit
typed token (either restriction or alias). Note this is all preparatory work,
there isn't a design for a feature using this yet, but we know at a certain
point we want a more usable representation of aliases and restriction tokens
and eventually a mode picker UI (search button).
Differential Revision: https://phabricator.services.mozilla.com/D57781
--HG--
extra : moz-landing-system : lando