Commit graph

2101 commits

Author SHA1 Message Date
jenkins-bot 699270148c Merge "Add GadgetLoadConditions class" 2022-03-21 19:53:46 +00:00
Translation updater bot b9f07350fd Localisation updates from https://translatewiki.net.
Change-Id: I74fa3a995b1eb0c0b0a0179907fd33126cd38289
2022-03-21 08:14:47 +01:00
Siddharth VP 235820d631 Add GadgetLoadConditions class
Avoids expensive re-computations such as that of Action::getActionName, for
each gadget. It is now computed just once in the GadgetLoadConditions
constructor and stored.

This structure makes it cleaner to add more conditions down the line (such as
namespaces and content models - see T204201) and could be reused for user gadgets
(T36958).

Change-Id: I8cbc4bba4d248d9f2ff3a2836450f69970370b1a
2022-03-20 22:16:07 +05:30
Translation updater bot f5b9ef7322 Localisation updates from https://translatewiki.net.
Change-Id: I75c37596c540ea090829883442f1ab335d29e8e2
2022-03-16 08:07:40 +01:00
Alexander Vorwerk 1f40a76cc0 Bump MediaWikiGadgetsDefinitionRepo cache version
Bug: T303455
Change-Id: I32138cd8547f8c5773cbe603fdeb9826e04b0461
2022-03-09 20:32:12 +01:00
Alexander Vorwerk ba83b57d1d Bump the cache version of Gadget
Bug: T303391
Change-Id: I7f6f17de42d601e059b1b8f155a6db3dfb2c75a1
2022-03-09 14:57:57 +01:00
Reedy 998f20994c GadgetHooksTest: Use namespaced GadgetRepo
Change-Id: I6a1ba1241bd0ada4bc024c6a3f48200d9c6ae6d9
2022-03-06 02:07:17 +00:00
Reedy 2952dadb9f Add global class_alias for Gadget
Used for serialization purposes...

Change-Id: I3345ad668aa55596bc9ec18b56d9891f10bb0285
2022-03-06 01:50:36 +00:00
Reedy 01f6a6c34e Namespace extension
Bug: T278278
Change-Id: I49b57e68079c998419e235b1727eea8c121c234b
2022-03-05 17:03:35 +00:00
Translation updater bot 12d0780486 Localisation updates from https://translatewiki.net.
Change-Id: I5339265567f9149eaf6fb833a0975af5e70101da
2022-03-03 08:22:39 +01:00
Translation updater bot d35308558a Localisation updates from https://translatewiki.net.
Change-Id: I7297265a9ca9690342ae7802677cd5c0a57aefdf
2022-03-01 14:32:45 +01:00
Translation updater bot b725b4147b Localisation updates from https://translatewiki.net.
Change-Id: Ieb9082d17e7ef26c716512421732ed1c64cac74a
2022-02-25 09:43:46 +01:00
Translation updater bot 569b75dfc6 Localisation updates from https://translatewiki.net.
Change-Id: I11b43a68918f36b2cd6a6b78ffad8b9ffe378d47
2022-02-24 08:49:13 +01:00
Translation updater bot 035dea565d Localisation updates from https://translatewiki.net.
Change-Id: I3074d21f21ee2b047c5ec35b7dadd87f1b9ab403
2022-02-22 08:11:42 +01:00
Translation updater bot 17e2369774 Localisation updates from https://translatewiki.net.
Change-Id: Idaed0c0e108be9c9e117dc311e0977baeac74f26
2022-02-14 08:14:21 +01:00
Translation updater bot 42b985460e Localisation updates from https://translatewiki.net.
Change-Id: I27c303e502f2936b9ff785d205328af25a269888
2022-02-11 08:41:36 +01:00
Translation updater bot e489ab6982 Localisation updates from https://translatewiki.net.
Change-Id: I072b658c34180b5e2e6527ab8335391b4ced0f7f
2022-02-08 08:28:36 +01:00
Translation updater bot 65ffc6946a Localisation updates from https://translatewiki.net.
Change-Id: I93aba9c3bdd949d17d572502742115fc75deeff7
2022-02-07 08:22:07 +01:00
Translation updater bot dfe7928f4e Localisation updates from https://translatewiki.net.
Change-Id: I0149053b723ab0f9c2afa4e9f5c8719e36a81525
2022-02-03 08:44:06 +01:00
Translation updater bot 20e2ed0016 Localisation updates from https://translatewiki.net.
Change-Id: I5158740203cf4e0f65ab9fbd2d3839991de1c213
2022-02-02 08:20:03 +01:00
Translation updater bot 32cbc20b8c Localisation updates from https://translatewiki.net.
Change-Id: I56a2e3e9e1baadc12cfed58c55cc504c00bf0f32
2022-02-01 08:27:01 +01:00
Translation updater bot 6a847a1bf1 Localisation updates from https://translatewiki.net.
Change-Id: Ic6e79aac0ef2d4121b833cad5dd3d1b44149049d
2022-01-31 08:22:04 +01:00
Translation updater bot f86502f292 Localisation updates from https://translatewiki.net.
Change-Id: I587f0ed6b35b2be6d80bcd70684e0ba62729c92d
2022-01-27 08:38:46 +01:00
jenkins-bot f238e6d4e1 Merge "Avoid validating gadget definition content multiple times on save" 2022-01-26 18:24:44 +00:00
Siddharth VP bded600e36 Avoid validating gadget definition content multiple times on save
The validation appears to be occurring 4 times:
1. JsonContentHandler->preSaveTransform --> GadgetDefinitionContent->isValid
2. GadgetHooks::onEditFilterMergedContent --> GadgetDefinitionContent->validate
3. ContentHandler->validateSave --> GadgetDefinitionContent->isValid
4. RevisionStore->checkContent ---> GadgetDefinitionContent->isValid

