Loading dom/performance/Performance.cpp +1 −45 Original line number Diff line number Diff line Loading @@ -165,12 +165,6 @@ JSObject* Performance::WrapObject(JSContext* aCx, } void Performance::GetEntries(nsTArray<RefPtr<PerformanceEntry>>& aRetval) { // We return an empty list when 'privacy.resistFingerprinting' is on. if (nsContentUtils::ShouldResistFingerprinting()) { aRetval.Clear(); return; } aRetval = mResourceEntries.Clone(); aRetval.AppendElements(mUserEntries); aRetval.Sort(PerformanceEntryComparator()); Loading @@ -178,12 +172,6 @@ void Performance::GetEntries(nsTArray<RefPtr<PerformanceEntry>>& aRetval) { void Performance::GetEntriesByType( const nsAString& aEntryType, nsTArray<RefPtr<PerformanceEntry>>& aRetval) { // We return an empty list when 'privacy.resistFingerprinting' is on. if (nsContentUtils::ShouldResistFingerprinting()) { aRetval.Clear(); return; } if (aEntryType.EqualsLiteral("resource")) { aRetval = mResourceEntries.Clone(); return; Loading @@ -206,11 +194,6 @@ void Performance::GetEntriesByName( nsTArray<RefPtr<PerformanceEntry>>& aRetval) { aRetval.Clear(); // We return an empty list when 'privacy.resistFingerprinting' is on. if (nsContentUtils::ShouldResistFingerprinting()) { return; } RefPtr<nsAtom> name = NS_Atomize(aName); RefPtr<nsAtom> entryType = aEntryType.WasPassed() ? NS_Atomize(aEntryType.Value()) : nullptr; Loading Loading @@ -367,17 +350,7 @@ already_AddRefed<PerformanceMark> Performance::Mark( return nullptr; } // To avoid fingerprinting in User Timing L2, we didn't add marks to the // buffer so the user could not get timing data (which can be used to // fingerprint) from the API. This may no longer be necessary (since // performance.now() has reduced precision to protect against fingerprinting // and performance.mark's primary fingerprinting issue is probably this timing // data) but we need to do a more thorough reanalysis before we remove the // fingerprinting protection. For now, we preserve the User Timing L2 behavior // while supporting User Timing L3. if (!nsContentUtils::ShouldResistFingerprinting()) { InsertUserEntry(performanceMark); } if (profiler_thread_is_being_profiled_for_markers()) { Maybe<uint64_t> innerWindowId; Loading Loading @@ -597,19 +570,6 @@ already_AddRefed<PerformanceMeasure> Performance::Measure( return nullptr; } // When resisting fingerprinting, we don't add marks to the buffer. Since // measure relies on relationships between marks in the buffer, this method // will throw if we look for user-entered marks so we return a dummy measure // instead of continuing. We could instead return real values for performance // timing attributes and dummy values for user-entered marks but this adds // complexity that doesn't seem worth the effort because these fingerprinting // protections may not longer be necessary (since performance.now() already // has reduced precision). if (nsContentUtils::ShouldResistFingerprinting()) { return do_AddRef(new PerformanceMeasure(GetParentObject(), aName, 0, 0, JS::NullHandleValue)); } // Maybe is more readable than using the union type directly. Maybe<const PerformanceMeasureOptions&> options; if (aStartOrMeasureOptions.IsPerformanceMeasureOptions()) { Loading Loading @@ -852,10 +812,6 @@ MOZ_ALWAYS_INLINE bool Performance::CanAddResourceTimingEntry() { void Performance::InsertResourceEntry(PerformanceEntry* aEntry) { MOZ_ASSERT(aEntry); if (nsContentUtils::ShouldResistFingerprinting()) { return; } QueueEntry(aEntry); /* Loading dom/performance/PerformanceMainThread.cpp +1 −20 Original line number Diff line number Diff line Loading @@ -411,8 +411,7 @@ DOMHighResTimeStamp PerformanceMainThread::CreationTime() const { void PerformanceMainThread::CreateNavigationTimingEntry() { MOZ_ASSERT(!mDocEntry, "mDocEntry should be null."); if (!StaticPrefs::dom_enable_performance_navigation_timing() || StaticPrefs::privacy_resistFingerprinting()) { if (!StaticPrefs::dom_enable_performance_navigation_timing()) { return; } Loading Loading @@ -463,12 +462,6 @@ EventCounts* PerformanceMainThread::EventCounts() { void PerformanceMainThread::GetEntries( nsTArray<RefPtr<PerformanceEntry>>& aRetval) { // We return an empty list when 'privacy.resistFingerprinting' is on. if (nsContentUtils::ShouldResistFingerprinting()) { aRetval.Clear(); return; } aRetval = mResourceEntries.Clone(); aRetval.AppendElements(mUserEntries); Loading @@ -484,12 +477,6 @@ void PerformanceMainThread::GetEntries( void PerformanceMainThread::GetEntriesByType( const nsAString& aEntryType, nsTArray<RefPtr<PerformanceEntry>>& aRetval) { // We return an empty list when 'privacy.resistFingerprinting' is on. if (nsContentUtils::ShouldResistFingerprinting()) { aRetval.Clear(); return; } RefPtr<nsAtom> type = NS_Atomize(aEntryType); if (type == nsGkAtoms::navigation) { aRetval.Clear(); Loading Loading @@ -526,12 +513,6 @@ void PerformanceMainThread::GetEntriesByTypeForObserver( void PerformanceMainThread::GetEntriesByName( const nsAString& aName, const Optional<nsAString>& aEntryType, nsTArray<RefPtr<PerformanceEntry>>& aRetval) { // We return an empty list when 'privacy.resistFingerprinting' is on. if (nsContentUtils::ShouldResistFingerprinting()) { aRetval.Clear(); return; } Performance::GetEntriesByName(aName, aEntryType, aRetval); if (mFCPTiming && mFCPTiming->GetName()->Equals(aName) && Loading dom/performance/PerformanceNavigationTiming.cpp +1 −2 Original line number Diff line number Diff line Loading @@ -152,6 +152,5 @@ void PerformanceNavigationTiming::UpdatePropertiesFromHttpChannel( } bool PerformanceNavigationTiming::Enabled(JSContext* aCx, JSObject* aGlobal) { return (StaticPrefs::dom_enable_performance_navigation_timing() && !StaticPrefs::privacy_resistFingerprinting()); return StaticPrefs::dom_enable_performance_navigation_timing(); } dom/performance/PerformanceTiming.cpp +3 −6 Original line number Diff line number Diff line Loading @@ -112,8 +112,7 @@ PerformanceTimingData::PerformanceTimingData(nsITimedChannel* aChannel, mInitialized = !!aChannel; mZeroTime = aZeroTime; if (!StaticPrefs::dom_enable_performance() || nsContentUtils::ShouldResistFingerprinting()) { if (!StaticPrefs::dom_enable_performance()) { mZeroTime = 0; } Loading Loading @@ -338,8 +337,7 @@ bool PerformanceTimingData::CheckAllowedOrigin(nsIHttpChannel* aResourceChannel, } uint8_t PerformanceTimingData::GetRedirectCount() const { if (!StaticPrefs::dom_enable_performance() || !IsInitialized() || nsContentUtils::ShouldResistFingerprinting()) { if (!StaticPrefs::dom_enable_performance() || !IsInitialized()) { return 0; } if (!mAllRedirectsSameOrigin) { Loading @@ -350,8 +348,7 @@ uint8_t PerformanceTimingData::GetRedirectCount() const { bool PerformanceTimingData::ShouldReportCrossOriginRedirect( bool aEnsureSameOriginAndIgnoreTAO) const { if (!StaticPrefs::dom_enable_performance() || !IsInitialized() || nsContentUtils::ShouldResistFingerprinting()) { if (!StaticPrefs::dom_enable_performance() || !IsInitialized()) { return false; } Loading Loading
dom/performance/Performance.cpp +1 −45 Original line number Diff line number Diff line Loading @@ -165,12 +165,6 @@ JSObject* Performance::WrapObject(JSContext* aCx, } void Performance::GetEntries(nsTArray<RefPtr<PerformanceEntry>>& aRetval) { // We return an empty list when 'privacy.resistFingerprinting' is on. if (nsContentUtils::ShouldResistFingerprinting()) { aRetval.Clear(); return; } aRetval = mResourceEntries.Clone(); aRetval.AppendElements(mUserEntries); aRetval.Sort(PerformanceEntryComparator()); Loading @@ -178,12 +172,6 @@ void Performance::GetEntries(nsTArray<RefPtr<PerformanceEntry>>& aRetval) { void Performance::GetEntriesByType( const nsAString& aEntryType, nsTArray<RefPtr<PerformanceEntry>>& aRetval) { // We return an empty list when 'privacy.resistFingerprinting' is on. if (nsContentUtils::ShouldResistFingerprinting()) { aRetval.Clear(); return; } if (aEntryType.EqualsLiteral("resource")) { aRetval = mResourceEntries.Clone(); return; Loading @@ -206,11 +194,6 @@ void Performance::GetEntriesByName( nsTArray<RefPtr<PerformanceEntry>>& aRetval) { aRetval.Clear(); // We return an empty list when 'privacy.resistFingerprinting' is on. if (nsContentUtils::ShouldResistFingerprinting()) { return; } RefPtr<nsAtom> name = NS_Atomize(aName); RefPtr<nsAtom> entryType = aEntryType.WasPassed() ? NS_Atomize(aEntryType.Value()) : nullptr; Loading Loading @@ -367,17 +350,7 @@ already_AddRefed<PerformanceMark> Performance::Mark( return nullptr; } // To avoid fingerprinting in User Timing L2, we didn't add marks to the // buffer so the user could not get timing data (which can be used to // fingerprint) from the API. This may no longer be necessary (since // performance.now() has reduced precision to protect against fingerprinting // and performance.mark's primary fingerprinting issue is probably this timing // data) but we need to do a more thorough reanalysis before we remove the // fingerprinting protection. For now, we preserve the User Timing L2 behavior // while supporting User Timing L3. if (!nsContentUtils::ShouldResistFingerprinting()) { InsertUserEntry(performanceMark); } if (profiler_thread_is_being_profiled_for_markers()) { Maybe<uint64_t> innerWindowId; Loading Loading @@ -597,19 +570,6 @@ already_AddRefed<PerformanceMeasure> Performance::Measure( return nullptr; } // When resisting fingerprinting, we don't add marks to the buffer. Since // measure relies on relationships between marks in the buffer, this method // will throw if we look for user-entered marks so we return a dummy measure // instead of continuing. We could instead return real values for performance // timing attributes and dummy values for user-entered marks but this adds // complexity that doesn't seem worth the effort because these fingerprinting // protections may not longer be necessary (since performance.now() already // has reduced precision). if (nsContentUtils::ShouldResistFingerprinting()) { return do_AddRef(new PerformanceMeasure(GetParentObject(), aName, 0, 0, JS::NullHandleValue)); } // Maybe is more readable than using the union type directly. Maybe<const PerformanceMeasureOptions&> options; if (aStartOrMeasureOptions.IsPerformanceMeasureOptions()) { Loading Loading @@ -852,10 +812,6 @@ MOZ_ALWAYS_INLINE bool Performance::CanAddResourceTimingEntry() { void Performance::InsertResourceEntry(PerformanceEntry* aEntry) { MOZ_ASSERT(aEntry); if (nsContentUtils::ShouldResistFingerprinting()) { return; } QueueEntry(aEntry); /* Loading
dom/performance/PerformanceMainThread.cpp +1 −20 Original line number Diff line number Diff line Loading @@ -411,8 +411,7 @@ DOMHighResTimeStamp PerformanceMainThread::CreationTime() const { void PerformanceMainThread::CreateNavigationTimingEntry() { MOZ_ASSERT(!mDocEntry, "mDocEntry should be null."); if (!StaticPrefs::dom_enable_performance_navigation_timing() || StaticPrefs::privacy_resistFingerprinting()) { if (!StaticPrefs::dom_enable_performance_navigation_timing()) { return; } Loading Loading @@ -463,12 +462,6 @@ EventCounts* PerformanceMainThread::EventCounts() { void PerformanceMainThread::GetEntries( nsTArray<RefPtr<PerformanceEntry>>& aRetval) { // We return an empty list when 'privacy.resistFingerprinting' is on. if (nsContentUtils::ShouldResistFingerprinting()) { aRetval.Clear(); return; } aRetval = mResourceEntries.Clone(); aRetval.AppendElements(mUserEntries); Loading @@ -484,12 +477,6 @@ void PerformanceMainThread::GetEntries( void PerformanceMainThread::GetEntriesByType( const nsAString& aEntryType, nsTArray<RefPtr<PerformanceEntry>>& aRetval) { // We return an empty list when 'privacy.resistFingerprinting' is on. if (nsContentUtils::ShouldResistFingerprinting()) { aRetval.Clear(); return; } RefPtr<nsAtom> type = NS_Atomize(aEntryType); if (type == nsGkAtoms::navigation) { aRetval.Clear(); Loading Loading @@ -526,12 +513,6 @@ void PerformanceMainThread::GetEntriesByTypeForObserver( void PerformanceMainThread::GetEntriesByName( const nsAString& aName, const Optional<nsAString>& aEntryType, nsTArray<RefPtr<PerformanceEntry>>& aRetval) { // We return an empty list when 'privacy.resistFingerprinting' is on. if (nsContentUtils::ShouldResistFingerprinting()) { aRetval.Clear(); return; } Performance::GetEntriesByName(aName, aEntryType, aRetval); if (mFCPTiming && mFCPTiming->GetName()->Equals(aName) && Loading
dom/performance/PerformanceNavigationTiming.cpp +1 −2 Original line number Diff line number Diff line Loading @@ -152,6 +152,5 @@ void PerformanceNavigationTiming::UpdatePropertiesFromHttpChannel( } bool PerformanceNavigationTiming::Enabled(JSContext* aCx, JSObject* aGlobal) { return (StaticPrefs::dom_enable_performance_navigation_timing() && !StaticPrefs::privacy_resistFingerprinting()); return StaticPrefs::dom_enable_performance_navigation_timing(); }
dom/performance/PerformanceTiming.cpp +3 −6 Original line number Diff line number Diff line Loading @@ -112,8 +112,7 @@ PerformanceTimingData::PerformanceTimingData(nsITimedChannel* aChannel, mInitialized = !!aChannel; mZeroTime = aZeroTime; if (!StaticPrefs::dom_enable_performance() || nsContentUtils::ShouldResistFingerprinting()) { if (!StaticPrefs::dom_enable_performance()) { mZeroTime = 0; } Loading Loading @@ -338,8 +337,7 @@ bool PerformanceTimingData::CheckAllowedOrigin(nsIHttpChannel* aResourceChannel, } uint8_t PerformanceTimingData::GetRedirectCount() const { if (!StaticPrefs::dom_enable_performance() || !IsInitialized() || nsContentUtils::ShouldResistFingerprinting()) { if (!StaticPrefs::dom_enable_performance() || !IsInitialized()) { return 0; } if (!mAllRedirectsSameOrigin) { Loading @@ -350,8 +348,7 @@ uint8_t PerformanceTimingData::GetRedirectCount() const { bool PerformanceTimingData::ShouldReportCrossOriginRedirect( bool aEnsureSameOriginAndIgnoreTAO) const { if (!StaticPrefs::dom_enable_performance() || !IsInitialized() || nsContentUtils::ShouldResistFingerprinting()) { if (!StaticPrefs::dom_enable_performance() || !IsInitialized()) { return false; } Loading