MediaWiki 1.28/wmf.10/Changelog

Core changes

 * - Don't use $wgContentNamespaces directly
 * - MWExceptionHandler: Fix PHP7 compatibility
 * - Rewrite TidySupport and add option --use-tidy-config
 * - Update OOjs UI to v0.17.6
 * - OutputPage: Make use of WrappedStringList in headElement
 * - AuthManager: Commit transaction after auto-creating a user
 * - API: Remove index forcing in ApiQueryRecentChanges
 * - Rename 'slider' gallery mode to 'slideshow'
 * - Balancer: Inline BalancerStack::length
 * - Balancer: remove all Assert::parameterType calls
 * - Balancer: Introduce BalanceElement::isHtmlNamed
 * - Balancer: cache BalanceStack::currentNode
 * - Some Balancer improvements for performance and compatibility
 * - Hook up Balancer as a Tidy implementation.
 * - HTML5 Balancer
 * - Add tracking category when editors use the deprecated self-closed tag hack.
 * - Move span.comment back to shared.css as its more widely used
 * - Update documentation for I30e359fb
 * - build: Bump grunt-karma and related tools to 1.0.x
 * - Revert "If rev_content_model is null, use page_content_model."
 * - composer/semver 1.4.0 -> 1.4.1
 * - Parse sidebar message for main page when cache is enabled
 * - Use more short array syntax in comments (/tests/)
 * - Fix grammar in transaction-duration-limit-exceeded
 * - Use READ_LATEST for the WikiPage in RefreshLinksJob
 * - Add missing colons
 * - Handle the default value of $wgExternalDiffEngine without warning
 * - Run generateLocalAutoload.php
 * - ApiQuery: Don't mess with PHP output buffering
 * - If rev_content_model is null, use page_content_model.
 * - Improve comments on fields and fix opening_text - needs no highlights.
 * - TitleWidget: Add missing return documentation
 * - Clarify functionality of 'captionLength' in GalleryOptions
 * - Make classes actually work in lines in EnhancedChangesList
 * - New parserTests.php features
 * - Update wikimedia/wrappedstring to v2.1.1
 * - Permit use of User::getDefaultOptions in-process cache in unit tests
 * - Gallery: Add new slider mode
 * - API: Generate head items in the context of the given title
 * - Release notes for UploadVerifyUpload hook (8f2acfcd)
 * - Pass addModuleStyles an array instead of calling it multiple times
 * - Revert "Adding a bunch of hooks from wikiHow into DifferenceEngine"
 * - Revert "Show parser output for diffs unless extension aborts"
 * - Log the session cache type along with other cache types
 * - Create API to allow content handlers to handle structured data definitions
 * - Add mediawiki.special.changeslist to SpecialContributions
 * - Create BagOStuff implementation to talk to RestBase
 * - Add $visibilityChangeMap parameter to RevDelList doPostCommitUpdates
 * - Refactor database-related code in ApiQueryWatchlistRaw
 * - mediawiki.api: Don't abort token requests in postWithToken
 * - Show parser output for diffs unless extension aborts
 * - resourceloader: Replace SHA1 with 32-bit FNV-1 as hash function
 * - Add new mw-contributions-current css class to Special:Contributions
 * - Add missing …|null $context documentation to Action class
 * - Move diff CSS from mediawiki.legacy.shared
 * - Revert "Convert Special:MergeHistory to use OOUI."
 * - Fixes to LocalFile::lock
 * - mw.widgets.CategorySelector: Avoid JS exceptions for invalid user input
 * - DifferenceEngine: Autodetect if wikidiff2 is installed
 * - registration: Remove broken ResourceLoaderLESSImportPaths support
 * - mw.Upload.BookletLayout: Better handle error messages from AbuseFilter and TitleBlacklist
 * - Modified Lojban interwiki
 * - ApiUpload: Better handle ApiMessage errors from UploadVerifyFile hook
 * - Introduce new hook UploadVerifyUpload to allow preventing file uploads
 * - Add any prior block to BlockIpComplete hook
 * - API: Allow anonymous CORS from anywhere, when specifically requested
 * - Remove old WebResponse::setCookie calling method

