MediaWiki 1.28/wmf.20/Changelog

Core changes

 * - Updated git submodules
 * - Updated git submodules
 * - Updated git submodules
 * - mediawiki.requestIdleCallback: Avoid native window.requestIdleCallback
 * - Revert "Grant 'editcontentmodel' permission to 'user' group"
 * - Pass User to SearchEngine::getProfiles
 * - Clean up redundant defaults in Database::__construct
 * - Fix IDEA Ultimate warnings in ChangeTags
 * - Add debugging logging to LoadBalancer connection closes
 * - Set an initial dummy domain in Database::__construct
 * - Improve tableExists for MySQL
 * - Deprecfate WikiRevision::getText
 * - phpdoc Title::inNamespaces also allows array
 * - WikiPage::getDeletionUpdates returns DeferrableUpdates
 * - Make rebuildFileCache cover ?action=history
 * - Replace $wiki with $domain in ILoadBalancer
 * - Include setTableAliases/setDomainPrefix in ILoadBalancer
 * - Database class parameter and documentation cleanups
 * - Change DatabaseBase::factory call to Database::factory in LoadBalancer
 * - Fix undefined getDelimiter call in sql.php
 * - Fix broken $wgExternalServers example setting
 * - Fix "externalCluster" LBFactorySimple setting in LBFactoryMW
 * - mediawiki.UI: Make colors' contrast compliant to WCAG 2.0 level AA
 * - Move DatabasePostgres to /libs/rdbms
 * - Remove unused DatabaseBase::debug method
 * - Remove strictIPs, cascadingDeletes, and cleanupTriggers
 * - Fix SQLite $wgObjectCaches definition + b/c handling
 * - Clarify comment in traditional gallery
 * - Fix SqliteInstaller DatabaseSqlite creation
 * - Fix minor SqliteInstaller IDEA warning
 * - Fix "MWExceptionRenderer::getText should not be called statically" errors
 * - Make MWExceptionRenderer work with PHP7's exception changes
 * - Html: Update list of $voidElements
 * - Cleanup ServiceWiring/LBFactoryMW interaction
 * - OOjs UI: FieldsetLayout: Styling fixes for ` ` labels
 * - Stub out DatabaseBase::getSearchEngine as a dummy method
 * - Extract replacePrefixes into a static method
 * - Various small cleanups to ResultWrapper
 * - Move LIST_ constaints to IDatabase class constants
 * - Fixed method name casing and IDEA warnings in FileRepo
 * - Move DatabaseSqlite to /libs/rdbms
 * - Remove wf* function and global variable usage from DatabaseSqlite
 * - Cleanups and IDEA warning fixes to FileRepo classes
 * - Make LockManager use StatusValue and move classes to /libs
 * - Make ApiMain use isBot to catch global bots in checkReadOnly
 * - Remove wf* function dependencies from FSLockManager
 * - Avoid calling awful DatabaseBase::strictIPs method
 * - Move LBFactorySingle to /libs/rdbms
 * - Avoid using cascadingDeletes/cleanupTriggers
 * - Fix file/class name mismatch from e2adcc89bbe
 * - Avoid MWDebug usage in DatabaseBase
 * - Move LoadBalancerSingle to /libs/rdbms
 * - Remove long-since unused cruft methods from DatabaseBase
 * - Move LBFactoryMulti to /libs/rdbms
 * - Clean up $wgDBmwschema handling and only apply it to mssql
 * - Move mysql database classes to /libs/rdbms
 * - Move LBFactorySimple to /libs/rdbms
 * - Make Status extend StatusValue and start FileBackend update
 * - Inject Profiler into Database objects
 * - Make database classes handle hyphens in $wgDBname
 * - LoginSignupSpecialPage: Reduce hackiness of "You are already logged in" warning
 * - Show warnings in HTMLForm and warnings as warnings on Login/Signup form
 * - Rework UserContribs options section
 * - Cleanups to DatabaseMysqlBase
 * - Move all of the reasonable DatabaseBase methods to Database class
 * - Make LoadBalancer domain handling more robust
 * - Rename domain => localDomain in LBFactory for consistency
 * - Add Localisation to the links, add the link to Localisation in Languages/Language.php
 * - Fix type doc in StatusValue
 * - Avoid triggering SiteConfiguration lookup in JobQueueGroup::push
 * - Apply wfBCP47 to HTTP response header Content-Language
 * - Add SearchEngineFactory::getSearchEngineClass instead of using the DB
 * - Split out ConvertableTimestamp class
 * - Fix $wgFileCache DB outage fallback
 * - resourceloader: Move 'site' and 'user' logic to makeModuleResponse
 * - Remove wfSetBit/wfSetVar calls in DatabaseBase
 * - Avoid global state in DatabaseBase::factory/query
 * - Make DB snapshot commit errors include active methods
 * - Remove wfRandomString dependency in DatabaseBase
 * - mediawiki.user: Minor clean up of code and unit tests
 * - Move database constants to their own file
 * - Move LoadMonitorMySQL to LoadMonitor
 * - Infrastructure for augmenting search results
 * - Add one more level for GlobalTitleFail logging
 * - resourceloader: Set a Title on context-created messages
 * - EditPage: Generate all messages using $this->context so we have titles
 * - Remove wfGetCaller dependency from DatabaseBase
 * - Replace WikiPage::doEdit usages
 * - Allow quotes in $wgDebugComments HTML comments
 * - Dependency inject $wgSharedTables into DatabaseBase
 * - Fix default "srvCache" BagOStuff in DatabaseBase
 * - Rename LBFactory => LBFactoryMW and make LBFactory in /libs
 * - Deprecate jquery.arrowSteps module
 * - Revert "Remove jquery.arrowSteps module"
 * - PrefixSearch: Implement searching in multiple namespaces
 * - Change wording, change grammar in lang/en.json
 * - Fix broken wincache merge implementation
 * - Cleaned up some un needed wording in the English i18n file
 * - Remove global state from DatabaseBase::__construct
 * - Set fallback language for lzh to zh-hant
 * - Move updater/installer specific methods out of DatabaseBase
 * - Emit deprecation warnigns for Article::getText
 * - benchmarkParse: Add option to clear link cache
 * - Remove unused LBFactoryFake class
 * - Avoid MWException and wf* log methods in DatabaseBase
 * - Move various DB helper classes to /libs/rdbms
 * - Move LoadBalancer to /libs/rdbms
 * - Change DatabaseBase => IDatabase in /db where possible
 * - Change $wiki => $domain in LoadBalancer
 * - phpunit: Simplify mock object syntax in includes/db/ tests
 * - Exception cleanups for LoadBalancer
 * - Move DBConnRef and ChronologyProtector to /libs/rdbms
 * - More DB related class cleanups to prepare files for /libs
 * - Make WikiPage::getRevision make use of Revision::newKnownCurrent
 * - Re-add parser tests to the ParserTests group
 * - Move IDatabase/ILoadBalancer to /libs/rdbms
 * - Make SiteStatsUpdate implement MergeableUpdate
 * - mediawiki.Upload.BookletLayout: Fix typo in comment
 * - resourceloader: Fix WikiModule preload to support localised titles
 * - Fix broken select call in rebuildFileCache.php
 * - Move DBError to /libs/rdbms/exception
 * - Add MWExceptionRenderer class and decouple DBError
 * - ParserOptions: Remove setters for magic links options
 * - API: Deprecate use of ApiPurge via GET
 * - API: Force straight join for prop=linkshere|transcludedin|fileusage
 * - Move TransactionProfiler to /libs/rdbms
 * - mw.widgets.CategorySelector: Add client-side caching
 * - Move LoadMonitor classes to libs/rdbms/loadmonitor
 * - Reduce CategoryMembershipChangeJob lock timeout
 * - docs: mw.widgets.CategorySelector: Fix example code
 * - Replace some MWExceptions with natives ones in /db
 * - refreshLinks: Add --namespace option
 * - Set cpPosTime cookie for the non-redirect case as well
 * - Use cpPosTime cookie for same-domain redirects on DB change
 * - OutputPage: Don't set 'user' module state if filtered out
 * - Add ILoadBalancer interface
 * - Convert LoadBalancer/Database class logging to PSR
 * - Fix login API for users with @ in their usernames
 * - Partially reverting I8e684f06 to restore some legacy behavior
 * - ParserTests: Make sure WikiPage::doEditContent succeeds
 * - Special:ChangeContentModel: Run EditFilterMergedContent hook
 * - Various dependency injection cleanups to LoadBalancer
 * - API: Expose $wgEnableMagicLinks in meta=siteinfo
 * - Avoid warnings when unable to parse the URL given to us
 * - Update OOjs UI to v0.17.9
 * - Remove pointless double exception logging from JobRunner
 * - Make sure emails from RecentChange::save are for comitted rows
 * - momentjs: Hack around bug in node/browser compat wrapper in locale files
 * - Rephrase tooltip-rollback for clarity
 * - Reduce WikiPage::getContentModel queries via caching
 * - Linker: Deprecate formatSize
 * - Move Linker::formatTemplates to separate class, remove global usage
 * - Move PECL memcached class to /libs
 * - Add caching to Title::loadRestrictions
 * - registration: Support 'ServiceWiringFiles' in extension.json

