Implicitly marking parameter $... as nullable is deprecated in php8.4,
the explicit nullable type must be used instead
Created with autofix from Ide15839e98a6229c22584d1c1c88c690982e1d7a
Break one long line in SpecialPage.php
Bug: T376276
Change-Id: I807257b2ba1ab2744ab74d9572c9c3d3ac2a968e
A constant is not a variable. The type is hard-coded via the value
and can never change. While the extra @var probably doesn't hurt much,
it's redundant and error-prone and can't provide any additional
information.
Change-Id: Iee1f36a1905d9b9c6b26d0684b7848571f0c1733
This never worked because it looked for `element` instead of `elements`.
The test repeated the same mistake.
Bug: T278576
Bug: T255717
Change-Id: I9bfceb6b8bd761244af6eda0e2ae08e98238aa76
While not documented or tested, aliases previously not only adding
but also replaced values.
Instead, emit a warning to inform skin developers of this conflict.
Note that the `content-links => elements` alias already behaves
this way (only if not already set), which the other aliases would
now be consistent with.
Change-Id: I66ae66b37bba14b2f65710f3d32f17d4e9a5a7a3
* Function alls are either complete on one line or one arg
per line. Avoid confusing calls where the args are on their
own line as this creates visual ambiguity over how many args
are passed, and what each piece belongs to. For example, is
`true` or `false` passed as 2nd arg to applyFeaturesCompatibility?
* Replace comment about list-form behaviour with something that
provides intention and insight instead of merely repeating what
can already be seen from the code.
* Fix malformed `@param` docs that used variable as part of sentence.
* Use named data providers to ease PHPUnit debugging,
and to make code coverage reports on doc.wikimedia.org more useful.
Change-Id: I2efd6cc7ac59c80684c9411025c4226473a36d43
* Move docs for deprecated aliases from top-level mentions into
footnotes under primary docs. Still easy to search for, but no
longer advertised as important for skin devs to know about
or scan past when reading.
* Fix bug in 'legacy' logic where the key was not unset, thus
mandating a needless entry in FEATURES constant. With the bug
fixed, this internal entry is no longer needed.
* Fix bug in 'interface' logic where the key was not unset
when the value is false. This would break the "skins.vector.styles"
module otherwise, and had a similar workaround in place that
is now no longer needed.
* Remove other unneeded entries in FEATURES for keys that were
already being unset by applyFeaturesCompatibility().
* Remove deprecation warnings in favour of letting ResourceModules
give a stable interface from ResourceLoader to skin.json.
* Add missing test to confirm no-op behaviour.
Bug: T374262
Change-Id: I9f4b1d48127d0afe67bada44d8dc4472507f9506
* Corrects the previous deprecation to restore backwards compatible functionality to i18n-all-lists-margins for skin developers without
any change on their part.
* Updates deprecation message to give clearer next steps.
Bug: T369475
Change-Id: I98696b4a52838a4836320a491430e669e3a5d1e1
For years we had to carefully use mw-content-ltr and mw-content-rtl
subsections to make description, ordered and unordered lists margin
values to work in LTR and RTL mixed content as expected. Now with the
widespread existence of CSS Logical
https://caniuse.com/?search=css-logical
such workarounds aren't needed as now we can just define styles in a
direction aware way.
The only problem is that older browsers which don't support
CSS Logical, that's why this change actually keeps compatibility
margin values for them so they can just ignore those new properties
and the remaining issue will be the support of nested directions for
that older browsers which should be negligible given the benefits
for the newer browsers such as the support of more than two layers
of direction changes (happens in multilingual wikis such as Commons
but rarely) and the fact margin values now will be correct even when
`mw-content-{ltr,rtl}` classes aren't used correctly by the templates
in wikis (which happens more commonly).
The purposed change uses https://caniuse.com/?search=margin-block-start
over https://caniuse.com/?search=margin-block which has even slightly
better browser support.
This change deprecates `i18n-all-lists-margins` module of SkinModule
as now just including of the `elements` module is enough.
Bug: T369475
Change-Id: I404710209d59241991716bb7180bcaabcafffcec
Changes SkinModule::getStyles to output config features
first, then skin customization styles last. This requires
using the ResourceLoader::makeCombinedStyles method to
first combine feature styles, then combine style related styles,
and return the concatenated result in SkinModule::getStyles().
The resulting stylesheet ordering is changed so that all
skin customization styles are always output after core styles,
which allows skins to override core-styles via cascade order instead
of increased specificity.
Previous output order:
- all (core+custom)
- print (core+custom)
- screen (core+custom)
- other custom
New output order:
- all (core)
- print (core)
- screen (core)
- other (core)
- all (custom)
- print (custom)
- screen (custom)
- other (custom)
SkinModule is refactored to separate logo-related style
generation, as well as skin feature generation, in order to maintain
testability. Tests are also refactored to better cover different
skin feature configurations.
Bug: T354975
Change-Id: I261742c0ae4c3d57353bf1854af66f39df6132f7
This reverts commit afdc92987f.
Also reverts Ib44687b which was a follow-up.
Reason for revert: Caused T357929
Bug: T357929
Bug: T354975
Change-Id: Ic6d0b472cc2b26cb7c375bf9a5d2e03a4d6c6a18
Reorders ResourceLoader\\SkinModule style output so that all styles
produced by skins are output after styles that are produces by
skin "features" such as normalize.
Refactors & expands SkinModuleTest.php to include tests for default
values, print styles and correct style ordering.
Bug: T354975
Change-Id: I0000b4ad8eb2de40be293f0e693d873c282ea785
It has been deprecated since 1.35, hard deprecated since at least I9776d11d4e2d184
No grep result in wmf-config
Change-Id: I2c67bab3e3212f25a0cbce7301f5e32a082f76da
Since the default for wgParserEnableLegacyMediaDOM is now `false`, this
config will also be set to `false` and wikis can enable it while it's
still necessary.
The plan will be to gradually roll this change out, as was done for
wgParserEnableLegacyMediaDOM, to develop a migration path for templates
and extensions that mimic the legacy media output.
We can start on officewiki.
Bug: T318433
Change-Id: I70e537b2beb99de9a41e7dc66a0d60a508009887
Creates a new resourceLoader module which holds the
scripts and styles related to the temp user (IP masking) banner
described in T339379.
The temp user banner includes a tooltip which explains
what temporary accounts are. This is built using OO.ui.PopupWidget
and includes a clock icon and parsed i18n messages.
The Tooltip dependencies are loaded and instantiated on a click event
in order to minimize the dependencies on page load.
Bug: T339379
Change-Id: Ie2631221b0a07dd3bf55e970805d30fbb3cac190
Depends-on: Id5a4a9a00e50420c50868c54f899d36d7ddd373d
Depends-on: Icf622c4be910f5d14de95355efa02c05930179bf
This will allow interfaces using Codex to style message boxes
consistently on the server side.
Skins can now remove the ResourceLoaderSkin message box module
and instead load the codex-styles module.
Since certain JavaScript may be looking for the existing classes,
these are retained for now (this prevents Selenium tests failing)
Depends-On: I3959c8f8d4c7bbe019f5e3b356649b5b7dc88907
Depends-On: I45c60e9f5cbb57eae61c9487f120b9165bf5a190
Bug: T326587
Change-Id: I16d8f53b9a83a468acdb3803044f6c4e9d5dfeeb
Creates a new skin component for informing users with
temporary accounts that they can login or register if they choose.
Adds:
- New skin component: SkinComponentTempUserBanner.php
- Skin feature: "temp-user-banner"
- Associated styles
- New i18n messages for banner
NOTE: This component is not registered via the skinComponentRegistry
because it doesn't output any data, only a string of HTML.
Instead it is appended to the body element before the skin is rendered.
Bug: T330510
Change-Id: I1e137dbd29f3c73efac901f43f8a8258e2a111fc
All the *Module classes end up inheriting from ResourceLoader/Module, so
we only need to define the targets there.
Bug: T127268
Bug: T328497
Change-Id: I12b126377cea78b88269e6efe68f92f3586c4ecc
While working on the site notice in Vector we've noticed these
styles are proving more problematic than helpful so splitting these
up allows us more granularity in the styles we ship.
The core interface styles are now enabled by default as they contain
important logic relating to empty portlets and the print footer
Bug: T316027
Change-Id: Ib5ae640bb260cee46e654228b785c776722c7003
This was added as a workaround for the invalid values committed to
Beta Cluster config in I021e7b4003a. As I wrote then, boolean false
is not a valid value there for SkinModule. Instead of fixing this,
it was worked around in core with 4de725083 (Ie86a5b59).
Thiemo and Tim fixed the invalid Beta config last week with
164945371a (Id2712e2a), which was done as part of fixing outstanding
PHP 7.4 warnings, because despite the core workaround above, another
change to SkinModule later on introduced the same reasonable
assumption in another part of the code, that it would not be
invalid/false, but only null or string.
See also CR at:
* <https://gerrit.wikimedia.org/r/663263> (invalid config)
* <https://gerrit.wikimedia.org/r/719308> (original core change)
* <https://gerrit.wikimedia.org/r/719500> (revert core change)
Bug: T207038
Bug: T310767
Change-Id: Ieeff6198dff34de16dadb5c0347dbdae7bcf3a08
Fix notice on PHP 7.4+ when the wordmark is false. It is false on the
beta cluster and Mustache doesn't mind if it is false. Update docs.
Use !empty($x) as a shortcut for isset($x) && $x in two nearby places.
Bug: T310767
Change-Id: Ie33f8edf075f1216881428ec6aa29cae1dac4e64
Move ResourceLoader classes to their own namespace. Strip the
"ResourceLoader" prefix from all except ResourceLoader itself.
Move the tests by analogy.
I used a namespace alias "RL" in some callers since RL\Module is less
ambiguous at the call site than just "Module".
I did not address DependencyStore which continues to have a non-standard
location and namespace.
Revert of a241d83e0a.
Bug: T308718
Change-Id: Id08a220e1d6085e2b33f3f6c9d0e3935a4204659
This reverts commit e08ea8ccb9.
Reason for revert: Breaks Phan in extensions, and as far as I’m aware,
this change isn’t urgently needed for anything, so the simplest fix is
to revert it again for now. After PHP 7.4 it should be safer to try this
again (we hopefully won’t need the two “hack” classes by then).
Bug: T308443
Change-Id: Iff3318cbf97a67f821f78e60da62a583f63e389e
Move ResourceLoader classes to their own namespace. Strip the
"ResourceLoader" prefix from all except ResourceLoader and
ResourceLoaderContext.
Move the tests by analogy.
I used a namespace alias "RL" in some callers since RL\Module is less
ambiguous at the call site than just "Module".
I did not address DependencyStore which continues to have a non-standard
location and namespace.
Change-Id: I92998ae6a82e0b935c13e02a183e7c324fa410a3
2022-05-16 14:41:27 +10:00
Renamed from includes/resourceloader/ResourceLoaderSkinModule.php (Browse further)