Please set beacon.enabled to false by default
Categories
(Core :: DOM: Core & HTML, defect, P2)
Tracking
()
People
(Reporter: jan, Unassigned)
References
Details
(Keywords: dev-doc-needed, nightly-community, privacy)
| Reporter | ||
Comment 1•7 years ago
|
||
Comment 3•7 years ago
|
||
| Reporter | ||
Comment 4•7 years ago
|
||
Comment 5•7 years ago
|
||
Updated•7 years ago
|
Updated•7 years ago
|
| Assignee | ||
Updated•6 years ago
|
Comment 6•6 years ago
|
||
I think there may have been some confusion here about the purpose of the sendBeacon() API, so let me first explain what that API was added for, and what websites do for browsers which do not have it enabled.
The question of whether to implement an API like sendBeacon() is not related to privacy at all, rather it is about performance and user experience. There are two things to pay attention to here:
A) The sendBeacon() API does not provide any additional capabilities to the page in terms of connecting to a remote analytics server in order to submit some analytics data (which may contain some cross-site tracking identifiers inside it too.) Before this API was available, pages used to implement the same functionality through mechanisms such as using synchronous XHR in unload event handlers or asynchronous XHR with an artificial timeout delaying the rest of the processing of the page to ensure that the analytics ping has been submitted to the server.
B) The sendBeacon() API merely provides an asynchronous non-blocking feature for pages to do exactly what they were already capable of doing. But in doing so, the browser can now take over the submission of this ping and do so without blocking the execution of the page or delaying some part of it.
Therefore, through providing sendBeacon(), we have replaced a slow, user-hostile mechanism for sending analytics pings with a fast user-friendly one. From a privacy perspective, nothing changed after we implemented the sendBeacon API.
More importantly, note that most pages use feature detection to decide how to submit their analytics pings, and if they detect that the browser doesn't support their preferred mechanism they fall back to the less preferred ones. So disabling sendBeacon in practice would put most pages using this feature on the slower code path they were previously using to do exactly what they were doing before. That means that it would provide zero privacy benefits, and would hurt the performance that the user would experience.
That is why instead of ineffective measures such as disabling this API, we have started to work on tracking protection features which are on by default which can protect the user's privacy against various forms of cross-site tracking (see bug 1460058 and its large dependency tree for all of the ongoing work right now.)
As far as this bug goes, we're not going to accept a patch here for the reasons I mentioned above. So I'm gonna close it now as WONTFIX. Hopefully this helps clarify how we're thinking about this subject.
Comment 7•5 years ago
|
||
This should be reopened.
Therefore, through providing sendBeacon(), we have replaced a slow, user-hostile mechanism for sending analytics pings with a fast user-friendly one
is the whole point. Sites doing hostile things like tracking on close should have unpleasant ux so that they suffer from user dissatisfaction.
Comment 8•3 years ago
|
||
I agree to reopening and investigating further, per previous comment. Clearing needinfo, and passing it to Paul to look into.
Comment 10•2 years ago
|
||
We think Ehsan's point stands (comment 6). Additionally there are webcompat concerns with unshipping this API that is supported in all major browsers. Merely increasing friction (by removing this API) is not sufficent to protect users. We instead rely on fundamental protections such as state partitioning to protect users.
Description
•