From 50553089ef5de8cf126c1bdc5450889e12f0ac9d Mon Sep 17 00:00:00 2001 From: Wolfgang Müller Date: Sat, 3 Jul 2021 13:33:36 +0200 Subject: content: Add new post: "Firefox and the Link HTTP header" --- content/6/firefox-link-header.png | Bin 0 -> 408317 bytes content/6/index.md | 43 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 content/6/firefox-link-header.png create mode 100644 content/6/index.md (limited to 'content/6') diff --git a/content/6/firefox-link-header.png b/content/6/firefox-link-header.png new file mode 100644 index 0000000..f9e5199 Binary files /dev/null and b/content/6/firefox-link-header.png differ diff --git a/content/6/index.md b/content/6/index.md new file mode 100644 index 0000000..6e2b3e4 --- /dev/null +++ b/content/6/index.md @@ -0,0 +1,43 @@ ++++ +date = 2021-07-03T13:23:34+02:00 +title = "Firefox and the Link HTTP header" + +[taxonomies] +tags = ["TIL"] ++++ + +HTTP [defines](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Link) +the _Link_ header with which +[_Link Relations_](https://www.iana.org/assignments/link-relations/link-relations.xhtml) +can be defined directly in the HTTP response. This lets websites define their +stylesheets or favicons without having to pass them in an HTML +[``](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/link) +element. + +When displaying certain files directly, Firefox wraps them in its own HTML. This +happens, for example, when you look at a `.txt` file marked as `text/plain` or +an image marked as `image/png`. + +Turns out that for plain-text files, Firefox will load and honour any stylesheet +passed to it in the _Link_ header and apply it to its own HTML. One could, for +example, link a stylesheet that overrides the font settings, or even include +pictures. Firefox will duly load all of these when displaying the file, whilst +_View Page Source_ will still show only the file itself. It is only when +looking at the HTTP response and the _Network_ tab in the Inspector that you see +what exactly is happening. + +{{ img(path="firefox-link-header.png", alt="Firefox displaying a plain-text file +alongside a picture.", caption="A plain-text file... in Comic Sans... that also +displays a picture?") }} + +This does not seem to work when Firefox is displaying images and it doesn't work +_at all_ in Chromium-based browsers. The only relevant entry in Mozilla's +Bugzilla instance I could find was +[this issue](https://bugzilla.mozilla.org/show_bug.cgi?id=748294) +from 9 years ago. + +Arguably this could be considered a bug, and I do strongly feel that Firefox +**should not** load any outside resource when displaying plain-text files. For +now, though, have fun confusing people with this. + +Thanks to [puck](https://puck.moe) for pointing this out to me. -- cgit v1.2.3-2-gb3c3