MediaWiki 1.24/wmf21/Changelog

Core changes

 * - SWAT update Cirrus
 * - MassMessage: grab https://gerrit.wikimedia.org/r/#/c/161002/
 * - Bump Flow submodule in 1.24wmf21
 * - SWAT Update Cirrus
 * - Profiling of Language::fetchLanguageNames
 * - Bump LiquidThreads in 1.24wmf21
 * - Bump Flow submodule for 1.24wmf21
 * - Update Wikidata for cherry-pick of I1a872d12e
 * - backport
 * - Update Wikidata for a22b5fdad1... Drop type hints
 * - Use safe attribute accessor for RecentChange
 * - Update WikimediaEvents for cherry-picks
 * - Update WikimediaEvents for cherry-picks
 * - Update UploadWizard submodule
 * - mediawiki.action.view.redirectPage: Correct a CSS selector
 * - Update Wikidata, fix broken xml api output
 * - Followup 1cf5a6e: use $wgResourceBasePath to refer to resources/assets, not $wgScriptPath
 * - Move assets/ to resources/assets/
 * - Update MediaViewer submodule
 * - Update UploadWizard submodule
 * - Update VisualEditor for cherry-pick of I917944a
 * - Update Wikidata
 * - Revert &quot;Revert &quot;Update VisualEditor to wmf21 for cherry-pick of I0fb47f7c91f61 and If48555fa476&quot;&quot;
 * - Revert &quot;Update VisualEditor to wmf21 for cherry-pick of I0fb47f7c91f61 and If48555fa476&quot;
 * - Update VisualEditor to wmf21 for cherry-pick of I0fb47f7c91f61 and If48555fa476
 * - Update VisualEditor for cherry-picks of If67fe35b and I80d0632fd
 * - Update OOjs UI to v0.1.0-pre (49b64bdba7)
 * - Update CentralNotice submodule for JSON fix
 * - Update OOjs UI to v0.1.0-pre (073f37e258)
 * - SWAT update GeoCrumbs
 * - Update MultimediaViewer submodule
 * - Update flow for I4da934dfe
 * - Bump GettingStarted to tip of its release branch for bucketting fix
 * - Hotfix to fix CSS wrapping issue with GettingStarted A/B test error states
 * - Bump GettingStarted to release branch tip for CSS/JS fix
 * - Revert Wikidata to mw1.24-wmf19 branch
 * - Update Wikidata to tip of master for I23b7eb54b8e
 * - Update OOjs UI to v0.1.0-pre (bd008e8aed)
 * - Bump Flow submodule in 1.24wmf21
 * - Deploy updates for new GettingStarted A/B test
 * - Update MultimediaViewer submodule
 * - Update Wikidata, fix for interaction with Spam / Abuse Filter
 * - Clean Resources.php for phpcs
 * - Clarify &quot;mustposttoken&quot; API error message
 * - Update OOjs to v1.1.1
 * - Remove term from search results info
 * - Don't cast SpecialPageFactory::$list to an object
 * - Under HHVM, measure resources for the thread, not calling process
 * - Fix column alias in sql on ApiQueryAllUsers.php
 * - Do deletion updates after commit.
 * - Update OOjs UI to v0.1.0-pre (f9c217dfa4)
 * - Add release notes for Iac37a2369
 * - Avoid a fatal error in maintenance/cleanupTitles.php
 * - Maintenance: Add an easy way to access Config instances
 * - StatCounter: Use Config instead of globals
 * - SpecialUpload: Use Config instead of global
 * - Add padding to printfooter
 * - Deprecate defunct Skin::getCommonStylePath
 * - Fix undefined argument in OldChangesList
 * - Pass OutputPage to SkinTemplateGetLanguageLink hook.
 * - Update OOjs UI to v0.1.0-pre (1c5e409ab1)
 * - Add content-not-allowed-here to API message map
 * - CurlHttpRequest: Check library version, not CURLOPT_REDIR_PROTOCOLS
 * - Ignore duplicate key errors in update-keys.sql
 * - Add linkTrail for Central Kurdish (ckb)
 * - Html: Don't accept paths relative to skins/common/images/ in infoBox
 * - Update OOjs UI to v0.1.0-pre (cc3c62607c)
 * - Fix indentation in ParserOutput.php
 * - Don't let LTR usernames jumble RTL watchlists
 * - Add @covers tags to ApiModuleManagerTest
 * - Add ApiModuleManager::getClassName
 * - $wgAuth is no longer a stub object
 * - Chunked upload result should consistently have a &quot;stage&quot; value for &quot;Poll&quot;
 * - Update Moment.js from 2.8.1 to 2.8.3
 * - 1
 * - Remove JSONContentHandler::$contentClass
 * - When getting remote config, if the caller requested a single setting without an array, always do that
 * - API: created a new api to flag messages as read
 * - Make the PHP code snippet in SkinFallbackTemplate explicitly ltr
 * - MimeMagic: Use Config instead of globals
 * - mediawiki.ui: Correct documentation numbering in form component
 * - Update OOjs UI to v0.1.0-pre (72f047e5d8)
 * - img_auth: fix mismatched profiling
 * - resourceloader: Pass a Config to the ResourceLoader constructor
 * - mw.Debug.profile: Tweak support check to handle PhantomJS
 * - Apply vform styling to HTMLForm buttons
 * - Release notes for b1d215726e
 * - Update OOjs UI to v0.1.0-pre (8ad150e4e7)
 * - Merge mediawiki.legacy.upload into mediawiki.special.upload
 * - Removed LCStoreAccel class
 * - Added DatabaseBase::selectRowCount method
 * - Article: Don't hardcode &lt;img&gt; tags on redirect page
 * - CategoryFinder: give parent category tree an accessor
 * - mediawiki.notification: Also hide #mw-notification-area upon creation
 * - UploadFromUrlTest: Don't reference skins/common/ (via bits.wm.o)
 * - Remove Parsoid-specific padding and background
 * - Move mediawiki.png to assets/ directory
 * - Move file type icons to new assets/ directory
 * - TitleTest: Break secure and split test into two tests with providers
 * - Added a BloomCacheRedisTest class
 * - mediawiki.api: Actually don't log request error 'abort'
 * - build: Bump grunt-banana-checker to 0.2.0 and fix flagged issue
 * - Article: Localize alt text of redirect icon
 * - Reset searchTerms[] before populating.
 * - Add tests for User::getCanonicalName
 * - Typo fix: HMTL → HTML
 * - Refactor: Use local variables for editsections in Parser
 * - APIQueryInfo: Allow fetching the canonical url of a page
 * - Update Special:ChangeEmail to use HTMLForm
 * - resourceloader: Only store sources' load.php urls
 * - Allow extensions to indicate a username doesn't exist
 * - EditPageTest: Rewrite testCreatePage to use a data provider
 * - ArticleTablesTest: Clarify test name and docs
 * - Fix directions of some pagers
 * - Bound the cache size of numberofWatchingusers
 * - Be more careful with Special: prefix searching
 * - Profile User::checkPassword
 * - mediawiki.skinning: Remove obsolete #firstHeading selector
 * - LocalisationCache: Process one fallback at a time
 * - Move log log_page entries are now that of the moved page
 * - Disable JavaScript for MSIE7 users, update tests accordingly
 * - Fix malformed UTF-8 going to query profiler
 * - mediawiki.skinning.content.externallinks: Code quality tweaks
 * - Sanitizer::escapeId: Decode entity before replacing spaces
 * - Show the revision list immediately on &quot;umerge&quot; log action links
 * - Remove unneeded spaces inside html in NoLocalSettings.php
 * - Improve tests for OutputPage::makeResourceLoaderLink
 * - Language: s/error_log/wfWarn/

