jenkins-bot has submitted this change and it was merged.

Change subject: Better logging, simplify getWikiInfo
......................................................................


Better logging, simplify getWikiInfo

* getWikiInfo() now always includes cluster domain
* protocol is included in zero.log
* better opera-related slot error reporting


Change-Id: I99311c59175f778e92bab242e87a343d27ec518a
---
M includes/PageRendering.php
M includes/ZeroSpecialPage.php
2 files changed, 25 insertions(+), 19 deletions(-)

Approvals:
  Yurik: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/includes/PageRendering.php b/includes/PageRendering.php
index 87e43d5..a1ce08d 100644
--- a/includes/PageRendering.php
+++ b/includes/PageRendering.php
@@ -609,13 +609,12 @@
        private $config = false;
 
        /**
-        * @param bool $includeClusterDomain if true, includes "org" as the 
last value
-        * @return array with three values - language code (en), subdomain (m), 
and site (wikipedia)
+        * @return array with three values - language code (en), subdomain (m), 
site (wikipedia), cluster domain (org)
         */
-       public function getWikiInfo( $includeClusterDomain = false ) {
+       public function getWikiInfo() {
                static $info = null;
                if ( $info === null ) {
-                       global $wgConf, $wgDBname;
+                       global $wgConf, $wgDBname, $wgZeroBannerClusterDomain;
                        list( $site, $langCode ) = $wgConf->siteFromDB( 
$wgDBname );
                        if ( $langCode === '' || $langCode === 'test' ) {
                                $langCode = 'en'; // Useful for debugging, 
should never be the case in production
@@ -623,14 +622,10 @@
                        if ( !$site ) {
                                $site = 'wikipedia';
                        }
-                       $info = array( $langCode, $this->isZeroSubdomain ? 
'zero' : 'm', $site );
+                       $subdomain = $this->isZeroSubdomain ? 'zero' : 'm';
+                       $info = array( $langCode, $subdomain, $site, 
$wgZeroBannerClusterDomain );
                }
-               $result = $info;
-               if ( $includeClusterDomain ) {
-                       global $wgZeroBannerClusterDomain;
-                       $result[] = $wgZeroBannerClusterDomain;
-               }
-               return $result;
+               return $info;
        }
 
        /**
@@ -797,7 +792,7 @@
         * @return string
         */
        public function getStartPageUrl( $langCode = null, $flags = 0 ) {
-               $info = $this->getWikiInfo( true );
+               $info = $this->getWikiInfo();
                if ( $langCode !== null ) {
                        $info[0] = $langCode;
                }
@@ -898,10 +893,11 @@
                        array_walk( $dbg,
                                function ( & $v, $k ) { $v = is_string( $k ) ? 
$k . '=' . FormatJson::encode( $v ) : $v; } );
                } else {
-                       $dbg = (array) $dbg;
+                       $dbg = (array)$dbg;
                        $dbg[] = $request->getIP();
                }
-               $dbg[] = implode( '.', $this->getWikiInfo( true ) );
+               $host = implode( '.', $this->getWikiInfo() );
+               $dbg[] = ( $request->getHeader( 'X-Forwarded-Proto' ) ?: 'http' 
) . '://' . $host;
                $dbg[] = $request->getRawQueryString();
                $dbg = implode( "\t", $dbg );
 
@@ -1026,8 +1022,18 @@
                        $forwardedByOpera = $req->getHeader( 'X-Forwarded-By' ) 
=== 'Opera';
                        $slot = $req->getHeader( 'X-OPERAMINI-ROUTE' );
                        if ( !$forwardedByOpera && $slot ) {
-                               // Opera has marked it with a slot, but we 
didn't recognize it as opera traffic
-                               $warn['not-opera-slot'] = $req->getHeader( 
'X-Forwarded-For' );
+                               if ( $req->getHeader( 'X-Forwarded-By2' ) === 
'Opera' ) {
+                                       if ( $configId2 ) {
+                                               // Opera traffic, and opera has 
marked it with a slot, but we are not marking as zero
+                                               $warn['opera-slot-not-zero'] = 
$configId2;
+                                       } else {
+                                               // Opera traffic, and opera has 
marked it with a slot, but we don't know who this is
+                                               $warn['opera-slot-unknown'] = 
$req->getHeader( 'X-Forwarded-For' );
+                                       }
+                               } else {
+                                       // Opera has marked it with a slot, but 
we didn't recognize it as opera traffic
+                                       $warn['not-opera-slot2'] = 
$req->getHeader( 'X-Forwarded-For' );
+                               }
                        } elseif ( $forwardedByOpera ) {
                                if ( !$slot && $isZeroTraffic ) {
                                        // We think it has been zero-rated, but 
opera has not marked it with a slot
diff --git a/includes/ZeroSpecialPage.php b/includes/ZeroSpecialPage.php
index ed40d9a..516b905 100644
--- a/includes/ZeroSpecialPage.php
+++ b/includes/ZeroSpecialPage.php
@@ -7,7 +7,6 @@
 use MobileContext;
 use WebRequest;
 use Xml;
-use ZeroBanner\PageRendering;
 
 /**
  * Default startup page for ZeroBanner extension that shows the list of 
available languages.
@@ -212,6 +211,7 @@
                $hrTag = Html::element( 'hr' );
 
                $config = $state->getZeroConfig();
+               /** @var \SkinMinerva $skin - Assuming this is a mobile skin */
                $skin = $this->getContext()->getSkin();
                $dir = $skin->getLanguage()->isRTL() ? 'rtl' : 'ltr';
                $lang = $skin->getLanguage()->getCode();
@@ -338,7 +338,7 @@
                $this->getOutput()->enableClientCache( false );
                $req = $this->getRequest();
 
-               $host = implode( '.', $state->getWikiInfo( true ) );
+               $host = implode( '.', $state->getWikiInfo() );
                $bannerText = $this->msg( 'zero-sorry', $host )->text() . '<br 
/>';
 
                $ip = $req->getIP();
@@ -447,7 +447,7 @@
                                $banner = self::createImageBanner( 
$config->background(), $config->foreground(), $text );
                                $errors = !$banner;
                        } elseif ( $state->isZeroSubdomain() ) {
-                               $host = implode( '.', $state->getWikiInfo( true 
) );
+                               $host = implode( '.', $state->getWikiInfo() );
                                $bannerText = $this->msg( 'zero-sorry', $host 
)->text() . "\n\n";
 
                                $ip = $request->getIP();

-- 
To view, visit https://gerrit.wikimedia.org/r/148907
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I99311c59175f778e92bab242e87a343d27ec518a
Gerrit-PatchSet: 4
Gerrit-Project: mediawiki/extensions/ZeroBanner
Gerrit-Branch: master
Gerrit-Owner: Yurik <yu...@wikimedia.org>
Gerrit-Reviewer: Dr0ptp4kt <ab...@wikimedia.org>
Gerrit-Reviewer: Yurik <yu...@wikimedia.org>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to