This class handles caching across distance sites where purges
must reach both. It also aims to make purging more reliable in
the face of network glitches and node consistent hash ejection.
bug: T88492
Change-Id: I686811b3075bf22e2f4de45127e8461e54648ead
* This avoids writes on view and is more reliable
* Also made the wfWaitForSlaves() there actually work
Bug: T95501
Bug: T92357
Bug: T89027
Change-Id: I0a006fc92a9268feb185c9d88aa04002ea51ecd3
This allows for extensions to format their log entry parameters, and
keeps the code for formatting API log entry parameters in the same place
as for other formatting.
This also takes the opportunity to rearrange the output format slightly
to avoid conflicts like what's happening in T73020.
Bug: T35235
Bug: T73020
Bug: T91466
Change-Id: I6846ce09322eb404c506b5a51780a44ce9279fe2
There is a new special page, Special:EditTags, which is very similar to
Special:RevisionDelete in a lot of ways. In fact, the SpecialEditTags class
started off as a copy-paste of SpecialRevisiondelete.
You invoke this special page by going to an article history page, checking
some revisions, and clicking "Edit tags of selected revisions". Then you
pick the modifications you want to make and click "Apply". Very much like
the revision deletion workflow.
I had to restructure some of the Action routing code, which was only
designed to handle revision deletion. Also removing some code from
SpecialRevisiondelete which didn't work as advertised in the first place,
and definitely doesn't work now.
Change-Id: I7d3ef927b5686f6211bc5817776286ead19d916b
You can add tags at the same time as performing action=edit, as long as you
have the "applychangetags" right. Also, you can add or remove tags after
the fact from revisions and log entries using the API action=tags.
No UI is provided for either of these changes. The target audience is user
scripts, gadgets and similar tools.
Includes a new log parameter format type: "list", for a comma-separated
list of values.
Logging of change tag events is limited to those that do not accompany an
edit (i.e. those done after the fact), and is hidden from Special:Log by
default, similar to the patrol log.
Bug: T20670
Change-Id: I37275e0f73fa3127f55da0c320b892551b61ee80
No skin in gerrit uses the feature of per-module local or remote paths,
and not supporting it will make implementing extension/skin.json support
easier.
Change-Id: I22863ef29426dbacd65439a12aeae56d4d757951
Move the MWLogger PSR-3 logging related classes into the
MediaWiki\Logger namespace. Create shim classes to ease migration of
existing MWLoggerFactory usage to the namespaced classes.
Bug: T93406
Change-Id: I359cc81fbd2dcf8937742311dcc7d3dee08747b0
* This ends up being more complex than its worth
and even more so for multi-DC support
Bug: T93006
Change-Id: Iaa774fe69061e42955b11dc82d30dba93208e606
> /includes/DefaultSettings.php:7478:
> warning: reached end of file while inside a ~~~ block!
> The command that should end the block seems to be missing!
Three or more tildes in plain text results in the beginning of
a fenced code block.
http://doxygen.org/manual/markdown.htmlhttps://michelf.ca/projects/php-markdown/extra/#fenced-code-blocks
It stopped parsing after $wgUrlProtocols and ignored the rest.
I tried to escape it in different ways but couldn't find any method
that keeps the string readable and inline. If it's important we can
put it back in an indented code block.
Change-Id: If350a917c6afaebcd45f246404b6b6195453e51e
* Associate Profiler objects with a request context by adding a $context
property with a getter and a setter.
* Introduce ProfilerOutputStats, which writes profiling data to the stats
buffer associated with the current request context.
* Make it the Profiler class's responsibility to enforce $wgProfilerLimit.
* Deprecate $wgProfilerLimit in favor of the (more aptly named, IMO)
$wgProfiler['threshold'] config setting.
* Tidy up Profiler instance creation code in Profiler::instance().
* Add Profiler::getOutputs, which returns an array of ProfilerOutput instances
which are configured for the current profiler and whose canUse() method
returns true.
* Make ProfilerStub not log by creating a stub ProfilerStub::logData() method
which does not call the parent. Previously the parent class checked if $this
was an instance of ProfilerStub and returned early if so.
Task: T90623
Task: T85641
Change-Id: Icf644ad3435c1f30d0a49957a97b481808a3153d
Prevent DoS attacks caused by the amount of time
it takes to hash long passwords by setting a limit
on password length.
Slightly restructures the behavior of User::checkPasswordValidity
in order to accommodate for the difference between
passwords the user should be able to log in with and
passwords they should not.
Bug: T64685
Change-Id: I24f33474c6f934fb8d94bb054dc23093abfebd5e
Follows-up r67733 which fixed this, but it got lost in the meantime.
> /includes/DefaultSettings.php:46:
> warning: Conditional section with label file_level_code does not have
> a corresponding @endcond command within this file.
Change-Id: If7cfe278c50e1639ef2662ba87c85426a964c22f
* This avoids master queries on view. It could use local jobs, but nothing
was using this by default anyway.
Bug: T92357
Change-Id: Id6353942215a3c704848d3bcc31c2b76225c78be
* SiteLookup interface is added, and SiteStore extends
it. (any SiteStore type hints can be changed to use
SiteLookup if all they need is lookup functionality)
* Memcached based SiteStore code is split from the
database SiteStore, and SiteSQLStore is deprecated.
If no caching is desired when using a SiteStore, then
use a SiteDBStore instance, instead of passing $source
parameter in SiteStore::getSite and SiteStore::getSites.
* SiteListFileCache renamed to FileBasedSiteLookup and
implements SiteLookup.
Bug: T77990
Change-Id: I36b599884c211580ea6806a8a190c65c4f9087cf
There is no need for an extra formatter class, because at the moment
there is nothing extra to format.
This allows use of gender on Special:Log. Old messages are kept for use
in IRC. A test was added to ensure an unchanged IRC message.
The new log message for import-interwiki is used from
I3ca8b21bce49b41cac7109efb8056ca4469b88d7 to avoid "transwiki jargon".
Bug: T57404
Change-Id: I590075b203548c071a98c1eaa4b1bc9250f60e22
Done using an array $wgLogoHD, which expects something like the following:
$wgLogoHD = array(
"1.5x" => "path/to/1.5x_version.png",
"2x" => "path/to/2x_version.png"
);
This is still horrible, but I dunno how to make it less horrible. Help.
Bug: T37337
Change-Id: Iee3e73c1f96b81c2094418986cf1c267d93d1bdd
Restbase, the REST content API service, is to be queried instead of
Parsoid by current Parsoid users (most importantly VE). This patch
introduces the Restbase virtual REST service class and transparently
maps Parsoid calls into Restbase ones if parsoidCompat is set when
creating the service object.
Additionally, $wgVirtualRestConfig is introduced in DefaultSettings.php. This
is a first step towards global service configuration and management.
Bug: T89066
Change-Id: I4d4043e5052327bbd789331f1c05b607c45fe7cb
* On a basic/default install there is only a single wiki
and nothing uses this. Larger wikis would want to use redis.
Change-Id: Ie5bf1a644ae60b2c6ca72b165fa5510113717611
* Use special prioritized refreshLinksJobs instead, which triggers when
transcluded pages are changed
* Also added a triggerOpportunisticLinksUpdate() method to handle
dynamic transcludes
bug: T89389
Change-Id: Iea952d4d2e660b7957eafb5f73fc87fab347dbe7
* Use special prioritized refreshLinksJobs instead, which triggers when
transcluded pages are changed
* Also added a triggerOpportunisticLinksUpdate() method to handle
dynamic transcludes
bug: T89389
Change-Id: I8e5a6ddb643c12e0fb5c1c68bc83f912944e6e8d
Doc comment referred to older implementation's data attributes.
Updated to refer to the correct srcset attribute as settled on
by browser makers, which was switched to long ago here.
Change-Id: If2bc83dd41dd88d6480957ff4968111396c9fe98
Add new hook (ResourceLoaderGetLessVars) called in ResourceLoader::getLessVars to
allow context-based less variables. Cache the resulting array to avoid multiple runs
of this hook.
Change-Id: I5a73bbd0ab58f8fe34519931c4f26c90998e3451
This allows use of gender on Special:Log.
Old messages are kept for use in IRC.
A test was added to ensure an unchanged IRC message.
Bug: T57402
Change-Id: Ibc7fcaa5a952ff90d42a6477da4baa429f3de64b
Default value of $wgSVGConverters['ImageMagick'] now uses transparent
background with white fallback color, rather than just white background.
This is done by using #ffffff00 ("transparent white") as background
color (the PNG file format supports saving color for transparent
pixels).
I could find no historical records for why it was done this way;
possibly the intent was to display white rather than black background
in IE 6 (which doesn't support PNG transparency) or in other contexts
where transparent background is impossible.
Bug: T76475
Change-Id: Ief0c7d71c8cc157e256fc84b1b7be3c23cc5fd9b
Update $wgSVGConverters['rsvg'] to something closer to WMF production
configuration (there is a more complicated setup involving two
variants of rsvg for some reason).
Documentation is scarce, but 'rsvg-convert' appears to be the "modern"
way to call rsvg, with 'rsvg' being deprecated or not recommended.
Bug: T76476
Change-Id: I5ed877f3a5a1f1e97ae881c1d03fc977276182b6