AbuseFilter

 * - Only skip apparent null-edits when the page exists

CentralAuth

 * - Fix class name &quot;Database&quot; --&gt; &quot;DatabaseBase&quot;
 * - Add tests for CentralAuthUser::newFromId
 * - Add CentralAuthUser::newFromId
 * - SpecialCentralAuth: Link global group names
 * - GlobalRename: Don't put HTML in IRC feed entries
 * - Add missing * to doc block
 * - Add basic test for CentralAuthUser::newUnattached
 * - Don't do central login if not POSTed

CirrusSearch

 * - Redo job that counts incoming links
 * - Reduce queries to count links
 * - Better error messaging in maintenance scripts
 * - Allow segmenting poolcounter traffic into separate queues per wiki
 * - Fix another syntax error
 * - README typofix
 * - Better logging on pool counter failures
 * - Fix override allowing all fields in rescore
 * - Remove --closeOk parameter to update(One)SearchIndexConfig
 * - Shrink the weighted all field's positions
 * - Store weighted all_near_match with freqs
 * - Disable phrase rescore if rescore window is 0
 * - Add option to turn off all fields in rescore
 * - Output more data from Elasticsearch for pages
 * - Add api to dump mapping and settings
 * - Configure maximum number of shards per node
 * - Clean up output on shard allocation updates
 * - Remove $wgRedisPassword
 * - Remove positions from postings for opening text
 * - Add another url paramter to test performance tweak
 * - README updates

