MediaWiki 1.26/wmf3/Changelog

Core changes

 * - Update GWToolset to 1.26wmf3 HEAD
 * - Bump WikiEditor for Ic91b87c4f
 * - Update Flow to 1.26wmf3 HEAD
 * - Update Gather and MobileFrontend to master
 * - Bumped graph ext
 * - Update MassMessage to 1.26wmf3 HEAD
 * - Update ContentTranslation to 6f81619
 * - Update SecurePoll for Iae874c0403a8362929362ca645f4aca18feb0269
 * - Update Translate for cherry-picks
 * - Bump WikiEditor for I05adb7116f1
 * - Removed DjVu pageCount check and let it surface in the shell command
 * - Update EducationProgram
 * - ChangeTags: Don't show UI when no editable tags exist
 * - Update PageTriage to 1.26wmf3 HEAD
 * - Update MobileFrontend
 * - Update CentralAuth to 1.26wmf3 HEAD
 * - Update ContentTranslation to 53ab07e
 * - Update EducationProgram
 * - Restore B/C for ApiOpenSearch json output if warnings are present
 * - Bump Gather for I8cb92ae3fc6
 * - Update VisualEditor for I9b0dba58
 * - Update WikiEditor to 1.26wmf3 HEAD
 * - MovePage: Move target existence check into isValidMove
 * - Update SecurePoll for cherry-picks
 * - Update jQuery from v1.11.2 to v1.11.3
 * - Update MobileFrontend extension to 1a1959b
 * - API: ApiResult must validate even when using numeric auto-indexes
 * - Update Wikidata - fix change subscriptions script
 * - Update SecurePoll for I422d390c08
 * - Update VisualEditor for two icon issues
 * - Update EventLogging to 1.26wmf3 HEAD
 * - Update Gather
 * - Protect API metadata keys from FormatMetadata::fetchExtendedMetadata
 * - Update ContentTranslation to ffdd3e0
 * - API: Remove metadata keys from indexpageids output
 * - Update CentralAuth submodule
 * - Bump WikimediaEvents for null dereference in XAnalytics listener
 * - Bump Flow for FlowUpdateWorkflowPageId.php
 * - Don't load XML metadata on DjVu thumb generation
 * - Update SecurePoll for I65dcbc14e
 * - resourceloader: Add logging for T94810
 * - Bump VisualEditor for Ie10a75327
 * - Update Mobilefrontend to cherry pick
 * - Bump Flow for:
 * - Update ContentTranslation to 6890bce
 * - Update ZeroBanner for I532fe807
 * - Bump Flow for "Stop creating pages on load"
 * - Added max lag comment to JobRunner
 * - Lowered $maxAllowedLag to 3 in JobRunner
 * - Enable DBO_TRX for runJobs.php, just like HTTP job runner
 * - Removed redundant wfReadOnly check in runJobs.php
 * - Lowered JobRunner lag check interval from 3 => 1 second
 * - mediawiki.feedback: Update documentation for custom content models
 * - API: Better handle UsageException from the printer itself
 * - Use CSS columns instead of tables in Special:SpecialPages
 * - Use successbox/errorbox instead of bolded text on revision delete form
 * - tags: Use successbox/errorbox instead of bolded text on SpecialEditTags
 * - checkUsernames: send output to stdout, don't include wikiid
 * - Fix undefined variable in SpecialMergeHistory
 * - Document units in MultiHttpClient
 * - Change API result data structure to be cleaner in new formats
 * - API: Add wfDeprecated to deprecated ApiResult methods
 * - resourceloader: Add ResourceLoader::makeInlineScript utility and use it
 * - Revert "Added per-wiki queue stats information"
 * - Polyfill node types in browsers without DOM level 2
 * - BagOStuff doc tweaks
 * - ApiFormatPhp: Fix dieUsage call on unknown formatversion value
 * - ApiFormatJson: Fix dieUsage call on unknown formatversion value
 * - Revert "Release notes for aacdb664a10"
 * - API: Avoid warnings for parameters that don't exist in format=rawfm
 * - Do not wrap the "License" field on Special:Version
 * - Special:ChangeEmail: Set autofocus on new email field rather than password field
 * - CREDITS for This, That, and the other
 * - Remove quotation marks from linktrail for Udmurt
 * - Add target mobile to jquery.textSelection
 * - Fix very old log params of log type rights for new api logparam style
 * - i18n: Apply lang on UI messages on diff table
 * - Chinese Conversion Table Update 2015-2
 * - Follow-up 1c57794e371: change 'nobools' to 'nobool' in docs
 * - Add missing 'return'
 * - Reduce change for deadlocks in Block::insert
 * - Made showJobs.php show claimed jobs too
 * - Fix old log params of log type rights for new api logparam style
 * - Always set duration/flags of type block for new api logparam style
 * - Fixed stat calls in checkImages
 * - Always set suppressredirect of type move for new api logparam style
 * - Add supportsDirectEditing methods to ContentHandler
 * - Made wfWaitForSlaves check all master connections for writes
 * - API: Move parameter formatting into LogFormatter
 * - API: Document parameter types
 * - Remove $wgRUstart, unused
 * - Added CAS logic to User::addAutopromoteOnceGroups
 * - Show correct counts in category-info on action=info
 * - Made saveSettings CAS check handle caught DB exceptions better
 * - Moved ChangeTags to /changetags
 * - Introduce PageHistoryPager::doBatchLookups hook.
 * - API: Update ApiTag, fix error handling
 * - Avoid (s) for unknown plural in a message
 * - Fix warning, add new special page to MessagesEn.php
 * - Moved MessageBlobStore to /cache
 * - Try to reduce stale cache updates in User::saveSettings
 * - backupTextPassTest: Disable testCheckpointGzip test
 * - Use vslow in tagUsageStatistics
 * - The 'spambot_username' message is a reserved username
 * - mediawiki.jqueryMsg: Abort test if a language request fails
 * - ChangeTags: Hide tags whose description messages are disabled
 * - Tweaked CAS log message for User::saveSettings
 * - qunit: Abort unfinished AJAX requests in test teardown
 * - Avoid (s) for unknown plural in a message
 * - ChangeTags was backported to 1.25
 * - RELEASE-NOTES for change tagging changes
 * - UI for adding and removing change tags on revisions and log entries
 * - Allow users to add, remove and apply change tags using the API
 * - Remove MW_SPECIALPAGE_VERSION. Unused anywhere.
 * - Fix variable name and use isset to shut up a stupid notice
 * - ResourceLoaderImageModule: Implement cache invalidation
 * - Update namespaces for South Azerbaijani (azb) from translatewiki
 * - Update namespaces for Western Baluchi (bgn) from translatewiki
 * - Add namespace aliases for Luri (lrc)
 * - Add namespace aliases for Western Baluchi (bgn)
 * - Add $linkTrail for Western Baluchi (bgn)

