jenkins-bot [Thu, 14 Jun 2018 14:54:53 +0000 (14:54 +0000)]
Merge "rdbms: avoid redundant SPI logging fields in ChronologyProtector log entries"
jenkins-bot [Thu, 14 Jun 2018 14:11:27 +0000 (14:11 +0000)]
Merge "[MCR] RevisionStore, enable insertions for new schema"
jenkins-bot [Thu, 14 Jun 2018 13:56:39 +0000 (13:56 +0000)]
Merge "Preferences: Allow only languages with translations in user options"
jenkins-bot [Thu, 14 Jun 2018 13:56:36 +0000 (13:56 +0000)]
Merge "Replace deprecated language codes in user options"
addshore [Mon, 29 Jan 2018 15:54:02 +0000 (15:54 +0000)]
[MCR] RevisionStore, enable insertions for new schema
Enable inserts to the new MCR db schema in single slot mode only.
TODO:
- RELEASE NOTES
Notes:
- When in MIGRATION_WRITE_NEW or greater, deleting and then
restoring a page will result in different data in the revision table.
For example, if you delete a page that has text_ids present in the
revision table and restore it, the text_ids will be blank after.
- When in MIGRATION_WRITE_BOTH or greater the archive table will
start to ar_content_model entries where previously it would have been
given NULL. This is due to the old content schema having NULL in the db
when the default content model is used, but the new schema will always
have a value, taken from the content_models table
Note: If259b1e1c49ce was squashed into this change.
Bug: T183488
Bug: T174024
Change-Id: Ic2221da30c8f6ac2ba42720fcd568f2d0ed70534
Fomafix [Sat, 24 Feb 2018 14:49:46 +0000 (15:49 +0100)]
Preferences: Allow only languages with translations in user options
This change allows only language codes with translations for the user
option 'language'. This restrict the selectable values in the
preferences and also prevents setting the user option via API.
With the URL parameter 'uselang' the user interface language can
still set to a language code without translation.
In the current situation this change will remove the following language
codes from the allowed values:
> print '* ' . implode( "\n* ", array_diff(
array_keys( Language::fetchLanguageNames( null, 'mw' ) ),
array_keys( Language::fetchLanguageNames( null, 'mwfile' ) )
) );
* aa
* als
* bat-smg
* be-x-old
* cho
* fiu-vro
* ho
* hz
* kj
* kr
* mh
* mus
* ng
* no
* rn
* roa-rup
* shi-latn
* shi-tfng
* simple
* tum
* uz-cyrl
* uz-latn
* zh-classical
* zh-min-nan
* zh-yue
The change I1dd6fb1f240ce3319b132d0f29f0622fba33e655 ensures that the
deprecated language codes get replaced by the new language codes. The
other untranslated language codes get replaced by the content language
codes when the user loads the preferences.
Bug: T118199
Change-Id: I1382996b031af3fe9f6e1568beeb6376dcbcd217
Fomafix [Mon, 28 Mar 2016 08:22:43 +0000 (08:22 +0000)]
Replace deprecated language codes in user options
This change replaces deprecated language codes in the user options by
the new language codes when loading the user setting from database.
The database entry for the user gets updated with the new language code
when the user saves the preferences.
Bug: T131042
Change-Id: I1dd6fb1f240ce3319b132d0f29f0622fba33e655
daniel [Sat, 27 Jan 2018 01:48:19 +0000 (17:48 -0800)]
[MCR] Factor PageUpdater out of WikiPage
This introduces PageUpdater to replace WikiPage::doEditContent,
and DerivedPageDataUpdater, to replace WikiPage::doEditUpdates
and WikiPage::prepareContentForEdit.
See docs/pageupdater.txt for a description of their
functionality.
MCR migration notes:
* The interface of PageUpdater is expected to
remain mostly stable after this patch. Code that has been using
WikiPage::doEditContent can be confidently migrated to using the
new mechanism for revision creation.
* This patch keeps the code inside PageUpdater largely aligned
with the old code in WikiPage, to make review easier to to avoid
mistakes. It is intended to be refactored further, moving
application logic into stateless services.
* DerivedPageDataUpdate is intended as a stepping stone for further
refactoring. Its behavior is designed to be compatible with
callback code that currently relies on
WikiPage::prepareContentForEdit. Much of the code that currently
lives in DerivedPageDataUpdate should be factored out into
services, all behavior relevant to calling code should be exposed
via narrow interfaces.
Bug: T174038
Bug: T196653
Change-Id: If610c68f4912e89af616cdcac1d35a1be3946afa
jenkins-bot [Thu, 14 Jun 2018 11:44:06 +0000 (11:44 +0000)]
Merge "Fix typo in method documentation"
jenkins-bot [Thu, 14 Jun 2018 09:03:07 +0000 (09:03 +0000)]
Merge "Add @since tags to come MediaWikiTestCase methods"
Niklas Laxström [Thu, 14 Jun 2018 08:47:08 +0000 (10:47 +0200)]
Fix typo in method documentation
Change-Id: I891f9725acfac993966238abff255e59e9aee07a
jenkins-bot [Thu, 14 Jun 2018 07:56:10 +0000 (07:56 +0000)]
Merge "Suppress addCoreDBData() in tests overriding the revision schema."
jenkins-bot [Thu, 14 Jun 2018 07:52:44 +0000 (07:52 +0000)]
Merge "PHPSessionHandler: Suppress warnings in initialize()"
addshore [Thu, 14 Jun 2018 07:46:18 +0000 (08:46 +0100)]
Add @since tags to come MediaWikiTestCase methods
Follow up to:
- I86e140ec981dfa4e904822b1600399c533f9e3d6 /
e4b775acf113d021ce35f69a177d7444b8ed8412
Change-Id: Ib45f8ba30dfd382318dd87bc232a529c47c9a307
jenkins-bot [Thu, 14 Jun 2018 07:43:59 +0000 (07:43 +0000)]
Merge "selenium: add RecentChanges test to page spec"
jenkins-bot [Thu, 14 Jun 2018 07:42:13 +0000 (07:42 +0000)]
Merge "Improve help text of forced password change"
daniel [Tue, 12 Jun 2018 16:36:34 +0000 (18:36 +0200)]
Suppress addCoreDBData() in tests overriding the revision schema.
Some unit tests for the MCR schema migration change the DB schema
in the test setup. However, addCoreDBData() will not work with the
modified schema. Since these tests don't actually need addCoreDBData()
to do anything, they can simply override it to do nothing.
Without this change, tests for Ic2221da30c and Ifabf39e12ba843
fail with $wgMultiContentRevisionSchemaMigrationStage = MIGRATION_WRITE_BOTH.
Change-Id: I86e140ec981dfa4e904822b1600399c533f9e3d6
Aaron Schulz [Thu, 14 Jun 2018 00:14:23 +0000 (17:14 -0700)]
rdbms: disable ChronologyProtector if EmptyBagOStuff is used
Bug: T197206
Change-Id: Ic07634224fac1ae72d1ba20176c028fdda5ba415
Gergő Tisza [Thu, 14 Jun 2018 06:36:14 +0000 (06:36 +0000)]
Improve help text of forced password change
"reset" sounds confusing; password reset normally means you get a new
random password via email. (This is mainly a problem in
resetpass-validity-soft, where the current wording might make one think
that the password will automatically reset if they skip the form now;
the patch changes the other resetpass-* messages as well for
consistency.)
Change-Id: I3a7129c941ff597741ebdaf0aea15ffdc91e0779
jenkins-bot [Wed, 13 Jun 2018 23:36:51 +0000 (23:36 +0000)]
Merge "Hard deprecate a trio of functions from Language.php"
jenkins-bot [Wed, 13 Jun 2018 22:58:28 +0000 (22:58 +0000)]
Merge "Do not require titles on Special:ComparePages"
jenkins-bot [Wed, 13 Jun 2018 20:07:02 +0000 (20:07 +0000)]
Merge "Provide backwards compatibility for RevisionInsertComplete hook."
Translation updater bot [Wed, 13 Jun 2018 20:02:55 +0000 (22:02 +0200)]
Localisation updates from https://translatewiki.net.
Change-Id: I0c3b7f72cd71155ca6c5cd5fa1571fcb702508df
daniel [Wed, 13 Jun 2018 18:18:47 +0000 (20:18 +0200)]
Provide backwards compatibility for RevisionInsertComplete hook.
Call the RevisionInsertComplete from RevisionStore for now, so extensions
that still rely on this hook don't break when more code uses RevisionStore
instead of Revision.
This specifically avoid breaking EventBus and Translate when If610c68f491
is merged.
Change-Id: I3356c8250d7934e0089d4627fdebddf7983f194f
C. Scott Ananian [Wed, 13 Jun 2018 17:48:02 +0000 (13:48 -0400)]
Hard deprecate a trio of functions from Language.php
These have been soft deprecated since 1.28; let's start the process of
actually removing them.
Change-Id: I33bb6f501e5df419683d06fb9e4516fddc03741b
C. Scott Ananian [Fri, 8 Jun 2018 16:18:05 +0000 (12:18 -0400)]
Deprecate Language::markNoConversion, which confuses readers
Language::markNoConversion is used only within Parser.php and differs
from LanguageConverter::markNoConversion in that, contrary to its name
and its namesake, it only protects *things which look like URLs* from
language conversion.
This wasted several days of my time before I realized what was going on.
It's needless; just hoist the "looks like a URL" special casing inline
to the single place where that functionality is used. (And I wonder
if the "looks like a URL" case is actually needed at all any more,
since most of those cases are probably free external links, which
go through a different code path, not bracketed external links.)
This is a clean-up to the clean-up that liangent performed in 2012
with
e01adbfc0bd9f39adffc1f955ccc711e73818194.
Change-Id: I80479600f34170651732b032e8881855aa1204d8
jenkins-bot [Wed, 13 Jun 2018 16:36:58 +0000 (16:36 +0000)]
Merge "Move RELEASE-NOTES-1.31 into HISTORY"
jenkins-bot [Wed, 13 Jun 2018 16:34:04 +0000 (16:34 +0000)]
Merge "Update feedbacklink text"
jenkins-bot [Wed, 13 Jun 2018 16:29:36 +0000 (16:29 +0000)]
Merge "Expose sort orders from search engine in ApiQuerySearch"
James D. Forrester [Wed, 13 Jun 2018 16:14:34 +0000 (09:14 -0700)]
Move RELEASE-NOTES-1.31 into HISTORY
Change-Id: I82f6707af79846688cc8ccbbe30909198c647f1a
Hagar Shilo [Mon, 11 Jun 2018 17:26:24 +0000 (20:26 +0300)]
Update feedbacklink text
Bug: T195902
Change-Id: I69a9c42ed44eb45513084c01882d8ea8f376c6de
jenkins-bot [Wed, 13 Jun 2018 16:11:37 +0000 (16:11 +0000)]
Merge "mediawiki.ui: Don't style non-MWUI `<input type="number">` elements"
jenkins-bot [Wed, 13 Jun 2018 16:04:40 +0000 (16:04 +0000)]
Merge "Silently drop unknown titles in completion search"
Erik Bernhardson [Sat, 19 May 2018 13:42:54 +0000 (06:42 -0700)]
Expose sort orders from search engine in ApiQuerySearch
Selectable sort orders were added to search some time ago, but never
appear to have been used. Expose them in ApiQuerySearch.
There is one large problem here, but it's not easily solvable.
Specifically supported sort orders vary per search engine, but the
available api parameters are calculated with the default search
engine. This is already a problem with search profiles so it's
nothing new, just continuing the existing problem. Much like
search profiles we hide the functionality when multiple engines
are available.
Bug: T195071
Change-Id: I187a530bc973c08386d2c2126e02a85b952d9022
jenkins-bot [Wed, 13 Jun 2018 15:55:31 +0000 (15:55 +0000)]
Merge "Push pagination decision for search into SearchEngine"
jenkins-bot [Wed, 13 Jun 2018 15:31:01 +0000 (15:31 +0000)]
Merge "Pass $parser, &$query and &$widthOption to the 'ImageBeforeProduceHTML' hook"
jenkins-bot [Wed, 13 Jun 2018 14:37:19 +0000 (14:37 +0000)]
Merge "Use 'trash' icon in the saved filters menu & change 'remove' to 'delete'"
Hagar Shilo [Mon, 11 Jun 2018 17:12:07 +0000 (20:12 +0300)]
Use 'trash' icon in the saved filters menu & change 'remove' to 'delete'
Using 'trash' icon instead of misleading 'clear' and changing 'remove'
to 'delete' accordingly.
Bug: T191530
Change-Id: I8369977df5cdf0dca63683bc682e470223cf6fed
Pablo Grass [Tue, 12 Jun 2018 11:01:25 +0000 (13:01 +0200)]
selenium: add RecentChanges test to page spec
Add Special:RecentChanges page object with method to retrieve
displayed titles, test page last edited is shown there.
Will be used to test more advanced title/link formatters downstream.
Bug: T191600
Change-Id: I916516d5055c3ce9be071a75e5c3af2b3547d4ba
Brad Jorsch [Wed, 13 Jun 2018 13:51:57 +0000 (09:51 -0400)]
PHPSessionHandler: Suppress warnings in initialize()
PHP 7.2 has gotten strict about calling various session-related methods
after headers were sent. Even in CLI mode where there are no headers to
send in the first place. Silence these warnings.
Bug: T197030
Change-Id: Idaabf1320c56e0d6c26387f03af05f32e1496a1c
jenkins-bot [Wed, 13 Jun 2018 13:27:54 +0000 (13:27 +0000)]
Merge "Use more diverse unicode chars in basic browser tests"
jenkins-bot [Wed, 13 Jun 2018 13:21:51 +0000 (13:21 +0000)]
Merge "Disable WebResponse setters for post-send processing"
Gergő Tisza [Tue, 12 Jun 2018 15:56:57 +0000 (17:56 +0200)]
shell.php: update PsySH from 0.8.11 to 0.9.6
Major changes: fix for T186936, external editor support,
timeit command, emulate HISTCONTROL=ignorespace,
fixed tab completion
mediawiki/vendor patch: I5f604250fb213618f734e6ac9c48969ceeb3e7fb
Change-Id: I994689638632f39d86ce88027445d8fe4ea4f649
WMDE-Fisch [Thu, 1 Feb 2018 08:52:10 +0000 (09:52 +0100)]
Use more diverse unicode chars in basic browser tests
See comment in I3423011c467b0a6426cfa0dad522435618f24bd0
and https://mathiasbynens.be/notes/javascript-unicode#poo-test
Decided on using something more positive than a pile of poo though.
Change-Id: Ic34d0d78044cede71fd1cd8742214c117ed2e99f
addshore [Fri, 8 Jun 2018 12:11:38 +0000 (13:11 +0100)]
selenium, page spec, make "should be editable" actually edit
This was using the same content for the edit before this
patch, so no edit was actually made, (just a null edit).
Change-Id: I945090647226e82f22b5b10a414a2a0bf9f2bc19
addshore [Fri, 8 Jun 2018 12:08:49 +0000 (13:08 +0100)]
selenium: page spec, make it easier to see where strings come from
Having randomly generated strings is great, but sometimes
it can help to allow a human to easily see where the string
is actually being generated in code, so add an optional suffix
to the string being generated.
Change-Id: Ibfe45f74b4880a70a76c01223a787dabcd43607e
addshore [Thu, 7 Jun 2018 16:27:06 +0000 (17:27 +0100)]
Use wd/hub not /wd/hub in selenium.sh
I have run into this before and we fixed it in the README
but not in this script (I wasn't using this script at the time)
This was changed in the README in change:
I85a9e7dbd9a66418c85585969adb5ac1548f5ef6
Bug: T182421
Change-Id: I6ab92c6a61a57dc313b05321d0789dcbeb776c94
addshore [Thu, 7 Jun 2018 16:20:59 +0000 (17:20 +0100)]
Don't use killall in selenium.sh
git bash for windows apparently doesn't have killall
by default, so instead get the PID of the chrome driver
we start and kill that specifically.
Change-Id: I8a9a773a7d3dc23807dc3ec12f5b3ef03661c9e3
jenkins-bot [Wed, 13 Jun 2018 11:02:58 +0000 (11:02 +0000)]
Merge "RCFilters: Reduce min-height for Watchlist"
Kunal Mehta [Sun, 10 Jun 2018 19:12:52 +0000 (12:12 -0700)]
Improve LinkRenderer::getLinkText() coverage
Change-Id: I067522025c247346888c9f5a3d905bf03a93b7bc
Kunal Mehta [Sun, 10 Jun 2018 19:05:31 +0000 (12:05 -0700)]
Remove deprecated Linker::getLinkColour()
Change-Id: I1818d9eb369c620cc436c13446a5362816e8362d
jenkins-bot [Wed, 13 Jun 2018 06:02:23 +0000 (06:02 +0000)]
Merge "linker: Hard-deprecate LinkBegin and LinkEnd hooks"
Bartosz Dziewoński [Wed, 13 Jun 2018 02:15:27 +0000 (04:15 +0200)]
mediawiki.ui: Don't style non-MWUI `<input type="number">` elements
These styles mess with the styles for OOUI NumberInputWidget.
Change-Id: I9b7c8a010bc704c922cb6200a0316ed8e48851c5
jenkins-bot [Tue, 12 Jun 2018 23:51:49 +0000 (23:51 +0000)]
Merge "rdbms: make getCPInfoFromCookieValue() stricter about allowed values"
C. Scott Ananian [Fri, 8 Jun 2018 15:45:07 +0000 (11:45 -0400)]
Remove unnecessary Parser::getConverterLanguage() indirection
The getConverterLanguage() method was added in March 2012 in commit
561424c266128a8c2c213cd803d4786313fc20cc as a workaround for a regression
in mediawiki 1.19. It was an indirection which checked the global variable
$wgBug34832TransitionalRollback to return a different converter language
for Chinese wikis.
When this temporary bugfix was reverted in January 2013 in commit
a3fbdaaa2c4eb5ddc6bfbd62ae57a7804a307f12, the temporary global variable
was removed, but not the getConverterLanguage() indirection. Since then,
new code in the parser seems to have faithfully used getConverterLanguage()
instead of getTargetLanguage(), even though they are identical and the
need for getConverterLanguage() has long since passed.
Strike a small blow for elegant minimalism by removing the completely
unnecessary Parser::getConverterLanguage() indirection. Well, sort
of: since this blight has been slowly growing inside Parser.php for
so long, we need to deprecate getConverterLanguage() first just in
case any external dependency has been infected. Next release we
can finally excise the unnecessary method.
Change-Id: I567c29c9c7699020955699b76cbe8578d02e2fe6
jenkins-bot [Tue, 12 Jun 2018 23:17:06 +0000 (23:17 +0000)]
Merge "Add @coversNothing to tests that don't cover specific PHP classes"
jenkins-bot [Tue, 12 Jun 2018 22:34:54 +0000 (22:34 +0000)]
Merge "hooks.txt: Clean-up whitespace and wrapping for consistency"
Roan Kattouw [Tue, 12 Jun 2018 22:31:53 +0000 (15:31 -0700)]
RCFilters: Reduce min-height for Watchlist
Bug: T195903
Change-Id: I8d4622951026cb5058efd63aa1adcb3607dd79bc
Fomafix [Tue, 12 Jun 2018 20:44:33 +0000 (22:44 +0200)]
Use PHP 7 '??' operator instead of if-then-else
Change-Id: I790b86e2e9e3e41386144637659516a4bfca1cfe
Kunal Mehta [Tue, 12 Jun 2018 20:27:09 +0000 (13:27 -0700)]
Add @coversNothing to tests that don't cover specific PHP classes
Change-Id: Idbd364561bc28547e9fac20d7a80b9a44edf14a9
James D. Forrester [Tue, 12 Jun 2018 15:42:29 +0000 (08:42 -0700)]
hooks.txt: Clean-up whitespace and wrapping for consistency
This file is a disaster, but now at least we actually wrap at 80 chars
for all the hooks, not just the ones where the developer felt like it.
Change-Id: I10d3d51412af29b135fd7e9a0393ff0b57eb25aa
James D. Forrester [Tue, 12 Jun 2018 15:41:34 +0000 (08:41 -0700)]
hooks.txt: Label which hooks are deprecated when
Many of these are still soft-deprecated, so tracking down their age
and kicking off the full deprecation process is hard, let alone
actually removing them. Doing this makes that future work easier.
Change-Id: Ib096190accceabf9082f621ba96243f7dedb025d
jenkins-bot [Tue, 12 Jun 2018 19:52:24 +0000 (19:52 +0000)]
Merge "Follow-up
23cfebd3d25: Hard-deprecate LanguageGetMagic hook"
jenkins-bot [Tue, 12 Jun 2018 19:52:22 +0000 (19:52 +0000)]
Merge "Follow-up
23cfebd3d25: Hard-deprecate LanguageGetSpecialPageAliases hook"
jenkins-bot [Tue, 12 Jun 2018 19:19:23 +0000 (19:19 +0000)]
Merge "Fix typehint-typo in MediaWikiTestCase"
jenkins-bot [Tue, 12 Jun 2018 19:04:43 +0000 (19:04 +0000)]
Merge "Convert SearchResultSet to typical iteration"
Marius Hoch [Tue, 12 Jun 2018 18:20:49 +0000 (20:20 +0200)]
Fix typehint-typo in MediaWikiTestCase
Change-Id: I3817d586cfaaaf38439820741e68eff044e9bf76
Aaron Schulz [Mon, 11 Jun 2018 21:52:37 +0000 (14:52 -0700)]
rdbms: make getCPInfoFromCookieValue() stricter about allowed values
All components, not just the write index, must now be present.
Bug: T194403
Change-Id: I279ba3e16d470aca09fdb74cec91d28efb5e2f95
Brad Jorsch [Fri, 8 Jun 2018 18:51:25 +0000 (14:51 -0400)]
Disable WebResponse setters for post-send processing
When jobs are being run synchronously post-send, we don't want to allow
bugs to result in a job somehow setting cookies or headers that
interfere with those that were intended to be set in the request.
Bug: T191537
Change-Id: Ib5714a17af417797140f99e41eaacbba1bfd20f4
James D. Forrester [Tue, 12 Jun 2018 15:44:31 +0000 (08:44 -0700)]
Follow-up
23cfebd3d25: Hard-deprecate LanguageGetMagic hook
Change-Id: I7e442e20744a196644d6be186158fd901f9db1ce
Brad Jorsch [Tue, 12 Jun 2018 15:28:25 +0000 (11:28 -0400)]
Category: Lock the category row before the categorylinks rows
We've noticed a large increase in deadlocks between
LinksDeletionUpdate deleting categorylinks rows and
Category::refreshCounts() trying to update the category table.
My best guess as to what's going on there is that LinksDeletionUpdate
locks the category row via the call to WikiPage::updateCategoryCounts()
then the categorylinks rows via its own deletions, while Category first
locks the categorylinks rows (in share mode) and then the category row
when it tries to update or delete it.
To break the deadlock, let's have Category do a SELECT FOR UPDATE on the
category row first before it locks the categorylinks rows.
Bug: T195397
Change-Id: Ie11baadf2ff0ba2afbc86b10bc523525c570a490
jenkins-bot [Tue, 12 Jun 2018 15:21:22 +0000 (15:21 +0000)]
Merge "Link to revisions and log entries from tag logs"
James D. Forrester [Tue, 12 Jun 2018 14:53:18 +0000 (07:53 -0700)]
Follow-up
23cfebd3d25: Hard-deprecate LanguageGetSpecialPageAliases hook
Change-Id: I543c2ff9e9d82869a4b443410528a179f65e3d02
Kunal Mehta [Tue, 12 Jun 2018 01:11:08 +0000 (18:11 -0700)]
Add release notes for
0eb4eaefd3 and
f7f71359
Change-Id: Ie139db2f178660aa42009661716290158d60c8fc
jenkins-bot [Tue, 12 Jun 2018 00:39:53 +0000 (00:39 +0000)]
Merge "parser: Validate $length in padleft/padright parser functions"
Brian Wolff [Fri, 26 Aug 2016 01:29:58 +0000 (01:29 +0000)]
Make $wgEmailConfirmToEdit only affect edit actions.
Previously it would affect all actions that use Title::userCan.
This used to be less noticable, but recently was expanded to include
the 'read' action. This only affected the case where both
$wgBlockDisablesLogin and $wgEmailConfirmedToEdit were enabled.
I don't think anyone was relying on the old behaviour as it was
undocumented, and only affected obscure permissions (checked with
Title::userCan and not depending on "edit" rights)
Follow-up
b675be2083
Bug: T143790
Change-Id: I4ad93ed78de4f1ed444f73df6dc26d405a67e553
jenkins-bot [Mon, 11 Jun 2018 23:53:58 +0000 (23:53 +0000)]
Merge "Remove deprecated hook EditPageBeforeEditChecks"
jenkins-bot [Mon, 11 Jun 2018 23:06:59 +0000 (23:06 +0000)]
Merge "PHP: Use short ternary operator (?:) where possible"
Bartosz Dziewoński [Wed, 30 Aug 2017 19:07:49 +0000 (21:07 +0200)]
Remove deprecated hook EditPageBeforeEditChecks
Change-Id: I525a3a81787214dae42d3ce641d8c62761d17797
Kunal Mehta [Mon, 11 Jun 2018 20:57:58 +0000 (13:57 -0700)]
registration: Catch correct exception type from ObjectCache
ObjectCache::newFromId() now throws an InvalidArgumentException if the
specific id can't be found.
Change-Id: Idcb0f2158a38555c1ec1681ba0635c7903e48718
Erik Bernhardson [Thu, 14 Dec 2017 01:03:20 +0000 (17:03 -0800)]
Silently drop unknown titles in completion search
This mimics how full text works by silenty dropping results returned from
search that no longer exist. This could be because the search index is slightly
out of sync with reality, or the search engine could simply be broken.
Only silent from the users perspective. We maintain a count in statsd of
the number of titles dropped. This can be monitored over time to
recognize any increases.
Bug: T115756
Change-Id: I2f29d73e258cd448a14d35a2b4902a4fb6f61c68
Erik Bernhardson [Tue, 19 Dec 2017 22:19:49 +0000 (14:19 -0800)]
Push pagination decision for search into SearchEngine
Various code using the search engine shouldn't need to implement it's
own methods, such as over-fetching, to determine if there are more
results available. This should be knowledge internal to search that is
exposed by a boolean.
Change-Id: Ica094428700637dfdedb723b03f6aeadfe12b9f4
Erik Bernhardson [Thu, 10 May 2018 22:03:55 +0000 (15:03 -0700)]
Convert SearchResultSet to typical iteration
The funky iteration here was at best annoying. Switch
it over to an iterator based approach with appropriate
BC code to simulate the old iteration style.
Depends-On: I19a8d6621a130811871dec9335038797627d9448
Change-Id: I9fccda15dd58a0dc35771d3b5cd7a6e8b02514a0
Translation updater bot [Mon, 11 Jun 2018 20:14:10 +0000 (22:14 +0200)]
Localisation updates from https://translatewiki.net.
Change-Id: I266e6f3e0974d9e597e86b5790871cd118043d57
Aaron Schulz [Mon, 11 Jun 2018 19:44:18 +0000 (12:44 -0700)]
rdbms: avoid redundant SPI logging fields in ChronologyProtector log entries
Also renamed the field to a better name.
Change-Id: I8bd13a01415a7518b5d9f7dc393b32848efebbf6
jenkins-bot [Mon, 11 Jun 2018 19:29:55 +0000 (19:29 +0000)]
Merge "Use PHP 7 '??' operator instead of '?:' with 'isset()' where convenient"
jenkins-bot [Mon, 11 Jun 2018 18:03:59 +0000 (18:03 +0000)]
Merge "npm selenium command, use bash"
Fomafix [Mon, 11 Jun 2018 17:23:15 +0000 (19:23 +0200)]
Use PHP 7 '??' operator instead of '?:' with 'isset()' where convenient
This is a followup to
485f66f1.
Change-Id: I7a2a44b7e933103178929b3cdc015859612c8b35
Étienne Beaulé [Wed, 23 May 2018 02:33:16 +0000 (23:33 -0300)]
Add langauge 'zgh' Standard Moroccan Amazigh
This change adds the Standard Moroccan Amazigh language with ISO
639-3 code 'zgh' with 'kab' (Kabyle) fallback. The default script is the
Neo-Tifinagh script.
Bug: T137491
Change-Id: Idd13f92d7ae05cd47267558c8ff4fa368b701e24
Fomafix [Mon, 11 Jun 2018 09:16:48 +0000 (11:16 +0200)]
PHP: Use short ternary operator (?:) where possible
Change-Id: Idcc7e4fcdd4d8302ceda44bf6d294fa8c2219381
addshore [Thu, 7 Jun 2018 16:15:30 +0000 (17:15 +0100)]
npm selenium command, use bash
On Windows this seems to complain unless bash is specified
Change-Id: I4515c851ffea143d4c1c6d111ffdd64b62f9f304
Translation updater bot [Sun, 10 Jun 2018 20:02:06 +0000 (22:02 +0200)]
Localisation updates from https://translatewiki.net.
Change-Id: Ie01e48ef17e431ae619237e8ae1e2810d454d1de
Kunal Mehta [Sun, 10 Jun 2018 18:30:15 +0000 (11:30 -0700)]
linker: Hard-deprecate LinkBegin and LinkEnd hooks
Change-Id: Ia1d766d019a2711c96e7c41913055774eff9f777
Kunal Mehta [Sun, 10 Jun 2018 18:09:07 +0000 (11:09 -0700)]
parser: Validate $length in padleft/padright parser functions
$length is user input, so cast it to an int before passing it to min().
If there is nothing to add at that point, return immediately.
In PHP 7.1+ this raised a warning of "A non-numeric value encountered"
because min() will return the junk value, returning a string. Then we
try and subtract an int from it (return value of mb_strlen()),
triggering the warning.
Added a parser test to verify the behavior, and confirmed that it
triggers warnings without the patch.
Bug: T180403
Change-Id: I614750962104f6251a864519035366ac9798fc0f
Brad Jorsch [Wed, 9 May 2018 19:14:38 +0000 (15:14 -0400)]
SECURITY: Special:BotPasswords should reauthenticate
More specifically, it should reauthenticate when creating a bot password
or resetting the password. But we may as well do it for all accesses.
Bug: T193237
Change-Id: I9a38a3109492753fff1f33c0f280e5b0f1fc1a76
Jack Phoenix [Sun, 10 Jun 2018 15:31:56 +0000 (18:31 +0300)]
Pass $parser, &$query and &$widthOption to the 'ImageBeforeProduceHTML' hook
This allows extensions to essentially reimplement Linker#makeImageLink
completely. Before this wasn't 100% possible as these three are needed for
that.
Inspired by wikiHow's core hacks to /includes/Linker.php, which can now be
moved to an ImageBeforeProduceHTML hook subscriber. wikiHow uses those
changes together with the WikihowArticle extension to heavily modify the
article DOM for various extensions and the default skin.
Change-Id: I8b5ab42d9cf021d66b90d15be68a0239643c10e3
jenkins-bot [Sun, 10 Jun 2018 08:17:23 +0000 (08:17 +0000)]
Merge "WebInstaller::docLink: Use Html::element to generate the link"
jenkins-bot [Sun, 10 Jun 2018 08:16:52 +0000 (08:16 +0000)]
Merge "WebInstaller::getDocUrl: Use getUrl to generate the URL"
jenkins-bot [Sun, 10 Jun 2018 08:02:59 +0000 (08:02 +0000)]
Merge "Localize some special pages into Korean (ko)"
jenkins-bot [Sun, 10 Jun 2018 07:58:42 +0000 (07:58 +0000)]
Merge "resourceloader: Re-enable testGetBlobCached() test case"