Collection

 * - Provide parsoid information to OCG if visual editor is installed.

ContentTranslation

 * - Reduce the js/css loaded while accessing Special:CX
 * - Set the dir and the lang of the link
 * - Enable only Spanish and Catalan
 * - Unit Tests: Remove duplicate test declaration.
 * - Add tests for ContentTranslationHeader.prototype.showMessage
 * - Consistent formatting
 * - Separate event handlers from rendering
 * - Avoid DOM queries inside module
 * - Refactor to ease testing
 * - Cleanup hooks
 * - Add QUnit tests for ext.cx.editor
 * - Allow selection of both Catalan and Spanish in the selector
 * - QUnit tests for isAbuse method of MTAbuseCard

DonationInterface

 * - Add tests for Gateway_Form
 * - Re-add Australian states, card #1799
 * - Update cc icons for WP forms card #1822

Echo

 * - Switch the order of Alerts and Messages tabs
 * - QA: Fix missing &quot;Given I am logged in as a new user&quot;
 * - Make plural entries correct
 * - Restore QUnit tests to reflect alert as default tab
 * - Remove (X) next to Alerts/Messages if there is one section
 * - Messages/Alerts text is tiny in Monobook
 * - Colors are backwards for flyout section link
 * - Mark notifications as read if they fail rendering
 * - Default to alerts tab
 * - Localize numbers of alerts and messages
 * - Hygiene: Give ApiStub modes names instead of numbers
 * - Hygiene: Dont run jshint against .less files
 * - mw.echo.overlay.updateCount no longer exists
 * - Allow .mw-echo-title-heading outside special page

EducationProgram

 * - Provide own arrow images

Flow

 * - Fix broken Special:EditWatchlist
 * - @root.submitted may not exist in flow_reply_form
 * - Fix noop error on topic pages
 * - Dont treat argument as wikitext
 * - Don't show 'lock' for posts; only topics
 * - Limit notifications to 20 per post
 * - Limit expanded content to 25kB per revision
 * - Convert all parsoid links into MW standard links
 * - Do not show the currently selected sort option
 * - H9: Don't collapse topics in the topic namespace
 * - Annotate tests passing in phantomjs
 * - Avoid getCleanSignature errors
 * - H-4: Rename Close -&gt; Lock
 * - Update convertToText.php script
 * - QA: Fix &quot;Cancelling reply preview&quot; browser test
 * - Make wgFlowContentFormat = html the default
 * - Use CONTENT_FORMAT_JSON instead of &quot;json&quot;
 * - Don't let people turn random pages into Flow pages
 * - Both notifyNewTopic and notifyPostChange trigger mention notif
 * - Move flow-mention back to flow-discussion category
 * - Bundle new-topic notifications
 * - Use variable instead of hardcoded permission
 * - G4: Don't collapse closedt review topics.
 * - Hide 'Cancel' button on preview screen
 * - Hygiene: Remove uninitialised variables to top
 * - Hygine: Remove compiled template that no longer exists
 * - Apply mw-ui-anchor where necessary
 * - Add topic name to 'create topic' notification
 * - Prevent detection of named variables inside quoted strings
 * - Annotate this test so it runs.
 * - Update classes of topic during close/reopen actions.
 * - Only show diff &amp; hist links in CU
 * - Fix non-existing property
 * - Preview of Summarize displays as empty
 * - Hygiene: Kill ifEquals helper, use ifCond instead
 * - Bug: Unclosed anchor when no user contribs link
 * - Use mw.Uri to parse query instead of prasing it with regx
 * - Cannot load non-ascii flow pages via api
 * - Do not notify Topic creator on post edit/moderation
 * - Cascade protection from board to topic
 * - i18n: Update text 'User Contributions' to 'contribs'
 * - Repair progressively enhanced load more
 * - Delay loading editor javascript until after initial page load
 * - Use same arguments for globalApiPreHandlers as for apiPreHandlers
 * - Implement post history