AbuseFilter

 * - Further cleanup for core API change
 * - Use same getUserPermissionsErrors check in ApiQueryAbuseLog as SpecialAbuseLog

Babel

 * - Remove non-standard $IP override
 * - Restore compatibility with MediaWiki 1.24 and older

CentralAuth

 * - Throw an exception if the performer doesn't exist in the database
 * - hooks: Fix missing '&' in onMakeGlobalVariablesScript signature
 * - Further cleanup for core API change
 * - Special:CentralAuth: don't show global groups if 'none'
 * - Show block log link on Special:CentralAuth for indefinite blocks
 * - LocalRenameUserJob: In force mode, bypass all Title/User validation
 * - LocalRenameUserJob: Don't validate the 'from' username if 'force' is true
 * - forceRenameUsers: Replace _ in database name with -
 * - forceRenameUsers: Fail nicer if CentralAuth isn't installed
 * - Fix CentralAuthUser::loadAttached if no accounts are attached
 * - Show block options on Special:CentralAuth
 * - forceRenameUsers: Don't rename users that don't exist
 * - migrateAccount: Don't bail if the username is falsey ('0')

CheckUser

 * - Clean up line-ending whitespace
 * - Further cleanup for core API change

CirrusSearch

 * - test: Configuring banana-checker for i18n messages

CiteThisPage

 * - Re-build extension.json, deprecate and empty CiteThisPage.php
 * - test: Configuring banana-checker for i18n messages
 * - Add missing class to autoload
 * - Add 'license-name' matching SPDX conventions

Citoid

 * - Add a cancel action to the Citoid inspector
 * - Use the new ve.ui.PreviewWidget to display citation previews
 * - Move 'applyStaging' after the operation is done in Citoid
 * - Add autoAddToCatchall=false to Citoid tool