Vendor

 * - Update OOjs UI to v0.17.9

AbuseFilter

 * - Remove pre-1.25 API compatibility code
 * - Avoid wfMessage in AbuseFilter::buildVarDumpTable
 * - Allow filtering content model changes
 * - Fix documentation of AbuseFilter::filterEdit

AntiSpoof

 * - Remove pre-1.25 API compatibility code

Babel

 * - Replace WikiPage::doEdit usage
 * - Add API action=query&meta=babel module
 * - Make tests pass with $wgBabelUseDatabase = true

BetaFeatures

 * - Remove pre-1.25 API compatibility code

Cards

 * - Articles should not appear stacked on older browser
 * - Change image centering

CategoryTree

 * - Fix indentation of i18n/en.json
 * - Simplify a message about JavaScript requirement

CentralAuth

 * - use DB_REPLICA instead of deprecated DB_SLAVE
 * - Fix LocalRenameJob transaction owner to match JobRunner
 * - Silence DBPerformance warnings during password migration
 * - Add a script to easily fix stuck global renames
 * - Set the type of the message when calling AuthenticationResponse::newUI

CheckUser

 * - Special:CheckUser: Localize number of edits by IP address from all users

CirrusSearch

 * - Use SearchEngine::parseNamespacePrefixes instead of building a new SearchEngine object
 * - Allow users to customize search suggestion profile
 * - Use DB_REPLICA instead of DB_SLAVE
 * - Use -1 as index version if the version field is missing
 * - Increase wait times for oncommons browser tests
 * - Fix index_options on root field
 * - Add document versioning to FullyFeaturedConfig.php
 * - Only set position_increment_gap on fields where positions are stored
 * - Reindexer should not remove unused fields
 * - CompletionSuggester: add support for subphrase/subpage suggestions
 * - Refactor SuggestBuilder
 * - Break words on semicolon for source_text.plain
 * - Augmenting search results

