Next up, the Dissenter browser. This browser is a recent fork of @brave; their first-run is nearly identical to what you'd see in slightly older builds of Brave. What sets them apart is their built-in Dissenter extension. As such, I'm going to check its network activity too.
As I stated in the previous Tweet, Dissenter is a fork of Brave. As such, their first-run experience consists largely of internal resources. Most of the initial network activity comes when you open their extension UI.
Calls to brave, YouTube, Twitter, FontAwesome, Google & more.
The call to crxdownload.brave.com is for the PDF.js extension, IIRC. Initial call to safebrowsing.brave.com gets them the Safe Browsing list (via the Brave proxy to mask end users).
Like Opera, Dissenter also sends a Referer header to third parties, which identifies me as a new user of the Dissenter browser.
I'm noticing now too that they're using version 75.0.3x of Chromium. That version is a couple months old. I'll have to revisit Opera and Vivaldi too.
Dissenter informs Twitter, Font Awesome, Gab.com, Cloudflare, and Google that I am new Dissenter user. YouTube sets a couple cookies as a result: VISITOR_INFO1_LIVE and YSC. Unclear what these are. Gab also sets a cookie: __cfduid. Looks like a distinct ID.
There's a call to dissenter.com for the /discussion/begin-extension path. Along with it, a query string that appears to carry the current URL. Checking this from another page confirms the URL is sent in the clear to Dissenter's servers when expanding the extension.
I suspected the early calls to Twitter (which setup a cookie on my device) might be problematic. Later visits to Twitter continue to identify me as a Dissenter user via an iframe referer header.
Also interesting is something I'm [not] seeing in these results. Unlike our previous browsers, there is no initial check for updated versions. Dissenter doesn't auto-update, which makes the already-months-old Chromium bits even more alarming.
• • •
Missing some Tweet in this thread? You can try to
force a refresh
WordPress, for all the good it has done, simply cannot help but to screw up the simplest things.
<pre>\\.well-known</pre>
In walks WordPress, "Oh, let me quadruple those backslashes for you."
So I try \, which WordPress then converts into &#92;!
I just can't win here.
Yes, I know to make changes in the TEXT view, and not the Visual view. Tragically, that will give you all sorts of [other] problems, like randomly eating carriage-returns, or inserting a <br> here and there. This utility simply isn't cut-out for sharing code(-like) content.
Wait, wait—I got the formatting to stick, and the content to look the way I wanted.
Windows uses values 0D 0A to signify a line-break. Mac uses 0A.
TIL—Windows XP had a bug causing Notepad to insert 0D 0D 0A. It wouldn't save like that, but if you copied and pasted the contents elsewhere the bytes could be preserved to this day.
Reminded me how cool the comma operator is in JavaScript:
return Expr, …, Expr
Evaluates each expression, but returns result of last.
Ti be more clear, the return statement returns the result of the Expression (if any) to its right. Expressions can contain Expressions. So each of the expressions in a list are evaluated, but only the result of the final is returned.
I think I first read about this little detail in one of @rauschma's fantastic deep-dive posts, but I'm not sure which one.
In 1992 Phillip Hallam-Baker and Tim Berners-Lee were developing HTTP. Phillip suggested a request header to record the URI of the linking-document, and "referer" (a spellcheck failure) was born. Servers now knew what site sent you their way.
In 1993 a young developer working on the Mosaic browser added support for inline images. Before this, images could only be linked from a page and viewed separately. Images from remote servers were supported as well, and requests for them would eventually include a referer header.
In 1994 Lou "solved" statelessness on the Web. Cookies could be set by a server, and would be returned to that server with future requests. Session IDs could move out of the URL path, and into a more convenient home. Like images and referer, cookies worked with third parties too.
Over the years there have been various ways to sniff the user's web history with CSS and JavaScript. For example, generating 10,000 links & checking their color (visited differs by default). These are now blocked, but I wonder how often advertisers and exchanges engaged in this.
Clever developers would adapt to these changes, turning their focus from the links to the style of adjacent elements with :visited + span, and then reading span's computedStyle to see how it looks. Background images could be used in a similar manner; listen for what loads.
Even when you lock-down CSS, developers would sniff your cache by using sensitive clocks in JS and seeing how quickly resources loads. If 2 similar resources load at very different rates, one could be inferred to have been loaded from cache (indicating user visited a given site).