This option helps avoiding blank inspector situations when trying to use the right-click ctx
menu in the browser to inspect an element *while* the page is reloading.
When transitions re-start (when a css class is toggled for instance), new AnimationPlayer objects
are created everytime. But now (since bug 1122414) names are given for AnimationPlayers that
correspond to transitions, and so we can use that to know when a transition re-starts on a node
and therefore send the correct events to the animation-panel.
This prevents the WalkerActor from failing at handling various requests when
those requests are about DeaedNodes. Indeed, the async nature of the devtools
protocol means that the client could be asking for information about a node that
doesn't exist anymore because it was part of a page that was navigated away from.
The WalkerActor should know how to deal with such cases, so the patch adds a
number of early returns and a new test for them.
This helps avoiding the inspector-panel from going blank in some edge cases.
There are still some other references to "source" in AnimationPlayer such as
HasInPlayerSource and UpdateSourceContent. These are renamed in a subsequent
patch (that doesn't require DOM peer review).
Most of this is fairly obvious. However, the addition of 'override' to
ElementPropertyTransition::Name() is not strictly necessary. It was simply added
because while making these changes I accidentally dropped the 'virtual' keyword
from the method in the superclass and the compiler didn't complain. Adding this
will hopefully make it harder to create the same bug in the future.
This makes the inspector search input show suggestions for nodes in all documents in
the content page. Selecting a suggestion also now selects the corresponding nodes
even when they are inside nested frames.
In some situations the WalkerActor tries to access the computed-style (via css-logic.css)
of pseudo (after or before) elements in the DOM. It does this on reflows to update the
visibility indicator on nodes in the inspector-panel.
This fixes early checks in the reflows event handler to avoid trying to get the style
if the node isn't an element.
(Re-land after backout)
The animation-controler was in charge of getting new animation players and refreshing
the UI when done. This is still the case, but it now listens for mutation events from
the actor too, and when they happen, it simply asks the ui to refresh again.
Also, animations with playState "finished" that remain in the animation inspector panel
can now be played again.
Backed out changeset 527c548ff03c (bug 1149711)
Backed out changeset 2fe22ffef154 (bug 1120833)
Backed out changeset 501fa7c170ed (bug 1120833)
CLOSED TREE
The animation-controler was in charge of getting new animation players and refreshing
the UI when done. This is still the case, but it now listens for mutation events from
the actor too, and when they happen, it simply asks the ui to refresh again.
Also, animations with playState "finished" that remain in the animation inspector panel
can now be played again.
This makes the AnimationsActor listen for animation mutations after each
call to getAnimationPlayersForNode on the code that was passed in.
Whenever animations are added or removed, an event is sent to the front
with the list of changes.
The server doesn't know when the client doesn't require updates for the
current node anymore, so it exposes a new method for this.
Note that removed events for finished aniations are skipped, because the
corresponding animations can still be seeked/resumed, so we want the
AnimationPlayerActor to be preserved.
The AnimationPlayerFront needs to emit events when its auto-refresh
mode is enabled, whenever the state changes. Until now, it was doing
so with EventEmitter.
But because decorating the class with EventEmitter adds on/once/off
functions to the instance, it ends up hiding the on/once/off functions
that were already there because the class extends addon sdk EventTarget.