From: Timo Tijhof Date: Tue, 20 Sep 2016 23:01:16 +0000 (+0100) Subject: mediawiki.requestIdleCallback: Avoid native window.requestIdleCallback X-Git-Tag: 1.31.0-rc.0~5432^2 X-Git-Url: http://git.cyclocoop.org/%22%24script/%7B%7B%20url_for%28?a=commitdiff_plain;h=63416b009fb82efdfced17ef08a12019329daea4;p=lhc%2Fweb%2Fwiklou.git mediawiki.requestIdleCallback: Avoid native window.requestIdleCallback Follows-up 482ad8d9fb. This currently has bugs in Chrome that can cause it to not get called for up to 30 seconds. https://bugs.chromium.org/p/chromium/issues/detail?id=647870 Change-Id: I221cd6c2bcdbee89bc7401c071f2ab1865a738ed --- diff --git a/resources/src/mediawiki/mediawiki.requestIdleCallback.js b/resources/src/mediawiki/mediawiki.requestIdleCallback.js index dfc98add44..b58cb69eb2 100644 --- a/resources/src/mediawiki/mediawiki.requestIdleCallback.js +++ b/resources/src/mediawiki/mediawiki.requestIdleCallback.js @@ -24,8 +24,12 @@ * @member mw * @param {Function} callback */ + mw.requestIdleCallback = mw.requestIdleCallbackInternal; + /* + // XXX: Polyfill disabled due to https://bugs.chromium.org/p/chromium/issues/detail?id=647870 mw.requestIdleCallback = window.requestIdleCallback // Bind because it throws TypeError if context is not window ? window.requestIdleCallback.bind( window ) : mw.requestIdleCallbackInternal; + */ }( mediaWiki ) ); diff --git a/tests/qunit/suites/resources/mediawiki/mediawiki.requestIdleCallback.test.js b/tests/qunit/suites/resources/mediawiki/mediawiki.requestIdleCallback.test.js index 7a0996496a..df02693bff 100644 --- a/tests/qunit/suites/resources/mediawiki/mediawiki.requestIdleCallback.test.js +++ b/tests/qunit/suites/resources/mediawiki/mediawiki.requestIdleCallback.test.js @@ -95,8 +95,9 @@ if ( window.requestIdleCallback ) { QUnit.test( 'native', function ( assert ) { var done = assert.async(); - // Remove polyfill + // Remove polyfill and clock stub mw.requestIdleCallback.restore(); + this.clock.restore(); mw.requestIdleCallback( function () { assert.expect( 0 ); done();