3 years agoregistration: Initialize PSR-4 namespaces at same stage as normal autoloader
Antoine Musso [Wed, 30 May 2018 19:02:46 +0000 (21:02 +0200)]
registration: Initialize PSR-4 namespaces at same stage as normal autoloader

readFromQueue() injects the content of AutoloadClasses to
$wgAutoloadClasses however it missed doing the same for

When using the installer with an extension having AutoloadNamespaces
set, its classes would not be found.

Make ExtensionRegistry append to AutoLoader::$psr4Namespaces, and add
a test to cover the new behavior.

Bug: T195783
Change-Id: Id61155867a4ca7d9bc4a347f8671da74b0fa490b
(cherry picked from commit 224864ebddab2e448f9ae4f247b85c652d9df42e)

3 years agoUpdate git submodules
Bartosz Dziewoński [Wed, 30 May 2018 22:27:05 +0000 (00:27 +0200)]
Update git submodules

* Update skins/Timeless from branch 'REL1_31'
  to 58301ba4468f4667c0c180f67bda238f0fedd58e
  - Fix condition for 'emptyPortlet' class

    Follow-up to 6b9616d1ca337308d773441dcfb263d9c68fdab6, which
    accidentally inverted the logic.

    This is a manual cherry-pick of 70b5f24986a5162c06ab343820e54c989753eeb4.

    Bug: T196026
    Change-Id: I98bc7529a1894b09ec3d80aab244327f526c022c

3 years agoBump version from rc.0 to rc.2 1.31.0-rc.2
Chad Horohoe [Wed, 30 May 2018 18:00:05 +0000 (11:00 -0700)]
Bump version from rc.0 to rc.2

Should've been bumped awhile ago to rc.1, meaning the rc.1
tag had the wrong version number. Rather than re-issue the
tag, we'll just move forward and not bother with rc.1

Change-Id: Ie89caf3826c35c3a15fe1390c4caec1f8b7d19cc

3 years agoUpdate git submodules
Paladox [Tue, 29 May 2018 16:13:19 +0000 (16:13 +0000)]
Update git submodules

* Update skins/Timeless from branch 'REL1_31'
  to 97ba1dd2996811899b6b1a96dce3fa20dd613b21
  - Fix $count to === against array instead of using count that fails

    Bug: T195613
    Change-Id: If2b51af8c5335394b8c0266ac2765e1c7ce49618

3 years agoRelease notes for I61749f1d864cf68afe90cd9e15ba2d7a74252501
Bartosz Dziewoński [Wed, 9 May 2018 20:39:20 +0000 (22:39 +0200)]
Release notes for I61749f1d864cf68afe90cd9e15ba2d7a74252501

Change-Id: Idd0a8f5bbc1da161817276cef44ff61a0e72f8b2

3 years agoOnly load PEAR Smtp mailer from vendor/composer, not from `pear` itself 1.31.0-rc.1
Chad Horohoe [Fri, 18 May 2018 01:56:00 +0000 (18:56 -0700)]
Only load PEAR Smtp mailer from vendor/composer, not from `pear` itself

Change-Id: I91c42a3eafd079039ddbc17a11ad3c7b6579e3c1

3 years agomail: Refactor checks looking for PEAR libraries to be clearer
Kunal Mehta [Thu, 26 Apr 2018 05:24:24 +0000 (22:24 -0700)]
mail: Refactor checks looking for PEAR libraries to be clearer

I don't think this makes any difference towards the linked bug, but
it makes it more obvious that MediaWiki doesn't try to use any PEAR
classes before attempting to require them.

Bug: T186456
Change-Id: I342f41903a15f13e72e76464499351412a9afa34
(cherry picked from commit 5d30435e81427fcce3353d900faaf8d9fa9a8709)

3 years agobuild: Updating mediawiki/mediawiki-codesniffer to 18.0.0
libraryupgrader [Sat, 14 Apr 2018 10:27:27 +0000 (10:27 +0000)]
build: Updating mediawiki/mediawiki-codesniffer to 18.0.0

Change-Id: Id39e8dcf22262d1b3c57628467163a995fe4053b
(cherry picked from commit 5a024697a272981fc491e7502d6d5fddef4d2c22)

3 years agoinstaller: Do not wrongly hide namespace input field
Fomafix [Fri, 27 Apr 2018 14:27:39 +0000 (16:27 +0200)]
installer: Do not wrongly hide namespace input field

When the radio button is already on "other" then the input field for
the namespace should not get hidden by JavaScript on load.

Also remove the readonly attribute in HTML because the readonly
attribute can not get removed with disabled JavaScript.

Change-Id: I8cfde90d791765234572caf00b731881ac2eda48
(cherry picked from commit 31a472655b246df3c072d36959afcb7d2897889d)

3 years agoFix warning "ob_end_flush(): failed to delete and flush buffer" during uploads
Edward Chernenko [Sun, 1 Apr 2018 21:39:59 +0000 (00:39 +0300)]
Fix warning "ob_end_flush(): failed to delete and flush buffer" during uploads

Bug: T186565
Change-Id: Ia4b29611ccee4acac11717f5220ff9e0fdbd55a9
(cherry picked from commit 30d72ec3d0914bb905d4114dee9256f02cbdcc7f)

3 years agoDon't require trailing slash in PSR-4 autoloader directory
Mark A. Hershberger [Sun, 20 May 2018 14:51:34 +0000 (10:51 -0400)]
Don't require trailing slash in PSR-4 autoloader directory

This avoids the confusing error “Fatal error: Uncaught
InvalidArgumentException” or similar.

Bug: T195211
Change-Id: Ifda59a26f8bd968a2d0acbdb157d81dc0bf6aab4
(cherry picked from commit 3b85e362a4098832a08529adc89571a86bf6e9a2)

3 years agoUpdate git submodules
Cindy Cicalese [Wed, 16 May 2018 12:43:54 +0000 (12:43 +0000)]
Update git submodules

* Update extensions/ReplaceText from branch 'REL1_31'
  to a027ec972c1d98e92483230e1cbf71cc08a31150
  - Fix path to maintenance directory.

    Change-Id: Ife7a7076ee87938cadb84aa56982cc667bd90e2f
    (cherry picked from commit f7b59db9b3aba2e5523a11d7922f668ef05806ee)

