Dr0ptp4kt has uploaded a new change for review.
https://gerrit.wikimedia.org/r/181194
Change subject: Support dynamic HTTPS not free message
......................................................................
Support dynamic HTTPS not free message
Additionally, lighten the background gray color of the banner,
and remove the clickthroughs, per the business team.
Change-Id: I5f8414baaab805715a990ad788111e50171a7fe1
---
M i18n/en.json
M includes/ApiZeroBanner.php
M includes/PageRendering.php
M includes/ZeroSpecialPage.php
M modules/banner.css
5 files changed, 38 insertions(+), 8 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/ZeroBanner
refs/changes/94/181194/1
diff --git a/i18n/en.json b/i18n/en.json
index de4a42e..947856a 100644
--- a/i18n/en.json
+++ b/i18n/en.json
@@ -34,6 +34,7 @@
"zero-dont-ask": "Do not warn me about potential charges in the future",
"zero-go-back": "Go back",
"zero-accept": "Accept",
+ "zero-https-not-free": "HTTPS (encrypted) not free",
"zero-https-http": "HTTPS (encrypted) not free. Tap here for HTTP (less
secure).",
"zero-click-to-view-image": "Click to view image of \"$1\"...",
"zero-dismiss-notification": "dismiss this notification",
diff --git a/includes/ApiZeroBanner.php b/includes/ApiZeroBanner.php
index a54a165..5e8e947 100644
--- a/includes/ApiZeroBanner.php
+++ b/includes/ApiZeroBanner.php
@@ -62,7 +62,6 @@
$result->addValue( $moduleName,
'showImages', $config->showImages() );
$result->addValue( $moduleName,
'whitelistedLangs', $config->whitelistedLangs() );
$result->addValue( $moduleName,
'enableHttps', $config->enableHttps() );
- // TODO: add showHttpsDowngrade here
when adding JavaScript support for it
$result->addValue( $moduleName,
'sites', $config->sites() );
$result->addValue( $moduleName,
'domains', $config->domains() );
} else {
diff --git a/includes/PageRendering.php b/includes/PageRendering.php
index 1d4399b..96b970f 100644
--- a/includes/PageRendering.php
+++ b/includes/PageRendering.php
@@ -85,7 +85,6 @@
$cfg['showImages'] = $config->showImages();
$cfg['whitelistedLangs'] = $config->whitelistedLangs();
$cfg['enableHttps'] = $config->enableHttps();
- // TODO: add showHttpsDowngrade here when adding
JavaScript support for it
$cfg['sites'] = $config->sites(); // todo: remove this
value once it's out of cache
$cfg['domains'] = $config->domains();
$cfg['proxy'] = $config->proxy();
@@ -426,6 +425,8 @@
//
// This is simpler than growing the cache per-operator (no!) or
putting some sort of complicated
// parameter trying to help us intuit the user's intention
+
+ /* Per business team, no need for clickthrough yet. Hence the
following if() being commented out
if ( $isHttps || $isZeroSubdomain ) {
// We probably don't need the project from the
(instance) getWikiInfo() method because
// (a) we're not expanding zerodot to sister projects,
and
@@ -434,6 +435,7 @@
// of the clickable banner (e.g., if I click here, it
gets me to a landing/homepage).
return Html::openElement( 'a', array( 'href' =>
'http://zero.wikipedia.org/') ) . $img . Html::closeElement( 'a' );
}
+ */
return $img;
}
@@ -505,6 +507,15 @@
return $banner;
}
+ public static function renderHttpsDowngrade() {
+ global $wgLang;
+ return Html::element(
+ 'div',
+ array( 'class' => 'mw-mf-banner
mw-mf-banner-undismissable mw-mf-banner-gray' ),
+ wfMessage( 'zero-https-not-free' )->inLanguage( $wgLang
)
+ );
+ }
+
/**
* If a particular language could cause a charge, send user to an
interstitial.
*
diff --git a/includes/ZeroSpecialPage.php b/includes/ZeroSpecialPage.php
index bc3efe9..650ae27 100644
--- a/includes/ZeroSpecialPage.php
+++ b/includes/ZeroSpecialPage.php
@@ -379,6 +379,9 @@
//
$response->header( 'Content-type:
application/javascript; charset=UTF-8' );
$banner = '';
+ // Even with Apache/Varnish redirects to HTTPS, this is
fine, because
+ // the Special:ZRMA URL grom getStartPageUrl does not
itself call back
+ // into this js-banner endpoint, thereby avoiding
recursive redirects.
if ( $state->isZeroSubdomain() &&
!$state->getZeroConfig() ) {
// If zerodot isn't supported here and the user
isn't already on
// Special:ZeroRatedMobileAccess, send the user
to Special:ZeroRatedMobileAccess
@@ -388,15 +391,24 @@
$url = $state->getStartPageUrl( $info[0],
$flags );
$banner =
"window.location='$url?from='+encodeURIComponent(window.location)";
} else {
- $config = $state->getZeroConfig();
- if ( $config && $config->enabled() ) {
- $bannerHtml =
PageRendering::renderBanner( $state, $config, null, null, $isFilePage );
- $cfg = PageRendering::getJsConfigBlock(
$this, $id, $config, (bool)$bannerHtml );
+ $config = $state->getZeroConfig(
ZeroConfig::ignoreHttps );
+ // it's handy to have the $isHttps variable
here for local simulation of HTTPS
+ $isHttps = $state->isHttps();
+ // note we set the ZeroConfig::ignoreHttps flag
above, so we need to take that into account for banners
+ $httpsCausesCharge = $isHttps && $config &&
!$config->enableHttps();
+ $configForBanner = $httpsCausesCharge ? null :
$config;
+ if ( $configForBanner ) {
+ $bannerHtml =
PageRendering::renderBanner( $state, $configForBanner, null, null, $isFilePage
);
+ $cfg = PageRendering::getJsConfigBlock(
$this, $id, $configForBanner, (bool)$bannerHtml );
if ( $bannerHtml ) {
$banner = 'document.write(' .
Xml::encodeJsVar( $bannerHtml ) . ');';
}
} else {
- $cfg = PageRendering::getJsConfigBlock(
$this, $id, $config, false );
+ if ( $config &&
$config->showHttpsDowngrade() ) {
+ $banner = 'document.write(' .
Xml::encodeJsVar( PageRendering::renderHttpsDowngrade() ) . ');';
+ }
+ // Note we use the banner config
variable instead of the HTTPS-ignoreing one
+ $cfg = PageRendering::getJsConfigBlock(
$this, $id, $configForBanner, false );
}
$banner = $cfg . $banner;
}
@@ -426,7 +438,9 @@
// the configuration would have been valid if
it were on http:// cleartext
// TODO: look at the user's cookies to see if
the user doesn't care about charges?
// TODO: replicate for JavaScript devices
- $banner = self::createImageBanner( 'gray',
'black', $this->msg( 'zero-https-http' )->text(), true);
+ // Per business team, header does not need to
be tappable. Thus, using zero-https-not-free
+ // instead of zero-https-http for now
+ $banner = self::createImageBanner( 'gainsboro',
'black', $this->msg( 'zero-https-not-free' )->text(), true);
} elseif ( $state->isZeroSubdomain() ) {
// the configuration only would have been valid
if it wasn't on zerodot
$host = implode( '.', $state->getWikiInfo() );
diff --git a/modules/banner.css b/modules/banner.css
index 704be35..84384fc 100644
--- a/modules/banner.css
+++ b/modules/banner.css
@@ -19,6 +19,11 @@
white-space: normal !important;
font-family: Tahoma, sans-serif;
}
+.mw-mf-banner-gray {
+ color: #000000;
+ background: #DCDCDC;
+ font-weight: normal;
+}
.mw-mf-banner .mw-mf-message,
.mw-mf-banner button {
padding-top: 10px;
--
To view, visit https://gerrit.wikimedia.org/r/181194
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I5f8414baaab805715a990ad788111e50171a7fe1
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/ZeroBanner
Gerrit-Branch: master
Gerrit-Owner: Dr0ptp4kt <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits