From 85a48d8fec56f6ea736d7ddb4b46e412be286925 Mon Sep 17 00:00:00 2001 From: Fomafix Date: Wed, 19 Apr 2017 09:21:02 +0200 Subject: [PATCH] mediawiki.user: Remove deprecated mw.user.bucket The function mw.user.bucket is already deprecated since MediaWiki 1.23. Change-Id: I2589dc7ce94004504a7aad080374877391f20057 --- RELEASE-NOTES-1.30 | 1 + resources/Resources.php | 1 - .../src/mediawiki/mediawiki.experiments.js | 2 - resources/src/mediawiki/mediawiki.user.js | 77 ------------------- 4 files changed, 1 insertion(+), 80 deletions(-) diff --git a/RELEASE-NOTES-1.30 b/RELEASE-NOTES-1.30 index 244bd16d61..fffa109bb5 100644 --- a/RELEASE-NOTES-1.30 +++ b/RELEASE-NOTES-1.30 @@ -42,6 +42,7 @@ changes to languages because of Phabricator reports. * The use of an associative array for $wgProxyList, where the IP address is in the key instead of the value, is deprecated (e.g. [ '127.0.0.1' => 'value' ]). Please convert these arrays to indexed/sequential ones (e.g. [ '127.0.0.1' ]). +* mw.user.bucket (deprecated in 1.23) was removed. == Compatibility == MediaWiki 1.30 requires PHP 5.5.9 or later. There is experimental support for diff --git a/resources/Resources.php b/resources/Resources.php index d0a34470d6..eabe42f91d 100644 --- a/resources/Resources.php +++ b/resources/Resources.php @@ -1351,7 +1351,6 @@ return [ 'dependencies' => [ 'mediawiki.api', 'mediawiki.api.user', - 'mediawiki.cookie', 'mediawiki.storage', 'user.options', 'user.tokens', diff --git a/resources/src/mediawiki/mediawiki.experiments.js b/resources/src/mediawiki/mediawiki.experiments.js index 0c9ea97c14..4fedbeaea9 100644 --- a/resources/src/mediawiki/mediawiki.experiments.js +++ b/resources/src/mediawiki/mediawiki.experiments.js @@ -66,8 +66,6 @@ * assigned to either the A or B buckets. If the experiment were disabled, * then the user would always be assigned to the control bucket. * - * This function is based on the deprecated `mw.user.bucket` function. - * * @param {Object} experiment * @param {string} experiment.name The name of the experiment * @param {boolean} experiment.enabled Whether or not the experiment is diff --git a/resources/src/mediawiki/mediawiki.user.js b/resources/src/mediawiki/mediawiki.user.js index d1fa84aa27..65e9e4168d 100644 --- a/resources/src/mediawiki/mediawiki.user.js +++ b/resources/src/mediawiki/mediawiki.user.js @@ -145,83 +145,6 @@ return mw.user.getName() || mw.user.sessionId(); }, - /** - * Get the user's bucket (place them in one if not done already) - * - * mw.user.bucket( 'test', { - * buckets: { ignored: 50, control: 25, test: 25 }, - * version: 1, - * expires: 7 - * } ); - * - * @deprecated since 1.23 - * @param {string} key Name of bucket - * @param {Object} options Bucket configuration options - * @param {Object} options.buckets List of bucket-name/relative-probability pairs (required, - * must have at least one pair) - * @param {number} [options.version=0] Version of bucket test, changing this forces - * rebucketing - * @param {number} [options.expires=30] Length of time (in days) until the user gets - * rebucketed - * @return {string} Bucket name - the randomly chosen key of the `options.buckets` object - */ - bucket: function ( key, options ) { - var cookie, parts, version, bucket, - range, k, rand, total; - - options = $.extend( { - buckets: {}, - version: 0, - expires: 30 - }, options || {} ); - - cookie = mw.cookie.get( 'mwuser-bucket:' + key ); - - // Bucket information is stored as 2 integers, together as version:bucket like: "1:2" - if ( typeof cookie === 'string' && cookie.length > 2 && cookie.indexOf( ':' ) !== -1 ) { - parts = cookie.split( ':' ); - if ( parts.length > 1 && Number( parts[ 0 ] ) === options.version ) { - version = Number( parts[ 0 ] ); - bucket = String( parts[ 1 ] ); - } - } - - if ( bucket === undefined ) { - if ( !$.isPlainObject( options.buckets ) ) { - throw new Error( 'Invalid bucket. Object expected for options.buckets.' ); - } - - version = Number( options.version ); - - // Find range - range = 0; - for ( k in options.buckets ) { - range += options.buckets[ k ]; - } - - // Select random value within range - rand = Math.random() * range; - - // Determine which bucket the value landed in - total = 0; - for ( k in options.buckets ) { - bucket = k; - total += options.buckets[ k ]; - if ( total >= rand ) { - break; - } - } - - mw.cookie.set( - 'mwuser-bucket:' + key, - version + ':' + bucket, - { expires: Number( options.expires ) * 86400 } - ); - } - - return bucket; - }, - /** * Get the current user's groups * -- 2.20.1