3 years agoMerge "registration: Improve duplicate config setting exception" into REL1_31
jenkins-bot [Tue, 15 May 2018 23:54:23 +0000 (23:54 +0000)]
Merge "registration: Improve duplicate config setting exception" into REL1_31

3 years agoMerge "IcuCollation: Use codepoint as tiebreaker when getting first-letters" into...
jenkins-bot [Tue, 15 May 2018 23:53:37 +0000 (23:53 +0000)]
Merge "IcuCollation: Use codepoint as tiebreaker when getting first-letters" into REL1_31

3 years agoregistration: Improve duplicate config setting exception
Kunal Mehta [Tue, 15 May 2018 17:26:43 +0000 (10:26 -0700)]
registration: Improve duplicate config setting exception

We don't keep track of what set a specific global, so at least mention
the name of the extension that is setting a duplicate for easier

Also, fix the case where if the first extension to be loaded was setting
a core setting, it would not throw an exception since config was being
processed before the rest of extension.json. Now we process config after
all core settings, going only before attributes.

Bug: T194319
Change-Id: I4fd96e7d167cf0652ee3e8e66167c86f2b91b992
(cherry picked from commit 5490b1270a0a7447f28d2407736fc3c1deb41d44)

3 years agoinstaller: Don't shell out if it's disabled
Kunal Mehta [Tue, 15 May 2018 18:23:38 +0000 (11:23 -0700)]
installer: Don't shell out if it's disabled

Bug: T191947
Change-Id: I16a82d271157cd0024aa14d7eaec80b4870947b5
(cherry picked from commit 2e473413a8fd1e205142b5c5980addb34aaf369f)

3 years agoUpdate git submodules
James D. Forrester [Thu, 3 May 2018 18:59:00 +0000 (11:59 -0700)]
Update git submodules

* Update extensions/MultimediaViewer from branch 'REL1_31'
  to 1273d3e0b2189e33fed0567f589a3e7bc4ae6d4e
  - tests: Comment out failing tests

    Bug: T192932
    Change-Id: Iba81676ebb13407679bd99b0e08d29e225a7ebde
    (cherry picked from commit 2078fbfb53acd357c96ea187f31a6ba878afc053)

3 years agoIcuCollation: Use codepoint as tiebreaker when getting first-letters
Bartosz Dziewoński [Tue, 8 May 2018 11:43:10 +0000 (13:43 +0200)]
IcuCollation: Use codepoint as tiebreaker when getting first-letters

This prevents unexpected cuneiform digits from acting as headings for
2 and 3 on category pages.

Bug: T187645
Change-Id: I0424a24769899cb23b28704f97e1002fa44999fd
(cherry picked from commit 390ff7fca179e26ac177810145d27d98fe2fff43)

3 years agoAdd default edit rate limit of 90 edits/minute for all users
Brian Wolff [Wed, 9 May 2018 20:43:51 +0000 (20:43 +0000)]
Add default edit rate limit of 90 edits/minute for all users

Previously there was no rate limit at all if you were autoconfirmed.

This initial setting is set on the high end of things, we may
adjust later. See also T192668, T194204.

Change-Id: I7cb002900bae2da3f4f4758671186659c1720e1d
(cherry picked from commit cefdcefdb8f15ffdec8345b93aff2036db92d1f7)

3 years agoAdd ReplaceText submodule
Kunal Mehta [Mon, 7 May 2018 09:07:59 +0000 (02:07 -0700)]
Add ReplaceText submodule

Bug: T191741
Change-Id: Iea4e0e4e04b2ec1b4fc07b11fb0af1ac3ee6347f

3 years agoUpdate git submodules
Kunal Mehta [Sat, 5 May 2018 03:05:58 +0000 (20:05 -0700)]
Update git submodules

* Update extensions/TitleBlacklist from branch 'REL1_31'
  to 1143a1f61e049e4f8e4de317e7299091a2ca0707
  - Upgrade phan-taint-check-plugin to 1.2.0

    Change-Id: I9c02ca49f9e35873adc2e2462df1020fd30eb934
    (cherry picked from commit 616a7afb885bd8707c143bb271831fb31fc8d377)

3 years agoUpdate git submodules
Kunal Mehta [Sat, 5 May 2018 02:52:32 +0000 (19:52 -0700)]
Update git submodules

* Update extensions/Renameuser from branch 'REL1_31'
  to f8e515711db88fdd2aae02b760d2e11df3d70489
  - Upgrade phan-taint-check-plugin to 1.2.0

    Change-Id: I3af50c0a15b7ec0ecea087fefc3d026cced99749
    (cherry picked from commit 52ac2bdc3221a65a15d383f7fafc56f47e31b08b)

3 years agoUpdate git submodules
Kunal Mehta [Sat, 5 May 2018 03:01:48 +0000 (20:01 -0700)]
Update git submodules

* Update extensions/SyntaxHighlight_GeSHi from branch 'REL1_31'
  to a7d04ae33439d1c1b595d68fbad08c43f930fdcf
  - Upgrade phan-taint-check-plugin to 1.2.0

    Change-Id: I2fa1c622dc495e3f4969d7684934f1839f9caf00
    (cherry picked from commit b185d9892f5c45d02c0bb3c620644c831945d7bb)

3 years agoUpdate git submodules
Kunal Mehta [Sat, 5 May 2018 02:56:08 +0000 (19:56 -0700)]
Update git submodules

* Update extensions/SpamBlacklist from branch 'REL1_31'
  to f6fa789ad2c07a4fe89e4d1e636aea1126f26afc
  - Upgrade phan-taint-check-plugin to 1.2.0

    Change-Id: Iaefb223d2217762f6fa91a854d0f963270362c07
    (cherry picked from commit 9a87cc3c060eab4d576f3561f0f197f91ac090c2)

3 years agoUpdate git submodules
Kunal Mehta [Sat, 5 May 2018 02:53:10 +0000 (19:53 -0700)]
Update git submodules