Cite

 * - Followup Ic6afacbf2a: Fix test file paths
 * - Stop using deprecated wfProfile methods
 * - Add access modifiers to Cite.php (body)
 * - Move parser tests to test directory
 * - Move php files in includes directory

CiteThisPage

 * - Remove pre-1.24 compat code

CodeReview

 * - Remove pre-1.25 API compatibility code

Collection

 * - Use __DIR__ in Collection.php
 * - Split templates into individual files
 * - phpcs fixes throughout
 * - Remove $wgCollectionStyleVersion

ConfirmEdit

 * - Remove pre-1.25 API compatibility code
 * - HTMLFancyCaptchaField: Avoid wfMessage
 * - Reset the LocalClusterObjectCache service in tests

ContentTranslation

 * - Remove parameter format: 'json' for mw.Api methods

DonationInterface

 * - Quit deleting from pending queue, stop saying limbo
 * - Don't be fooled by CVV="0"
 * - Satisfy lint
 * - Push limbo message, don't set
 * - Fix typo in error handler
 * - Update SmashPig lib & config usage

Echo

 * - Fix moderation controller
 * - Make sure bundledNotifications is an array
 * - Remove primary link from the bundle of page linked notification
 * - Update the badges' seen state when Special:Notifications is visited
 * - Fix GENDER without explicit parameter
 * - Count the number of success & failure notifs sent
 * - Send notification for mentions on changes
 * - Revert "Make seen/unseen badge more consistent across wikis"
 * - Allow for count cap display in Special:Notifications sidebar
 * - Add support to dynamic action messages
 * - Fix seen time for new users
 * - Send mentions when editing multiple sections in between sections.

