Closed Bug 1206013 Opened 9 years ago Closed 9 years ago

Animation inspector sometimes breaks and prevents the toolbox from closing

Categories

(DevTools :: Inspector: Animations, defect, P1)

defect

Tracking

(Not tracked)

RESOLVED WORKSFORME

People

(Reporter: pbro, Unassigned)

References

Details

(Whiteboard: [polish-backlog][difficulty=hard])

This may happen in many different ways, but usually that's when many animations/transitions are playing simultaneously and when the panel refreshes quickly. STR: - open http://dancort.es/web-design/2015/09/10/how-to-css-transition-delay-animation.html - open the animation inspector - hover over the cat (an opacity transition should play) - click anywhere in the animation panel's timeline header to move the scrubber around - now click on the play button Problem 1: the transition doesn't replay from that point - try to close the toolbox Problem 2: the toolbox freezes while trying to close. There are no errors displayed anywhere, but you can do the following: - open the browser console - close the tab This displays the following error in the console: Error: Connection closed, pending request to server1.conn4.child1/animationsActor23, type setCurrentTimes failed Request stack: Front<.request@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/protocol.js:1178:7 frontProto/</proto[name]@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/protocol.js:1338:14 AnimationsController.setCurrentTimeAll<@chrome://browser/content/devtools/animationinspector/animation-controller.js:282:13 TaskImpl_run@resource://gre/modules/Task.jsm:314:40 TaskImpl@resource://gre/modules/Task.jsm:275:3 createAsyncFunction/asyncFunction@resource://gre/modules/Task.jsm:249:14 AnimationsPanel.onTimelineDataChanged@chrome://browser/content/devtools/animationinspector/animation-panel.js:211:9 EventEmitter_emit@resource://gre/modules/devtools/event-emitter.js:147:11 AnimationsTimeline.prototype.moveScrubberTo@resource://gre/modules/commonjs/toolkit/loader.js -> resource:///modules/devtools/animationinspector/components.js:800:1 AnimationsTimeline.prototype.onTimeHeaderMouseDown@resource://gre/modules/commonjs/toolkit/loader.js -> resource:///modules/devtools/animationinspector/components.js:759:5 EventListener.handleEvent*AnimationsTimeline.prototype.init@resource://gre/modules/commonjs/toolkit/loader.js -> resource:///modules/devtools/animationinspector/components.js:712:5 AnimationsPanel.initialize<@chrome://browser/content/devtools/animationinspector/animation-panel.js:61:7 TaskImpl_run@resource://gre/modules/Task.jsm:314:40 TaskImpl@resource://gre/modules/Task.jsm:275:3 createAsyncFunction/asyncFunction@resource://gre/modules/Task.jsm:249:14 startup<@chrome://browser/content/devtools/animationinspector/animation-controller.js:49:9 TaskImpl_run@resource://gre/modules/Task.jsm:314:40 Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:934:23 this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:813:7 Promise*this.PromiseWalker.scheduleWalkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:744:11 this.PromiseWalker.schedulePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:776:7 this.PromiseWalker.completePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:711:7 TaskImpl_run@resource://gre/modules/Task.jsm:319:13 Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:934:23 this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:813:7 Promise*this.PromiseWalker.scheduleWalkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:744:11 this.PromiseWalker.schedulePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:776:7 this.PromiseWalker.completePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:711:7 Front<.onPacket/<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/protocol.js:1236:9 DevTools RDP*Front<.request@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/protocol.js:1178:7 frontProto/</proto[name]@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/protocol.js:1338:14 AnimationsController.refreshAnimationPlayers<@chrome://browser/content/devtools/animationinspector/animation-controller.js:305:35 TaskImpl_run@resource://gre/modules/Task.jsm:314:40 Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:934:23 this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:813:7 Promise*this.PromiseWalker.scheduleWalkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:744:11 this.PromiseWalker.schedulePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:776:7 this.PromiseWalker.completePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:711:7 TaskImpl_run@resource://gre/modules/Task.jsm:319:13 Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:934:23 this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:813:7 Promise*this.PromiseWalker.scheduleWalkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:744:11 this.PromiseWalker.schedulePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:776:7 this.PromiseWalker.completePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:711:7 Front<.onPacket/<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/protocol.js:1236:9 DevTools RDP*Front<.request@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/protocol.js:1178:7 frontProto/</proto[name]@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/protocol.js:1338:14 AnimationsController.destroyAnimationPlayers<@chrome://browser/content/devtools/animationinspector/animation-controller.js:386:13 TaskImpl_run@resource://gre/modules/Task.jsm:314:40 TaskImpl@resource://gre/modules/Task.jsm:275:3 createAsyncFunction/asyncFunction@resource://gre/modules/Task.jsm:249:14 AnimationsController.refreshAnimationPlayers<@chrome://browser/content/devtools/animationinspector/animation-controller.js:303:11 TaskImpl_run@resource://gre/modules/Task.jsm:314:40 TaskImpl@resource://gre/modules/Task.jsm:275:3 createAsyncFunction/asyncFunction@resource://gre/modules/Task.jsm:249:14 AnimationsController.onNewNodeFront<@chrome://browser/content/devtools/animationinspector/animation-controller.js:233:11 TaskImpl_run@resource://gre/modules/Task.jsm:314:40 TaskImpl@resource://gre/modules/Task.jsm:275:3 createAsyncFunction/asyncFunction@resource://gre/modules/Task.jsm:249:14 AnimationsController.initialize<@chrome://browser/content/devtools/animationinspector/animation-controller.js:155:11 TaskImpl_run@resource://gre/modules/Task.jsm:314:40 Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:934:23 this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:813:7 Promise*this.PromiseWalker.scheduleWalkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:744:11 this.PromiseWalker.schedulePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:776:7 this.PromiseWalker.completePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:711:7 TaskImpl_run@resource://gre/modules/Task.jsm:319:13 Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:934:23 this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:813:7
Whiteboard: [polish-backlog]
Priority: -- → P1
Marking as hard as an estimate, but mostly because there's no easy way to debug this that I've found so far.
Whiteboard: [polish-backlog] → [polish-backlog][difficulty=hard]
Component: Developer Tools: Inspector → Developer Tools: Animation Inspector
Both problems are now fixed. Not sure what fixed them, but closing as WFM.
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → WORKSFORME
Product: Firefox → DevTools
You need to log in before you can comment on or make changes to this bug.