* Update extensions/Poem from branch 'REL1_31'
  to c4098df5ea8132826164f71c0c18b54ae8450edf
  - Upgrade phan-taint-check-plugin to 1.2.0

    Change-Id: I38ce057fc41a0164922f403b77d998df2b4f1099
    (cherry picked from commit 8552303267a4f45a38048f90595385572efe30f0)

3 years agoUpdate git submodules
Kunal Mehta [Sat, 5 May 2018 02:47:00 +0000 (19:47 -0700)]
Update git submodules

* Update extensions/PdfHandler from branch 'REL1_31'
  to 21f2fe96901077927bde13ec15496c186a208197
  - Configure phan-taint-check-plugin

    Change-Id: I934702057ecee687d9966a6f042ee8aa7c68f2d7
    (cherry picked from commit 5f0b10d2a5e8ea8e5aa1f05ab1c9ddbab07a1584)

3 years agoUpdate git submodules
Kunal Mehta [Sat, 5 May 2018 03:08:33 +0000 (20:08 -0700)]
Update git submodules

* Update extensions/WikiEditor from branch 'REL1_31'
  to 277159cd3ae6fdafb7f49db3dbfedfa023e81d35
  - Upgrade phan-taint-check-plugin to 1.2.0

    Change-Id: Ib6953c3f1eb5b9c9edc7d58735391b965ac6b27a
    (cherry picked from commit 9ba9e3e4e12a8004fe7198285a8864e752259091)

3 years agoAdding Timeless skin to 1.31
Chad Horohoe [Sat, 5 May 2018 17:02:46 +0000 (10:02 -0700)]
Adding Timeless skin to 1.31

Change-Id: I57d868eb596f5067690fbfdb9c546dcbdbaf5be2

3 years agoUpdate git submodules
Brian Wolff [Fri, 4 May 2018 21:00:56 +0000 (21:00 +0000)]
Update git submodules

* Update extensions/InputBox from branch 'REL1_31'
  to dfec2613ddd6b2bfc6cf291be74429b5bfebea89
  - Bump phan-taint-check 1.1.0->1.2.0

    Bug: T193909
    Change-Id: I1bf4d64e68bff516b5f8b6266d85f670200084df
    (cherry picked from commit 4d4aefd2f24e9e8e996e3fba29df3f5cae60c7b7)

3 years agoUpdate git submodules
Brian Wolff [Fri, 4 May 2018 20:57:11 +0000 (20:57 +0000)]
Update git submodules

* Update extensions/InputBox from branch 'REL1_31'
  to 0fdeec73bd212f4409bfbdfcfc1aa977694d3c43
  - Fix a phan-taint-check false positive

    phan-taint-check gets confused when you escape a variable and
    assign the escaped version to the same name as the unescaped

    Change-Id: I1bf4d64e68bff516b5f8b6266d85f67020008433
    (cherry picked from commit 252fed5d27cc67701c7fbf98370e4af0d50fcb38)

3 years agoUpdate git submodules
Brian Wolff [Fri, 4 May 2018 20:30:10 +0000 (20:30 +0000)]
Update git submodules

* Update extensions/CodeEditor from branch 'REL1_31'
  to 886d7971ae1b04edc463bc7e11d7f5d282ae4f10
  - Add phan-taint-check as version 1.2.0

    Bug: T193909
    Change-Id: Ibbfa1554ed1fe4dcaba2629abf608b59a2dd2733
    (cherry picked from commit e9df595a2670e967fd5005b87fa401287cc18a48)

3 years agoUpdate git submodules
Brian Wolff [Fri, 4 May 2018 20:27:19 +0000 (20:27 +0000)]
Update git submodules

* Update extensions/CiteThisPage from branch 'REL1_31'
  to f224f44304637e739ac470f7fca25498486cb0fe
  - Bump phan-taint-check 1.1.0->1.2.0

    Bug: T193909
    Change-Id: I1bf4d64e68bff516b5f8b6266d85f670200084df
    (cherry picked from commit 860ece0d63309b077d605526790e198907bbd185)

3 years agoUpdate git submodules
Brian Wolff [Fri, 4 May 2018 19:45:52 +0000 (19:45 +0000)]
Update git submodules

* Update extensions/ParserFunctions from branch 'REL1_31'
  to 7ec426b9a1d5fabfa8ba79e08806c5b3f796837a
  - Update phan-taint-check version 1.1.0 -> 1.2.0

    Change-Id: Ib3eec1e70d8c1e4fdcfe811168adff7e32878d3b
    (cherry picked from commit b67b90c6a4918396c221c7154a827495d3d6d942)

3 years agoUpdate git submodules
Brian Wolff [Fri, 4 May 2018 21:06:27 +0000 (21:06 +0000)]
Update git submodules

* Update extensions/Interwiki from branch 'REL1_31'
  to b78d2d1d83f403241a5c882c62fcb5019fdcf5a2
  - Bump phan-taint-check 1.1.0->1.2.0

    Bug: T193909
    Change-Id: I1bf4d64e68bff516b5f8b6266d85f670200084df
    (cherry picked from commit 14279ac1774db1d9585cf1b97074de359194556d)

3 years agoUpdate git submodules
Brian Wolff [Fri, 4 May 2018 20:34:59 +0000 (20:34 +0000)]
Update git submodules

* Update extensions/Gadgets from branch 'REL1_31'
  to bac29aee151272c14b0675af2f4c273dc3139a1b
  - Bump phan-taint-check 1.1.0->1.2.0

    Bug: T193909
    Change-Id: I1bf4d64e68bff516b5f8b6266d85f670200084df
    (cherry picked from commit ee633a273bda1f16a63897c6adfe4f6baa889347)

3 years agoUpdate git submodules
Brian Wolff [Fri, 4 May 2018 20:39:19 +0000 (20:39 +0000)]
Update git submodules

* Update extensions/ImageMap from branch 'REL1_31'
  to 6ca1ad79b0afb0d7b80f4ffccd844cc557e22db9
  - Bump phan-taint-check 1.1.0->1.2.0

    Bug: T193909
    Change-Id: I1bf4d64e68bff516b5f8b6266d85f670200084df
    (cherry picked from commit 08909bdffa0ab08f5fa5bbeec79555ca898dcdab)

