Commit graph

60 commits

Author SHA1 Message Date
Timo Tijhof
245bdafd9e resourceloader: Add wikimedia/minify package and remove local copies
- JavaScriptMinifier: The public interface for this internal class is
  ResourceLoader::filter which, except for one caller (minify.php)
  is indeed consistently used already, no other callers need replacing.

- CSSMin: Idem for minification, however, this class has some other
  method as well, which have a number of internal users, but none
  outside core. These have all been replaced in this commit.

- Remove pear/net_url2 as own dependency as this was only used by CSSMin
  and recently added there. This is now a dependency of wikimedia/minify
  instead. This was not part of the public API and no longer mentioned
  here in composer.json or RELEASE-NOTES. (It remains pinned in
  mediawiki-vendor, however.)

Bug: T273247
Depends-On: Iadff8c2112d5e53bd994ab4882006e8c644a2379
Depends-On: Id3c6dcc0b952a9efe34b3a9ed88b716101a51f87
Depends-On: I589be910f57289fd908b22db87241b0e52da60d4
Change-Id: I8d71fc64aeecdb31db218b02e361ae9bb0d19b48
2021-02-24 21:03:02 +00:00
Umherirrender
8de3b7d324 Use static closures where safe to use
This is micro-optimization of closure code to avoid binding the closure
to $this where it is not needed.

Created by I25a17fb22b6b669e817317a0f45051ae9c608208

Change-Id: I0ffc6200f6c6693d78a3151cb8cea7dce7c21653
2021-02-11 00:13:52 +00:00
jdlrobson
f1457312dc Feature file styles should precede module defined ones
In the case of Monobook, Monobook styles were overriding a
normalize rule and failing to work.

Bug: T269618
Change-Id: Ifa346f60e3a50d874e68043dc4dece3fd8b41aa3
2021-01-12 14:04:02 -08:00
jenkins-bot
fc86a363d1 Merge "Unknown features shouldn't break style output" 2021-01-08 20:59:15 +00:00
jdlrobson
0102f3affa Respect lessMessages option
Uncovered while working on a side project. If the option has been
set, it should be merged with the ResourceLoaderSkinModule property.
It should not replace it.

Change-Id: I413c862afe7e5266ab9f2635211fac635bcd786d
2021-01-08 01:07:55 +00:00
jdlrobson
381499a675 Unknown features shouldn't break style output
If a new feature is added, it should be safe for skins to use it
without breaking their backwards compatibility.

For example if the normalize feature in 1.36 is being used a skin
should be able to use it, and then using version_compare add additional
styles for older versions of mediawiki

Bug: T271441
Change-Id: I074415970455ef701b48d11ff97c01af24197eeb
2021-01-07 09:18:18 -08:00
jdlrobson
4a287f9217 ResourceLoaderSkinModule defines the order of feature styles
Previously, the order of styles outputted by this module was
arbitrary, based on the order of the feature files passed in.

This was not how it was intended to work - the ResourceLoaderSkinModule
should be aware of the correct ordering.

In the case of normalize for example - it should always be the first
file output.

The implementation is adapted to check for valid features once in
the constructor and to also consider a DEFAULT_FEATURES value has been
set.

We  use the FEATURE_FILES constant to determine
the order of CSS output.

This is all documented in the class.

Bug: T269618
Change-Id: Iecbf11b5f09882e55d694651210d6d132d3cd412
2020-12-15 02:11:22 +00:00
Arlo Breault
a6c769e976 Share Parsoid's media styling with content
Since the legacy parser will also be emitting the new media structure
that requires these styles.  For now, the feature is only shipped by
default when $wgUseNewMediaStructure is enabled.

Bug: T51097
Bug: T266148
Change-Id: Id20d716ce145e0bae37621fd6e218a793b5332ae
2020-12-11 11:47:00 -05:00
jdlrobson
977a9754b2 Convert mediawiki.skinning/content.css to a LESS file
Simple rename.
This is needed in preparation for
Id20d716ce145e0bae37621fd6e218a793b5332ae