GWToolset

 * - Nicer phrasing for log-description-gwtoolset
 * - Improve category instructions
 * - update INSTALL instructions
 * - Add Special:Log Entries

Gadgets

 * - Ability to disable gadget caching
 * - Don't save gadget class versions, cache key is already versioned

GeoCrumbs

 * - Handle return value NULL of GeoCrumbs::getParserCache

GettingStarted

 * - Exclude users with null user_registration
 * - Use normal wrapping for error state
 * - Ellipsis page title in flyout
 * - Vertically align suggestions for less than 3 on a page

Graph

 * - timer on finally
 * - Even simpler error handling for auto-refresh
 * - Simplified error handling for dynamic graph re-rendering
 * - Auto-refresh graph on editing
 * - Add i18n file

LiquidThreads

 * - ApiThreadAction: Make sure a Title is set

MassMessage

 * - Remove spammy debug log
 * - Reject empty lists or cats as import sources
 * - Improve title checking in extractTarget
 * - Fix determination of $revId
 * - Refactor ApiEditMassMessageList::getEditSummary
 * - Consistently return a Status in Special(Edit|Create)MassMessageList::onSubmit
 * - Add @throws MWContentSerializationException
 * - Remove getPossibleErrors from ApiEditMassMessageList
 * - else if --&gt; elseif in PHP files
 * - Add tests to Database group
 * - Fix aliases for CreateMassMessageList and EditMassMessageList
 * - Disable ContentHandler features if $wgContentHandlerUseDB = false
 * - Remove manual resets of mContentModel
 * - Add parser cache support to MassMessageListContent
 * - Add test cases for extractTarget
 * - Fix whitespace
 * - Unit tests
 * - Subclass JSONContent
 * - Update token handling for core API change
 * - Fix MassMessage::getMessengerUser after Password API changes
 * - Use addBacklinkSubtitle
 * - Implement warning for blank edit summaries
 * - Add edit notices and protection warnings
 * - Use jquery.confirmable for remove links
 * - Improve tracking category description
 * - Move Add pages and add tracking category
 * - Improve Special:EditMassMessageList
 * - Don't allow interwikis or special pages as targets
 * - Escape invalid target strings in message
 * - Fix creation edit summary
 * - Improve edit summaries
 * - Descriptive error on special page
 * - Allow valid lists to contain invalid sites
 * - More readable diff
 * - Autocomplete
 * - Don't reuse $result
 * - Temporarily disable broken test due to Password API changes
 * - Enable editing of old revisions
 * - Normalize JSON in preSaveTransform
 * - Replace list with &quot;(none)&quot; when all items are removed
 * - Differentiate invalid title and invalid site
 * - Handle redlinks and change placeholder
 * - Change API to allow partially invalid requests
 * - Handle titles containing @ in JS
 * - Add ability to add pages to spamlist view
 * - Add UI to remove targets in list view
 * - Use API itself as context
 * - Add API for editing delivery lists
 * - Add common &quot;edit&quot; function and refactor code
 * - Move target extraction and ordering
 * - Split target-related functions into separate class
 * - Tidy preview function and comments
 * - Change PF handling; include site in getTargets
 * - Improve Special:MassMessage state checking
 * - Make site handling more consistent
 * - Combine target fetching; add importing on creation
 * - Use Html class for generating displayed list
 * - Call API internally for list creation and editing
 * - Error for invalid targets when editing spamlist
 * - Improve validation and target construction
 * - Various fixes and improvements
 * - Merge MassMessageBackend

Math

 * - Avoid unnecessary database reads

MobileApp

 * - Add config parameter for event logging sampling rate.

MobileFrontend

 * - Beta: Apply this page has issues to talk pages
 * - Show anoneditwarning when $wgMFAnonymousEditing = true
 * - Update OOjs UI class names
 * - Don't collapse sections on file pages and categories
 * - PictureShower: link directly to licensing information
 * - Add more comments and rename some variables in OverlayManager
 * - Fixing Javascript error when adding talk page reply in alpha on mobile
 * - Add a testing mode to WikiGrok
 * - QA: update for new element locator names in VE
 * - Fix &quot;Last just now by an anonymous user&quot; appearing on actions other than view