3 years agoUpdate git submodules
Brian Wolff [Fri, 4 May 2018 21:08:01 +0000 (21:08 +0000)]
Update git submodules

* Update extensions/LocalisationUpdate from branch 'REL1_31'
  to 0249f52dca6b034edc249894efdc849e161eb925
  - Bump phan-taint-check 1.1.0->1.2.0

    Bug: T193909
    Change-Id: I1bf4d64e68bff516b5f8b6266d85f670200084df
    (cherry picked from commit d9ed872a2adec76915b0e86c2fd3d84bc9309e0a)

3 years agoUpdate git submodules
Brian Wolff [Fri, 4 May 2018 20:32:53 +0000 (20:32 +0000)]
Update git submodules

* Update extensions/ConfirmEdit from branch 'REL1_31'
  to b52469cf5716165dcf55e0db103d45af045b2acc
  - Bump phan-taint-check 1.1.0->1.2.0

    Bug: T193909
    Change-Id: I1bf4d64e68bff516b5f8b6266d85f670200084df
    (cherry picked from commit 544f0712f04bc790782541fdc63cae34976ede4b)

3 years agoUpdate git submodules
Brian Wolff [Fri, 4 May 2018 21:20:37 +0000 (21:20 +0000)]
Update git submodules

* Update extensions/OATHAuth from branch 'REL1_31'
  to cf9f8c126b5213b77fb4dc7b7f49d775c8189119
  - Bump phan-taint-check 1.1.0->1.2.0

    Bug: T193909
    Change-Id: I1bf4d64e68bff516b5f8b6266d85f670200084df
    (cherry picked from commit 19c9b40836b40cb2d82e8be957e0c615eaae20c8)

3 years agoRELEASE-NOTES-1.31: Synchronise with master
Jforrester [Thu, 3 May 2018 23:01:29 +0000 (23:01 +0000)]
RELEASE-NOTES-1.31: Synchronise with master

0e757428d RELEASE-NOTES-1.31: Add notes for Ia76dd6db3
0b7d183e2 RELEASE-NOTES-1.31: Add notes for I8228cdd3b
360fac542 RELEASE-NOTES-1.31: Add notes for I94377faa5
b4674e56a RELEASE-NOTES-1.31: More cleanup

Change-Id: I78d01cd1616c4ec9cdc3f7b798d52cfbf7ba46ad

3 years agoDrop archive.ar_text and ar_flags
Brad Jorsch [Tue, 28 Nov 2017 22:32:05 +0000 (17:32 -0500)]
Drop archive.ar_text and ar_flags

This should have been done long ago. Now it is being done.

This also changes ar_text_id to NOT NULL, since it should never be null
anymore, and DEFAULT 0 in preparation for MCR stopping writing it.

Bug: T33223
Change-Id: I18f1c740b7537c7dc3cfeba9b241d0a9f31caa34
(cherry picked from commit 21c6ae1163b07da7ac49938f50613c0e1cf262c3)

3 years agoRELEASE-NOTES-1.31: Wrap to 80 chars and fix up
Jforrester [Wed, 2 May 2018 21:08:48 +0000 (21:08 +0000)]
RELEASE-NOTES-1.31: Wrap to 80 chars and fix up

Change-Id: I0a090a3ac057021ac2e3544f5e05b2fadd0b9155

3 years agoFix MySQLism in populateRevisionLength.php 1.31.0-rc.0
Brad Jorsch [Tue, 1 May 2018 13:24:36 +0000 (09:24 -0400)]
Fix MySQLism in populateRevisionLength.php

Use addQuotes() to make a quoted string instead of MySQL's nonstandard
use of double-quotes.

Change-Id: Ie2d017a33b694417a3db140b2798a8d55f911985
(cherry picked from commit 5e6efe18d01f64f2c9a0a8bcb213ffe30999530f)

3 years agoMake populateRevisionLength fix rows with ar_len = 0.
daniel [Mon, 23 Apr 2018 09:07:24 +0000 (11:07 +0200)]
Make populateRevisionLength fix rows with ar_len = 0.

Due to T192189, some rows in the archive table may have ar_len set to 0
erronously. This can be detected by checking if they have ar_sha1 set to
"phoiac9h4m842xq45sp7s6u21eteeq1", which is the hash of the empty string.

This patch makes populateRevisionLength.php detect and fix such rows.

Bug: T192189
Change-Id: I9b6cd62f4b8c5bf93cd305b56af4352a527e19c9
(cherry picked from commit e420790f5200568422dce9473ef44d4f7cefe675)

3 years agoUpdate git submodules
Kunal Mehta [Sat, 14 Apr 2018 01:35:20 +0000 (18:35 -0700)]
Update git submodules

* Update extensions/CodeEditor from branch 'REL1_31'
  to 422d0186bd4f5f5653683b8cb79c0f7cb6fe2a92
  - Mention Ace license in "license-name"

    Change-Id: Ibbfa1554ed1fe4dcaba2629abf608b59a2dd279a
    (cherry picked from commit 99a38b36a316fed4c4fdbc6ecf688d0fd442606f)

3 years agoUpdate wikimedia/html-formatter from 1.0.1 to 1.0.2
Reedy [Sat, 28 Apr 2018 11:49:36 +0000 (12:49 +0100)]
Update wikimedia/html-formatter from 1.0.1 to 1.0.2


Bug: T193318
Change-Id: I5f7a3e2300f343f675124df399cfe12909f56e14
Depends-On: Ia69102af64a0102e05b96b10f63ffcf6cbf292fa
(cherry picked from commit b5088a20c96b2a1be15850a72e637f384b231606)

3 years agoUpdate git submodules
Brion Vibber [Thu, 26 Apr 2018 22:32:15 +0000 (15:32 -0700)]
Update git submodules

* Update extensions/PdfHandler from branch 'REL1_31'
  to ab596dbb7dc3f162c2772832456a1ad4e6266608
  - Fix for pdfinfo changes in poppler-utils 0.48

    PDF metadata querying was done with pdfinfo's "-meta" and "-l" options
    at the same time, which was supported in poppler 0.26 but not in
    poppler 0.48.

    Upstream change: https://bugs.freedesktop.org/show_bug.cgi?id=96801

    Local change is to run the two as separate commands, then send the
    output together into the existing processing. Should work with older
    poppler-utils on Jessie as well as current one on Stretch.

    Bug: T117839
    Bug: T193200
    Change-Id: Ib4ee9cf12ac04304c576087727eff5dc521ae751