Change-Id: Ic7ae922ae6529c1804178fbe8016736600115a0b
2020-12-09 10:12:15 -08:00
jenkins-bot
94790a79b9 Merge "The mediawiki.skinning.content.externallinks styles are moved into ResourceLoaderSkinModule" 2020-12-04 22:39:11 +00:00
jdlrobson
63c4125a29 The mediawiki.skinning.content.externallinks styles are moved into ResourceLoaderSkinModule
Going forward all skins will have a single ResourceLoader module
defining their styles.

This deprecates the module moving its functionality into ResourceLoaderSkinModule.
Skins can continue to get those styles by enabling the new feature in their
main module.

Bug: T267577
Change-Id: I27c9f2c6ed9e4014afb231f690190c67b03b5d02
2020-11-23 11:26:01 +00:00
DannyS712
a7e284a63c resourceloader: minor readability cleanup in ResourceLoaderSkinModule
Use early returns to reduce levels of indentation.
Simplify returning arrays in getLogoPreloadlinks.
Should be a no-op.

Change-Id: I8d6cbfe61de14ded56c09943c6cf4d7b96ea092c
2020-11-22 22:15:11 +00:00
jdlrobson
4e5427f520 ResourceLoaderSkinModule: Move edit link into interface feature
While working on the Example skin we noticed that the edit section
links and hiding of the print footer are important styles.

Rather than making the Example skin inherit the legacy feature, these
essential rules are added to the existing interface styles.

For backwards compatibility, legacy continues to ship the interface
edit links.

For skins loading both interface and legacy, the styles will be loaded
twice but we will lean on gzip to avoid an increase in CSS bytes

Bug: T89981
Change-Id: I7d35b44fc8c135320dfd1d99b16ba47ebaac876b
2020-11-17 13:00:44 -08:00
jdlrobson
db3c8ea16b Add new 'toc' feature to ResourceLoaderSkinModule
The table of content styles will now be loaded on all pages rather than
just pages which have it. This will lead to less stylesheet fragmentation
across page views.

Skins in WMF production were updated long ago to automatically opt
into new features so will automatically gain this module:
I98b7e49b8a3bcba31284385d2f45e0164df2fbb4
I50afd035360ff2eccd5a934a02a218d093f9583d
I5b3920ae6e98111582b93e60a2b9950c478bff7d
If9283742a83ecfbe8c4246e3624022a56be8f161
If9ae25c41b91a8b47c154f0fd98984eac526654f

Skins that are using ResourceLoaderSkinModule with opt-in approach or
the existing mediawiki.skinning.interface, will automatically get these
new styles. Skins that are use neither of these mechanisms will need to
be modified if they wish to retain the collapsing functionality of the
table of contents. As of now, I am not aware of any such skins.

Note in a follow-up, the mediawiki.toc.styles module will be marked as
deprecated in 1.35. This is done separately to allow WMF caches
some time to roll over to the new code first.

Bug: T252774
Change-Id: Ie28b7e732664eb332be795d7e33cd9a227c21370
2020-11-16 20:33:05 +00:00
Thiemo Kreuz
b0130ca649 Update a lot of unspecific "array" types in PHPDocs
This includes fixing some mistakes, as well as removing
redundant text that doesn't add new information, either because
it literally repeats what the code already says, or is actually
duplicated.

Change-Id: I3a8dd8ce57192deda8916cc444c87d7ab1a36515
2020-10-28 11:01:33 +01:00
Cindy Cicalese
3e818d30dc Only preload logo if the optional logo feature is enabled.
Bug: T265507
Change-Id: I5731dd3c5da73b6e6b45c4160f5a82fb399866d8
2020-10-21 13:50:25 -04:00
mainframe98
f12e35012d resourceloader: Fix incorrect order of feature stylesheets
Follow up to I755e5e6784481b419e35, which used array_unshift
to prepend the 'feature' stylesheets. This works as expected when
there is only one 'feature' enabled.

