Bug 75008
| Summary: | navigator.doNotTrack returns wrong values. | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Justin Lebar <justin.lebar+bug> |
| Component: | DOM | Assignee: | Nobody <webkit-unassigned> |
| Status: | RESOLVED INVALID | ||
| Severity: | Normal | CC: | ap, me |
| Priority: | P2 | Keywords: | InRadar |
| Version: | 528+ (Nightly build) | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
Justin Lebar
We decided that navigator.doNotTrack would return "yes/no/unspecified" in Firefox, but Safari 5.1 apparently [1] returns "1/0/(empty string)" to match the DNT header.
The reason we did "yes/no/unspecified" is because we wanted no value to parse as "false" in JS. This way, buggy code which does |if (navigator.doNotTack)| will fail closed. With 1/0/(unspecified), the bogus boolean check works so long as you never have people explicitly opting in to DNT; thus we were afraid that sites would rely on DNT being a boolean, rather than a tri-state, and then we'd never be able to send navigator.doNotTrack == "0".
How would you feel about changing to match Firefox's implementation?
[1] https://bugzilla.mozilla.org/show_bug.cgi?id=712616
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Justin Lebar
> With 1/0/(unspecified), the bogus boolean check works
Er, that should be "With 1/0/(empty string)".
Alexey Proskuryakov
<rdar://problem/10616671>
Alexey Proskuryakov
Perhaps confusingly, WebKit doesn't implement the doNotTrack property yet. Adding it is tracked by bug 73088.
In Safari, doNotTrack property is injected by closed source browser code. I have migrated your report to Apple's internal system, and will close this bug now as a non-WebKit issue. Thank you very much for letting us know!