MultimediaViewer

 * - Fix patch which fixes the reuse dropdowns
 * - Fix garbled dropdown text
 * - Fix over reported use-this-file-close event
 * - Make sure event handlers are set up even if onready handler is lost
 * - Remove tooltip for view-file
 * - Remove categories
 * - Feature detection for MV load: add SVG, remove Object.create
 * - Replace addEventListener call with jQuery's .on
 * - Track more metrics
 * - Go to the original image on image clicks
 * - Log whether attribution could be presented by MediaViewer
 * - Remove file usage
 * - Move logging-related code to its own directory
 * - Make aside ltr so it would overflow to right always

Popups

 * - Simplify if statement logic
 * - renderer: Actually use eventLogging

ProofreadPage

 * - Run the setup whenever WikiEditor is enabled

Scribunto

 * - Don't output a semicolon at the end of CSS
 * - Output &amp;nbsp; instead of &amp;#nbsp;
 * - Only set indexOffset when the function name is indexed
 * - Set vary-revision appropriately with getContent

SemanticForms

 * - (&quot;Create pages with form&quot; and sfEditFormPreloadText)

Thanks

 * - Send thanks via POST on mobile too

Translate

 * - Fixed &quot;Can select a language to translate into&quot; scenario

UploadWizard

 * - Fix UploadWizard logging for reals
 * - Fix UploadWizard logging some more, maybe
 * - Fix EventLogging schema declarations
 * - Add some missing qqq messages, remove unused messages
 * - Fix TitleBlacklist support
 * - Add wgFileCanRotate to JsConfigVars
 * - Feedback: Use a proper URL for the feedback page link
 * - Add controllers for each step - mostly stubs
 * - Remove expensive synchronous template validation
 * - Alert user if navigating away before skip pref set

VisualEditor

 * - Update VE core for cherry-pick
 * - Use ve.parseXhtml and ve.serializeXhtml
 * - Update VE core for cherry-pick
 * - Update VE core for cherry-picks of If67fe35b and I80d0632fd
 * - [BrowserTest] Add @safari and @internet_explorer tags for Jenkins build
 * - Disable re-use citation tool if there are no references in the document
 * - Fix copyright notice in VisualEditorViewPageTargetInitModule.php header
 * - Properly mark reference search index as empty when setting internal list
 * - Update LinkCache in MWTitleInputWidget
 * - Re-sort i18n message keys for clarity; add a comment about TOC in VisualEditor.php
 * - Provide contextual help for the page settings dialog's controls
 * - Make message loading for 'ext.visualEditor.viewPageTarget.init' module less hacky
 * - mw.ViewPageTarget.init: Log an error if target fails to load
 * - mw.ViewPageTarget.init: Reduce Deferred clutter in getTarget
 * - Make it possible to create autonumbered external links from link inspector
 * - Abort promises before sending new ones in MediaSearchWidget
 * - Followup cb86c4f: fix call to renamed setChanged function
 * - Hide &quot;no results&quot; messaage in media search widget
 * - Check for changes in the model
 * - Rename $label to $labelElement in MWParameterPage to avoid naming conflict
 * - [BrowserTest] Locator for template field remove changed
 * - [BrowserTest] updates for Cite test

WikiLove

 * - Use $.ready and $.when instead of nesting callbacks
 * - Add dependency on 'mediawiki.api'
 * - Pass jshint
 * - Rewrite to use mediawiki.api
 * - Replace deprecated wikiGetLink with mw.util.getUrl

Wikidata

 * - Drop additional type hints
 * - Drop type hints from signatures of of RepoLinker::getEntityUrl and EntityHandler::getTitleForId

WikimediaEvents

 * - Lowercase HHVM cookie name
 * - HHVM beta feature: just manage the cookie for now
 * - Add 'HHVM' beta feature
 * - Track behaviour as well as performance data for VisualEditor

ZeroBanner

 * - Added ZeroConfig context search modes
 * - Only hide images in zero-subdomain
 * - Remove images from watchlist when needed

ZeroPortal

 * - Pass current user as a 3rd parameter to lua