When there are multiple, use of unshift will effectivel reverse
the order as it unshifts then one at a time.

To mitigate this, collect them normally in the correct order,
and then prepend them all at once with array_merge.

Bug: T262507
Change-Id: Ibe2c9f8d024f6be06588a59df10a37681b60d6bc
2020-09-10 16:20:10 +00:00
jdlrobson
6ab14857b9 resourceloader: Give SkinModule 'features' option an extensible default
The previous method of using an array was restrictive in that core
could not add new features automatically to skins.

This change allows an opt-out policy as well as the existing
opt-in policy. Wikimedia deployed skins will soon be adapted to take
the opt-in policy.

Bug: T252774
Change-Id: I517f9f80760348da589852cda53cbd0c14231f86
2020-09-08 21:00:42 +00:00
mainframe98
35d03b1168 resourceloader: Prepend 'features' CSS before other files in SkinModule
For stylesheets provided by features such as normalize or elements,
skins will want to override some styles. Given that ResourceLoader
concatenates all styles, having feature styles override skin provided
styles is counter productive.

Bug: T261080
Change-Id: I755e5e6784481b419e35b338fe3a8129e94b9f61
2020-08-26 18:23:28 +00:00
James D. Forrester
384d493f61 installer: Write to wgLogos, not wgLogo
During development, the default value accidentally got lost in
several ways. To avoid that from going unnoticed in the future,
an error is introduced if the Logo input field is empty.

Bug: T247790
Bug: T232140
Bug: T50084
Change-Id: I5a198474473ae1d5595a6fcd64a08205d03be5c0
2020-07-29 02:15:51 +01:00
jdlrobson
06cb860a72 Deprecate printableversion=yes
Replace the link to javascript:print() and add a warning message
on the printableversion when used.

The link is hidden if JS is not enabled and a skin includes the
'interface' ResourceLoaderSkinModule feature.

As part of this change we also need to notify users that
printableversion is no longer supported. To do this we need
to put a warningbox at the top of the page.

While this should be straightforward, as warning b ox styles
are loaded by all skins via the legacy module, it does require a minor
change to make those CSS rules apply inside print media as they are
currently scoped to screen. We rectify this, by splitting the rules
out from mediawiki.legacy.skinning and applying them to all media
queries. This means warning boxes will appear styled in print media
however these are seldom used in article namespaces - and when they are
they are visible - it would be better they look like warning boxes!

Bug: T167956
Change-Id: If1a3cfc6d82e9e389be7bf17fe288e212aa64139
2020-07-15 19:23:36 +00:00
Volker E
6923d35ab3 mediawiki.skinning: Add 'normalize' module and 'normalize.less'
Adding 'normalize' module for stylesheet file exclusively carrying
normalizing rules for HTML elements and attributes targeted at
cross-browser bugs and inconsistencies.
'normalize.less' is heavily inspired by https://github.com/necolas/normalize.css v7.0.0
fine-tailored to only include MediaWiki specific rules and reflecting
browsers from our Basic (Grade C) support matrix.

Starting with sensible defaults:
- `body` already in use in Vector and MinveraNeue skin
- `main` already in use in MinervaNeue; fixing Vector IE 10-11 bug
- `hr` from normalize as `hr`s are in use in various skins and benefit from
  cross-browser normalization
- `abbr[ title ]` from 'elements.less'
- `pre` etc. from 'elements.less'
-  `sub, sup` from 'legacy.less' and in use by MinervaNeue
- `img` from 'elements.less'
- `::-moz-focus-inner` already in use mediawiki.ui and ULS
- `legend` already in use in MobileFrontend and numerous skins based on normalize.

