Page MenuHomePhabricator

JS SDK: Read everyone experiment enrollment from the WMF-Uniq server timing header
Closed, ResolvedPublic5 Estimated Story Points

Description

Currently, the cache sends experiment enrollment information to the app servers, which process it, merge it with enrollment information for logged-in experiments, and send all experiment enrollment to the client to initialize the JS SDK. However, the app servers will likely not be involved in serving requests enrolled in non-cache-splitting everyone experiments. Fortunately, the cache sends experiment enrollment information to the browser in the WMF-Uniq server timing header. Therefore, the JS SDK must be updated to get everyone experiment enrollment information from the WMF-Uniq Server-Timing header.

AC

  • The JS gets enrollment information for everyone experiments from the WMF-Uniq server timing header
  • The JS SDK detects experiments that don't have CSS classes added to the <body> element and adds them

Requirements

  • QA?
  • Documentation?

Notes

  1. The PHP SDK will still need to read the X-Experiment-Enrollments header to get enrollment information for cache-splitting experiments

Event Timeline

KReid-WMF set the point value for this task to 5.

Change #1260689 had a related patch set uploaded (by Phuedx; author: Phuedx):

[mediawiki/extensions/TestKitchen@master] ext.testKitchen: Implement non-cache-splitting experiments

https://gerrit.wikimedia.org/r/1260689

Change #1276601 had a related patch set uploaded (by Phuedx; author: Phuedx):

[mediawiki/extensions/TestKitchen@master] JS SDK: Alias mw.testKitchen.getExperiment() as mw.testKitchen.compat.getExperiment()

https://gerrit.wikimedia.org/r/1276601

Change #1276608 had a related patch set uploaded (by Phuedx; author: Phuedx):

[mediawiki/extensions/WikimediaEvents@master] mw.testKitchen.getExperiment() -> mw.testKitchen.compat.getExperiment()

https://gerrit.wikimedia.org/r/1276608

Change #1276609 had a related patch set uploaded (by Phuedx; author: Phuedx):

[mediawiki/extensions/GrowthExperiments@master] mw.testKitchen.getExperiment() -> mw.testKitchen.compat.getExperiment()

https://gerrit.wikimedia.org/r/1276609

Change #1276610 had a related patch set uploaded (by Phuedx; author: Phuedx):

[mediawiki/extensions/ReaderExperiments@master] mw.testKitchen.getExperiment() -> mw.testKitchen.compat.getExperiment()

https://gerrit.wikimedia.org/r/1276610

Change #1276611 had a related patch set uploaded (by Phuedx; author: Phuedx):

[mediawiki/extensions/MobileFrontend@master] mw.testKitchen.getExperiment() -> mw.testKitchen.compat.getExperiment()

https://gerrit.wikimedia.org/r/1276611

Change #1276613 had a related patch set uploaded (by Phuedx; author: Phuedx):

[mediawiki/core@master] mw.testKitchen.getExperiment() -> mw.testKitchen.compat.getExperiment()

https://gerrit.wikimedia.org/r/1276613

Change #1276614 had a related patch set uploaded (by Phuedx; author: Phuedx):

[mediawiki/extensions/Cite@master] mw.testKitchen.getExperiment() -> mw.testKitchen.compat.getExperiment()

https://gerrit.wikimedia.org/r/1276614

Change #1276601 merged by jenkins-bot:

[mediawiki/extensions/TestKitchen@master] JS SDK: Add aliases for compatibility with existing experiment code

https://gerrit.wikimedia.org/r/1276601

Change #1277656 had a related patch set uploaded (by Santiago Faci; author: Phuedx):

[mediawiki/extensions/TestKitchen@wmf/1.46.0-wmf.24] JS SDK: Add aliases for compatibility with existing experiment code

https://gerrit.wikimedia.org/r/1277656

Change #1277656 merged by jenkins-bot:

