mediawiki.requestIdleCallback: Re-enable use of native requestIdleCallback
authorTimo Tijhof <krinklemail@gmail.com>
Tue, 21 Feb 2017 22:43:46 +0000 (14:43 -0800)
committerTimo Tijhof <krinklemail@gmail.com>
Tue, 21 Feb 2017 22:46:08 +0000 (14:46 -0800)
Follows-up 63416b009fb82e, which disabled this due to a Chrome
bug that caused it to sometimes not schedule callbacks for a period
upto 30 seconds.

<https://bugs.chromium.org/p/chromium/issues/detail?id=647870>

This issue since been closed and I can no longer reproduce it
using a demo at <http://codepen.io/Krinkle/full/XNGEvv>.

Change-Id: I4e8dc21e6106e1d2474daed0f25712fd5a7e46f8

resources/src/mediawiki/mediawiki.requestIdleCallback.js

index d414232..6a6aa15 100644 (file)
         *  immediate execution after this amount of time (in milliseconds) if it didn't run
         *  by that time.
         */
-       mw.requestIdleCallback = mw.requestIdleCallbackInternal;
-       /*
-       // XXX: Polyfill disabled due to https://bugs.chromium.org/p/chromium/issues/detail?id=647870
-       mw.requestIdleCallback = window.requestIdleCallback
+       mw.requestIdleCallback = window.requestIdleCallback ?
                // Bind because it throws TypeError if context is not window
-               ? window.requestIdleCallback.bind( window )
-               : mw.requestIdleCallbackInternal;
-       */
+               window.requestIdleCallback.bind( window ) :
+               mw.requestIdleCallbackInternal;
+       // Note: Polyfill was previously disabled due to
+       // https://bugs.chromium.org/p/chromium/issues/detail?id=647870
+       // See also <http://codepen.io/Krinkle/full/XNGEvv>
 }( mediaWiki ) );