Caching the validation result reduces it down to 2.

(Validation in GadgetHooks::onEditFilterMergedContent is to provide a more useful error message than what ContentHandler gives – which is just "Invalid content data".)

Change-Id: I026751b7e9b111b4f0bb9ab5fa0e9737a0385b07
2022-01-26 15:39:14 +05:30
Translation updater bot 0f0688ebf2 Localisation updates from https://translatewiki.net.
Change-Id: I2468ba1d2c3b606ab0e131fb4284ef12d3d65b1c
2022-01-26 08:25:02 +01:00
Translation updater bot 36a19b1613 Localisation updates from https://translatewiki.net.
Change-Id: I301170495b9898ce04cccac45f67e80ff49fcaa9
2022-01-25 08:32:41 +01:00
Translation updater bot 0a7aeb655a Localisation updates from https://translatewiki.net.
Change-Id: Ife73c783a439fa4d01f2dd11821b4804922a78eb
2022-01-24 08:27:14 +01:00
jenkins-bot de2ed9219f Merge "Restrict ?withgadget query parameter to opt-in gadgets." 2022-01-24 00:46:10 +00:00
Ammarpad 5d3a547c8b Restrict ?withgadget query parameter to opt-in gadgets.
?withgadget query parameters allows for ad-hoc loading of gadgets
(after passing all other basic checks). This was recently added in
I5b30d4e.

In T29766#7611796 Gergo raised concerns about how this can be
potentially abused.

This patch aims to restrict the feature by giving gadgets latitude
to either use it or not depending on the nature of the gadget.

The patch does so by adding `supportsUrlLoad` option that gadgets
(maybe those deemed safe) can use it to opt-in to the parameter.
By default gadgets don't support it, so it can be enabled for each
on a case-by-case basis.

Bug: T29766
Change-Id: Ie64174085e650579d76cc862774a4fe1b3d08396
2022-01-24 00:31:19 +00:00
C. Scott Ananian 165a030a4c Passing a string to ParserOutput::addModules()/addModuleStyles() is deprecated
In addition, renamed several instance of $output to $parserOutput to
help readers (and code search!) differentiate between variables which
contain a ParserOutput and those which contain an OutputPage (esp.
since those two classes contain many similarly-named methods).

Bug: T296123
Change-Id: If34330acf97d2c4e357b693b086264a718738fb1
2022-01-20 13:12:33 -05:00
Translation updater bot 55f4ba11a7 Localisation updates from https://translatewiki.net.
Change-Id: I69b7d2ad03d25b7cdae1242411d9d380768e818b
2022-01-20 09:17:40 +01:00
jenkins-bot 6fb18ae1fb Merge "Tighten some type hints" 2022-01-20 02:03:10 +00:00
Bartosz Dziewoński 4e27ab0e01 Tighten some type hints
* Gadget::isEnabled() only requires a UserIdentity, not the whole User
* Gadget::isAllowed() only requires an Authority, not the whole User