Vendor

 * - Update OOjs UI to v0.17.6
 * - composer/semver 1.4.0 -> 1.4.1
 * - Update wikimedia/wrappedstring to v2.1.1

AbuseFilter

 * - Use custom error code for all edit and upload API responses
 * - Provide page text and edit summary when filtering file uploads

Capiunto

 * - Convert Capiunto to extension registration

CentralAuth

 * - Add checkLocalUser.php option to delete entries for invalid wikis
 * - Add single-user option to checkLocalUser.php
 * - Fix job serializing (and status display on Special:GlobalRenameProgress)
 * - Make LocalRename jobs run sequentially
 * - Handle invalid wikis in SpecialGlobalRenameProgress

CirrusSearch

 * - Add query parsing tests for Searcher
 * - Implement nearcoord: and neartitle: search keywords
 * - Automatically select sanitization settings based on wiki size
 * - Remove BC code

Cite

 * - Use 'demote' only to move cite tools to insert group

Citoid

 * - Unregister cite tools when Citoid is present
 * - Always load Citoid type map from data module

CleanChanges

 * - Remove usages of javascript: schema urls

CommonsMetadata

 * - Empty old entry point, already converted to extension.json

ContentTranslation

 * - cxsave API: Check for translation status along with ownership check
 * - Add ping limiter to cxsave
 * - Add English -> Polish Sfn->Odn template mapping
 * - contenttranslation API: Avoid duplicate results in API output

DonationInterface

 * - Move js to call donate API into generic forms module
 * - Remove unused forms
 * - Fix OBT breakage
 * - Adyen: Add American Express option for Israel and Ukraine
 * - Support verbose logging for cURL
 * - Add autoloader config to composer.json
 * - Disable AmEx payment submethod outside USA
 * - Encapsulated amount validation for better messages
 * - Put referrer back in session again
 * - Use 'addModuleStyles' in a couple more places
 * - fix dependencies for legacy forms in 1.26
 * - Required fields don't need to be in a group
 * - Set address width class dynamically, fix no-state bug
 * - Generalize per-country validation
 * - Whitespace cleanup
 * - Adyen iframe hacks to fix CVV input
 * - Check in Adyen iframe skin
 * - Stop checking email tlds
 * - Fix Handling of Curriencies Without Minor Units or having Three Decimal Units.
 * - Revert "Add express checkout identifier to order_id"

Echo

 * - getCentralAuthToken back to protected.
 * - CentralAuth: Bail if not fully initialized
 * - Troubleshoot why Echo is still triggering CA failures
 * - ForeignWikiRequest: Bail early for non-global users
 * - Use 'uselang' when fetching unread page notifications
 * - Make sure sidebar titles are under one another in Special:Notifications
 * - Fix E_NOTICE due to event_deleted missing on foreign psuedo-notification
 * - Followup Ib7f4dc4ea: Bring back message tooltip with 'notice' text
 * - Only fetch 'unreadfirst' for the Popup, not Special:Notifications
 * - Change 'messages' to 'notices' throughout the interface
 * - Store local source as 'local' rather than dbName
 * - Properly aggregate the itemUpdate event
 * - compact-header should be parse because it includes formatting
 * - Correct section (alert/message/all)
 * - Notification count: don't assume 'all'
 * - Keep bundled notification compact header on one line
 * - Sort bundled notifications by read status AND timestamp
 * - Special:Notifications JS even when no local notifications
 * - Followup Iae32cbf82cdb: Set width to Special:Notifications
 * - Use accessible colors on read status marker

Flow

 * - Use the right compact msg for flowusertalk-* expandable notifications
 * - flow-post-reply: show compact header on one line

FundraiserLandingPage

 * - Convert FundraiserLandingPage to use extension registration

GeoData

 * - Remove wgGeoDataIndexLatLon
 * - This fielddata format was removed in elastic 2.0
 * - Slightly more accurate results when filtering on dim/primary
 * - Fix coordinate validation

GlobalUsage

 * - Defer copyLocalImagelinks logic to avoid DB contention

InputBox

 * - Add parser tests

