Commit graph

10 commits

Author SHA1 Message Date
Kunal Mehta
679589828c registration: Allow protocol-relative links in "url" field
Bug: T93010
Change-Id: I626fb5528b41910d859d8596a8ad350f94c1082e
2017-07-17 10:13:49 -07:00
Bartosz Dziewoński
c8ad83310f Refactor registration of OOjs UI resource modules
includes/resourceloader/ResourceLoaderOOUIModule.php
* New trait centralizing some logic for dealing with OOjs UI themes,
  previously duplicated in OutputPage, ResourcesOOUI.php and
  ResourceLoaderOOUIImageModule.
* Follow-up change I74362f0fc215b26f1f104ce7bdbbac1e106736ad uses this
  as a base to allow skins/extensions to define new OOjs UI themes.

resources/Resources.php
resources/ResourcesOOUI.php
includes/resourceloader/ResourceLoader.php
* OOjs UI resource module definitions are moved back to their rightly
  place in Resources.php. They are again (almost) normal and static.
* Theme-specific logic is now handled by the module code, definitions
  only specify 'themeScripts'/'themeStyles'/'themeImages'.
* ResourcesOOUI.php is deleted and no longer loaded by ResourceLoader.

includes/resourceloader/ResourceLoaderOOUIFileModule.php
includes/resourceloader/ResourceLoaderOOUIImageModule.php
* Glue code previously existing in ResourcesOOUI.php now lives here.
* Use the ResourceLoaderOOUIModule trait to avoid code duplication.

Change-Id: I39cc2a735d9625c87bf4ede6f5fb0ec441d47dcc
2017-06-01 17:04:05 +02:00
daniel
2b3762ecb4 resourceloader: Allow modules to be registered via a factory callback
This should work the same way as registering API modules via a factory callback.
Point in case: Ifb8611473a971 could avoid global state using this mechanism.

Change-Id: Ifbf29006141ce2a2dff42efa352f406502a06bc6
2017-05-21 17:12:37 +00:00
jenkins-bot
5891a2e733 Merge "registration: Move attributes out of the top level" 2017-05-16 04:00:28 +00:00
Kunal Mehta
fdb7e94104 registration: Move attributes out of the top level
This moves attributes out of the top level, and namespaces them under
each extension. If the extension that it belongs to is not installed,
the attribute is not exported and dropped.

The full name of the attribute is the name of the extension plus the
name of the attribute key. This enforces the recommendation that the
attribute name start with the extension's name.

Add test coverage for attributes under manifest_version 1 and 2.

Bug: T133627
Depends-On: I5a148763f68989c8da313a4fb1d0213658ee4495
Depends-On: I5a148763f68989c8da313a4fb1d0213658ee4459
Change-Id: I8613a027c56e2c9d2c6a83ca14749eb1c8fc23be
2017-05-15 20:09:50 -07:00
Lucas Werkmeister
a57252a1f5 Allow callback functions for creating jobs
$wgJobClasses can now specify a factory function for creating a job,
instead of a class to be instantiated directly. This makes it possible
to inject services in a job constructor, and register a factory function
that calls the constructor with default services.

This follows Ieb85493a7765 and Ia2107dc5af78, which introduced factory
functions for API modules and special pages.

Change-Id: I0461e59da2a8fa6681e3b1fcdfc38bfed7f3ac32
2017-05-09 19:26:13 +02:00
Florian Schmidt
1e26089f18 registration: Allow documenting config settings with i18n messages
In addition to the general (English) description key in a config
option in extension.json, developers now can provide a description message
key. This localized message will be used in user interfaces, such as 
viewing configuration options on-wiki (see later changes).

Bug: T155157
Change-Id: I5c780b3347bd54a05694cfa6de93879656b4e921
2017-03-07 07:29:32 +00:00
Florian Schmidt
2bd6cb81d1 registration: Allow specifying the value of a config setting can be public
This value is currently unused but will be used in later changes
for allowing to view configuration options on-wiki. It will require each
extension maintainer to whitelist the keys that can be published by marking
them as public.

Bug: T155156
Change-Id: I020c148157818ef8bfee0e79cb5a6f43181c5a8c
2017-03-07 07:27:35 +00:00
Umherirrender
ff9d0dea45 registration: Don't allow extra properties in "requires"
VersionChecker is using a switch with a exception in the default path,
which makes it very unhappy to see additional properties.

Change-Id: Ief84497de6b2fa2d2715fc713088bee66c21fdc0
2017-01-29 23:59:10 -08:00
Kunal Mehta
b6d43206a6 registration: Always specify version number in extension.schema.json file
Instead of having the current version of the schema live at
extension.schema.json, always include a version number in it. This
simplifies both the code, and makes merging, cherry-picks, rebasing,
etc. easier when the current schema version changes.

Change-Id: I1b5ef4ced1eb34b8bdda7ba9b3f086b1997b704c
2016-12-16 11:47:15 -08:00
Renamed from docs/extension.schema.json (Browse further)