Merge "Split WikiPageTest into ContentHandler & NoContentHandler tests"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Mon, 4 Dec 2017 18:55:16 +0000 (18:55 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Mon, 4 Dec 2017 18:55:16 +0000 (18:55 +0000)
includes/context/RequestContext.php
includes/libs/objectcache/WANObjectCache.php
includes/media/SVG.php
includes/objectcache/ObjectCache.php
includes/resourceloader/ResourceLoaderContext.php
includes/specials/SpecialUndelete.php

index 7cabd40..c2d0de1 100644 (file)
@@ -308,7 +308,6 @@ class RequestContext implements IContextSource, MutableContext {
 
                # Validate $code
                if ( !$code || !Language::isValidCode( $code ) || $code === 'qqq' ) {
-                       wfDebug( "Invalid user language code\n" );
                        $code = $wgLanguageCode;
                }
 
index ddf5d35..8f2c72a 100644 (file)
@@ -387,13 +387,13 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
                $purgeValues = [];
                foreach ( $timeKeys as $timeKey ) {
                        $purge = isset( $wrappedValues[$timeKey] )
-                               ? self::parsePurgeValue( $wrappedValues[$timeKey] )
+                               ? $this->parsePurgeValue( $wrappedValues[$timeKey] )
                                : false;
                        if ( $purge === false ) {
                                // Key is not set or invalid; regenerate
                                $newVal = $this->makePurgeValue( $now, self::HOLDOFF_TTL );
                                $this->cache->add( $timeKey, $newVal, self::CHECK_KEY_TTL );
-                               $purge = self::parsePurgeValue( $newVal );
+                               $purge = $this->parsePurgeValue( $newVal );
                        }
                        $purgeValues[] = $purge;
                }
@@ -677,10 +677,9 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
                $rawValues = $this->cache->getMulti( $rawKeys );
                $rawValues += array_fill_keys( $rawKeys, false );
 
-               $index = 0;
                $times = [];
                foreach ( $rawKeys as $key => $rawKey ) {
-                       $purge = self::parsePurgeValue( $rawValues[$rawKey] );
+                       $purge = $this->parsePurgeValue( $rawValues[$rawKey] );
                        if ( $purge !== false ) {
                                $time = $purge[self::FLD_TIME];
                        } else {
@@ -1477,7 +1476,7 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
         * @return bool Success
         * @since 1.28
         */
-       public function reap( $key, $purgeTimestamp, &$isStale = false ) {
+       final public function reap( $key, $purgeTimestamp, &$isStale = false ) {
                $minAsOf = $purgeTimestamp + self::HOLDOFF_TTL;
                $wrapped = $this->cache->get( self::VALUE_KEY_PREFIX . $key );
                if ( is_array( $wrapped ) && $wrapped[self::FLD_TIME] < $minAsOf ) {
@@ -1506,7 +1505,7 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
         * @return bool Success
         * @since 1.28
         */
-       public function reapCheckKey( $key, $purgeTimestamp, &$isStale = false ) {
+       final public function reapCheckKey( $key, $purgeTimestamp, &$isStale = false ) {
                $purge = $this->parsePurgeValue( $this->cache->get( self::TIME_KEY_PREFIX . $key ) );
                if ( $purge && $purge[self::FLD_TIME] < $purgeTimestamp ) {
                        $isStale = true;
@@ -1552,7 +1551,7 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
         * @return ArrayIterator Iterator yielding (cache key => entity ID) in $entities order
         * @since 1.28
         */
-       public function makeMultiKeys( array $entities, callable $keyFunc ) {
+       final public function makeMultiKeys( array $entities, callable $keyFunc ) {
                $map = [];
                foreach ( $entities as $entity ) {
                        $map[$keyFunc( $entity, $this )] = $entity;
@@ -1625,7 +1624,7 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
         * @param bool $enabled Whether to enable interim caching
         * @since 1.31
         */
-       public function useInterimHoldOffCaching( $enabled ) {
+       final public function useInterimHoldOffCaching( $enabled ) {
                $this->useInterimHoldOffCaching = $enabled;
        }
 
@@ -1719,7 +1718,7 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
         * @return int Number of warmup key cache misses last round
         * @since 1.30
         */
-       public function getWarmupKeyMisses() {
+       final public function getWarmupKeyMisses() {
                return $this->warmupKeyMisses;
        }
 
@@ -1926,7 +1925,7 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
         */
        protected function unwrap( $wrapped, $now ) {
                // Check if the value is a tombstone
-               $purge = self::parsePurgeValue( $wrapped );
+               $purge = $this->parsePurgeValue( $wrapped );
                if ( $purge !== false ) {
                        // Purged values should always have a negative current $ttl
                        $curTTL = min( $purge[self::FLD_TIME] - $now, self::TINY_NEGATIVE );
@@ -1994,7 +1993,7 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
         * @return array|bool Array containing a UNIX timestamp (float) and holdoff period (integer),
         *  or false if value isn't a valid purge value
         */
-       protected static function parsePurgeValue( $value ) {
+       protected function parsePurgeValue( $value ) {
                if ( !is_string( $value ) ) {
                        return false;
                }
index 2b13893..10be97a 100644 (file)
@@ -511,8 +511,6 @@ class SvgHandler extends ImageHandler {
                } elseif ( $name == 'lang' ) {
                        // Validate $code
                        if ( $value === '' || !Language::isValidCode( $value ) ) {
-                               wfDebug( "Invalid user language code\n" );
-
                                return false;
                        }
 
index 07432c0..67d2346 100644 (file)
@@ -342,14 +342,15 @@ class ObjectCache {
                        $params['channels'][$action] = $channel;
                }
                $params['cache'] = self::newFromParams( $params['store'] );
-               $params['stats'] = $services->getStatsdDataFactory();
                if ( isset( $params['loggroup'] ) ) {
                        $params['logger'] = LoggerFactory::getInstance( $params['loggroup'] );
                } else {
                        $params['logger'] = LoggerFactory::getInstance( 'objectcache' );
                }
-               // Let pre-emptive refreshes happen post-send on HTTP requests
                if ( !$wgCommandLineMode ) {
+                       // Send the statsd data post-send on HTTP requests; avoid in CLI mode (T181385)
+                       $params['stats'] = $services->getStatsdDataFactory();
+                       // Let pre-emptive refreshes happen post-send on HTTP requests
                        $params['asyncHandler'] = [ DeferredUpdates::class, 'addCallableUpdate' ];
                }
                $class = $params['class'];
index cbb0bec..7478266 100644 (file)
@@ -182,7 +182,6 @@ class ResourceLoaderContext implements MessageLocalizer {
                        $lang = $this->getRequest()->getRawVal( 'lang', '' );
                        // Stricter version of RequestContext::sanitizeLangCode()
                        if ( !Language::isValidBuiltInCode( $lang ) ) {
-                               wfDebug( "Invalid user language code\n" );
                                $lang = $this->getResourceLoader()->getConfig()->get( 'LanguageCode' );
                        }
                        $this->language = $lang;
index 0c038c1..0b0bbc0 100644 (file)
@@ -460,32 +460,32 @@ class SpecialUndelete extends SpecialPage {
                        ] );
                }
 
+               $out->enableOOUI();
+               $buttonFields = [];
+
                if ( $isText ) {
                        // source view for textual content
-                       $sourceView = Xml::element(
-                               'textarea',
-                               [
-                                       'readonly' => 'readonly',
-                                       'cols' => 80,
-                                       'rows' => 25
-                               ],
-                               $content->getNativeData() . "\n"
-                       );
+                       $sourceView = new OOUI\MultilineTextInputWidget( [
+                               'readOnly' => true,
+                               'rows' => 25,
+                               'value' => $content->getNativeData() . "\n"
+                       ] );
 
-                       $previewButton = Xml::element( 'input', [
+                       $buttonFields[] = new OOUI\ButtonInputWidget( [
                                'type' => 'submit',
                                'name' => 'preview',
-                               'value' => $this->msg( 'showpreview' )->text()
+                               'label' => $this->msg( 'showpreview' )->text()
                        ] );
                } else {
                        $sourceView = '';
                        $previewButton = '';
                }
 
-               $diffButton = Xml::element( 'input', [
+               $buttonFields[] = new OOUI\ButtonInputWidget( [
                        'name' => 'diff',
                        'type' => 'submit',
-                       'value' => $this->msg( 'showdiff' )->text() ] );
+                       'label' => $this->msg( 'showdiff' )->text()
+               ] );
 
                $out->addHTML(
                        $sourceView .
@@ -506,8 +506,13 @@ class SpecialUndelete extends SpecialPage {
                                        'type' => 'hidden',
                                        'name' => 'wpEditToken',
                                        'value' => $user->getEditToken() ] ) .
-                               $previewButton .
-                               $diffButton .
+                               new OOUI\FieldLayout(
+                                       new OOUI\Widget( [
+                                               'content' => new OOUI\HorizontalLayout( [
+                                                       'items' => $buttonFields
+                                               ] )
+                                       ] )
+                               ) .
                                Xml::closeElement( 'form' ) .
                                Xml::closeElement( 'div' )
                );