The point of this PR is to make it easier to implement scrollbars (#683).
With this PR, the themes move from a body tag-based system (e.g. `body.theme-scarlet`) to a system where they simply declare global CSS and we use CSS specificity order to give us the right theme.
* chore(travis): update to mastodon v2.6.1
* check if mastodon v2.6.1 has a race condition
* apparently in 2.6.1 direct messages no longer appear in home timeline
* Revert "check if mastodon v2.6.1 has a race condition"
This reverts commit dde8ef8be58eda0563170e6b73165fdcbea54f6b.
* try to fix tests
* fix more tests
There are two issues here:
- if IDB is blocked, then the promise never resolves when you log out (and call indexedDB.deleteDatabase) and the app remains in a permanently hung state
- why is IDB blocked? well, something seems to have changed in Chrome 70 such that doing these operations in a web worker causes the blocked error. The benefits of workerizing IDB is so small that I'd rather just remove it at this point.
* Add directions to change themes
The page 'general' was the first place I looked when I
wanted to change the theme. Not managing to find it,
I went on a search throughout various issues ( #46 , for
example) on Github before locating it.
Now I hope to spare others the search
* Hint the user about themes
When I was on this page, it wasn't immediately apparent
to me that the SettingsListItem was clickable (I thought it
was a list rather than a button)
* improve a11y of fields, status page, and more
* tweak nav name
* fix community page and tweak text
* don't show pinned statuses heading unless there are pinned statuses
Based on issues I'm seeing on iOS Safari, I'm guessing that my IDB caching is too aggressive and is hitting origin storage limits, which causes IDB transactions in safari to fail silently and never call any transaction callbacks (`onblocked`, `onerror`, `oncomplete`).
This is pretty bad and causes Pinafore to basically just not work unless you clear site data, which we should avoid. 2 weeks was probably unnecessary anyway; in a social network, who cares about content that's 2 weeks old?
* add application (client) name to statuses
fixes another thing in #6
* add domain blocking (#496)
* add domain blocking
fixes another thing from #6
* show "domain blocking" on profile page
* fix stuff