ContentTranslation

 * - Chrome does not show list formatting tools
 * - Enable formatting toolbar for non-Chrome browsers
 * - Change the color of interlanguage entry points to grey
 * - Refactor the drafts module and fix a bug about saving empty content
 * - Fix JSCS errors
 * - Set the CX token expiry to 1 hour

DonationInterface

 * - Correcting s/handlebars/mustache/
 * - Fail on any unrecognized CVV return codes
 * - Change English error messages
 * - Redirect to Astropay on successful NewInvoice
 * - Parse JSON responses, get Astropay status and errors
 * - Sign Astropay transactions
 * - Use transaction-specific URLs for Astropay
 * - Tests for the Handlebars form renderer
 * - Document Handlebars rendering class
 * - Implement a Handlebars form renderer
 * - Change recurring info text for new legal requirements
 * - Fix unstaging issue
 * - Fix content-type for non-XML POSTs
 * - Update required version of Monolog to 1.12.0
 * - Use curl_setopt_array instead of a loop
 * - Add skeleton of Astropay gateway
 * - Simplify communication_type nonsense
 * - Clarify some 'object's in PHPdoc strings

Echo

 * - Unreachable code in Echo hooks
 * - Made Echo respect $wgEnableEmail = false;
 * - Made EchoNotificationDeleteJob flush transactions so the slave wait works

EducationProgram

 * - Update API calls following core changes
 * - ApiListStudents: Use XML-friendly tag names
 * - Further cleanup for core API change

EventLogging

 * - API: Force 'required' key to use bools in formatversion=1

FlaggedRevs

 * - Further cleanup for core API change

Flow

 * - Add logging so we know what filters are being hit
 * - Create missing board pages
 * - Fix ConvertLqtPageOnLocalWiki for recent core (API) and Flow changes
 * - Stop creating pages on load
 * - Send user information including gender to flow-subscribe message
 * - Better explain how to install hooks
 * - Fix browser tests
 * - Remove preview related code
 * - Set workflow_page_id when creating a workflow
 * - Fix cancel button on history page
 * - Only load the VE editor if VE is enabled
 * - Further cleanup for core API change
 * - Add missing 'use ApiResult' statement
 * - LQT maintenance refactoring
 * - Move storing of 'discussion' workflow elsewhere
 * - Remove unused Header::needCreate
 * - Fix phpdoc variable type
 * - Fix varname
 * - Fix font size of VE user interface in Flow
 * - Use simplified getModelFromDom API
 * - Support the ApiSerializable interface
 * - Remove unused variable
 * - Use ApiResult::META_BC_BOOLS
 * - Search API endpoint
 * - Search indexed Flow data
 * - Add an onAfterClear data event
 * - Add an AbstractListener base class
 * - Update workflow_last_update_timestamp when Header is edited
 * - Maint script to fix workflow_last_update_timestamp dates
 * - Index Flow data
 * - Update icon name for Bold/Italic
 * - Use syntax to minimze translation inconsistencies
 * - Fix RevisionStorage->update
 * - Remove the flow-add-topic message
 * - Always include post-id in API response
 * - Stop submitHeader from needing submit-API output
 * - Fix conversion from uuid to timestamp to work in IE
 * - Bump cache version to match production update
 * - Flow: consistent quoting in messages.

GWToolset

 * - Check php max_file_size limit directly from PHP $_FILES

