My imgur had been acting up for a while now. In my Firefox it wouldn’t render the actual image but rendered most of the rest of the page just fine:
If I went to i.imgur.com
(adding the .png
or .jpg
to the url) then the image loaded just fine. So it wasn’t getting blocked by anything in my network stack (ad-blocker and the like). I opened up the console to take a look and I saw this error:
10:57:53.646 SecurityError: The operation is insecure. analytics.js:34:17 consoleDebug jafo.js:838:8 directFire jafo.js:272:12 _sessionStart jafo.js:563:16 init/< jafo.js:134:12 b lodash.min.js:10:215 d raven-3.7.0.js:379:23 j https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js:2:26855 fireWith https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js:2:27673 ready https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js:2:29465 I https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js:2:29656
The line in question was doing localstorage.Get("something-or-other")
. So Firefox was mysteriously throwing a SecurityError
when accessing local storage. After testing a million different things (disabling ad-blockers, privacy extensions, etc.) and reading countless Stack Overflow and forum posts, I discovered that this was because I had "https://imgur.com" listed in my cookie exceptions as "Block".
This was actually surprisingly hard to find because the Firefox preference UI for cookie exceptions is pretty bad—it doesn't sort nicely and it doesn't have a search. It's very confusing because the "Manage Cookies and Site Data" screen looks almost identical but sorts correctly (all domains and subdomains grouped together) and has a handy search bar. If you are used to that screen and then try to use the cookie exceptions screen I can almost guarantee you'll type the cookie into the text box at the top and then scratch your head for a few seconds trying to figure out why the list isn't reacting to your search, only to realize that the text box is for adding exceptions and not for searching! Sigh. At least you can click the "Website" column header to get a plain radix sort instead of the default sort of "Status" (which apparently doesn't do a secondary sort on the Website so everything is just random!). When sorting by "Website" take care to thoroughly search—"http" and "https" versions of the site are separate (this is what cost me the most time).
Once I removed the block, imgur started working again:
Yay. Kinda sucks that imgur's code isn't defensive enough to deal with localstorage exceptions, which I thought were widely known to happen (I know on sites I run I see them happening for crazy errors like "Disk Full" and "IO Error").