HomePhabricator

resourceloader: Add context param to ResourceLoaderModule::getDependencies

Authored by AndyRussG.

Description

resourceloader: Add context param to ResourceLoaderModule::getDependencies

By providing context as a parameter in getDependencies, we allow
modules to dyanamically determine dependencies based on context.
Note: To ease rollout, the parameter is optional in this patch. It is expected
that it will be made non-optional in the near future.

The use case is for CentralNotice campaigns to be able to add special
modules ahead of deciding which banner to show a user. The dynamically
chosen RL modules would replace ad-hoc JS currently sent with some banners.
A list of possible campaigns and banners is already sent as a PHP-
implemented RL module; that's the module that will dynamically choose other
modules as dependencies when appropriate. This approach will save a round
trip as compared to dynamically loading the modules client-side.

For compatibility, extensions that override
ResourceLoaderModule::getDependencies() should be updated with the new
method signature. Here are changes for extensions currently deployed on
Wikimedia wikis:

  • CentralNotice: I816bffa3815e2eab7e88cb04d1b345070e6aa15f
  • Gadgets: I0a10fb0cbf17d095ece493e744296caf13dcee02
  • EventLogging: I67e957f74d6ca48cfb9a41fb5144bcc78f885e50
  • PageTriage: Ica3ba32aa2fc76d11a44f391b6edfc871e7fbe0d
  • UniversalLanguageSelector: Ic63e617f51702c27104e123d4bed91983a726b7f
  • VisualEditor: I0ac775ca286e64825e31a9213b94648e41a5bc30

For more on the CentralNotice use case, please see I9f80edcbcacca2.

Bug: T98924
Change-Id: Iee61e5b527321d01287baa03ad9b4d4f526ff3ef

Details

Committed
KrinkleJun 9 2015, 2:10 AM
Parents
rMW6b0163391b29: Avoid parser cache miss that often occurs post-save
Branches
Unknown
Tags
Unknown
ChangeId
Iee61e5b527321d01287baa03ad9b4d4f526ff3ef