https://bugzilla.wikimedia.org/show_bug.cgi?id=42479

       Web browser: ---
             Bug #: 42479
           Summary: stall causes problems in IE when its callback returns
                    something that's not a Deferred object
           Product: MediaWiki extensions
           Version: master
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: Unprioritized
         Component: E3 Experiments
        AssignedTo: wikibugs-l@lists.wikimedia.org
        ReportedBy: bjor...@wikimedia.org
                CC: asha...@wikimedia.org, oliv...@wikimedia.org,
                    sp...@wikimedia.org, swall...@wikimedia.org
    Classification: Unclassified
   Mobile Platform: ---


See [[en:Wikipedia:Village pump (technical)#Can't go directly to feedback
pages]].

The 'stall' method installs an event handler that calls a callback which is
expected to return a Deferred object, queues up a "re-fire the event" function
for when that Deferred object resolves, and then returns false for the original
event.

But if the callback returns something other than a Deferred object (e.g. as
AFTv5 does if $.aftTrack.clickTrackingOn is false), returns an already-resolved
Deferred object, or throws an exception, stall will try to re-fire the event
before the original event handler returns. This causes problems in IE at least
for the 'click' event, as the re-fired click is ignored.

Also, it seems if the Deferred object returned by the callback is rejected,
stall will never re-fire the event since it only attaches a "done" handler and
not a "fail" handler. I don't know whether or not this is intended behavior.

-- 
Configure bugmail: https://bugzilla.wikimedia.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
You are on the CC list for the bug.

_______________________________________________
Wikibugs-l mailing list
Wikibugs-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikibugs-l

Reply via email to