#17279 closed defect (fixed)
dojox/css3 transition can have a problem with dojox/app and nested views where the transition hangs.
Reported by: | Ed Chatelain | Owned by: | cjolif |
---|---|---|---|
Priority: | undecided | Milestone: | 1.9.2 |
Component: | DojoX App | Version: | 1.9.1 |
Keywords: | Cc: | ||
Blocked By: | Blocking: |
Description
There are cases where the css3/transition.js code does not complete the transition, which causes dojox/app to stop doing transitions.
The easiest way to reproduce the problem is probably to update dojox/app/tests/mediaQuery3ColumnApp. Change the config.json to remove lastRight from the "defaultView" for the has check "isInitiallySmall", so after the change it will look like this:
"isInitiallySmall" : {
the view to load when the app is initialized. "defaultView": "navLeft+navCenter"
},
And then from a phone sized browser screen hit the mediaQuery3ColumnApp test with the following params.
dojox/app/tests/mediaQuery3ColumnApp/#navLeft+lastCenter+lastRight
It looks to me like the "on.once(args[args.length-1].node, transitionEndEventName, function(){" on line 348 is not being fired for the "lastRight". I see start() being called for "lastRight", but the on.once(lastRightNode, transitionEndEventName is not being hit, so self.clear for lastRight is not being called. Christophe Jolif has indicated that there are some cases where the transitionEndEvent is not fired, and we have code to try to handle those situations. This case does not seem to be handled.
I have a potential fix for this problem, which has solved the problem for the two people who have reported it, but it involves another setTimeOut which is used in addition to the onOnce, where the setTimeout uses a timeout of the transition duration+50, and inside the timeout it checks to see if the deferred has been fired but not cleared, which would indicate that the onOnce did not fire. In that case clear would be called to indicate that the transition is complete and avoid the hang.
Change History (5)
comment:1 Changed 8 years ago by
Owner: | set to cjolif |
---|---|
Status: | new → assigned |
comment:2 Changed 8 years ago by
comment:3 Changed 8 years ago by
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
comment:5 Changed 8 years ago by
Milestone: | tbd → 1.9.2 |
---|
Added this pull request with the possible fix: https://github.com/dojo/dojox/pull/16