EventLogging

 * - Remove pre-1.25 API compatibility code
 * - Remove unused argument passed to JsonSchemaContent::getJsonData

FeaturedFeeds

 * - Remove pre-1.25 API compatibility code

FlaggedRevs

 * - Replace WikiPage::doEdit calls
 * - Fix some doc blocks
 * - Add custom css class with sync status for flaggedrevs notices
 * - Reorder functions to reduce forward declarations

Flow

 * - Don't crash when a revision is not found
 * - Various cleanups to onArticleDeleteComplete

GlobalBlocking

 * - Remove pre-1.25 API compatibility code

GlobalUsage

 * - Remove pre-1.25 API compatibility code

GoogleNewsSitemap

 * - Remove pre-1.25 API compatibility code

Graph

 * - Restore wordcloud vega plugin
 * - Fixed wikiraw: protocol bug
 * - Bumped vega to 2.6.3

Kartographer

 * - GeometryCollection is a subset of Geometry
 * - Implement ResoureLoader module to get ext map links
 * - Double click on map opens full screen at same position
 * - Add missing mediawiki.api dep to extension.json
 * - Use externalData properties for geoshape service
 * - SpecialMap: Don't use wfMessage
 * - Move CloseFullScreenControl to the dialog module.
 * - Data option should be carried over to the full screen map
 * - Disable click on map links until JavaScript is ready.
 * - Fix map popup CSS
 * - Add missing close button title message
 * - Always serve all the data on preview
 * - Map should take viewport width/height instead of body width/height

LabeledSectionTransclusion

 * - Makes sure that created articles in parser tests are unique

LiquidThreads

 * - Remove pre-1.25 API compatibility code

MassMessage

 * - Remove pre-1.25 API compatibility code

MobileFrontend

 * - Memoize isWideScreen
 * - Fix MediawikiApi::HttpError in Selenium tests
 * - Show redirected page title in search results
 * - Toast should be centered on mobile devices
 * - Revert "Add MobileFrontend.Context service"
 * - Revert "Hygiene: Remove BogusMobileContext"
 * - Hygiene: Remove BogusMobileContext
 * - Treat list items as inline
 * - Add MobileFrontend.Context service
 * - Remove Browser#supportsPositionFixed and Skin#setupPositionFixedEmulation
 * - NORLQ clients should be able to handle images without class attribute
 * - Mobile badge should show capped, language-converted number

MoodBar

 * - Remove pre-1.25 API compatibility code

NewUserMessage

 * - Replace WikiPage::doEdit call

Nuke

 * - Special:Nuke: Remove submit button at the top of the form

OATHAuth

 * - Show the first input as a warning, not as an error box

ORES

 * - DB_SLAVE -> DB_REPLICA
 * - Drop unique part from oresm_model index
 * - Rename getThreshold to getDamagingThreshold
 * - Move storeScores stuff into another method

OpenStackManager

 * - Update call to WikiPage::doEdit

PageTriage

 * - Revert "Compress PNGs with zopflipng"
 * - Drop calls to WikiPage->getText
 * - Move LoadExtensionSchemaUpdates to hooks file
 * - Register WikiLove parts of 'ext.pageTriage.views.toolbar' conditionally

Popups

 * - Respect beta feature flag for logged in users
 * - Update Schema to the last version
 * - Log all dwelledButAbandoned events
 * - Fix enabling/disabling browser tests

ProofreadPage

 * - Initializes the zoom widget after page loading
 * - Makes sure that the zoom widget is initialized before zooming in/out
 * - Fix missing dependency of ext.proofreadpage.ve.pageTarget upon ext.visualEditor.desktopArticleTarget

QuickSurveys

 * - Fix MediawikiApi::HttpError in Selenium tests

RSS

 * - Don't use deprecated Article interface.

