[tbb-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 tbb-bugs mailing list