# Code ownership for MobileFrontend

While overall architecture and vision of this repository is owned by the
[Reader Growth team][1], various folders are maintained by different teams.
This file helps identify appropriate Phabricator tags and teams.

## MobileFrontend core

Core architecture of MobileFrontend. Responsible for switching out mobile skin
on mobile devices; insertion of mobile / desktop view links at bottom of page;
support for web manifests; PHP redirect classes for historical special pages.

* Since: Sept 2025
* Files:
  - /includes/Api/ApiWebappManifest.php
  - /includes/BaseDomainExtractorInterface.php
  - /includes/MobileContext.php
  - /includes/MobileFrontendHooks.php
  - /includes/MobileFrontendSkinHooks.php
  - /includes/ServiceWiring.php
  - /includes/WMFBaseDomainExtractor.php
  - /tests/phpunit/Utils.php
  - /tests/phpunit/integration/MobileFrontendSkinHooksTest.php
  - /tests/phpunit/integration/WMFBaseDomainExtractorTest.php
  - /tests/phpunit/structure/OwnersStructureTest.php
  - includes/ResourceLoaderModules/MobileConfig.php
  - /includes/specials/SpecialMobileDiff.php
  - /includes/specials/SpecialMobileHistory.php
  - /includes/specials/SpecialMobileLanguages.php
  - /includes/specials/SpecialUploads.php
  - /tests/phpunit/unit/HookRunnerTest.php
* Folders:
  - /includes/ContentProviders
  - /includes/Devices
  - /includes/Features
  - /includes/Hooks
  - /tests/phpunit/integration/devices/
  - /tests/phpunit/integration/specials
  - /tests/phpunit/unit/content-providers
  - /tests/phpunit/unit/devices/
* Contact: [Reader Growth][1]
* Phabricator: https://phabricator.wikimedia.org/project/view/8174/

## MobileFrontend MobileFormatter
Modifies parser content for mobile devices to support lazy loading images;
moving the lead paragraph before infoboxes; section collapsing; removing mobile
incompatible content (via `.nomobile` class); injection of Wikidata descriptions
into articles; and modifications to user pages.

* Since: Sept 2025
* Files:
  - /includes/Api/ApiParseExtender.php
  - /includes/ExtMobileFrontend.php
  - /includes/MobileFormatter.php
  - /includes/templates/UserPageCta.mustache
  - /resources/dist/mobile.config.js
  - /resources/dist/mobile.init.js
  - /src/mobile.init/Toggler.js
  - /tests/node-qunit/mobile.init/Toggler.test.js
  - /tests/node-qunit/mobile.init/sectionCollapsing.test.js
  - /tests/node-qunit/mobile.startup/Toggler.test.js
  - /tests/node-qunit/mobile.startup/sectionCollapsing.test.js
  - /tests/phpunit/integration/MobileContextTest.php
  - /tests/phpunit/integration/MobileFormatterTest.php
  - /tests/phpunit/integration/api/ApiParseExtenderTest.php
  - /tests/phpunit/integration/context/MobileContextShouldDisplayMobileViewIntegrationTest.php
  - /tests/phpunit/integration/context/MobileContextWikibaseDescriptionsTest.php
  - /src/mobile.init/isCollapsedByDefault.js
  - /src/mobile.init/lazyLoadedImages.js
  - /src/mobile.init/mobile.init.js
  - /src/mobile.init/sectionCollapsing.js
  - /src/mobile.init/toggling.js
  - /resources/mobile.init.styles/main.less
  - /tests/node-qunit/mobile.init/lazyLoadedImages.test.js
  - /tests/phpunit/unit/MobileFormatterUnitTest.php
* Folders:
  - /includes/Transforms
  - /resources/mobile.userpage.styles
  - /src/mobile.startup/lazyImages
  - /tests/node-qunit/mobile.startup/lazyImages
  - /tests/phpunit/unit/transforms
* Contact: [Reader Growth][1]
* Phabricator: https://phabricator.wikimedia.org/project/view/8173/

## Mobile ResourceLoaderModules

Disables MediaWiki:Common.js from running on mobile site.

* Since: Sept 2025
* Files:
  - /includes/ResourceLoaderModules
  - /tests/phpunit/integration/rlmodules
* Contact: [Reader Growth][1]
* Phabricator: https://phabricator.wikimedia.org/project/view/8280/

## Feature detection and Advanced mobile contributions mode

Provides an advanced mode for logged in users and encourages logged in users to use.

* Since: Sept 2025
* Files:
  - /resources/mobile.startup/amcOutreach/amcOutreachDrawer.less
* Folders:
  - /includes/Amc
  - /src/mobile.startup/amcOutreach
  - /src/mobile.startup/promoCampaign
  - /tests/node-qunit/mobile.startup/amcOutreach
  - /tests/node-qunit/mobile.startup/promoCampaign
  - /tests/phpunit/integration/amc/
  - /tests/phpunit/integration/features/
  - /tests/phpunit/integration/transforms
  - /tests/phpunit/unit/amc/
  - /tests/phpunit/unit/features