Both of those interfaces are implemented by the User class, so this is
compatible with all existing code, and it's easier to call from code
that only has access to a UserIdentity/Authority.

Change-Id: I8ea710c555f6fb7790ae575bb60aab1a05e288d8
2022-01-19 23:30:40 +00:00
Translation updater bot 8ad07cc7a1 Localisation updates from https://translatewiki.net.
Change-Id: I9c62de9f416a452410880815e37f04009ec90095
2022-01-19 08:24:06 +01:00
jenkins-bot 1cd6771f3a Merge "Avoid raising exception while trying to change content model of gadget definition" 2022-01-18 21:18:22 +00:00
Translation updater bot cce06923c6 Localisation updates from https://translatewiki.net.
Change-Id: I0f952e9e3de8c417cf7062daf0007410a385df80
2022-01-18 08:10:54 +01:00
jenkins-bot 0d32a53c3d Merge "Add Burmese special page and namespace aliases" 2022-01-17 08:13:12 +00:00
Translation updater bot bb07f9305f Localisation updates from https://translatewiki.net.
Change-Id: I688f67eb0838162b8cf9c0f3c9e264a47e7423bf
2022-01-17 08:12:10 +01:00
jenkins-bot d883cfefe4 Merge "Avoid adding hidden gadgets in default options" 2022-01-17 05:39:56 +00:00
Siddharth VP f1673c441a Avoid raising exception while trying to change content model of gadget definition
Currently, trying to change content model of a page in gadget definition namespace (via either the special page or the API) raises an exception. This uncaught exception has been replaced with a localisable error message.

Bug: T299303
Change-Id: Iad7d353d03cdfb52bf66aa2c9a12bc71a840577c
2022-01-16 22:43:37 +05:30
Siddharth VP 43efda4f96 Avoid adding hidden gadgets in default options
Hidden gadgets do not have associated user preferences. Adding them to $defaultOptions only causes them to be unnecessarily exported in mw.user.options.

Bug: T299071
Change-Id: Ic55e7f2a9daa405cddd0189de3d32f5825bc336a
2022-01-14 09:23:30 +05:30
jenkins-bot 43a6221fc9 Merge "Localisation updates from https://translatewiki.net." 2022-01-13 07:29:08 +00:00
Translation updater bot 868591df51 Localisation updates from https://translatewiki.net.
Change-Id: Id0f8d7a3e6a3a578aed82a9a6162cbfd5770ec0f
2022-01-13 08:27:02 +01:00
jenkins-bot 22ad1b14fb Merge "Link entries on Gadget definition pages" 2022-01-13 07:25:37 +00:00
Kunal Mehta 44d3602898 Link entries on Gadget definition pages
Links the following entries in gadget definitions to the associated page:
- scripts
- styles
- datas
- peers
- dependencies (only when they are also a gadget)
- category (links to MW message page)
- messages

unserialize(serialize()) hack is a bit ugly, but it works.

Co-Authored-By: Siddharth VP <siddharthvp@gmail.com>
Bug: T298844
Change-Id: I9154f600997fe693410e7560ed30732102b806aa
2022-01-12 19:33:04 +05:30
Translation updater bot 2d1f320e23 Localisation updates from https://translatewiki.net.
Change-Id: Ib3ecee7f8352d60cb4165bd600efab42a3dc0d4f
2022-01-12 08:25:09 +01:00
Translation updater bot bf88b0826d Localisation updates from https://translatewiki.net.
Change-Id: Ib5cd5584bc8807360d3f8733e3c820202a8175f4
2022-01-11 08:23:08 +01:00
Translation updater bot 43fd45950e Localisation updates from https://translatewiki.net.
Change-Id: Ic809d9358186094d7d3dda1888313c47e247daea
2022-01-10 08:11:19 +01:00
Translation updater bot d51ddd3abc Localisation updates from https://translatewiki.net.
Change-Id: Id8a1473d5e75658012051bc779d9ac50ddc5aa18
2022-01-06 08:31:38 +01:00