Bug: T256092
Bug: T256520
Change-Id: I4601cc938f7a10dce4f643e22356f8c5a39e4ac9
2020-07-06 21:36:11 +00:00
Timo Tijhof
91c73f6bac resourceloader: Add some typehints and misc clean up
* Add a void return hint to methods that are not meant to return
  anything. This helps catch accidental return statements in the
  future, lets Phan better understand how methods are meant to be
  used, and might also allow PHP to better optimise the compiled
  code form (speculation).

  I did not, however, add it to publicly extended methods as that
  might mess with strict mode.

* Remove the internal getResourceLoader() method from MessageBlobStore.
  This has been redundant since 3edaa0b37c.
  The method was protected, and not considered stable to subclass
  for extensions. Hence not a breaking change.

* Add Throwable typehint to formatException() and friends.
  This is the narrowest one I could add given that the methods
  called from here already enforce the same typehint.
  Update the doc to match for now. There isn't a reason right now
  to limit this only to Exception, and given this is the method
  and not the catch statement itself, does not change behaviour.

* Remove unused ResourceLoader->getHookContainer().
  Added within 1.35 cycle, safe to remove.

* Remove unexpected `@since` for `@internal` getHookRunner().

* Remove redundant `@internal` from ResourceLoaderMwUrlModule
  methods, which itself is already `@internal`.

Change-Id: I68d33ff6feca7ef95282a7ff03eb9332adfde31c
2020-07-02 03:05:59 +01:00
Jdlrobson
6f2a8eb18d Revert "resourceloader: Add 'html5' feature to ResourceLoaderSkinModule for unknown elements in IE9-11"
This reverts commit 9e2746808e.

Reason for revert: After consideration of the new task T256520
 shipping a normalize CSS feature seems like a much better approach
to solving this problem, particularly since `template` and `dialog`
are unused in our code.

Change-Id: Ic2bd1faded20c21f847383e2fc99912cca65c914
2020-06-29 20:02:41 +00:00
AronDemian
9e2746808e resourceloader: Add 'html5' feature to ResourceLoaderSkinModule for unknown elements in IE9-11
Adds ResourceLoader feature_file 'html5'. Skins have to use it explicitly in 'skin.json'.

- Set `display: block` for `main,dialog`.
- Hide `template` elements.

IE<=11 renders `main` element with `display: inline`:
https://stackoverflow.com/questions/20094276/ie11-is-missing-user-agent-style-for-main-element-display-block
https://caniuse.com/#feat=mdn-html_elements_main

Follow-up to: I540d9a41fc7fd580c5d61b90480e8745ae145850
https://gerrit.wikimedia.org/r/c/mediawiki/skins/Vector/+/596312/8/includes/templates/skin.mustache#43

Bug: T256092
Change-Id: I3e4abb5fc8e55b7138fc1c86543777c845bed88e
2020-06-28 01:14:42 +00:00
mainframe98
b25b0a8fc8 Fix stylesheet path of i18n-all-list-margins feature
And add a test to verify that all files in the
FEATURE_FILES constant exist.

Change-Id: I8c4aeb24ec139c4396f9c2e48ef332efc78b304e
2020-06-10 16:59:09 +02:00
jdlrobson
ecac8e1f96 Move contents of mediawiki.legacy.commonPrint into ResourceLoaderSkinModule
Use the existing `legacy` feature. It's assumed that this module was always
used with `mediawiki.legacy.shared` and minimizes disruptions given the
migration steps are identical to the approach taken in `mediawiki.legacy.shared`

The existing release notes are updated to reflect this.

Bug: T242177
Change-Id: I785321d86a5f26808eb83847a3dbbbe62c62698c
2020-03-14 00:16:16 +00:00
jdlrobson
73c20062e0 mediawiki.legacy.shared is merged into existing skin modules and removed
Skins that are using ResourceLoaderSkinModule will need to update their
features to include `legacy`