3 years agoMerge "import: Don't try duplicate detection when the sha1 is unavailable" into REL1_31
jenkins-bot [Thu, 26 Apr 2018 05:25:38 +0000 (05:25 +0000)]
Merge "import: Don't try duplicate detection when the sha1 is unavailable" into REL1_31

3 years agoimport: Don't try duplicate detection when the sha1 is unavailable
Brad Jorsch [Mon, 23 Apr 2018 20:57:28 +0000 (16:57 -0400)]
import: Don't try duplicate detection when the sha1 is unavailable

Trying to compare a string field with 0 (cast from false) raises an
error in PostgreSQL, and we're expecting it to not detect duplicates in
that situation anyway.

Change-Id: Ibff6daee6bbec00e37532e03c9ece041ba612de0
(cherry picked from commit f09d66de2ab88e3ed39fc21b3805cea90eee5bfe)

3 years agomail: Always quote uncoded names in MailAddress
Alexia E. Smith [Tue, 10 Apr 2018 22:10:33 +0000 (17:10 -0500)]
mail: Always quote uncoded names in MailAddress

Otherwise, names that contain whitespace (but no special characters
that need Q-encoding) will be sent as-is in an email header. While
that's valid by RFC 1036, RFC 5322 and others, some mail programs
fail to correctly process spaces. Avoid these problems by simply
quoting the name always - except for cases which are Q-encoded,
which must remain unquoted to be valid (and also cannot contain
spaces, thus unaffected).

> From: Foo Bar <fb@example.org>

> From "Foo Bar" <fb@example.org>

Update test to work with the new criteria.

Bug: T191931
Change-Id: I4b2a0a80e8b43ecc943939fc5ebaa356a4f840e0
(cherry picked from commit 2b28a56d8ac9a2393924a0b201cc39bd86fc4d15)

3 years agoPHPVersionCheck: Properly check for `xml` extension in PHP 7.2+
Kunal Mehta [Sat, 14 Apr 2018 22:31:00 +0000 (15:31 -0700)]
PHPVersionCheck: Properly check for `xml` extension in PHP 7.2+

In 7.2, the `utf8_encode` function was moved into core PHP, and is no
longer a part of the `xml` extension. Use a different function to check
for the existence of it.

Change-Id: Ib50c1a59dd9c2a8777b07b2f7a3dd638a55832c6
(cherry picked from commit 9e5785b7204e6a927e7f60ce4cbdeedad8f45818)

3 years agoFix handling of ar_length and ar_sha1 in RevisionArchiveRecord.
daniel [Tue, 17 Apr 2018 16:51:38 +0000 (18:51 +0200)]
Fix handling of ar_length and ar_sha1 in RevisionArchiveRecord.

This makes sure that length and hash are calculated if not known.

This patch also adds missing unit tests for RevisionArchiveRecord,
and consolidates unit tests for the different RevisionRecord
subclasses using a trait.

Bug: T192189
Change-Id: I5e1d17ba96e61e068b6aa5ac9c45ac0f657905a6
(cherry picked from commit 040d5b25525a9a9c8fd27d8dca7fe1b7452cf05b)

3 years agoresourceloader: Disable ChronologyProtector on load.php (again)
Timo Tijhof [Fri, 20 Apr 2018 00:15:29 +0000 (01:15 +0100)]
resourceloader: Disable ChronologyProtector on load.php (again)

This was already disabled in 2016 with 98c6743413118f by calling
setRequestInfo() to override the default 'ChronologyProtection' value
from Setup.php.

This stopped working since 4ccb228bde9294d96d which made
getDBLoadBalancerFactory (in ServiceWiring) obtains a LoadBalancer
from MWLBFactory::setSchemaAliases, and requestInfo is not
re-evaluated after that.

Bug: T192611
Change-Id: I68748e8f15bcd7bfa8d7921964788e2798682e05
(cherry picked from commit 0612ce28964e35e9ccb988e7372b1f40c00314e8)

3 years agoRELEASE-NOTES: Fix typo in CSSMin release note
Timo Tijhof [Mon, 23 Apr 2018 17:35:02 +0000 (18:35 +0100)]
RELEASE-NOTES: Fix typo in CSSMin release note

Follows-up c058bc4af3.

Bug: T189375
Change-Id: I21200dba6649d775d519249ae09cc21660dc864b

3 years agoMerge "Fix and improve PHPDoc type hints in FileBackend and FileRepo" into REL1_31
jenkins-bot [Mon, 23 Apr 2018 17:20:09 +0000 (17:20 +0000)]
Merge "Fix and improve PHPDoc type hints in FileBackend and FileRepo" into REL1_31

3 years agoMerge "resourceloader: Disable a flaky MessageBlobStoreTest case" into REL1_31
jenkins-bot [Mon, 23 Apr 2018 17:08:37 +0000 (17:08 +0000)]
Merge "resourceloader: Disable a flaky MessageBlobStoreTest case" into REL1_31

3 years agoMerge "build: Switch QUnit package from deprecated 'qunitjs' to 'qunit'" into REL1_31
jenkins-bot [Mon, 23 Apr 2018 17:08:34 +0000 (17:08 +0000)]
Merge "build: Switch QUnit package from deprecated 'qunitjs' to 'qunit'" into REL1_31

3 years agoMerge "selenium: Abstract test command behind 'npm run'" into REL1_31
jenkins-bot [Mon, 23 Apr 2018 17:08:31 +0000 (17:08 +0000)]
Merge "selenium: Abstract test command behind 'npm run'" into REL1_31

3 years agoMerge "CSSMin: Fix breaking of quoted urls with outer spacing" into REL1_31
jenkins-bot [Mon, 23 Apr 2018 16:51:23 +0000 (16:51 +0000)]
Merge "CSSMin: Fix breaking of quoted urls with outer spacing" into REL1_31

