From 63416b009fb82efdfced17ef08a12019329daea4 Mon Sep 17 00:00:00 2001 From: Timo Tijhof Date: Wed, 21 Sep 2016 00:01:16 +0100 Subject: [PATCH] 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 --- resources/src/mediawiki/mediawiki.requestIdleCallback.js | 4 ++++ .../resources/mediawiki/mediawiki.requestIdleCallback.test.js | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) 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(); -- 2.20.1