Gregory Maxwell wrote:
I've basically done this. Not in the monobook skin, but injected via JS for 1:100 requests along with the IPv6 test. The unambiguous result is that it works.
The open question is: "does it work for more primitive clients which do not support JS?" We could use non-JS images, but we'd have no way to get error reports.
The only further test I could really see doing would be doing something like using them for all images and seeing if people start reporting "Wikipedia has no images anymore on my cell phone!", but caching means that if it does cause problems we can't instantly revert.
Good ideas welcome.
You could use some CSS like cursor: url(buggy-css-support.cur); cursor: url(//supported-browser.cur) url(http://broken-browser.cur) default;
Sadly, cursor seems to be the only CSS property allowing fallback. It is also quite an advanced (useless) and annoying property, so old browsers are also likely to just skip it.
It would be nice if we were able to do that with a <img> tag. We can emulate it by having two elements on the same position with an higher z-order for the protocol-relative one, but user agents will load both, so you would still need to rely on users reporting that they saw an image saying "Your browser doesn't support protocol-relative uris, tell us at X!"