Do any devices still use these? It's quite a lot of bloat.
Description
Details
Related Objects
- Mentioned In
- T413707: Have TemplateStyles register an image link for any image referenced via url
T423512: Some pages on en.WN not transcluding specific templates properly
T419057: Failure for parser tests on extension intersection due to missing srcset
T407896: Image Browsing: Ensure all images fetched at appropriate display density
T246109: Consider adding '4x' pixel ratio logos and media queries - Mentioned Here
- T413707: Have TemplateStyles register an image link for any image referenced via url
T423512: Some pages on en.WN not transcluding specific templates properly
T263291: Experiment with a "unified" ATS-BE pool (merge cache_upload into cache_text)
T345334: Cache thumbs in our caching infrastructure (e.g. ATS)
T414338: FY25-26 WE5.4.12: Identify the provenance of image requests
T414805: FY 25/26 WE 5.4.10 Standard Thumbnail Sizes Only
T290815: Bump basic and modern supported Android browsers to v5
T245190: Implement guidelines around logos creation
Event Timeline
Brought this up in conversation with @Jdforrester-WMF when looking through core in connection with T245190
1.5x was at introduction addressing a very short episode in handheld device manufacturing, around 2012-2013 with devices like
- https://en.wikipedia.org/wiki/Samsung_Galaxy_S4_Mini
- https://en.wikipedia.org/wiki/Nokia_Lumia_900 or https://de.wikipedia.org/wiki/Microsoft_Lumia#Lumia_900
- https://en.wikipedia.org/wiki/HTC_Evo_3D or the
- https://en.wikipedia.org/wiki/Sony_Xperia_P
See https://www.mydevice.io/#compare-devices for a list with 1.5x phones.
Nowadays there's just two types of more-less popular devices using 1.5x instead of higher ratios:
- Most popular seems to be the Surface/Surface Pro laptops by Microsoft
- Several watches use it as well
See https://material.io/resources/devices/ for a list of modern devices.
1.5x was brought in also to save some bytes down the line on those old devices. Surface Book should be able to be using 2x scaled down in a satisfying way due to rendering engines capability to scale down.
Watches are none of our interest for full web page browsing capabilities.
Therefore I'd suggest to remove 1.5x logos completely and use 2x logos already at 1.5 pixel ratio media queries.
Sounds good to me. I'd recommend asking Reading whcih way they want to round this in terms of product cost/experience trade-off. The logic for it resides in ResourceLoader/SkinModule.
According to a list curated by Lea Verou (W3C and CSSWG member) at https://github.com/LeaVerou/dpi/blob/gh-pages/devices.json via https://dpi.lv/, only 5 device models were known to have 1.5x screens:
- Amazon Fire HD 6" and 7", and Amazon Kindle Fire HD 6" and 7" (https://en.wikipedia.org/wiki/Fire_HD#Models). It seems most of the Fire lineup had the same 1280x800 resolution screens presented as 1.5x for 6" and 7", 1.3x for 8", and 1.0x for 10". So, the bigger your screen, the bigger your pixels? Interesting choice, Amazon. The HDX series feature 2dppx screens instead.
- Samsung Galaxy S2 (2011, https://en.wikipedia.org/wiki/Samsung_Galaxy_S_II). This officially runs upto Android 4 which we dropped from Basic support in 2022 (T290815). Unofficially it can run Android 13 via LineageOS which we support and would connect fine today with latest Chrome Mobile or Firefox Mobile.
I ran a 2-hour campaign on enwiki, fawiki, and bnwiki (Common.js, Mobile.js) with the following snippet:
// T246054: Verify hypothesis that 1.5x is unused var dppx = window.devicePixelRatio; if ( ![1, 1.5, 2, 3, 4].includes( dppx ) || (window.outerWidth / window.innerWidth) > 1.4 ) { // Ignore other values https://en.wikipedia.org/wiki/Pixel_density#Smartphones // // Ignore zoom levels that e.g. increase 1x to 1.5x, or 2x to 2.1x (Note: this doesn't work) // If 1.5x is in use, we'll find plenty. dppx = 'other'; } mw.track( 'stats.mediawiki_gadget_dppx_usage_2026_total', 1, { source: 'enwiki_desktop', dppx: dppx } );
Results (Grafana query):
- 43% "3" (8.9M)
- 29% "other" (6.1M)
- 15% "2" (3.2M)
- 11% "1" (2.3M)
- 0.4% "zoomed" (78K)
- 0.2% "4" (32K)
The value 1.5 was not observed a single time. But, there's a suspiciously high proportion of "other", so I took a look via Turnilo what these are made of, limiting results to the highest confidence samples only (same-origin pageview referals, and high reputation clients only):
webrequest_sampled_live Url Path = /beacon/statsv, Uri Query ~ "mediawiki_gadget_dppx_usage_2026_total.*dppx:other" Total results: 48K samples (*128=6.1M)
webrequest_sampled_live Url Path = /beacon/statsv, Uri Query ~ "mediawiki_gadget_dppx_usage_2026_total.*dppx:other", Referer ~ "/wiki/", X-Is-Browser score = 90, Edge unique days = 8+
- Total samples: 18K (*128=2.3M)
- By user agent, top two:
- 72% Mozilla/5.0 (Linux; Android 10; K) … Chrome/144.0.0.0 Mobile …
- 14% Mozilla/5.0 (Windows NT 10.0; …) … Chrome/144.0.0.0 …
These are the default UAs of recent Chrome on Android and Windows. Looks legit. By ISP, it looked legit as well, with mostly residential ISPs and cellular networks.
I ran another 1-hour campaign to get a better sense of what's here. This time separating out "undefined" and "2_or_higher", so that "other" represents only dppx values between 1 and 2, which is what we want to know. I've also added 1.33 and 1.75, which were common in the past.
var dppx = window.devicePixelRatio; var ratios = { '1.0': '1', '1.3': '1.33', '1.5': '1.5', '1.8': '1.75' } if (dppx) { if (dppx >= 2) { dppx = '2_or_higher'; } else { dppx = ratios[dppx.toFixed(1)] || 'other'; } } else { dppx = 'undefined'; } mw.track('stats.mediawiki_gadget_dppx_usage_2026B_total', 1, { source: 'enwiki_mobile', dppx: dppx });
Results (Grafana query):
- 87% "2_or_higher"
- 10% "1" (561K)
- 2.9% "other" (159K)
Turnilo breakdown of mediawiki_gadget_dppx_usage_2026B_total.*dppx:other beacons:
- Total: 1277 samples (x128=163K)
- By user agent, top two:
- 21% Mozilla/5.0 (Linux; Android 10; K) … Chrome/144.0.0.0 Mobile …
- 18% Mozilla/5.0 (Windows NT 10.0; …) … Chrome/144.0.0.0 …
Once again, the value 1.5x was not observed a single time, idem for 1.33x and 1.75x. This time, the "other" represents only values 1 and 2 and is 2.9% of pageviews. This means in the first campaign, the "other" values were mostly unlisted values above 2, such as fractions like 2.1x or 2.6x (e.g. due to page zoom).
Change #1239812 had a related patch set uploaded (by Krinkle; author: Krinkle):
[mediawiki/core@master] ResourceLoader: Remove 1.5x variant from logo CSS
Change #1239816 had a related patch set uploaded (by Krinkle; author: Krinkle):
[mediawiki/core@master] Parser,Linker: Remove 1.5x thumbnail from wgResponsiveImages feature
Change #1239818 had a related patch set uploaded (by Krinkle; author: Krinkle):
[mediawiki/extensions/Cite@master] tests: Sync citeParserTests.txt with 1.5x removal
Change #1243058 had a related patch set uploaded (by Thiemo Kreuz (WMDE); author: Thiemo Kreuz (WMDE)):
[mediawiki/extensions/Cite@master] Temporarily disable parser tests for 1.5x removal
Change #1243058 merged by jenkins-bot:
[mediawiki/extensions/Cite@master] Temporarily disable parser tests for 1.5x removal
See also: FY2025-2026 WE5.4 (Meta-Wiki), specifically T414805 (WE5.4.10) and T414338 (WE5.4.12), which are about reducing multimedia load. And future ideas to merge cache_upload into cache_text cluster (T263291) or replace Swift for thumbnails with ATS (T345334), both benefit from there being fewer image variants in popular use.
Change #1239812 merged by jenkins-bot:
[mediawiki/core@master] ResourceLoader: Remove 1.5x variant from logo CSS
Change #1249431 had a related patch set uploaded (by Krinkle; author: Krinkle):
[mediawiki/core@master] ResourceLoader: Fix release note about 1.5x logo
Change #1249431 merged by jenkins-bot:
[mediawiki/core@master] ResourceLoader: Fix release note about 1.5x logo
Change #1251388 had a related patch set uploaded (by Jforrester; author: Jforrester):
[mediawiki/extensions/ImageMap@master] Temporarily disable parser tests for 1.5x removal
Change #1251389 had a related patch set uploaded (by Jforrester; author: Jforrester):
[mediawiki/extensions/ImageMap@master] Tests: Update mageMapParserTests.txt with 1.5x removal from MW Parser
Change #1251388 merged by jenkins-bot:
[mediawiki/extensions/ImageMap@master] Temporarily disable parser tests for 1.5x removal
Change #1264142 had a related patch set uploaded (by Krinkle; author: Krinkle):
[mediawiki/extensions/intersection@master] tests: Temporarily disable parser tests for 1.5x removal
Change #1264143 had a related patch set uploaded (by Krinkle; author: Krinkle):
[mediawiki/extensions/intersection@master] tests: Sync citeParserTests.txt with 1.5x removal
Change #1264142 merged by jenkins-bot:
[mediawiki/extensions/intersection@master] tests: Temporarily disable parser tests for 1.5x removal
Change #1239816 merged by jenkins-bot:
[mediawiki/core@master] Parser,Linker: Remove 1.5x thumbnail from wgResponsiveImages srcset
Change #1264573 had a related patch set uploaded (by Subramanya Sastry; author: Isabelle Hurbain-Palatin):
[mediawiki/services/parsoid@master] Sync parserTests with core
Change #1264573 merged by jenkins-bot:
[mediawiki/services/parsoid@master] Sync parserTests with core
Change #1251389 merged by jenkins-bot:
[mediawiki/extensions/ImageMap@master] Tests: Update mageMapParserTests.txt with 1.5x removal from MW Parser
Change #1239818 merged by jenkins-bot:
[mediawiki/extensions/Cite@master] tests: Sync citeParserTests.txt with 1.5x removal
Change #1264143 merged by jenkins-bot:
[mediawiki/extensions/intersection@master] tests: Sync citeParserTests.txt with 1.5x removal
Change #1268237 had a related patch set uploaded (by Jgiannelos; author: Jgiannelos):
[mediawiki/vendor@master] Bump wikimedia/parsoid to 0.23.0-a25
Change #1268237 merged by jenkins-bot:
[mediawiki/vendor@master] Bump wikimedia/parsoid to 0.23.0-a25
Change #1268298 had a related patch set uploaded (by VolkerE; author: VolkerE):
[mediawiki/extensions/Kartographer@master] Remove 1.5x Wikivoyage Wikimedia logo
Change #1268300 had a related patch set uploaded (by Pppery; author: Pppery):
[operations/mediawiki-config@master] Drop 1.5x logos
Change #1268298 merged by jenkins-bot:
[mediawiki/extensions/Kartographer@master] Remove 1.5x Wikivoyage Wikimedia logo
I've confirmed that ^/static/images/project-logos/.*-1.5x with has drained from the webrequest logs after 2026-03-13 (1.46.0-wmf.19 group2) and are no longer needed.
Prior to March 13th, there were about 1400 matching requests per day in webrequest_sampled_live. If we look at HTTP 200 responses (i.e. ignore 404 or 429), X-Is-Browser>=30, and Edge-unique-days>=8, there were 900 samples per day before March 13th. That amounts to 900x128/24/60 = estimated 80 pageviews per minute. The majority of these were from Chrome on Windows desktops in Russia.
Change #1268300 merged by jenkins-bot:
[operations/mediawiki-config@master] Drop 1.5x logos
Mentioned in SAL (#wikimedia-operations) [2026-04-15T20:36:59Z] <jforrester@deploy1003> Started scap sync-world: Backport for [[gerrit:1268300|Drop 1.5x logos (T246054)]], [[gerrit:1271839|Enwikinews: disable lingering FlaggedRevs template processing (T423512)]], [[gerrit:1270583|Record file usage from TemplateStyles pages (T413707)]]
Mentioned in SAL (#wikimedia-operations) [2026-04-15T20:38:53Z] <jforrester@deploy1003> jforrester, bawolff, pppery: Backport for [[gerrit:1268300|Drop 1.5x logos (T246054)]], [[gerrit:1271839|Enwikinews: disable lingering FlaggedRevs template processing (T423512)]], [[gerrit:1270583|Record file usage from TemplateStyles pages (T413707)]] synced to the testservers (see https://wikitech.wikimedia.org/wiki/Mwdebug). Changes can now be verified there.
Mentioned in SAL (#wikimedia-operations) [2026-04-15T20:46:14Z] <jforrester@deploy1003> Finished scap sync-world: Backport for [[gerrit:1268300|Drop 1.5x logos (T246054)]], [[gerrit:1271839|Enwikinews: disable lingering FlaggedRevs template processing (T423512)]], [[gerrit:1270583|Record file usage from TemplateStyles pages (T413707)]] (duration: 09m 15s)
Change #1275063 had a related patch set uploaded (by VolkerE; author: VolkerE):
[wikimedia/portals@master] Remove 1.5x logos