Gather
in en.json
 * - Pagination of collections list with infinite scrolling
 * - Add ToastPanel
 * - Search field with placeholder text when editing collection
 * - Unify collections url
 * - Correct API inconsistency in response
 * - Implements prop=listmembership
 * - Make Special:GatherLists responsive
 * - i18n: Fixes for the Gather-moderation-hidden-email-body message
 * - i18n: Consistent use of
 * - Hygiene: Simplify CollectionPageList
 * - i18n: Add a full stop to the end of a sentence
 * - Reveal flag icon on Vector
 * - Hygiene: Refactor collection flag button to be an actual view
 * - Fully render collections list with templates
 * - Hygiene: Split SpecialGather resource loader modules
 * - Add overlay class to confirm overlay
 * - Fix php fatal error on empty collection message
 * - Fix error in API request to hide
 * - Add missing images
 * - Gather as desktop beta feature infrastructure
 * - Reflect some upstream changes
 * - QUnit tests: Don't hit the API
 * - Hygiene: Correct API module name inconsistency
 * - Hygiene: make resource names consistent with their paths
 * - Explicitly define module position
 * - Render Collection list items with templates.
 * - Hygiene: Remove the 'options' argument from preRender and postRender functions
 * - Make it clearer collections are personal opinion
 * - Hygiene: Remove outdated comment
 * - When editing collection: Done -> Save
 * - Write log entries for showlist and hidelist to Special:Log
 * - Update how deleted pages behave
 * - Making the Gather login and signup messages work in standard way
 * - Switch URL used for collection in moderation notification
 * - hygiene: Consistent collection url generation
 * - Prevent multiple clicks to flag and detach from dom on confirmation
 * - Stop Gather from erroring
 * - Switch URL used for a collection
 * - Show hide button on collection itself
 * - i18n: Specify content language directions
 * - i18n: Tweaks
 * - Save changes to members of collection only when done clicked
 * - Fix flag button, stop unnecessary API request
 * - Design: Improve spacing of content overlay on phones
 * - Deleting collection: hide dialog when finished, toast on refresh
 * - Always point to collections menu item when creating a collection
 * - Hygiene: Fix jscs issues in Gather
 * - Don't surface 'public' property in addition to 'perm'
 * - Add flag collection button and confirm overlay
 * - Notify user when their collection is hidden or unhidden
 * - Do not use a url for the "delete collection" confirmation dialog
 * - New collection opens collection editor interface
 * - Add placeholder for admin moderation expectations to Special:GatherLists
 * - Editing shouldn't make a collection private
 * - Change button label for edit button in edit collection overlay
 * - Make edits to title and description instanenous
 * - Add url Special:Gather/id/{id} number
 * - Add isset checks for array in CollectionsList
 * - Correctly identify collections as hidden
 * - Update for core API change
 * - Adjust input based on available size
 * - Adjust messages for empty collections based on user viewing it
 * - Add special page alias for Special:GatherEditFeed
 * - Support making collections private
 * - Correct error handling for hide/show admin actions
 * - Return listpages results in query object
 * - Make the private checkbox to be a public checkbox
 * - Swap X button for arrow for editor overlay
 * - Hygiene: Split out dialog from collection delete overlay
 * - Hygiene: Make it possible to edit a collection from any page
 * - Redirect to canonical url for Gather pages
 * - Make Special:Gather show pages for that user
 * - Differentiate between html and page title on php views
 * - Error in regex broke User lists pages
 * - Hygiene: Refactor JS code for hiding/showing collections
 * - Login messages: Add support for MobileFrontend loginpage
 * - Add meta tags for when sharing /by/User
 * - Hygiene: Extract image to thumbnail to reusable method
 * - Don't show Delete button on a collection page

GlobalCssJs

 * - tests: Pass Config to ResourceLoader constructor

GlobalUsage

 * - Further cleanup for core API change

GlobalUserPage

 * - test: Configuring banana-checker for i18n messages

Graph

 * - Added missing namespace for graphoid invocation

LiquidThreads

 * - Further cleanup for core API change
 * - Use TitleMoveComplete so it picks up all moves, not just special page

MassMessage

 * - Only check if the title is an interwiki if it is for the local site
 * - Warn when users pass an interwiki title to #target

Math

 * - Use namespaced \MediaWiki\Logger\LoggerFactory

MobileFrontend
in the i18n messages
 * - Hygiene: Move mobile.toc to resources/
 * - Regression: Only panels in content shoudl have backgrounds
 * - Hygiene: Mobe LanguageOverlay to resources/
 * - Correct sample for beta optin
 * - Hygiene: Move mobile.editor.common to resources folder
 * - Create Special:TopicTag and link tagged categories on article pages
 * - Add optin to beta panel
 * - Hygiene: Reintroduce disallowNewlineBeforeBlockStatements
 * - Hygiene: Reintroduce spacing rule
 * - Hygiene: Reintroduce indent rule
 * - Hygiene: requireLineBreakAfterVariableAssignment rule and and fix complaints
 * - Hygiene: Clean up the root directory
 * - Hygiene: Move infobox and alpha code into resources
 * - Follow up I312adb5
 * - Hygiene: Update Gruntfile in preparation for moving external files into resources
 * - Don't load styles unnecessarily
 * - Increase main menu font size to 1.2 em
 * - Credits for the English messages
 * - Consistent usage of
 * - build: Bump grunt-jscs to latest version
 * - Use same left and right icon as oojs ui
 * - Log MobileWebSearch events
 * - Hygiene: Generalise the futureLog mechanism
 * - Hygiene: Setup resources/mobile.overlays
 * - Hygiene: Drawer uses Icon and Button
 * - Less confusing explanation of $hasDesktopVersion
 * - Hygiene: Use Button in AbuseFilterOverlay
 * - Hygiene: Make preRender and postRender functions on View not take arguments
 * - Add new events to SearchOverlay
 * - Fixing scrolling in the editor in Mobile Safari
 * - Hygiene: Move views and object orientated code into resources folder
 * - Tools: Run Gruntfile on resources folder as well
 * - Improve trademark code in MobileFrontend
 * - Check whether the object exists before checking its property
 * - Follow up Ia75886c
 * - API: 'editable' is a legacy boolean, don't convert it
 * - Hygiene: Create anchor abstraction
 * - Fix settings icon in beta
 * - Add the missing semicolon
 * - Hygiene: Move mobile.talk and mobile.talk.overlays to resources/
 * - Hygiene: Move mobile.mediaViewer and mobile.mediaViewer.beta to resources/
 * - Load drawer styles in mobile.drawers module
 * - Hygiene: Move drawers to resource folder
 * - Hygiene: Move MainMenu to resources folder
 * - Hygiene: Begin restructuring of MobileFrontend frontend code
 * - Check, if the user is blocked from editing before try to save the edit
 * - Remove duplicated code for each prop in mobileview api
 * - Fix for edit header message format
 * - Update for changes in OOjs UI (Ib40e3477)
 * - Revert "Update for changes in OOjs UI (Ib40e3477)"
 * - Add contentmodel prop to mobileview Api module
 * - Show the notification count
 * - Rewrite mobile login page to be less hacky and closer to core version
 * - [Beta] Remove Browse tag first letter style
 * - Hygiene: Use Button for category button
 * - Update for changes in OOjs UI (Ib40e3477)
 * - Hygiene: Use View events in SearchOverlay
 * - Hygiene: Kill dead css on diff page
 * - Don't pass empty message text to strpos
 * - Change default value of anonymousEditing to true
 * - Improve error handling for "Editor not available"
 * - Beta: Add the Tags section
 * - Make the search button look like a button for non-js users
 * - Hygiene: Add button partial support to overlays
 * - Add button abstraction
 * - Turn PageList into a generic component based on Gather usage
 * - Fix regression in menu animations
 * - QA: Fix the browser tests to reflect anonymous editing on beta labs
 * - Simplify TOC replacement on desktop Minerva
 * - QA: Remove failing VisualEditor test due to toolbar changes
 * - Don't expose the toggling init function
 * - Don't pull in watchstar code
 * - QA: Main menu is now a nav
 * - Simplify Drawer hide listeners
 * - Further cleanup for core API change
 * - Set max-width for drawers to 500px
 * - Remove mw-ui-block from CtaDrawer
 * - Mostly reverting change Ibabfb5d
 * - Append drawers to body so they can work in other skins
 * - Hygiene: Panels should not automatically be appended to DOM
 * - Hygiene: Remove dormant icon classes
 * - Hygiene: Use mw-ui-icon in stable
 * - Hygiene: Refactor how watchstar works
 * - Correctly use promise in .then to load VE modules
 * - Fix icon on Special:Uploads page when you have no edits.
 * - Add support to deprecate a module
 * - Hygiene: Clean options extending on View::render
 * - Follow up I46d9a2ea
 * - Pass options by references to pre and postRender
 * - Hygiene: Reorganise some files
 * - Add support for extensions to add custom login messages for mobile login page
 * - Beta: Make banner image width match content width

MoodBar

 * - Further cleanup for core API change

OAI

 * - Don't try to update up_page=0 if page moves suppressed redirects

OpenStackManager

 * - Use titleblacklist for shellnames as well as account names.
 * - Added missing "novaresources" message for Special:NovaResources

PageTriage

 * - API: Completely set backwards-compatibility boolean metadata
 * - API: Set backwards-compatibility boolean metadata

PdfHandler

 * - Add message documentation for file warning