3 years agoresourceloader: Disable a flaky MessageBlobStoreTest case
Timo Tijhof [Tue, 17 Apr 2018 21:19:36 +0000 (22:19 +0100)]
resourceloader: Disable a flaky MessageBlobStoreTest case

Sometimes fails on the mediawiki-phpunit-php70-jessie job.

Bug: T176097
Change-Id: Id8c142954d597e1efaa326795f419d48b7af8bdf
(cherry picked from commit 353f09fac98be288d933d73145cffa14773e31d8)

3 years agobuild: Switch QUnit package from deprecated 'qunitjs' to 'qunit'
Timo Tijhof [Mon, 23 Apr 2018 15:32:50 +0000 (16:32 +0100)]
build: Switch QUnit package from deprecated 'qunitjs' to 'qunit'

This should fix the deprecation warning from npm in CI logs.

Change-Id: I5d02dd8d6a86123d7935db51b8d0b5d88218869f

3 years agoselenium: Abstract test command behind 'npm run'
Timo Tijhof [Mon, 23 Apr 2018 14:56:54 +0000 (15:56 +0100)]
selenium: Abstract test command behind 'npm run'

This makes it possible to use in Quibble. Right now, Quibble
cannot use 'npm run selenium' yet because it sets up its own
chromedriver, which would conflict with selenium.sh.

But, in preparation for Id95f18927b5, we can at least abstract
the test command so that it can easily be changed without having
to update Quibble and without having to worry about it being the
same in all MediaWiki branches.

Bug: T179190
Change-Id: I622ec3bf36746502cae891cc6bec23982b21f876

3 years agoMerge "Make getScopedLockAndFlush() in Category::refreshCounts non-blocking" into...
jenkins-bot [Mon, 23 Apr 2018 16:21:42 +0000 (16:21 +0000)]
Merge "Make getScopedLockAndFlush() in Category::refreshCounts non-blocking" into REL1_31

3 years agoCSSMin: Fix breaking of quoted urls with outer spacing
Timo Tijhof [Tue, 13 Mar 2018 00:20:20 +0000 (17:20 -0700)]
CSSMin: Fix breaking of quoted urls with outer spacing

Bug:  T189375
Change-Id: I9226ec9bd21d7dedc964fbc1dc1f0914abe458d5
(cherry picked from commit 5333d63cbc3d97689c3eb0ab520abc4b264dc0dd)

3 years agoFix and improve PHPDoc type hints in FileBackend and FileRepo
Thiemo Kreuz [Thu, 19 Apr 2018 08:30:33 +0000 (10:30 +0200)]
Fix and improve PHPDoc type hints in FileBackend and FileRepo

Change-Id: I311b4a6777946b451d70c6fdb2133dbbd73f159f
(cherry picked from commit 645d96b0e1560e58285c88abfe8f8e726acb2e64)

3 years agoMake getScopedLockAndFlush() in Category::refreshCounts non-blocking
Aaron Schulz [Thu, 19 Apr 2018 18:43:09 +0000 (11:43 -0700)]
Make getScopedLockAndFlush() in Category::refreshCounts non-blocking

Change-Id: I675ec38e064f57a4e960b3934c472833a945b695
(cherry picked from commit 0b5ff6454a2ae32d88bf907dac9ee3937f59e0fd)

3 years agordbms: make sure cpPosIndex cookie is applied to LBFactory in time
Aaron Schulz [Fri, 20 Apr 2018 20:45:49 +0000 (13:45 -0700)]
rdbms: make sure cpPosIndex cookie is applied to LBFactory in time

Once getMain() was called in setSchemaAliases(), the ChronologyProtector
was initialized and the setRequestInfo() call in Setup.php had no effect.
Only the request values read in LBFactory::__construct() were used, which
reflect $_GET but not cookie values.

Use the $wgDBtype variable to avoid this and add an exception when that
sort of thing happens.

Further defer instantiation of ChronologyProtector so that methods like
ILBFactory::getMainLB() do not trigger construction.

Bug: T192611
Change-Id: I735d3ade5cd12a5d609f4dae19ac88fec4b18b51
(cherry picked from commit 628a3a9b267620914701a2a0a17bad8ab2e56498)

3 years agoMerge "Adding CategoryTree" into REL1_31
jenkins-bot [Mon, 23 Apr 2018 15:25:40 +0000 (15:25 +0000)]
Merge "Adding CategoryTree" into REL1_31

3 years agoMerge "Test ApiMove" into REL1_31
jenkins-bot [Mon, 23 Apr 2018 15:25:37 +0000 (15:25 +0000)]
Merge "Test ApiMove" into REL1_31

3 years agoAdding CategoryTree
Chad Horohoe [Wed, 18 Apr 2018 09:22:25 +0000 (02:22 -0700)]
Adding CategoryTree

Change-Id: I0e6a4c44596f1cd9f063b346f32b37bfd2d920d4

3 years agoFix typo: bytePointLimit -> byteLimit
Ed Sanders [Sun, 22 Apr 2018 11:48:59 +0000 (12:48 +0100)]
Fix typo: bytePointLimit -> byteLimit

Change-Id: Ifafc4bdd6663e1ccfa6be938e5fc72fd1442a9a5
(cherry picked from commit 8ad7cd92b559632ff8f49fa55e33771670ffcf07)

3 years agoHard-deprecate wfUsePHP()
Max Semenik [Thu, 19 Apr 2018 01:45:47 +0000 (18:45 -0700)]
Hard-deprecate wfUsePHP()

Deprecated in 1.30, no callers anywhere.

Change-Id: I5168234f4e8cfffbccc9dd43026255ee2dcd878d

3 years agoTest ApiMove
Aryeh Gregor [Sun, 8 Apr 2018 19:00:32 +0000 (22:00 +0300)]
Test ApiMove

One bug caught: the watch and unwatch params were not being honored.
They have now been removed.

Depends-On: Ia21a974f2b463afc9324182137b95c80db86a6aa
Change-Id: I0e214339c9ae3f0fb5a40c88a84190bc32503151
(cherry picked from commit 80c7158f06b61acf5e8d8f46ee45c4c49829837b)

3 years agoMerge "rdbms: correct atomic section examples in comments" into REL1_31
jenkins-bot [Fri, 20 Apr 2018 18:12:23 +0000 (18:12 +0000)]
Merge "rdbms: correct atomic section examples in comments" into REL1_31

