Merge "instrumentation: Avoid user.sessionId() if possible, since it sets a cookie"

This commit is contained in:
jenkins-bot 2024-07-18 13:47:53 +00:00 committed by Gerrit Code Review
commit 319d1a14f7
4 changed files with 14 additions and 6 deletions

Binary file not shown.

Binary file not shown.

View file

@ -17,6 +17,10 @@
*/ */
export function isEnabled( user, config, experiments ) { export function isEnabled( user, config, experiments ) {
const bucketingRate = config.get( 'wgPopupsStatsvSamplingRate', 0 ); const bucketingRate = config.get( 'wgPopupsStatsvSamplingRate', 0 );
if ( bucketingRate === 0 || bucketingRate === 1 ) {
// Avoid calling user.sessionId() if possible, since it sets a cookie
return !!bucketingRate;
}
return experiments.weightedBoolean( return experiments.weightedBoolean(
'ext.Popups.statsv', 'ext.Popups.statsv',

View file

@ -34,11 +34,15 @@ QUnit.test( '#isEnabled', function ( assert ) {
config.delete( 'wgPopupsStatsvSamplingRate' ); config.delete( 'wgPopupsStatsvSamplingRate' );
isEnabled( user, config, experiments ); const defaultResult = isEnabled( user, config, experiments );
assert.strictEqual(
assert.deepEqual( defaultResult,
weightedBooleanStub.getCall( 1 ).args[ 1 ], false,
0, 'The bucketing is disabled by default.'
'The bucketing rate should be 0 by default.' );
assert.strictEqual(
weightedBooleanStub.callCount,
1,
'The experiments object is not called when bucketing rate is the default 0.'
); );
} ); } );