[mediawiki/extensions/TestKitchen@wmf/1.46.0-wmf.24] JS SDK: Add aliases for compatibility with existing experiment code

https://gerrit.wikimedia.org/r/1277656

Mentioned in SAL (#wikimedia-operations) [2026-04-27T20:10:15Z] <dancy@deploy1003> Started scap sync-world: Backport for [[gerrit:1277656|JS SDK: Add aliases for compatibility with existing experiment code (T419513)]]

Mentioned in SAL (#wikimedia-operations) [2026-04-27T20:11:51Z] <dancy@deploy1003> dancy, sfaci: Backport for [[gerrit:1277656|JS SDK: Add aliases for compatibility with existing experiment code (T419513)]] synced to the testservers (see https://wikitech.wikimedia.org/wiki/Mwdebug). Changes can now be verified there.

Mentioned in SAL (#wikimedia-operations) [2026-04-27T20:16:54Z] <dancy@deploy1003> Finished scap sync-world: Backport for [[gerrit:1277656|JS SDK: Add aliases for compatibility with existing experiment code (T419513)]] (duration: 06m 38s)

Change #1276614 merged by jenkins-bot:

[mediawiki/extensions/Cite@master] mw.testKitchen.getExperiment() -> mw.testKitchen.compat.getExperiment()

https://gerrit.wikimedia.org/r/1276614

Change #1276608 merged by jenkins-bot:

[mediawiki/extensions/WikimediaEvents@master] mw.testKitchen.getExperiment() -> mw.testKitchen.compat.getExperiment()

https://gerrit.wikimedia.org/r/1276608

Change #1276610 merged by jenkins-bot:

[mediawiki/extensions/ReaderExperiments@master] mw.testKitchen.getExperiment() -> mw.testKitchen.compat.getExperiment()

https://gerrit.wikimedia.org/r/1276610

Change #1276611 merged by jenkins-bot:

[mediawiki/extensions/MobileFrontend@master] mw.testKitchen.getExperiment() -> mw.testKitchen.compat.getExperiment()

https://gerrit.wikimedia.org/r/1276611

Change #1276613 merged by jenkins-bot:

[mediawiki/core@master] mw.testKitchen.getExperiment() -> mw.testKitchen.compat.getExperiment()

https://gerrit.wikimedia.org/r/1276613

Change #1276609 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] mw.testKitchen.getExperiment() -> mw.testKitchen.compat.getExperiment()

https://gerrit.wikimedia.org/r/1276609

Change #1260689 merged by jenkins-bot:

[mediawiki/extensions/TestKitchen@master] ext.testKitchen: Implement non-cache-splitting experiments

https://gerrit.wikimedia.org/r/1260689

Change #1280198 had a related patch set uploaded (by Santiago Faci; author: Santiago Faci):

[mediawiki/extensions/ReportIncident@master] mw.testKitchen.getExperiment() -> mw.testKitchen.compat.getExperiment()

https://gerrit.wikimedia.org/r/1280198

Change #1280198 merged by jenkins-bot:

[mediawiki/extensions/ReportIncident@master] mw.testKitchen.getExperiment() -> mw.testKitchen.compat.getExperiment()

https://gerrit.wikimedia.org/r/1280198

Change #1280210 had a related patch set uploaded (by Phuedx; author: Santiago Faci):

[mediawiki/extensions/ReportIncident@wmf/1.46.0-wmf.26] mw.testKitchen.getExperiment() -> mw.testKitchen.compat.getExperiment()

https://gerrit.wikimedia.org/r/1280210

Change #1280210 abandoned by Phuedx:

[mediawiki/extensions/ReportIncident@wmf/1.46.0-wmf.26] mw.testKitchen.getExperiment() -> mw.testKitchen.compat.getExperiment()

Reason:

My understanding is that this can be abandoned since the experiment rode this week's train. Being bold.

https://gerrit.wikimedia.org/r/1280210