Popups

 * - core: getTitle: Return undefined for non URI links
 * - i18n: Change the "Last edited" message to be just "Edited"
 * - Update the popups-send-feedback string to include the fact that its an external link
 * - Reduce font-size of timestamp text
 * - Act as a beta feature if so configured

ProofreadPage

 * - Further cleanup for core API change

Renameuser

 * - Lowered RENAMEUSER_CONTRIBJOB to 500

Scribunto

 * - ustring: Handle empty charset like Lua does

SecurePoll

 * - Fixup script for bv2015 incorrect date range
 * - Follow-up for I422d390c: correct method name
 * - Central list feature and BV 2015 list script
 * - Edit count for 2015 elections

TemplateData

 * - Work around 1c57794e3 in MW core mangling boolean properties

TimedMediaHandler

 * - Removed DB updates in updateJobQueue
 * - Further cleanup for core API change

Translate

 * - QpiQueryMessageGroups: mark '_canchange' and '_name' as non-API-metadata
 * - API: Fix unit test and update for recent core change
 * - Cleanup linkfix

TranslationNotifications

 * - Explicit link label in translationnotifications-talkpage-body

UploadWizard

 * - Further cleanup for core API change

VisualEditor

 * - Revert "Pre-fetch RESTBase DNS and negotiate TLS"
 * - Update VisualEditor core submodule to 1.26wmf3 HEAD (8c55266)
 * - Follow-up 85381a6b75: update another instance of 'language' to 'textLanguage'
 * - Don't give up immediately for revid mismatches on second load
 * - Update VE core submodule to master (54819a1)
 * - Rearrange images when the media search window resizes
 * - Revert "[TEMPORARY] Re-point A/B testing preference for test"
 * - Strip language annotations on external import
 * - ve.ce.MWEntityNode: Show whitespace characters, like in ve.ce.TextNode
 * - Remove ancient bad copy-paste documentation
 * - Manually set starting progress to 0 incase stylsheets are slow to apply
 * - ce.MWInternalLinkAnnotation: Remove outdated ../ stripping code
 * - [TEMPORARY] Re-point A/B testing preference for test
 * - build: Remove unused 'pkg' from Gruntfile.js
 * - Correct display for full-screen dialogs in Mobile VE
 * - Update VE core submodule to master (a666ccc)
 * - Further cleanup for core API change
 * - Update VE core submodule to master (952a9bb)
 * - Blacklist tags from BitDefender 2015
 * - Fix debug bar margins in monobook
 * - Fix debug bar selector in vector stylesheet
 * - Update VE core submodule to master (8bb191b)
 * - Update VE core submodule to master (5b0e269)
 * - Re-add A/B testing framework for new accounts
 * - Also load mwformatting in mobile
 * - Update VE core submodule to master (795aab5)
 * - Update VE core submodule to master (2714bfc)
 * - Show template description in the template search
 * - Use the preview widget in context items
 * - Don't self-instantiate platform
 * - Update VE core submodule to master (fd363f4)
 * - Correctly use mwcite action and hide basic/existing ref inside basic reference
 * - Defer loading easy-deflate

WikiEditor

 * - Populate abort.type in Schema:Edit logging
 * - Follow-up cc5ca3a2f6: now that we sample client-side, send all editingStatsIds to the client
 * - Perform 25% sampling on the client side as well
 * - Regenerate editingStatsId on unload
 * - Add dependency on mw.user
 * - Only trust POSTed stats IDs
 * - Remove extraneous comma

WikiGrok

 * - Increase WikiGrok sample size to 25%
 * - Aligh the version 'c' dialog in the middle of the page
 * - Correctly identify the wikigrok version
 * - Make StubUser::load compatible with User::load
 * - Hygiene: Make ResponseStore an interface
 * - Adding documentation for 'exists' value for wgc_status field
 * - Fixing EventLogging Schema error on submission failure

WikimediaEvents

 * - The title can be null for internal API requests.

WikimediaMessages

 * - Add Group-global-gather-admins{-member}
 * - Add ContactPage messages for affcom user group form
 * - Add default Wikimedia privacy policy link

XAnalytics

 * - Add X-Analytics header for API requests too
 * - Move BeforePageDisplay hook to separate class

ZeroBanner

 * - Fixed broken SkinMinerva::getLicenseLink
 * - Remove mobile.templates dependency