* Contact: [Reader Growth][1]
* Phabricator: https://phabricator.wikimedia.org/project/view/8175/


## MobileFrontend JavaScript core library

Deprecated MobileFrontend JS library generated by Webpack. This should be
decomissioned in favor of Codex and upstreaming useful utility functionality to
MediaWiki core.

* Since: Sept 2025
* Files:
  - /resources/dist/mobile.common.js
  - /resources/dist/mobile.config.js
  - /resources/dist/mobile.startup.js
  - /resources/dist/mobile.startup.runtime.js
  - /resources/mobile.startup/exports.js
  - /resources/mobile.startup/mobile.startup.less
  - /src/mobile.startup/Anchor.js
  - /src/mobile.startup/Browser.js
  - /src/mobile.startup/Button.js
  - /src/mobile.startup/CtaDrawer.js
  - /src/mobile.startup/Drawer.js
  - /src/mobile.startup/Icon.js
  - /src/mobile.startup/IconButton.js
  - /src/mobile.startup/MessageBox.js
  - /src/mobile.startup/Overlay.js
  - /src/mobile.startup/OverlayManager.js
  - /src/mobile.startup/Page.js
  - /src/mobile.startup/PageHTMLParser.js
  - /src/mobile.startup/Skin.js
  - /src/mobile.startup/View.js
  - /src/mobile.startup/actionParams.js
  - /src/mobile.startup/currentPage.js
  - /src/mobile.startup/currentPageHTMLParser.js
  - /src/mobile.startup/eventBusSingleton.js
  - /src/mobile.startup/headers.js
  - /src/mobile.startup/icons.js
  - /src/mobile.startup/mobile.startup.js
  - /src/mobile.startup/moduleLoader.js
  - /src/mobile.startup/moduleLoaderSingleton.js
  - /src/mobile.startup/promisedView.js
  - /src/mobile.startup/showOnPageReload.js
  - /src/mobile.startup/time.js
  - /src/mobile.startup/util.js
  - /tests/node-qunit/importable.test.js
  - /tests/node-qunit/mobile.startup/Browser.test.js
  - /tests/node-qunit/mobile.startup/Button.test.js
  - /tests/node-qunit/mobile.startup/CtaDrawer.test.html.js
  - /tests/node-qunit/mobile.startup/CtaDrawer.test.js
  - /tests/node-qunit/mobile.startup/Drawer.test.js
  - /tests/node-qunit/mobile.startup/Icon.test.js
  - /tests/node-qunit/mobile.startup/IconButton.test.js
  - /tests/node-qunit/mobile.startup/Overlay.test.js
  - /tests/node-qunit/mobile.startup/OverlayManager.test.js
  - /tests/node-qunit/mobile.startup/Page.test.js
  - /tests/node-qunit/mobile.startup/PageHTMLParser.test.js
  - /tests/node-qunit/mobile.startup/View.test.js
  - /tests/node-qunit/mobile.startup/icons.test.js
  - /tests/node-qunit/mobile.startup/moduleLoader.test.js
  - /tests/node-qunit/mobile.startup/promisedView.test.js
  - /tests/node-qunit/mobile.startup/time.test.js
  - /tests/node-qunit/mobile.startup/util.test.js
  - /tests/node-qunit/webpackRequire.stub.js
  - /tests/phpunit/structure/MobileFrontendBundleSizeTest.php
* Folders:
  - /src/mobile.startup/package
  - /tests/node-qunit/utils
* Contact: [Readers Growth][1]
* Phabricator: https://phabricator.wikimedia.org/project/view/8172/

## MobileFrontend citation drawer (reference drawer)

Pops up a reference drawer in article when a reference is clicked. At some point
should be handled by Extension:Popups or Extension:Cite.

* Since: Sept 2025
* Folders:
  - /src/mobile.startup/references
  - /tests/node-qunit/mobile.startup/references
* Contact: [Readers Growth][1]
* Phabricator: https://phabricator.wikimedia.org/project/view/8171/


## MobileFrontend editor

The editor.

* Since: Sept 2025
* Files:
  - /includes/Api/ApiEditPageExtender.php
  - /includes/MobileFrontendEditorHooks.php
  - /src/mobile.init/editor.js
  - /src/mobile.init/editorLoadingOverlay.js
  - /src/mobile.startup/Section.js
  - /src/mobile.startup/loadingOverlay.js
  - /tests/node-qunit/mobile.startup/Section.test.js
  - /tests/phpunit/integration/MobileFrontendHooksTest.php
  - src/mobile.init/fakeToolbar.js
  - /resources/mobile.editor.overlay/editor.less
  - /tests/node-qunit/mobile.init/editorLoadingOverlay.test.js
  - resources/mobile.init.styles/editor.less
  - resources/mobile.init/fakeToolbar.less
