Merge "Isolate globals for ContentSecurityPolicy tests"
[lhc/web/wiklou.git] / includes / ServiceWiring.php
index 9b064ce..96baf14 100644 (file)
@@ -82,6 +82,7 @@ return [
        'BlobStoreFactory' => function ( MediaWikiServices $services ) : BlobStoreFactory {
                return new BlobStoreFactory(
                        $services->getDBLoadBalancerFactory(),
+                       $services->getExternalStoreAccess(),
                        $services->getMainWANObjectCache(),
                        new ServiceOptions( BlobStoreFactory::$constructorOptions,
                                $services->getMainConfig() ),
@@ -102,6 +103,7 @@ return [
                        $config->get( 'EnableDnsBlacklist' ),
                        $config->get( 'ProxyList' ),
                        $config->get( 'ProxyWhitelist' ),
+                       $config->get( 'SecretKey' ),
                        $config->get( 'SoftBlockRanges' )
                );
        },
@@ -200,11 +202,22 @@ return [
                return new EventRelayerGroup( $services->getMainConfig()->get( 'EventRelayerConfig' ) );
        },
 
+       'ExternalStoreAccess' => function ( MediaWikiServices $services ) : ExternalStoreAccess {
+               return new ExternalStoreAccess(
+                       $services->getExternalStoreFactory(),
+                       LoggerFactory::getInstance( 'ExternalStore' )
+               );
+       },
+
        'ExternalStoreFactory' => function ( MediaWikiServices $services ) : ExternalStoreFactory {
                $config = $services->getMainConfig();
+               $writeStores = $config->get( 'DefaultExternalStore' );
 
                return new ExternalStoreFactory(
-                       $config->get( 'ExternalStores' )
+                       $config->get( 'ExternalStores' ),
+                       ( $writeStores !== false ) ? (array)$writeStores : [],
+                       $services->getDBLoadBalancer()->getLocalDomainID(),
+                       LoggerFactory::getInstance( 'ExternalStore' )
                );
        },
 
@@ -416,13 +429,22 @@ return [
        },
 
        'ParserFactory' => function ( MediaWikiServices $services ) : ParserFactory {
-               return new ParserFactory(
+               $options = new ServiceOptions( Parser::$constructorOptions,
+                       // 'class' and 'preprocessorClass'
                        $services->getMainConfig()->get( 'ParserConf' ),
+                       // Make sure to have defaults in case someone overrode ParserConf with something silly
+                       [ 'class' => Parser::class,
+                               'preprocessorClass' => Parser::getDefaultPreprocessorClass() ],
+                       // Plus a buch of actual config options
+                       $services->getMainConfig()
+               );
+
+               return new ParserFactory(
+                       $options,
                        $services->getMagicWordFactory(),
                        $services->getContentLanguage(),
                        wfUrlProtocols(),
                        $services->getSpecialPageFactory(),
-                       $services->getMainConfig(),
                        $services->getLinkRendererFactory(),
                        $services->getNamespaceInfo()
                );
@@ -454,6 +476,9 @@ return [
                        $config->get( 'WhitelistReadRegexp' ),
                        $config->get( 'EmailConfirmToEdit' ),
                        $config->get( 'BlockDisablesLogin' ),
+                       $config->get( 'GroupPermissions' ),
+                       $config->get( 'RevokePermissions' ),
+                       $config->get( 'AvailableRights' ),
                        $services->getNamespaceInfo()
                );
        },
@@ -475,8 +500,8 @@ return [
        'ProxyLookup' => function ( MediaWikiServices $services ) : ProxyLookup {
                $mainConfig = $services->getMainConfig();
                return new ProxyLookup(
-                       $mainConfig->get( 'SquidServers' ),
-                       $mainConfig->get( 'SquidServersNoPurge' )
+                       $mainConfig->get( 'CdnServers' ),
+                       $mainConfig->get( 'CdnServersNoPurge' )
                );
        },