Stylo might be enabled by either env var or pref. Use the existing
DOMWindowUtils method to test for Stylo instead of the pref to get an accurate
value.
MozReview-Commit-ID: 8p22xCBjHjo
--HG--
extra : rebase_source : 1a5524e22be07a712838ac5a2ac0bec0cc65dfa7
If a SourceMap response header was saved on a style sheet, use it in the
style sheet actor.
MozReview-Commit-ID: GRLCdRCaP5Q
--HG--
extra : rebase_source : 6632acb69a4d1a85ea6ccf3897c0e3be7ae51edd
Stylo doesn't have a good equivalent for restyle hints to expose in markers and
the ones exposed for Gecko aren't very accurate either, so we don't want to
expose the restyle hint anymore.
At the same time, several animation restyle tests currently use the hint inside
the marker to check when animation-only restyles have happened. We can preserve
this by changing the data inside the marker to be a flag for whether the restyle
is animation only, which we know for both Gecko and Stylo.
MozReview-Commit-ID: 8L8KU8Ush7P
--HG--
extra : rebase_source : 4eef80653c1ef79ee1539d27fe6a70fbfaf441ad
Here we make updates on reflow slower (with a throttle) cause we don't
really need to update live.
We also filter all reflows that do not cause either the list of grids or
the current outline to change.
Finally, we also attach NodeActors to GridActor forms (when they are know)
in order to avoid one more round-trip to the server.
Globally, this makes performance of the grid panel far better on pages that
cause many reflows.
Note that this commit also fixes a debounce vs. throttle confusion that
existed in an inspector utils file. The throttle function there was actually
a debounce function, so it was renamed, and an actual throttle function
was added.
MozReview-Commit-ID: GeqgZR0o0E6
--HG--
extra : rebase_source : 6b9719379dcbd4479bded26014aa3742bd75208e
Changes to Promise tests designed to test .then(null) have been reverted, and the browser/extensions directory was excluded because the projects it contains have a separate process for accepting changes.
MozReview-Commit-ID: 1buqgX1EP4P
--HG--
extra : rebase_source : 3a9ea310d3e4a8642aabbc10636c04bfe2e77070
Also convert markers to SVG path to better handle zoom
MozReview-Commit-ID: 8h9WWOLvFfG
--HG--
extra : rebase_source : 338155d2420183b17b9507b1fbedc7bda307d16b
On Skia / OS X using a large number as workaround for infinite lines makes
the canvas really slow; here I removed the hack, calculating the proper
intersection with the canvas' boundaries for the infinite lines. That should
greatly improve the performance for transformed grid.
MozReview-Commit-ID: Ae1GyxIhf3l
Used the new chrome-only API to obtain the transformation matrix of the current
node, relative to the inspected window's root element.
That also includes all the transformations from the element's ancestor; plus
the method is more robust and we can simplify the current code, removing also
some hack.
Deleted also the test for dom_matrix_2d, since one of the method was testing
now doesn't exist anymore, and the second it's just a map to native method
that has its own tests on platform.
MozReview-Commit-ID: 35rs34RSMYA
Used the new chrome-only API to obtain the transformation matrix of the current
node, relative to the inspected window's root element.
That also includes all the transformations from the element's ancestor; plus
the method is more robust and we can simplify the current code, removing also
some hack.
MozReview-Commit-ID: 35rs34RSMYA
These fixes are in preparation of making browser-chrome tests fail when there are unhandled Promise rejections.
MozReview-Commit-ID: JTMgC2XwzX2
--HG--
extra : rebase_source : 4d0b0465641b2286d01f872b0cf8052af5573939
extra : amend_source : 75dacab1ff06bcab2a05e6e744845b151f97d06c
extra : intermediate-source : 047e38fdb0c889e7e7dc0c2cd5a4e6dc6aa7fe22
extra : source : b59573695517b2a464f22e00bd3792c50dcf371a
The Grid Cell highlighting should take transformation into account
Added utility functions for a better handling of points and boundaries;
especially when a transformation is applied.
The SVG path description's points are now properly transformed.
Grid's infobars are now positioned in the same way of box model infobar, since
we pass a more accurate `bounds` object.
MozReview-Commit-ID: CNknsC0ufZj
--HG--
extra : rebase_source : 373032eacbfeacf1e6b870cbbe59be539be916b8
Currently doesn't handle zooms or transforms, or rounded corners for inset().
MozReview-Commit-ID: J9ZTjhn9Ki0
--HG--
extra : rebase_source : 62a8952fe18e1493ba9f31e85a4d9bc7d558167c
This patch applies all the changes needed to the devtools actors
and the toolbox-process-window, to be able to debug a webextension
running in an extension child process (as well as a webextension
running in the main process).
The devtools actor used to debug a webextension is splitted into
3 actors:
- the WebExtensionActor is the actor that is created when the
"root.listTabs" RDP request is received, it provides the addon
metadata (name, icon and addon id) and two RDP methods:
- reload: used to reload the addon (e.g. from the "about:debugging#addons" page)
- connectAddonDebuggingActor: which provides the actorID of the actor
that is connected to the process where the extension is running
(used by toolbox-process-window.js to connect the toolbox to the needed
devtools actors, e.g. console, inspector etc.)
- the WebExtensionParentActor is the actor that connects to the
process where the extension is running and ensures that a
WebExtensionChildActor instance is created and connected
(this actor is only the entrypoint to reach the WebExtensionChildActor,
and so it does not provide any RDP request on its own, it only connect
itself to its child counterpart and then it returns the RDP "form" of
the child actor, and the client is then connected directly to the
child actor)
- the WebExtensionChildActor is the actor that is running in the same
process of the target extension, and it provides the same requestTypes
of a tab actor.
By splitting the WebExtensionActor from the WebExtensionParentActor, we are
able to prevent the RemoteDebuggingServer to connect (and create
instances of the WebExtensionChildActor) for every addon listed by
a root.listAddons() request.
MozReview-Commit-ID: L1vxhA6xQkD
--HG--
extra : rebase_source : 7ed7735084d9351ff32ab1ad822e53dd0828dace
This patch applies all the changes needed to the devtools actors
and the toolbox-process-window, to be able to debug a webextension
running in an extension child process (as well as a webextension
running in the main process).
The devtools actor used to debug a webextension is splitted into
3 actors:
- the WebExtensionActor is the actor that is created when the
"root.listTabs" RDP request is received, it provides the addon
metadata (name, icon and addon id) and two RDP methods:
- reload: used to reload the addon (e.g. from the "about:debugging#addons" page)
- connectAddonDebuggingActor: which provides the actorID of the actor
that is connected to the process where the extension is running
(used by toolbox-process-window.js to connect the toolbox to the needed
devtools actors, e.g. console, inspector etc.)
- the WebExtensionParentActor is the actor that connects to the
process where the extension is running and ensures that a
WebExtensionChildActor instance is created and connected
(this actor is only the entrypoint to reach the WebExtensionChildActor,
and so it does not provide any RDP request on its own, it only connect
itself to its child counterpart and then it returns the RDP "form" of
the child actor, and the client is then connected directly to the
child actor)
- the WebExtensionChildActor is the actor that is running in the same
process of the target extension, and it provides the same requestTypes
of a tab actor.
By splitting the WebExtensionActor from the WebExtensionParentActor, we are
able to prevent the RemoteDebuggingServer to connect (and create
instances of the WebExtensionChildActor) for every addon listed by
a root.listAddons() request.
MozReview-Commit-ID: L1vxhA6xQkD
--HG--
extra : rebase_source : f9438b4a9842c1dd504edf2fcd87857c670f411f
This function is arguably nicer than calling NS_ProcessNextEvent
manually, is slightly more efficient, and will enable better auditing
for NS_ProcessNextEvent when we do Quantum DOM scheduling changes.
The infobars needs to be not hidden when the `moveInfobar` function is called,
otherwise the computed style won't work as expected; therefore I switched the
functions' call related to that.
I added an optional `options` argument to the `moveInfobar` function in order
to support forced position and make the infobar hide if offscreen.
MozReview-Commit-ID: 81dxkMGt7vT
--HG--
extra : rebase_source : 5f64ea62368a85b020b4ad964e749c74fa337d9c
ActorPool.removeActor expects an actor instance, not an ID string.
MozReview-Commit-ID: 366sD7uvHbg
--HG--
extra : rebase_source : 91665450684fbfbf732f6e78c0bd6158a59301b2