* Folders:
  - /src/mobile.editor.overlay
  - /tests/node-qunit/mobile.editor.overlay/
* Contact: [Editing Team][2]
* Phabricator: https://phabricator.wikimedia.org/project/view/5654/


## MobileFrontend image carousel (media viewer)

The image lightbox for mobile. Please do not make changes in this part of the
codebase without consulting the Readers Growth team.

* Since: Sept 2025
* Files:
  - /resources/dist/mobile.mediaViewer.js
  - /src/mobile.startup/Thumbnail.js
* Folders:
  - /resources/mobile.mediaViewer
  - /src/mobile.mediaViewer
  - /src/mobile.startup/mediaViewer
  - /tests/node-qunit/mobile.mediaViewer
* Contact: [Readers Growth][1]
* Phabricator: https://phabricator.wikimedia.org/project/view/8170/


## MobileFrontend language overlay

The language overlay on mobile. Language team will investigate UBN bugs only.
Please do not make changes in this part of the codebase without consulting the
language team.

* Since: Sept 2025
* Files:
  - /resources/dist/mobile.languages.structured.js
  - /src/mobile.startup/LanguageInfo.js
* Folders:
  - /resources/mobile.languages.structured
  - /src/mobile.languages.structured
  - /src/mobile.startup/languageOverlay
  - /tests/node-qunit/mobile.languages.structured/
  - /tests/node-qunit/mobile.startup/languageOverlay
* Contact: [Language and Product Localization][2]
* Phabricator: https://phabricator.wikimedia.org/project/view/8169/

## Special:EditWatchlist reading list feature

To be removed once the reading list feature is ready.

* Since: Sept 2025
* Files:
  - /includes/specials/SpecialMobileEditWatchlist.php
  - /resources/dist/mobile.special.watchlist.scripts.js
  - /resources/mobile.special.styles/ajax-loader.gif
  - /resources/mobile.special.styles/editwatchlist.less
  - /resources/mobile.special.styles/icons.less
  - /resources/mobile.special.styles/pagelist.less
  - /resources/mobile.special.styles/pagesummary.less
  - /resources/mobile.special.styles/watchstar.less
* Folders:
  - /includes/Models
  - /src/mobile.special.watchlist.scripts
  - /tests/node-qunit/mobile.special.watchlist.scripts/
  - /tests/phpunit/integration/models
* Contact: [Reader Experience][4]
* Phabricator: https://phabricator.wikimedia.org/project/view/8168/

## Special:MobileOptions

Provides client side settings and user preference setting.

* Since: Sept 2025
* Files:
  - /resources/dist/mobile.special.mobileoptions.scripts.js
  - /src/mobile.special.mobileoptions.scripts.js
  - /tests/node-qunit/mobile.special.mobileoptions.test.js
  - /includes/specials/SpecialMobileOptions.php
* Folders:
  - /resources/mobile.special.mobileoptions.styles
* Contact: [Reader Experience][4]
* Phabricator: https://phabricator.wikimedia.org/project/view/8167/

## Mobile special page styles / scripts

This module shouldn't exist and styles here should be upstreamed to MediaWiki
core.  It applies globally to all special pages to make them a little more
mobile friendly and is an artifact of the past. Automatically checks "remember
my login" for mobile users.

* Since: Sept 2025
* Files:
  - /resources/dist/mobile.special.userlogin.scripts.js
  - /src/mobile.special.userlogin.scripts.js
  - /resources/mobile.special.styles/common.less
  - /resources/mobile.special.styles/forms.less
  - /resources/mobile.special.styles/login.less
* Contact: [Reader Growth][1]
* Phabricator: https://phabricator.wikimedia.org/project/view/3707/

## Mobile editing anon warning experiment (T408484)

AB test code for a redesigned experience for the editing anon warning
that seeks to improve account and signup conversion rates. After experiment
results are analyzed a single experience for the anon warning should remain.

* Since: Jan 2026
* Files:
  - resources/mobile.editor.overlay/editor.less
  - src/mobile.editor.overlay/EditorOverlayBase.js
  - src/mobile.editor.overlay/SourceEditorOverlay.js
  - src/mobile.editor.overlay/VisualEditorOverlay.js
* Contact: [Growth][5]
* Phabricator: https://phabricator.wikimedia.org/project/view/1114/

[1]: https://www.mediawiki.org/wiki/Readers/Reader_Growth
[2]: https://www.mediawiki.org/wiki/Editing_team
[3]: https://www.mediawiki.org/wiki/Wikimedia_Language_and_Product_Localization
[4]: https://www.mediawiki.org/wiki/Readers/Reader_Experience
[5]: https://www.mediawiki.org/wiki/Growth
