Problem: It's useful for desktop to enable all AMC features as most of our desktop users are power users capable of using a more advanced Minerva experience. It's also a useful way to get feedback on the features before they get larger scale usage. Right now this is not working as envisioned.
AMC features were designed to be configurable so that they could be enabled separately. Currently the features of AMC includes several config flags:
* Menu changes - a personal menu in the top right corner when logged in (grayed out silhouette) and different items in the main hamburger menu which is not configurable and turned on whenever $MFAdvancedMobileContributions is true.
* 'page' and 'discussion' tabs at the top of the page configured via $wgMinervaTalkAtTop
* a history link at the top of the page configured via $wgMinervaHistoryInPageActions
* the history link will point to either Special:MobileHistory or the desktop history page depending on the value of $wgMFUseDesktopSpecialHistoryPage
* an overflow menu (three dots) will appear with additional links based on the value of $wgMinervaOverflowInPageActions
The following configuration provides the entire AMC experience:
```
$wgMFAdvancedMobileContributions = true;
$wgMinervaTalkAtTop = [
"base" => false,
"beta" => false,
"amc" => true, // enable in AMC and desktop
];
$wgMFUseDesktopSpecialHistoryPage = [
"base" => false,
"beta" => false,
"amc" => true,
];
$wgMinervaHistoryInPageActions = [
"base" => false,
"beta" => false,
"amc" => true,
];
$wgMinervaOverflowInPageActions = [
"base" => false,
"beta" => false,
"amc" => true,
];
== Problems
1) It's not possible to disable the menu changes via the feature flag
2) Currently toggling any of these features on ships the CSS and JS for all the features using modules that mix responsibilities - these are skins.minerva.amc.styles (contains all styles for AMC), wikimedia.ui (contains majority of icons) and skins.minerva.mainMenu.icons (mixes icons for stable which are loaded via JavaScript and AMC which require JS - ideally this should be its own icon pack)
3) The feature flags do not work as expected when using desktop Minerva
```
= Acceptance criteria
[] The changes to the menu should be feature flagged using a new flag:
```
$wgMinervaUseAdvancedMenu = [
"base" => false,
"beta" => false,
"amc" => true,
];
```
[] Desktop Minerva should reflect the state of Mobile with AMC enabled. This means all skin options should default to true on desktop and be defined explicitly in mobile.
[] All features should ship their styles in a separate ResourceLoader module or by making use of the approach in $wgMinervaApplyKnownTemplateHacks (being aware of caching implications) to provide a method for us to move these features as effortlessly as possible between modes.