RelatedArticles

 * - Fix MediawikiApi::HttpError in Selenium tests
 * - Increase threshold for loading related articles in the footer
 * - Change scroll threshold to viewport height * 1.5
 * - Beta should be available to test suite.

RevisionSlider

 * - Use word-break to avoid horizontal scrollbars inside popups
 * - Follow-up I9fe75a04: Use natural language for beta feature title
 * - Close HelpDialouge when clicking away from it
 * - Adjust pin button tooltip
 * - Manually fix nl revisionslider-tutorial i18n msg
 * - Expand Revision Slider when user activates pin button
 * - Fire wikipage.diff instead of revslider.diffreload

Scribunto

 * - Specify license and add COPYING file
 * - Use ParserOutput::addTrackingCategory
 * - Improve validation of ScribuntoContent
 * - ApiScribuntoConsole: Don't use $wgUser

SecurePoll

 * - Use DBO_DEBUG instead of debug method on the DB
 * - Numbers shown in poll statistics should be localized
 * - Remove DatabaseBase::debug call
 * - Show statistics above the list of votes
 * - Let SecurePoll_Context::getDB use DB_REPLICA connections

SemanticForms

 * - New "tooltip" param for "display=table"
 * - Added Balloon.css CSS library
 * - Default field label for display=table

SiteMatrix

 * - Remove pre-1.25 API compatibility code

SpamBlacklist

 * - Remove pre-1.25 API compatibility code
 * - Replace WikiPage::doEdit

TemplateData

 * - Remove pre-1.25 API compatibility code

TemplateSandbox

 * - Don't use wfMessage

TextExtracts

 * - Remove pre-1.25 API compatibility code
 * - API: Remove unused parameter exvariant

Thanks

 * - Remove pre-1.25 API compatibility code
 * - Stop listening to revslider.diffreload hook
 * - Listen to the wikipage.diff hook for adding JS links

TimedMediaHandler

 * - Fix regression that embedded video player didn't work
 * - Update ogv.js to 1.2.0
 * - Fix PHP warning in TMH + Score output
 * - New requeueTranscodes.php maint script for TMH
 * - Clear transcode cache state on cleanupTranscodes

TitleBlacklist

 * - Remove pre-1.25 API compatibility code

Translate

 * - ext.translate.special.translate: fix tab header display mobile
 * - Add link to action=edit in message editor's tools menu
 * - Fix typo in error message

UniversalLanguageSelector

 * - Integrate ext.uls.nojs into ext.uls.pt
 * - geoclient: Update localStorage comment
 * - Add hooks documentation
 * - Undo tooltip: position when shown, not when created
 * - Add pure CSS modules via addModuleStyles instead of addModules

UploadWizard

 * - Remove pre-1.25 API compatibility code

VisualEditor

 * - Remove pre-1.25 API compatibility code
 * - Update `progressive` color to WCAG 2.0 level AA compliant color palette
 * - Open meta dialog to edit categories when user clicks on the category footer
 * - DesktopArticleTarget: Save scroll position before transformPage
 * - Disable failing Selenium tests
 * - Avoid RequestContext::getMain
 * - Remove unused ContentHandlerDefaultModelFor hook
 * - Fix missing dependency of ext.visualEditor.mwwikitext upon ext.visualEditor.desktopArticleTarget
 * - Use correct switch type when opening welcome dialog on NWE
 * - Don't allow auto-enroll of new wikitext editor Beta Feature
 * - Update VE core submodule to master (ed76839)
 * - Follow-up bfc3ac69: Align with coding conventions
 * - Simplify and fix category popup widget checks
 * - Load icons where we can via RLIM
 * - Merge transclusion and transclusion.core RL modules

WikiLove

 * - Remove pre-1.25 API compatibility code

WikimediaEvents

 * - Only log ChangesList filters for logged-in users
 * - Document AuthManagerStatsdHandler better

WikimediaMaintenance

 * - Update call to WikiPage::doEdit
 * - Make sure only WMF/Chapter interwikis are internal
 * - Create Flow tables with createExtensionTables

WikimediaMessages

 * - Remove PHP entry points
 * - Remove wikimedialicensetexts-desc, no longer needed

Vector

 * - search.less: Use only one background-image for overlaid buttons