Note that Ic7af947cfd5a5df4218f006232ede4ee7ed36c62 for Vector
and I6471bc169f3c2a1f51e17b8ee26ac245b0374c18 for Monobook should
be merged in the same release as this patch to ensure these styles
do not disappear from those skins. Minerva or Timeless will not be impacted.

Changes for other skins including Modern and CologneBlue to follow
where needed.

Bug: T242177
Change-Id: Icb910a563273bde92a09b1bb92857d5b6e348baa
2020-03-12 13:17:24 -07:00
James D. Forrester
56fd5aaaeb ResourceLoaderSkinModule: Don't hard-deprecate wgLogoHD just now
Bug: T245778
Bug: T245182
Change-Id: I5f6773516134651ee88079c3f5a7c12d9f3d4f31
2020-02-21 13:18:22 +00:00
James D. Forrester
9fb25f7d2e Follow-up 37a69a2f: ResourceLoaderSkinModule: Fix wfDeprecated() syntax
Change-Id: Iadeec9520867bc1b6ace885fd4d93b856f6373d4
2020-02-14 13:21:35 -08:00
jenkins-bot
af29679594 Merge "ResourceLoaderSkinModule: Restore previous behavior in getLogoData()" 2020-02-07 18:42:32 +00:00
Bartosz Dziewoński
68d10ec12d ResourceLoaderSkinModule: Restore previous behavior in getLogoData()
getAvailableLogos() can now also return multiple items if a 'wordmark'
logo is defined, but this method only cares about the DPI variants
('1x'/'1.5x'/'2x') and should return a string if there's only '1x'.

Bug: T244405
Change-Id: I69ddb1f9f97d06253b661caf112b48343cd2453f
2020-02-07 10:10:26 +08:00
jdlrobson
37a69a2f86 Restore wordmark to Vector printed media
A mistake was made when upstreaming this code from Vector. The
logo must apply in @print media type as well as @screen - not just
@screen - without this change space was being reserved but no logo
rendered.

Follow up to 7931d76b96

Bug: T232140
Change-Id: I0fa079becd722993fe83f15b4537ffb3831a87d8
2020-02-06 04:01:58 +00:00
jdlrobson
7931d76b96 Remove the need for Vector's ResourceLoaderLessModule and wgVectorPrintLogo
This allows us to remove code in Vector by using the newly added
wgLogos (see I569e0d800e147eabc7852567acd140108613f074)

The ResourceLoaderSkinModule with the logo feature enabled will surface
the horizontal wordmark at the top of pages for printed media.

Change-Id: I00899c16c0325f36b671baf17e88c2b5187b3526
Bug: T242177
Bug: T232140
2020-02-05 01:34:33 +00:00
jdlrobson
8cd2e13363 Deprecate access of logos directly from config, introduce wgLogos
Add getAvailableLogos static method and wgLogos config variable

Longterm we'll phase out wgLogo and wgLogoHD for this more extendable
config.

wgLogoHD is marked as deprecated. wgLogo continues to function as before
when wgLogos doesn't exist to cause minimum disruption.

From now on all logos should be accessed via getAvailableLogos. Patches
in Minerva and Vector follow. See I00899c16c0325f36b671baf17e88c2b5187b3526,
I569e0d800e147eabc7852567acd140108613f074 and
I013bd0904fe8c55efa49d14e84cf06ec1412896f.

Bug: T232140
Change-Id: I66a971631c623cc94b58eb0e5e5bad804789bf1c
2020-02-04 01:56:20 +00:00
jdlrobson
07910483d0 Add 'legacy' and 'i18n' features to ResourceLoaderSkinModule
The existing mediawiki.legacy styles module contains many legacy styles
as well as important i18n rules.

Begin migration of CSS rules from mediawiki.legacy to the
ResourceLoaderSkinModule, which can be tweaked by skins such as Minerva.

The mediawiki.legacy modules is updated to use this new 'legacy' feature
for backwards compatibility.

