[tor-bugs] #26598 [Applications/Tor Browser]: disable User Timing API in ESR60
Tor Bug Tracker & Wiki
blackhole at torproject.org
Sun Jul 15 06:18:17 UTC 2018
#26598: disable User Timing API in ESR60
-------------------------------------------------+-------------------------
Reporter: mcs | Owner: tbb-
| team
Type: defect | Status: new
Priority: High | Milestone:
Component: Applications/Tor Browser | Version:
Severity: Normal | Resolution:
Keywords: tbb-fingerprinting-time- | Actual Points:
highres,ff60-esr,TorBrowserTeam201807 |
Parent ID: | Points:
Reviewer: | Sponsor:
-------------------------------------------------+-------------------------
Old description:
> In #16336, we disabled the User Timing API by setting
> `odm.enable_user_timing` = `false`. Support for this pref was removed as
> of Firefox 55; see https://bugzilla.mozilla.org/show_bug.cgi?id=1344669.
>
> We should do patch Firefox to resurrect support for this pref or do
> something else to mitigate the fingerprinting potential of this feature.
New description:
In #16336, we disabled the User Timing API by setting
`dom.enable_user_timing` = `false`. Support for this pref was removed as
of Firefox 55; see https://bugzilla.mozilla.org/show_bug.cgi?id=1344669.
We should do patch Firefox to resurrect support for this pref or do
something else to mitigate the fingerprinting potential of this feature.
--
Comment (by arthuredelstein):
According to the [https://hg.mozilla.org/mozilla-central/rev/5c0023fa95e6
patch], the following APIs were formerly disabled when
`dom.enable_user_timing` was false:
{{{
PerformanceEntryList getEntries();
PerformanceEntryList getEntriesByType(DOMString entryType);
PerformanceEntryList getEntriesByName(DOMString name, optional
DOMString
entryType);
void clearResourceTimings();
void setResourceTimingBufferSize(unsigned long maxSize);
attribute EventHandler onresourcetimingbufferfull;
void mark(DOMString markName);
void clearMarks(optional DOMString markName);
void measure(DOMString measureName, optional DOMString startMark,
optional DOMString endMark);
void clearMeasures(optional DOMString measureName);
}}}
Looking at https://dxr.mozilla.org/mozilla-
esr60/source/dom/performance/Performance.cpp, I see that much of this is
already disabled when privacy.resistFingerprinting = true:
* `getEntries`, `getEntriesByType` and `getEntriesByName` all return empty
lists.
* `mark` and `measure` do nothing.
We should still check if `setResourceTimingBufferSize(unsigned long
maxSize)` and `performance.onresourcetimingbufferfull` expose a
fingerprinting vector or supercookie mechanism.
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/26598#comment:5>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
More information about the tor-bugs
mailing list