3 years agordbms: correct atomic section examples in comments
Aaron Schulz [Fri, 13 Apr 2018 22:25:28 +0000 (15:25 -0700)]
rdbms: correct atomic section examples in comments

Follow-up to f0f4f5f5b820

Change-Id: I0402be7942f615f3e6f7ee3edd6f7b356a6bc3ef
(cherry picked from commit d1e70af98d46cb16b8e77c7d11ced16cfdd80d8b)

3 years agordbms: make cancelAtomic() handle callbacks and work with DBO_TRX
Aaron Schulz [Sat, 24 Mar 2018 07:02:24 +0000 (00:02 -0700)]
rdbms: make cancelAtomic() handle callbacks and work with DBO_TRX

Make transaction callbacks aware of cancelled sections. If the
statements of a section are reverted via cancelAtomic(), then the
dependant callbacks are now cancelled as well. Any callbacks for
onTransactionResolution(), which does not depend on COMMIT, will
see the triggering event as a ROLLBACK, since the unit of work it
was part of was rolled back.

Also fix the handling of topmost atomic sections with DBO_TRX.
These still need their own savepoint to make cancelAtomic() work.

Follow-up to 52aeaa7a5.

Change-Id: If4d455c98155283797678cfb9df31d5317dd91a2
(cherry picked from commit 20777d73998fb7024593752b0b3211d9d0e79b79)

3 years agoMerge "Don't pass USE INDEX to a $dbType parameter" into REL1_31
jenkins-bot [Thu, 19 Apr 2018 22:15:03 +0000 (22:15 +0000)]
Merge "Don't pass USE INDEX to a $dbType parameter" into REL1_31

3 years agoMerge "API: Fix PHP Warning for "count(): Parameter must be an array"" into REL1_31
jenkins-bot [Thu, 19 Apr 2018 22:10:36 +0000 (22:10 +0000)]
Merge "API: Fix PHP Warning for "count(): Parameter must be an array"" into REL1_31

3 years agoMerge "Deprecate $wgUseAjax in 1.31" into REL1_31
jenkins-bot [Thu, 19 Apr 2018 22:09:54 +0000 (22:09 +0000)]
Merge "Deprecate $wgUseAjax in 1.31" into REL1_31

3 years agojquery.makeCollapsible: Only add '[' ']' to autogenerated toggles
Bartosz Dziewoński [Wed, 18 Apr 2018 20:02:49 +0000 (22:02 +0200)]
jquery.makeCollapsible: Only add '[' ']' to autogenerated toggles

These should not be added if a pre-generated toggle was provided in
page HTML.

Follow-up to 46a7aa7e3e8ea98b69ae4bd0aff51465da57bcd3.

Bug: T192140
Change-Id: I4b7a7091c1db3559a474de94f8286c0df0af8a67
(cherry picked from commit 0b593253ba57b84c7c0a7688aa889d50cbad85eb)

3 years agoDon't pass USE INDEX to a $dbType parameter
Reedy [Thu, 19 Apr 2018 19:01:26 +0000 (19:01 +0000)]
Don't pass USE INDEX to a $dbType parameter

Bug: T192584
Change-Id: Ia2b761bad570532696419b4f23f84bc85ff2c0e8

3 years agoDeprecate $wgUseAjax in 1.31
Jforrester [Thu, 19 Apr 2018 18:42:12 +0000 (18:42 +0000)]
Deprecate $wgUseAjax in 1.31

This setting was intended to control the legacy AJAX framework, but some
extensions mistakenly used it to control any AJAX functionality at all.

But keeping this around when we're deprecating things like $wgEnableAPI
makes no sense.

[Retro-back-ported after bf61efd87 had landed in 1.32.]

Change-Id: I7b767478f9fb44236e6514b0e83228d9fb8e856f
(cherry picked ish from commit 434f280ba9b27c9f3e3b4dbeb9b260834913649d)

3 years agoAPI: Fix PHP Warning for "count(): Parameter must be an array"
Timo Tijhof [Thu, 19 Apr 2018 01:39:23 +0000 (02:39 +0100)]
API: Fix PHP Warning for "count(): Parameter must be an array"

Found by the new ApiUserrights test introduced in 5ab1bee6bcf:
> includes/specials/SpecialUserrights.php:462
> includes/specials/SpecialUserrights.php:405
> includes/api/ApiUserrights.php:116

The $tags parameter of the UserrightsPage::doSaveUserGroups()
method must be an array and is not nullable. Fix the caller
to not pass null, but an empty array.

Bug: T182377
Change-Id: Ic9be6a0bddfac023de765c810c07a64d651c33b4

3 years agoChange php requirement in composer from >= 7.0.0 to >= 5.6.99
Reedy [Thu, 19 Apr 2018 10:44:29 +0000 (10:44 +0000)]
Change php requirement in composer from >= 7.0.0 to >= 5.6.99

Change-Id: I13e75ea955d2d0034cfbaad86ae9c9118fac6e89

3 years agoFollow-up 2c74b043568e: Restore use of 'clearyourcache' message
Reedy [Wed, 18 Apr 2018 15:58:02 +0000 (15:58 +0000)]
Follow-up 2c74b043568e: Restore use of 'clearyourcache' message

Bug: T191800
Change-Id: I632fff6489e929847e7abc1d944277e3b0358314

3 years agoAPI: Remove 1e3>1 test case from ApiBaseTest
Timo Tijhof [Wed, 18 Apr 2018 23:09:53 +0000 (00:09 +0100)]
API: Remove 1e3>1 test case from ApiBaseTest

Follows-up d3da5e08d35f, which broke PHP 7.1 and PHP 7.2 test jobs.

This isn't about logic in ApiBase, but about PHP's str-to-int
logic which actually varies between PHP5 and PHP7.

One maps it to 1000, the other as strict int 1 (with non-numerical
text chopped off, the same as it would for 1foo).

If we want to support 1e3 as part of the API itself, then we'd
need to parse it ourselves and then add the test back.

