Would involve un-reverting some of https://gerrit.wikimedia.org/r/#/c/259192/ (serving -o-linear-gradient rules to give PNGs only to Opera 12)
Description
Details
Related Objects
Event Timeline
Are we talking about changing support from Grade A to Grade C (https://www.mediawiki.org/wiki/Compatibility), or removing support entirely? The latter might be more controversial.
I think it'd be fine to have Opera 12 receive PNGs as fallback instead of SVGs. But if I recall correctly the issue is that Opera 12 picks up on the modern SVG url but then fails to render it properly, so we're making it fallback explicitly to PNGs.
It's centralised and minimal overhead I think, so unless we have a better strategy to fallback, I'm not sure we have much to gain by removing it.
Currently we output (minified, selecting a GuidedTour one just as it's the first in my request stack):
.guider_close .x_button{background-image:url(/w/extensions/GuidedTour/modules/images/close.png?108ce);background-image:linear-gradient(transparent,transparent),url("data:image/svg+xml,%3C%3Fxml version=%221.0%22 encoding=%22utf-8%22%3F%3E%0A%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2220%22 height=%2220%22 viewBox=%220 0 20 20%22%3E%0A%09%3Cpath d=%22M3.636 2.222l14.142 14.142-1.414 1.414L2.222 3.636z%22/%3E%0A%09%3Cpath d=%22M17.778 3.636L3.636 17.778l-1.414-1.414L16.364 2.222z%22/%3E%0A%3C/svg%3E");background-image:-o-linear-gradient(transparent,transparent),url(/w/extensions/GuidedTour/modules/images/close.png?108ce);background-repeat:no-repeat;display:block;height:20px;width:20px;cursor:pointer;opacity:0.87;-webkit-transition:opacity 100ms;-moz-transition:opacity 100ms;transition:opacity 100ms}
… (819 bytes); if we were to drop Opera 12 Grade C support and leave it at Grade X, we'd reduce this to:
.guider_close .x_button{background-image:url(/w/extensions/GuidedTour/modules/images/close.png?108ce);background-image:linear-gradient(transparent,transparent),url("data:image/svg+xml,%3C%3Fxml version=%221.0%22 encoding=%22utf-8%22%3F%3E%0A%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2220%22 height=%2220%22 viewBox=%220 0 20 20%22%3E%0A%09%3Cpath d=%22M3.636 2.222l14.142 14.142-1.414 1.414L2.222 3.636z%22/%3E%0A%09%3Cpath d=%22M17.778 3.636L3.636 17.778l-1.414-1.414L16.364 2.222z%22/%3E%0A%3C/svg%3E");background-repeat:no-repeat;display:block;height:20px;width:20px;cursor:pointer;opacity:0.87;-webkit-transition:opacity 100ms;-moz-transition:opacity 100ms;transition:opacity 100ms}
… (697 bytes).
Obviously different selectors would be different, but there are 11 such images loaded on the English Wikipedia's Main Page when I'm logged in, saving ~ 1800 bytes per request. Not an urgent priority, but not nothing.
(Getting rid of PNG fallback would reduce the bumpf to 618 bytes, but that's a different task and it's too early to consider that now.)
Yeah, good point. While low in maintenance, there's still a continuous bandwidth cost. Although I will say that overhead is less than the difference between 819 and 697 bytes (in terms of bandwidth) given the proximity should allow Gzip to essentially de-duplicate the most of the url and property name.
$ ll --uncompressed 820 a.txt 698 b.txt # worst $ gzip -k -1 a.txt b.txt 434 a.txt.gz 423 b.txt.gz # best $ gzip -k -9 a.txt b.txt 432 a.txt.gz 421 b.txt.gz
Change 393652 had a related patch set uploaded (by Jforrester; owner: Jforrester):
[mediawiki/core@master] [WIP] Drop Opera 12 from Grade A to Grade X
Having just grabbed the numbers from our browser stats:
- Opera 36+ was ~1.5% of all traffic last week, and this is growing over time (almost all of which was Opera 49, as you'd expect).
- Opera 8 was ~0.015% of all traffic last week, and has been slowly falling.
- Opera 10 hasn't been used enough to be listed this year except for one week in March.
- Opera 12 has only been used enough to be listed this year in four weeks, the latest in April.
Consequently, I think the time to move Opera < 15 to Grade X is here.
Change 393797 had a related patch set uploaded (by Jforrester; owner: Jforrester):
[oojs/ui@master] oo-ui-background-image: Drop -o-linear-gradient fallback
Change 393797 merged by jenkins-bot:
[oojs/ui@master] oo-ui-background-image: Drop -o-linear-gradient fallback
Change 393652 merged by jenkins-bot:
[mediawiki/core@master] Increase Opera minimum for Grades A and C to 15