As agreed in the Frontend Standards Group, it is important we identify
the important rules and migrate them to this new module.

Bug: T169910
Bug: T217616
Change-Id: I1c1e2b912a41d29565e45e9e536c68ac46deb0e1
2020-01-14 17:33:44 +00:00
jdlrobson
6845912bcf ResourceLoaderSkinModule: Provide optional mediawiki.skinning styles
All mediawiki.skinning modules are repurposed as variants of the
ResourceLoaderSkinModule and those ResourceLoader modules are marked for
deprecation. Skins will now be encouraged to use the ResourceLoaderSkinModule
class themselves as part of their own style module rather than using a
module defined in core.

Bug: T118134
Bug: T114695
Change-Id: I4bc8b9b4da1c16eed34f3a517ec695019381e764
2019-11-08 04:25:50 +00:00
Fomafix
a9823d16f6 resourceloader: Add array type hints
Change-Id: I4844eae68e85adc46e52646ea066b459bbabdcce
2019-10-05 15:26:56 +00:00
Timo Tijhof
a5ce1d7792 resourceloader: Add Doxygen group and improve overall docs
* Add license header where missing.
* Add missing `@since` (1.17 for most classes), except
  ResourceLoaderLessVarFileModule since 1.32 (1bc62c548c).

* Remove duplicate file-level description for class-only files,
  merge with the class description instead.

* Remove my own `@author` annotation from one file.

* Mark core's own FileModule subclasses as `@internal`, except
  for the following which we support use of in extensions:
  ResourceLoaderLessVarFileModule,
  ResourceLoaderOOUIIconPackModule, and
  ResourceLoaderWikiModule.

Change-Id: I336af2e4ccdbe2512594e8861b72628d24194e41
2019-09-14 18:37:36 +00:00
Timo Tijhof
6f3029a623 Remove @author Timo Tijhof from various file headers
Also remove a few redundant file-level descriptions in favour
of their class entity describing the same already.

Change-Id: I1a43fc402b5bd106931062a399952ba1e48beb48
2019-07-08 21:56:24 +00:00
Jack Phoenix
57bfd3d678 resourceloader: Fix variable spacings where need be
This fix is to make sure resource loader code conforms with convension
https://www.mediawiki.org/wiki/Manual:Coding_conventions/PHP#Spaces.

Change-Id: I34c0a0addbf7c373fc3a64b644a3098bb485a3f4
2019-04-06 13:09:05 +00:00
Max Semenik
e6818e6c64 Fix unused vars/pointless assignments
Change-Id: If475c738b4af7208024c866594d4c0048af053dd
2019-03-29 16:52:48 -07:00
Umherirrender
a4caa4d0c6 build: Updating mediawiki/mediawiki-codesniffer to 22.0.0
Added spaces around .
Removed empty return statement which are not required
Removed return after phpunit markTestIncomplete,
which is throwing to exit the test, no need for a return

Change-Id: I2c80b965ee52ba09949e70ea9e7adfc58a1d89ce
2018-09-16 15:51:11 +00:00
Timo Tijhof
3ff2615992 resourceloader: Remove unused static SkinModule::getLogo method
This existed for internal use by OutputPage, which is no longer
the case as of I11b390f2e4f5e7db.

Also move the unit tests from OutputPageTest,
to ResourceLoaderSkinModuleTest.

Change-Id: I8b23f976f5f89b1005b387a827f75031f5c96141
2018-08-28 23:50:50 +01:00
Timo Tijhof
5d0b5a402e resourceloader: Move logo preload from OutputPage to SkinModule
This was introduced in OutputPage before support for getPreloadLinks()
was added to ResourceLoader. The introduction in ResourceLoader was
actually inspired by this original implementation.

Now that we have it, we should make use of it for this module
as well. Doing so has several benefits:

* Makes the code cleaner by not requiring every skin to implement
  the extra boolean method. Instead, it naturally works. If
  the skin loads the SkinModule, it gets the preload as well.
  If not (such as Minerva, which has a different logo config),
  then it also doesn't get the preload link.
  Naturally, automatic.

* Makes code cleaner by not having static methods, and by not
  having OutputPage call into a Module class.

* Fixes the problem where, if a site's logo is changed, all cached
  HTML is preloading the old logo whilst the stylesheet fetches
  the newer one. Causing both to be downloaded.

* Still preloads the logo well before it can render.

Change-Id: I11b390f2e4f5e7db8b4506ab547839152888005c
2018-08-27 23:05:51 +00:00
Timo Tijhof
b6a2e22acd resourceloader: Improve coverage of SkinModule
* Ignore getLogoData() which is a one-line proxy to ::getLogo,
  that can't really be tested because static methods can't be stubbed.
  It exists so that this method can be stubbed instead. The actual
  method is already covered.

* Simplify @covers for getStyles() to allow indirect coverage within
  the class because it's intended as a higher-level integration tests.
  The other tests in the suite still cover a specific method only.

Change-Id: I1445a016c1f12a6d8ceaaf745023a28cf20e5371
2018-05-04 17:31:04 +01:00
Paladox
66b13d1ba8 Add support for SVGs to $wgLogoHD with PNG fallback
SVGs could already be used through $wgLogo. However, if a PNG fallback
is desired for older browsers, using SVGs was previously not possible.

This commit adds support for using an SVG image in $wgLogoHD and,
using $wgLogo as the fallback image.

Usage example:

> $wgLogo = '/path/to/png';
> $wgLogoHD = [
>     'svg' => 'path/to/svg',
> ];

Note: When the 'svg' key is set in $wgLogoHD, any '1.5x' and '2x' keys will
no longer be used because SVGs can render optimally on any screen sizes.

@Reedy, @Krinkle and @Brion VIBBER helped me alot with this.

Bug: T86229
Change-Id: I6197d96ce9110f4711ef2c4b198445bc5c6ae110
2017-10-24 17:51:28 +00:00
Timo Tijhof
171bcfaae9 ResourceLoaderSkinModule: Fix SkinStyles extending of known media queries
If any of the styles given in its module definition (in the
'styles' or 'skinStyles' properties) used the same media queries
as the module's own CSS (e.g. 'all'), the module would fail with
"PHP Fatal error: [] operator not supported for strings" because
FileModule defaults to merging all the stylesheets into a single
string.

Fix this by ensuring they are arrays before trying to extend them.

This previously made it impossible to use $wgResourceModuleSkinStyles
for modules that use SkinModule (instead of plain FileModule), such as
the 'mediawiki.skinning.interface' module.

Bug: T168088
Change-Id: I3effcaa4982728e707fbf9efeec4e5e78fc8aab6
2017-07-10 19:53:00 +02:00
jdlrobson
2f1050622a resourceloader: Allow mobile target by default on SkinModule
If a skin is using this class, it's likely to be pretty new.
The targets system was mostly created for older code.

Let's make this the default so skins don't need to do anything
additional to work on mobile.

This simple change makes the Timeless skin work on mobile
when MobileFrontend is installed: ?useformat=mobile&useskin=timeless
It looks beautiful :)

Change-Id: I2ab8a1a634bdc0b5b2084d227c7388b5382e93e8
2017-06-30 21:49:13 +00:00
Timo Tijhof
45d8cd2926 Ensure logo preload transforms urls if needed
Follows-up 5f55e9c9c2.

If the logo url is from within /w, then ResourceLoaderSkinModule
will (as it should) apply a file hash query to it.

The preloader didn't do that, so it specified the wrong url.

Refactored SkinModule to make this logic re-usable.

Bug: T100999
Change-Id: I1ba11f7c70d1a725ad72754fee4a3f33c2a4c1be
2017-04-12 21:34:31 +00:00