Bug: T192425
Change-Id: I6fc43f29425749a1abe785fefa312db6a98ea7cd
(cherry picked from commit 9ded02ec8e255ee6b9ee213b278b1f9a86147051)

3 years agoRemove $wgScriptExtension (deprecated and ignored since 1.25)
James D. Forrester [Fri, 16 Feb 2018 22:03:44 +0000 (14:03 -0800)]
Remove $wgScriptExtension (deprecated and ignored since 1.25)

* Remove left-over mention of the .php5 entry points in docs.

* Remove dead logic in NoLocalSettings for php5 entry points.

* Remove dead match in WebRequest for php5 entry points (they'd
  redirect since 1.25, and not seen by PHP).

Change-Id: Ia0ee8588591860b8fe34030c8503f38e9bce31f3
(cherry picked from commit de6dab71e3ea0166095b6c6e3837255d1e56b887)

3 years agoMerge "Bump PHP version requirement to 7.0.0+" into REL1_31
jenkins-bot [Wed, 18 Apr 2018 20:48:46 +0000 (20:48 +0000)]
Merge "Bump PHP version requirement to 7.0.0+" into REL1_31

3 years agoReduce some nesting in CryptRand.php
Reedy [Wed, 18 Apr 2018 11:59:13 +0000 (11:59 +0000)]
Reduce some nesting in CryptRand.php

Change-Id: Ic0b7307d66f877a5b1df974f34846857084dc23a
(cherry picked from commit 21551d2d15f2262695ad9d56d38ae0af7d942ad9)

3 years agoReplace recently introduced mediawiki/at-ease calls
Reedy [Wed, 18 Apr 2018 14:10:42 +0000 (14:10 +0000)]
Replace recently introduced mediawiki/at-ease calls

Change-Id: I1f6b7ed199faf4c8f3a3932731507c18413ad6e6
(cherry picked from commit 96de342c33b60459ac021ac4cdbf3083f9c77231)

3 years agoBump PHP version requirement to 7.0.0+
James D. Forrester [Thu, 18 Jan 2018 23:34:32 +0000 (15:34 -0800)]
Bump PHP version requirement to 7.0.0+

Bug: T172165
Change-Id: I740f32ac859d9bb3787fdf8414f82ae6f410492f

3 years agoMerge "Sync PG version in INSTALL" into REL1_31
jenkins-bot [Wed, 18 Apr 2018 18:07:10 +0000 (18:07 +0000)]
Merge "Sync PG version in INSTALL" into REL1_31

3 years agoMerge "installer: Clean up ext-dependency jQuery code" into REL1_31
jenkins-bot [Wed, 18 Apr 2018 17:49:29 +0000 (17:49 +0000)]
Merge "installer: Clean up ext-dependency jQuery code" into REL1_31

3 years agoSync PG version in INSTALL
Max Semenik [Wed, 18 Apr 2018 17:43:51 +0000 (10:43 -0700)]
Sync PG version in INSTALL

Change-Id: I31f65bba28e8b600aa275bf287cd73dec98d96dc

3 years agoFix bad archive file names in ImportableUploadRevisionImporter
Thiemo Kreuz [Mon, 16 Apr 2018 17:30:07 +0000 (19:30 +0200)]
Fix bad archive file names in ImportableUploadRevisionImporter

Bug: T176871
Change-Id: I61625a515a8d49dec33af49022506be2e019a23b
(cherry picked from commit f449e1ce7c0f4092f8cb39e5a54489387ae35d45)

3 years agoinstaller: Clean up ext-dependency jQuery code
Timo Tijhof [Wed, 18 Apr 2018 02:14:30 +0000 (03:14 +0100)]
installer: Clean up ext-dependency jQuery code

Follows-up c8833d8e8ecc.

* Select the input elements by class to avoid accidentally trigging
  on unrelated elements elsewhere on the page in the future, given
  the generic selector.

* Use on('change') instead of deprecated change() alias.

* Set properties directly instead of via prop() indirection.
* Get attribute directly instead of via data() indirection.

Change-Id: I5158aa26b5fd7327d6795f0a31bbffbe99043fbf
(cherry picked from commit fd8a4c707a9c053ccf20ba0594cfc9c11354a374)

3 years agoSwap mediawiki/at-ease for wikimedia/at-ease
Reedy [Wed, 18 Apr 2018 12:35:14 +0000 (13:35 +0100)]
Swap mediawiki/at-ease for wikimedia/at-ease

Bump wikimedia/php-session-serializer to v1.0.6

Change-Id: I9ed96a29d6db39206377b45e3d46cb2082587f75
Depends-On: I963a61135d66b8baa4638979fd21077d925276b9
(cherry picked from commit 64898738bb0dae5bd39f4eab06a9c622a600be73)

3 years agoinstaller: Open skin screenshot in new window
Timo Tijhof [Wed, 18 Apr 2018 01:59:36 +0000 (02:59 +0100)]
installer: Open skin screenshot in new window

By default the plain links hijack the current window, thus
causing the user to lose their current changes to the installer
form. It may also cause confusion as to how to get back.

Absence a modal way to view the image, at least it should default
to opening the image in a new tab.

Change-Id: I4a25f1f51e04a33f1f359f12af25b8e1db5fbd20
(cherry picked from commit d37ee8e91e0b08a937e3721bee406e16ab84c0de)

3 years agoMerge "Update CREDITS and .mailmap" into REL1_31
jenkins-bot [Wed, 18 Apr 2018 01:50:14 +0000 (01:50 +0000)]
Merge "Update CREDITS and .mailmap" into REL1_31

3 years agoUpdate CREDITS and .mailmap
Timo Tijhof [Wed, 18 Apr 2018 01:05:33 +0000 (02:05 +0100)]
Update CREDITS and .mailmap

Before this change, running the script would add the following:

* Cicalese: Duplicate. Fixed by adding another address to mailmap.
  Follows-up 3b55b0b3b8.

* gopavasanth: Added.

* Guycn2: Added.

* Zoranzoki21: Duplicate. Fixed by normalising their name via mailmap.

Also, remove the following added by 19ccff96086b70b:

* GeoffreyT2000: Duplicate. Already normalised by mailmap.

Change-Id: I5b11444a74dad090e484c2e256d32de5f6792943