Insider

 * - Convert Insider extension to use new registration

Kartographer

 * - Consistency tweaks in preparatation for translatewiki
 * - Make mapframe static on small devices
 * - Apply Wikivoyage attributions style + scale control to all maps
 * - Add ExternalData to JSON schema
 * - Factor out extension data manipulation
 * - Fix broken full screen mode on Safari
 * - Fix VE not updating map position on "done"

MassMessage

 * - Fix casing of function call

Math

 * - Use transition timing from OOUI theme config

MobileFrontend

 * - Follow-up I92b83410: Fix VE overlay header classes
 * - Update linting tools and fix errors
 * - Add MobileContext#shouldShowWikibaseDescriptions
 * - SpecialMobileCite: Don't bypass LinkRenderer
 * - Avoid 1px jump when focus search
 * - Remove language iso codes in language overlay
 * - RIP: Remove non-VE editor with toolbar
 * - Show a toast message when the page is not available in other languages
 * - Article actions should take up 100% width

MultimediaViewer

 * - Fix selectors to match Parsoid DOM-spec images
 * - Remove IE8 JS compatibility hacks/workarounds
 * - Filter HTML from some attributes
 * - Add HtmlUtils.makeLinkText utility function

MwEmbedSupport

 * - Convert extension to use extension registration

OAuth

 * - Fall back to master DB for access token lookup

ORES

 * - Better wording for preferences
 * - "Hide good edits" -> "Hide probably good edits"
 * - Highlight the whole row in EnhancedChangesList
 * - Fix typo
 * - Remove oresc_is_predicted = 1 in db queries

PoolCounter

 * - De-dupe old PHP entry points

Popups

 * - Tweaks to settings page
 * - Do not log XHR cancellations

ProofreadPage

 * - Pages inspector fixes
 * - Follow-up 0f60283: Check div.pagetext was present
 * - Fix name of PagequalityInspector.css
 * - Scope CSS rules to PRP target
 * - Removes during VisualEditor loading

RelatedSites

 * - Make hook functions static

RestBaseUpdateJobs

 * - Convert to extension registration

RevisionSlider

 * Newly deployed extension

SemanticForms

 * - Fixes for 'table' and 'spreadsheet' display types
 * - Another refactor fix, for "default filename"
 * - Fix for blank value passed to SFFormUtils::unhandledFieldsHTML
 * - Removed OpenLayers from composer.json "require" clause
 * - Removed 'autoload' from composer.json

ShortUrl

 * - Add read-only mode functionality

SpamBlacklist

 * - Improve use of edit stash hook to check links
 * - Fix bugs in Schema:ExternalLinksChange code

SubPageList3

 * - Convert SubPageList3 to use new extension registration

TitleBlacklist

 * - Add message parameters to API response

Translate

 * - Grammatical clarification in two comments
 * - Fix JsonFFS empty file detection after I2e538b98e

UniversalLanguageSelector

 * - Update jquery.ime to 839fa42
 * - Compact links: Execute the compact strategies on need basis

UploadWizard

 * - Correctly report uploads blocked by AbuseFilter
 * - uw.CategoriesDetailsWidget: Avoid JS exceptions for invalid user input

VisualEditor

 * - Avoid trying to load unregistered modules
 * - MWGalleryDialog: Don't set blank values for width, height
 * - Update VE core submodule to master (c96c398)
 * - Fix vertical positioning of progress bar
 * - Use transition timing from OOUI theme config
 * - Use debug for spammy edit stash log messages
 * - Revert "Use debug for stash messages to match core"
 * - Fix undefined variable
 * - Make gallery dialog caption field multiline
 * - Check surface exists when triggering toc rebuild

WikimediaMaintenance

 * - Still allow HTTP interwiki URLs for the benefit of labs
 * - Force HTTPS for the interwiki map
 * - interwiki.php autogenerator now uses short array syntax
 * - Add ORES extension creation tables
 * - Add tables for PageAssessments extension

WikimediaMessages

 * - Add disclaimer and title messages for steward contact form

intersection

 * - Add extension.json, empty PHP entry point

Vector

 * - Allow an alternate, generic header font to be specified for certain languages