I8ac4bc4d6 caused lock() to be counted as a write operation. Since
acquiring a lock may by design take a long time (e.g. PageEditStash),
this was causing transactions to be flagged as problematic due to the
large amount of time spent in this "write query".
Bug: T251457
Change-Id: Ic54d6c78b43a463c8f6edc6d65baa671a39ee39c
Each file's changes are independent of the other files and can be
reviewed separately.
Bug: T250579
Bug: T250714
Bug: T250580
Change-Id: I223dd6dfba27e560aff89be6705d91c40c550dd8
See codesearch - only deployed call outside of core is in flaggedrevs,
and already passes a RevisionRecord:
https://codesearch.wmflabs.org/deployed/?q=-%3EupdateRevisionOn%5C(&i=nope&files=&repos=
Also fixed a use of Revision::newFromId in orphans.php
Bug: T249561
Bug: T249021
Change-Id: I5933a278de8645b7005c11026c87ae27c0373770
In creating a new diff-editfont-* class the font-size
normalization of mw-editfont-* was not copied over.
This increases the size slightly from 14/.88 = 12.32px to 13px.
Bug: T250393
Change-Id: Idd9164e2c5a327b8a23f09117d08227c7f07a261
Upstream bug reports of the behavior change introduced in PHP 7.3.17 (and
applied to PHP 7.4 branch as well):
https://bugs.php.net/bug.php?id=79528https://bugs.php.net/bug.php?id=79485
The reponsible commit in PHP was https://github.com/php/php-src/pull/5246
This was a "bug fix" in the sense that SimpleXML used to discard the
attributes on the namespace elements, which look like this:
<namespace key="-2" case="first-letter">Media</namespace>
SimpleXML used to return this as a string "Media" instead of a
SimpleXMLElement... but ExportTest (inadvertently?) depended on that
behavior.
In any case, if we iterate over SimpleXMLElement::children() we always
get SimpleXMLElements, not "sometimes strings", and so our code will
correct correctly on PHP below 7.3.17 and above, regardless of how PHP
decides to handle this "bug".
Bug: T250568
Change-Id: I9c2cb6a86fd6e8023c1979ec6838071a87a7bcea
Aborting was apparently lost by accident in PS28 of the HookContainer
commit.
In the test, to allow multiple different hooks to be registered, I
used a real ObjectFactory with a fake ServiceContainer, instead of a
fake ObjectFactory. I changed the parameter to
getMockExtensionRegistry() to take the full attribute value instead of
the hook name and a single handler.
Change-Id: I7b4c547737febe81a487fe154db150055ae31344
DeprecatedHooks was not listed as a core attribute and so was not
extracted from extension.json. I added some code to extract and merge it
in extractHooks(), and I also made the "component" default to the name
of the extension which deprecates the hook, instead of "MediaWiki".
I added the core deprecated hooks based on the current Hooks::run() calls.
I moved emitDeprecatedHookWarnings() to HookContainer, and to reduce the
performance overhead, arranged for it to be called only on page views.
Change-Id: Idc0cfba782b49398d9e7feaa164fe7692d491bf9
The existing setupTemplateForOutput method
sets various class variables. These can be set once
inside the constructor.
A new html method is added to get the HTML string
of the skin.
This in future will allow us to update the Skin
interface to support other types of rendering
e.g. Mustache
See I7a14f74728703c50874935e9d77b35ad9434b436 for how
this would simplify Vector's codebase.
Bug: T251212
Change-Id: Iba542b035ee110fe879e2ed937cdd48c48a79a53