mirror of
https://codeberg.org/librewolf/source.git
synced 2025-01-05 12:20:11 -05:00
1363 lines
51 KiB
Text
1363 lines
51 KiB
Text
|
Removing 'tmpdir92'...
|
|||
|
Extracting 'firefox-111.0.source.tar.xz'...
|
|||
|
|
|||
|
Testing patches...
|
|||
|
|
|||
|
==> patches/allow-ubo-private-mode.patch:
|
|||
|
|
|||
|
patching file toolkit/components/extensions/Extension.jsm
|
|||
|
Hunk #1 succeeded at 3157 (offset 129 lines).
|
|||
|
|
|||
|
==> patches/allow-JXL-in-non-nightly-browser.patch:
|
|||
|
|
|||
|
patching file toolkit/moz.configure
|
|||
|
Hunk #1 succeeded at 735 (offset 32 lines).
|
|||
|
|
|||
|
==> patches/bootstrap-without-vcs.patch:
|
|||
|
|
|||
|
patching file python/mozboot/mozboot/bootstrap.py
|
|||
|
patching file python/mozversioncontrol/mozversioncontrol/__init__.py
|
|||
|
patching file third_party/python/mozilla_repo_urls/mozilla_repo_urls/parser.py
|
|||
|
patching file third_party/python/taskcluster_taskgraph/taskgraph/util/vcs.py
|
|||
|
|
|||
|
==> patches/context-menu.patch:
|
|||
|
|
|||
|
patching file browser/base/content/browser-context.inc
|
|||
|
Hunk #1 succeeded at 99 (offset -1 lines).
|
|||
|
Hunk #2 succeeded at 255 (offset 2 lines).
|
|||
|
|
|||
|
==> patches/custom-ubo-assets-bootstrap-location.patch:
|
|||
|
|
|||
|
patching file toolkit/components/extensions/parent/ext-storage.js
|
|||
|
Hunk #1 succeeded at 292 (offset 115 lines).
|
|||
|
|
|||
|
==> patches/disable-data-reporting-at-compile-time.patch:
|
|||
|
|
|||
|
patching file browser/moz.configure
|
|||
|
Hunk #1 succeeded at 5 with fuzz 2.
|
|||
|
|
|||
|
==> patches/faster-package-multi-locale.patch:
|
|||
|
|
|||
|
patching file python/mozbuild/mozbuild/mach_commands.py
|
|||
|
Hunk #1 succeeded at 2643 (offset 175 lines).
|
|||
|
Hunk #2 succeeded at 2659 (offset 175 lines).
|
|||
|
|
|||
|
==> patches/hide-passwordmgr.patch:
|
|||
|
|
|||
|
patching file browser/base/content/browser.js
|
|||
|
Hunk #1 succeeded at 1893 (offset 46 lines).
|
|||
|
patching file browser/components/preferences/privacy.js
|
|||
|
Hunk #1 succeeded at 761 (offset -49 lines).
|
|||
|
|
|||
|
==> patches/librewolf-pref-pane.patch:
|
|||
|
|
|||
|
patching file browser/components/preferences/jar.mn
|
|||
|
patching file browser/components/preferences/librewolf.inc.xhtml
|
|||
|
patching file browser/components/preferences/librewolf.js
|
|||
|
patching file browser/components/preferences/preferences.js
|
|||
|
Hunk #2 succeeded at 201 (offset 4 lines).
|
|||
|
patching file browser/components/preferences/preferences.xhtml
|
|||
|
Hunk #2 succeeded at 135 (offset 5 lines).
|
|||
|
Hunk #3 succeeded at 224 (offset 5 lines).
|
|||
|
patching file browser/locales/en-US/browser/preferences/preferences.ftl
|
|||
|
Hunk #1 succeeded at 1449 (offset 29 lines).
|
|||
|
patching file browser/themes/shared/jar.inc.mn
|
|||
|
Hunk #1 succeeded at 110 (offset 2 lines).
|
|||
|
Hunk #2 FAILED at 128.
|
|||
|
1 out of 2 hunks FAILED -- saving rejects to file browser/themes/shared/jar.inc.mn.rej
|
|||
|
patching file browser/themes/shared/preferences/category-librewolf.svg
|
|||
|
patching file browser/themes/shared/preferences/librewolf.css
|
|||
|
patching file browser/themes/shared/preferences/preferences.css
|
|||
|
Hunk #1 succeeded at 211 (offset 5 lines).
|
|||
|
---[snip]---------- --> browser/themes/shared/jar.inc.mn.rej:
|
|||
|
--- browser/themes/shared/jar.inc.mn
|
|||
|
+++ browser/themes/shared/jar.inc.mn
|
|||
|
@@ -128,6 +129,7 @@
|
|||
|
skin/classic/browser/preferences/vpn-logo.svg (../shared/preferences/vpn-logo.svg)
|
|||
|
skin/classic/browser/preferences/search.css (../shared/preferences/search.css)
|
|||
|
skin/classic/browser/preferences/siteDataSettings.css (../shared/preferences/siteDataSettings.css)
|
|||
|
+ skin/classic/browser/preferences/librewolf.css (../shared/preferences/librewolf.css)
|
|||
|
skin/classic/browser/spotlight.css (../shared/spotlight.css)
|
|||
|
skin/classic/browser/upgradeDialog/abstract.png (../shared/upgradeDialog/abstract.png)
|
|||
|
skin/classic/browser/upgradeDialog/cheers.png (../shared/upgradeDialog/cheers.png)
|
|||
|
---[snip]----------
|
|||
|
|
|||
|
==> patches/librewolf-prefs.patch:
|
|||
|
|
|||
|
patching file browser/app/profile/firefox.js
|
|||
|
|
|||
|
==> patches/mozilla_dirs.patch:
|
|||
|
|
|||
|
patching file toolkit/xre/nsXREDirProvider.cpp
|
|||
|
Hunk #1 succeeded at 300 (offset -3 lines).
|
|||
|
Hunk #2 FAILED at 413.
|
|||
|
Hunk #3 succeeded at 411 with fuzz 2 (offset -54 lines).
|
|||
|
Hunk #4 succeeded at 1114 (offset -162 lines).
|
|||
|
Hunk #5 succeeded at 1363 (offset -196 lines).
|
|||
|
Hunk #6 succeeded at 1373 (offset -196 lines).
|
|||
|
1 out of 6 hunks FAILED -- saving rejects to file toolkit/xre/nsXREDirProvider.cpp.rej
|
|||
|
---[snip]---------- --> toolkit/xre/nsXREDirProvider.cpp.rej:
|
|||
|
--- toolkit/xre/nsXREDirProvider.cpp
|
|||
|
+++ toolkit/xre/nsXREDirProvider.cpp
|
|||
|
@@ -413,9 +413,9 @@ nsXREDirProvider::GetFile(const char* aProperty, bool* aPersistent,
|
|||
|
rv = GetUserDataDirectoryHome(getter_AddRefs(localDir), false);
|
|||
|
if (NS_SUCCEEDED(rv)) {
|
|||
|
# if defined(XP_MACOSX)
|
|||
|
- rv = localDir->AppendNative("Mozilla"_ns);
|
|||
|
+ rv = localDir->AppendNative("LibreWolf"_ns);
|
|||
|
# else
|
|||
|
- rv = localDir->AppendNative(".mozilla"_ns);
|
|||
|
+ rv = localDir->AppendNative(".librewolf"_ns);
|
|||
|
# endif
|
|||
|
}
|
|||
|
if (NS_SUCCEEDED(rv)) {
|
|||
|
---[snip]----------
|
|||
|
|
|||
|
==> patches/msix.patch:
|
|||
|
|
|||
|
patching file browser/installer/windows/msix/AppxManifest.xml.in
|
|||
|
patching file python/mozbuild/mozbuild/mach_commands.py
|
|||
|
Hunk #1 succeeded at 2427 (offset 102 lines).
|
|||
|
Hunk #2 succeeded at 2564 (offset 102 lines).
|
|||
|
patching file python/mozbuild/mozbuild/repackaging/msix.py
|
|||
|
Hunk #1 succeeded at 95 (offset -2 lines).
|
|||
|
Hunk #2 succeeded at 120 (offset -2 lines).
|
|||
|
Hunk #3 succeeded at 366 (offset -2 lines).
|
|||
|
patching file python/mozbuild/mozbuild/repackaging/msix.py
|
|||
|
Hunk #1 succeeded at 159 (offset -34 lines).
|
|||
|
Hunk #2 succeeded at 216 (offset -38 lines).
|
|||
|
Hunk #3 succeeded at 428 (offset -43 lines).
|
|||
|
|
|||
|
==> patches/remove_addons.patch:
|
|||
|
|
|||
|
patching file browser/extensions/moz.build
|
|||
|
patching file browser/locales/Makefile.in
|
|||
|
patching file browser/locales/filter.py
|
|||
|
Hunk #1 succeeded at 15 (offset -2 lines).
|
|||
|
patching file browser/locales/l10n.ini
|
|||
|
patching file browser/locales/l10n.toml
|
|||
|
Hunk #1 succeeded at 135 (offset 2 lines).
|
|||
|
|
|||
|
==> patches/rfp-performance-api.patch:
|
|||
|
|
|||
|
patching file dom/performance/Performance.cpp
|
|||
|
Reversed (or previously applied) patch detected! Assume -R? [n]
|
|||
|
Apply anyway? [n]
|
|||
|
Skipping patch.
|
|||
|
5 out of 5 hunks ignored -- saving rejects to file dom/performance/Performance.cpp.rej
|
|||
|
patching file dom/performance/PerformanceMainThread.cpp
|
|||
|
Reversed (or previously applied) patch detected! Assume -R? [n]
|
|||
|
Apply anyway? [n]
|
|||
|
Skipping patch.
|
|||
|
4 out of 4 hunks ignored -- saving rejects to file dom/performance/PerformanceMainThread.cpp.rej
|
|||
|
patching file dom/performance/PerformanceNavigationTiming.cpp
|
|||
|
Reversed (or previously applied) patch detected! Assume -R? [n]
|
|||
|
Apply anyway? [n]
|
|||
|
Skipping patch.
|
|||
|
1 out of 1 hunk ignored -- saving rejects to file dom/performance/PerformanceNavigationTiming.cpp.rej
|
|||
|
patching file dom/performance/PerformanceTiming.cpp
|
|||
|
Reversed (or previously applied) patch detected! Assume -R? [n]
|
|||
|
Apply anyway? [n]
|
|||
|
Skipping patch.
|
|||
|
2 out of 2 hunks ignored -- saving rejects to file dom/performance/PerformanceTiming.cpp.rej
|
|||
|
patching file dom/performance/Performance.h
|
|||
|
Reversed (or previously applied) patch detected! Assume -R? [n]
|
|||
|
Apply anyway? [n]
|
|||
|
Skipping patch.
|
|||
|
3 out of 3 hunks ignored -- saving rejects to file dom/performance/Performance.h.rej
|
|||
|
patching file dom/performance/Performance.cpp
|
|||
|
Reversed (or previously applied) patch detected! Assume -R? [n]
|
|||
|
Apply anyway? [n]
|
|||
|
Skipping patch.
|
|||
|
1 out of 1 hunk ignored -- saving rejects to file dom/performance/Performance.cpp.rej
|
|||
|
patching file dom/performance/PerformanceMainThread.h
|
|||
|
Reversed (or previously applied) patch detected! Assume -R? [n]
|
|||
|
Apply anyway? [n]
|
|||
|
Skipping patch.
|
|||
|
2 out of 2 hunks ignored -- saving rejects to file dom/performance/PerformanceMainThread.h.rej
|
|||
|
patching file dom/performance/PerformanceMainThread.cpp
|
|||
|
Reversed (or previously applied) patch detected! Assume -R? [n]
|
|||
|
Apply anyway? [n]
|
|||
|
Skipping patch.
|
|||
|
2 out of 2 hunks ignored -- saving rejects to file dom/performance/PerformanceMainThread.cpp.rej
|
|||
|
patching file dom/performance/PerformanceTiming.cpp
|
|||
|
Reversed (or previously applied) patch detected! Assume -R? [n]
|
|||
|
Apply anyway? [n]
|
|||
|
Skipping patch.
|
|||
|
2 out of 2 hunks ignored -- saving rejects to file dom/performance/PerformanceTiming.cpp.rej
|
|||
|
patching file dom/performance/PerformanceWorker.h
|
|||
|
Reversed (or previously applied) patch detected! Assume -R? [n]
|
|||
|
Apply anyway? [n]
|
|||
|
Skipping patch.
|
|||
|
1 out of 1 hunk ignored -- saving rejects to file dom/performance/PerformanceWorker.h.rej
|
|||
|
patching file dom/performance/PerformanceWorker.cpp
|
|||
|
Reversed (or previously applied) patch detected! Assume -R? [n]
|
|||
|
Apply anyway? [n]
|
|||
|
Skipping patch.
|
|||
|
2 out of 2 hunks ignored -- saving rejects to file dom/performance/PerformanceWorker.cpp.rej
|
|||
|
---[snip]---------- --> dom/performance/Performance.cpp.rej:
|
|||
|
--- dom/performance/Performance.cpp
|
|||
|
+++ dom/performance/Performance.cpp
|
|||
|
@@ -163,29 +163,17 @@
|
|||
|
JS::Handle<JSObject*> aGivenProto) {
|
|||
|
return Performance_Binding::Wrap(aCx, this, aGivenProto);
|
|||
|
}
|
|||
|
|
|||
|
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());
|
|||
|
}
|
|||
|
|
|||
|
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;
|
|||
|
}
|
|||
|
|
|||
|
@@ -204,15 +192,10 @@
|
|||
|
void Performance::GetEntriesByName(
|
|||
|
const nsAString& aName, const Optional<nsAString>& aEntryType,
|
|||
|
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;
|
|||
|
|
|||
|
if (entryType) {
|
|||
|
@@ -365,21 +348,11 @@
|
|||
|
PerformanceMark::Constructor(global, aName, aMarkOptions, aRv);
|
|||
|
if (aRv.Failed()) {
|
|||
|
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);
|
|||
|
- }
|
|||
|
+ InsertUserEntry(performanceMark);
|
|||
|
|
|||
|
if (profiler_thread_is_being_profiled_for_markers()) {
|
|||
|
Maybe<uint64_t> innerWindowId;
|
|||
|
if (GetOwner()) {
|
|||
|
innerWindowId = Some(GetOwner()->WindowID());
|
|||
|
@@ -595,23 +568,10 @@
|
|||
|
if (!GetParentObject()) {
|
|||
|
aRv.ThrowInvalidStateError("Global object is unavailable");
|
|||
|
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()) {
|
|||
|
options.emplace(aStartOrMeasureOptions.GetAsPerformanceMeasureOptions());
|
|||
|
}
|
|||
|
@@ -811,10 +811,6 @@ MOZ_ALWAYS_INLINE bool Performance::CanAddResourceTimingEntry() {
|
|||
|
void Performance::InsertResourceEntry(PerformanceEntry* aEntry) {
|
|||
|
MOZ_ASSERT(aEntry);
|
|||
|
|
|||
|
- if (nsContentUtils::ShouldResistFingerprinting()) {
|
|||
|
- return;
|
|||
|
- }
|
|||
|
-
|
|||
|
/*
|
|||
|
* Let new entry be the input PerformanceEntry to be added.
|
|||
|
*
|
|||
|
--- dom/performance/Performance.cpp
|
|||
|
+++ dom/performance/Performance.cpp
|
|||
|
@@ -96,24 +96,13 @@
|
|||
|
Performance::Performance(nsIGlobalObject* aGlobal)
|
|||
|
: DOMEventTargetHelper(aGlobal),
|
|||
|
mResourceTimingBufferSize(kDefaultResourceTimingBufferSize),
|
|||
|
mPendingNotificationObserversTask(false),
|
|||
|
mPendingResourceTimingBufferFullEvent(false),
|
|||
|
- mRTPCallerType(
|
|||
|
- RTPCallerType::Normal /* to be updated in CreateForFoo */) {
|
|||
|
- MOZ_ASSERT(!NS_IsMainThread());
|
|||
|
-}
|
|||
|
-
|
|||
|
-Performance::Performance(nsPIDOMWindowInner* aWindow)
|
|||
|
- : DOMEventTargetHelper(aWindow),
|
|||
|
- mResourceTimingBufferSize(kDefaultResourceTimingBufferSize),
|
|||
|
- mPendingNotificationObserversTask(false),
|
|||
|
- mPendingResourceTimingBufferFullEvent(false),
|
|||
|
- mRTPCallerType(
|
|||
|
- RTPCallerType::Normal /* to be updated in CreateForFoo */) {
|
|||
|
- MOZ_ASSERT(NS_IsMainThread());
|
|||
|
-}
|
|||
|
+ mRTPCallerType(aGlobal->GetRTPCallerType()),
|
|||
|
+ mCrossOriginIsolated(aGlobal->CrossOriginIsolated()),
|
|||
|
+ mShouldResistFingerprinting(aGlobal->ShouldResistFingerprinting()) {}
|
|||
|
|
|||
|
Performance::~Performance() = default;
|
|||
|
|
|||
|
DOMHighResTimeStamp Performance::TimeStampToDOMHighResForRendering(
|
|||
|
TimeStamp aTimeStamp) const {
|
|||
|
---[snip]----------
|
|||
|
---[snip]---------- --> dom/performance/PerformanceMainThread.cpp.rej:
|
|||
|
--- dom/performance/PerformanceMainThread.cpp
|
|||
|
+++ dom/performance/PerformanceMainThread.cpp
|
|||
|
@@ -409,12 +409,11 @@
|
|||
|
}
|
|||
|
|
|||
|
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;
|
|||
|
}
|
|||
|
|
|||
|
nsAutoString name;
|
|||
|
GetURLSpecFromChannel(mChannel, name);
|
|||
|
@@ -461,16 +460,10 @@
|
|||
|
return mEventCounts;
|
|||
|
}
|
|||
|
|
|||
|
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);
|
|||
|
|
|||
|
if (mDocEntry) {
|
|||
|
aRetval.AppendElement(mDocEntry);
|
|||
|
@@ -482,16 +475,10 @@
|
|||
|
aRetval.Sort(PerformanceEntryComparator());
|
|||
|
}
|
|||
|
|
|||
|
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();
|
|||
|
|
|||
|
if (mDocEntry) {
|
|||
|
@@ -524,16 +511,10 @@
|
|||
|
}
|
|||
|
|
|||
|
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) &&
|
|||
|
(!aEntryType.WasPassed() ||
|
|||
|
mFCPTiming->GetEntryType()->Equals(aEntryType.Value()))) {
|
|||
|
--- dom/performance/PerformanceMainThread.cpp
|
|||
|
+++ dom/performance/PerformanceMainThread.cpp
|
|||
|
@@ -89,16 +89,14 @@
|
|||
|
NS_INTERFACE_MAP_END_INHERITING(Performance)
|
|||
|
|
|||
|
PerformanceMainThread::PerformanceMainThread(nsPIDOMWindowInner* aWindow,
|
|||
|
nsDOMNavigationTiming* aDOMTiming,
|
|||
|
nsITimedChannel* aChannel)
|
|||
|
- : Performance(aWindow),
|
|||
|
+ : Performance(aWindow->AsGlobal()),
|
|||
|
mDOMTiming(aDOMTiming),
|
|||
|
- mChannel(aChannel),
|
|||
|
- mCrossOriginIsolated(aWindow->AsGlobal()->CrossOriginIsolated()) {
|
|||
|
+ mChannel(aChannel) {
|
|||
|
MOZ_ASSERT(aWindow, "Parent window object should be provided");
|
|||
|
- mRTPCallerType = aWindow->AsGlobal()->GetRTPCallerType();
|
|||
|
if (StaticPrefs::dom_enable_event_timing()) {
|
|||
|
mEventCounts = new class EventCounts(GetParentObject());
|
|||
|
}
|
|||
|
CreateNavigationTimingEntry();
|
|||
|
}
|
|||
|
@@ -449,14 +447,10 @@
|
|||
|
UpdateNavigationTimingEntry();
|
|||
|
|
|||
|
QueueEntry(mDocEntry);
|
|||
|
}
|
|||
|
|
|||
|
-bool PerformanceMainThread::CrossOriginIsolated() const {
|
|||
|
- return mCrossOriginIsolated;
|
|||
|
-}
|
|||
|
-
|
|||
|
EventCounts* PerformanceMainThread::EventCounts() {
|
|||
|
MOZ_ASSERT(StaticPrefs::dom_enable_event_timing());
|
|||
|
return mEventCounts;
|
|||
|
}
|
|||
|
|
|||
|
---[snip]----------
|
|||
|
---[snip]---------- --> dom/performance/PerformanceNavigationTiming.cpp.rej:
|
|||
|
--- dom/performance/PerformanceNavigationTiming.cpp
|
|||
|
+++ dom/performance/PerformanceNavigationTiming.cpp
|
|||
|
@@ -150,8 +150,7 @@
|
|||
|
nsIHttpChannel* aHttpChannel, nsITimedChannel* aChannel) {
|
|||
|
mTimingData->SetPropertiesFromHttpChannel(aHttpChannel, aChannel);
|
|||
|
}
|
|||
|
|
|||
|
bool PerformanceNavigationTiming::Enabled(JSContext* aCx, JSObject* aGlobal) {
|
|||
|
- return (StaticPrefs::dom_enable_performance_navigation_timing() &&
|
|||
|
- !StaticPrefs::privacy_resistFingerprinting());
|
|||
|
+ return StaticPrefs::dom_enable_performance_navigation_timing();
|
|||
|
}
|
|||
|
---[snip]----------
|
|||
|
---[snip]---------- --> dom/performance/PerformanceTiming.cpp.rej:
|
|||
|
--- dom/performance/PerformanceTiming.cpp
|
|||
|
+++ dom/performance/PerformanceTiming.cpp
|
|||
|
@@ -110,12 +110,11 @@
|
|||
|
mTimingAllowed(true),
|
|||
|
mInitialized(false) {
|
|||
|
mInitialized = !!aChannel;
|
|||
|
mZeroTime = aZeroTime;
|
|||
|
|
|||
|
- if (!StaticPrefs::dom_enable_performance() ||
|
|||
|
- nsContentUtils::ShouldResistFingerprinting()) {
|
|||
|
+ if (!StaticPrefs::dom_enable_performance()) {
|
|||
|
mZeroTime = 0;
|
|||
|
}
|
|||
|
|
|||
|
nsCOMPtr<nsIURI> uri;
|
|||
|
if (aHttpChannel) {
|
|||
|
@@ -336,24 +335,22 @@
|
|||
|
// header with the domain of the page that started the load.
|
|||
|
return aChannel->TimingAllowCheck(principal);
|
|||
|
}
|
|||
|
|
|||
|
uint8_t PerformanceTimingData::GetRedirectCount() const {
|
|||
|
- if (!StaticPrefs::dom_enable_performance() || !IsInitialized() ||
|
|||
|
- nsContentUtils::ShouldResistFingerprinting()) {
|
|||
|
+ if (!StaticPrefs::dom_enable_performance() || !IsInitialized()) {
|
|||
|
return 0;
|
|||
|
}
|
|||
|
if (!mAllRedirectsSameOrigin) {
|
|||
|
return 0;
|
|||
|
}
|
|||
|
return mRedirectCount;
|
|||
|
}
|
|||
|
|
|||
|
bool PerformanceTimingData::ShouldReportCrossOriginRedirect(
|
|||
|
bool aEnsureSameOriginAndIgnoreTAO) const {
|
|||
|
- if (!StaticPrefs::dom_enable_performance() || !IsInitialized() ||
|
|||
|
- nsContentUtils::ShouldResistFingerprinting()) {
|
|||
|
+ if (!StaticPrefs::dom_enable_performance() || !IsInitialized()) {
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
if (!mTimingAllowed || mRedirectCount == 0) {
|
|||
|
return false;
|
|||
|
--- dom/performance/PerformanceTiming.cpp
|
|||
|
+++ dom/performance/PerformanceTiming.cpp
|
|||
|
@@ -466,11 +466,11 @@
|
|||
|
|
|||
|
if (!StaticPrefs::dom_enable_performance() || !IsInitialized()) {
|
|||
|
return mZeroTime;
|
|||
|
}
|
|||
|
// Bug 1637985 - DomainLookup information may be useful for fingerprinting.
|
|||
|
- if (nsContentUtils::ShouldResistFingerprinting()) {
|
|||
|
+ if (aPerformance->ShouldResistFingerprinting()) {
|
|||
|
return FetchStartHighRes(aPerformance);
|
|||
|
}
|
|||
|
return TimeStampToReducedDOMHighResOrFetchStart(aPerformance,
|
|||
|
mDomainLookupStart);
|
|||
|
}
|
|||
|
@@ -486,11 +486,11 @@
|
|||
|
|
|||
|
if (!StaticPrefs::dom_enable_performance() || !IsInitialized()) {
|
|||
|
return mZeroTime;
|
|||
|
}
|
|||
|
// Bug 1637985 - DomainLookup information may be useful for fingerprinting.
|
|||
|
- if (nsContentUtils::ShouldResistFingerprinting()) {
|
|||
|
+ if (aPerformance->ShouldResistFingerprinting()) {
|
|||
|
return FetchStartHighRes(aPerformance);
|
|||
|
}
|
|||
|
// Bug 1155008 - nsHttpTransaction is racy. Return DomainLookupStart when null
|
|||
|
if (mDomainLookupEnd.IsNull()) {
|
|||
|
return DomainLookupStartHighRes(aPerformance);
|
|||
|
---[snip]----------
|
|||
|
---[snip]---------- --> dom/performance/Performance.h.rej:
|
|||
|
--- dom/performance/Performance.h
|
|||
|
+++ dom/performance/Performance.h
|
|||
|
@@ -120,10 +120,15 @@
|
|||
|
|
|||
|
virtual TimeStamp CreationTimeStamp() const = 0;
|
|||
|
|
|||
|
RTPCallerType GetRTPCallerType() const { return mRTPCallerType; }
|
|||
|
|
|||
|
+ bool CrossOriginIsolated() const { return mCrossOriginIsolated; }
|
|||
|
+ bool ShouldResistFingerprinting() const {
|
|||
|
+ return mShouldResistFingerprinting;
|
|||
|
+ }
|
|||
|
+
|
|||
|
DOMHighResTimeStamp TimeStampToDOMHighResForRendering(TimeStamp) const;
|
|||
|
|
|||
|
virtual uint64_t GetRandomTimelineSeed() = 0;
|
|||
|
|
|||
|
void MemoryPressure();
|
|||
|
@@ -145,12 +150,10 @@
|
|||
|
|
|||
|
virtual void QueueNavigationTimingEntry() = 0;
|
|||
|
|
|||
|
virtual void UpdateNavigationTimingEntry() = 0;
|
|||
|
|
|||
|
- virtual bool CrossOriginIsolated() const = 0;
|
|||
|
-
|
|||
|
virtual void DispatchPendingEventTimingEntries() = 0;
|
|||
|
|
|||
|
void QueueNotificationObserversTask();
|
|||
|
|
|||
|
bool IsPerformanceTimingAttribute(const nsAString& aName) const;
|
|||
|
@@ -203,11 +206,13 @@
|
|||
|
|
|||
|
bool mPendingResourceTimingBufferFullEvent;
|
|||
|
|
|||
|
RefPtr<PerformanceService> mPerformanceService;
|
|||
|
|
|||
|
- enum RTPCallerType mRTPCallerType;
|
|||
|
+ const RTPCallerType mRTPCallerType;
|
|||
|
+ const bool mCrossOriginIsolated;
|
|||
|
+ const bool mShouldResistFingerprinting;
|
|||
|
|
|||
|
private:
|
|||
|
MOZ_ALWAYS_INLINE bool CanAddResourceTimingEntry();
|
|||
|
void BufferEvent();
|
|||
|
|
|||
|
---[snip]----------
|
|||
|
---[snip]---------- --> dom/performance/Performance.cpp.rej:
|
|||
|
--- dom/performance/Performance.cpp
|
|||
|
+++ dom/performance/Performance.cpp
|
|||
|
@@ -163,29 +163,17 @@
|
|||
|
JS::Handle<JSObject*> aGivenProto) {
|
|||
|
return Performance_Binding::Wrap(aCx, this, aGivenProto);
|
|||
|
}
|
|||
|
|
|||
|
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());
|
|||
|
}
|
|||
|
|
|||
|
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;
|
|||
|
}
|
|||
|
|
|||
|
@@ -204,15 +192,10 @@
|
|||
|
void Performance::GetEntriesByName(
|
|||
|
const nsAString& aName, const Optional<nsAString>& aEntryType,
|
|||
|
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;
|
|||
|
|
|||
|
if (entryType) {
|
|||
|
@@ -365,21 +348,11 @@
|
|||
|
PerformanceMark::Constructor(global, aName, aMarkOptions, aRv);
|
|||
|
if (aRv.Failed()) {
|
|||
|
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);
|
|||
|
- }
|
|||
|
+ InsertUserEntry(performanceMark);
|
|||
|
|
|||
|
if (profiler_thread_is_being_profiled_for_markers()) {
|
|||
|
Maybe<uint64_t> innerWindowId;
|
|||
|
if (GetOwner()) {
|
|||
|
innerWindowId = Some(GetOwner()->WindowID());
|
|||
|
@@ -595,23 +568,10 @@
|
|||
|
if (!GetParentObject()) {
|
|||
|
aRv.ThrowInvalidStateError("Global object is unavailable");
|
|||
|
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()) {
|
|||
|
options.emplace(aStartOrMeasureOptions.GetAsPerformanceMeasureOptions());
|
|||
|
}
|
|||
|
@@ -811,10 +811,6 @@ MOZ_ALWAYS_INLINE bool Performance::CanAddResourceTimingEntry() {
|
|||
|
void Performance::InsertResourceEntry(PerformanceEntry* aEntry) {
|
|||
|
MOZ_ASSERT(aEntry);
|
|||
|
|
|||
|
- if (nsContentUtils::ShouldResistFingerprinting()) {
|
|||
|
- return;
|
|||
|
- }
|
|||
|
-
|
|||
|
/*
|
|||
|
* Let new entry be the input PerformanceEntry to be added.
|
|||
|
*
|
|||
|
--- dom/performance/Performance.cpp
|
|||
|
+++ dom/performance/Performance.cpp
|
|||
|
@@ -96,24 +96,13 @@
|
|||
|
Performance::Performance(nsIGlobalObject* aGlobal)
|
|||
|
: DOMEventTargetHelper(aGlobal),
|
|||
|
mResourceTimingBufferSize(kDefaultResourceTimingBufferSize),
|
|||
|
mPendingNotificationObserversTask(false),
|
|||
|
mPendingResourceTimingBufferFullEvent(false),
|
|||
|
- mRTPCallerType(
|
|||
|
- RTPCallerType::Normal /* to be updated in CreateForFoo */) {
|
|||
|
- MOZ_ASSERT(!NS_IsMainThread());
|
|||
|
-}
|
|||
|
-
|
|||
|
-Performance::Performance(nsPIDOMWindowInner* aWindow)
|
|||
|
- : DOMEventTargetHelper(aWindow),
|
|||
|
- mResourceTimingBufferSize(kDefaultResourceTimingBufferSize),
|
|||
|
- mPendingNotificationObserversTask(false),
|
|||
|
- mPendingResourceTimingBufferFullEvent(false),
|
|||
|
- mRTPCallerType(
|
|||
|
- RTPCallerType::Normal /* to be updated in CreateForFoo */) {
|
|||
|
- MOZ_ASSERT(NS_IsMainThread());
|
|||
|
-}
|
|||
|
+ mRTPCallerType(aGlobal->GetRTPCallerType()),
|
|||
|
+ mCrossOriginIsolated(aGlobal->CrossOriginIsolated()),
|
|||
|
+ mShouldResistFingerprinting(aGlobal->ShouldResistFingerprinting()) {}
|
|||
|
|
|||
|
Performance::~Performance() = default;
|
|||
|
|
|||
|
DOMHighResTimeStamp Performance::TimeStampToDOMHighResForRendering(
|
|||
|
TimeStamp aTimeStamp) const {
|
|||
|
---[snip]----------
|
|||
|
---[snip]---------- --> dom/performance/PerformanceMainThread.h.rej:
|
|||
|
--- dom/performance/PerformanceMainThread.h
|
|||
|
+++ dom/performance/PerformanceMainThread.h
|
|||
|
@@ -86,12 +86,10 @@
|
|||
|
nsTArray<RefPtr<PerformanceEntry>>& aRetval) override;
|
|||
|
|
|||
|
void UpdateNavigationTimingEntry() override;
|
|||
|
void QueueNavigationTimingEntry() override;
|
|||
|
|
|||
|
- bool CrossOriginIsolated() const override;
|
|||
|
-
|
|||
|
size_t SizeOfEventEntries(mozilla::MallocSizeOf aMallocSizeOf) const override;
|
|||
|
|
|||
|
static constexpr uint32_t kDefaultEventTimingBufferSize = 150;
|
|||
|
static constexpr uint32_t kDefaultEventTimingDurationThreshold = 104;
|
|||
|
static constexpr double kDefaultEventTimingMinDuration = 16.0;
|
|||
|
@@ -118,12 +116,10 @@
|
|||
|
RefPtr<PerformanceTiming> mTiming;
|
|||
|
RefPtr<PerformanceNavigation> mNavigation;
|
|||
|
RefPtr<PerformancePaintTiming> mFCPTiming;
|
|||
|
JS::Heap<JSObject*> mMozMemory;
|
|||
|
|
|||
|
- const bool mCrossOriginIsolated;
|
|||
|
-
|
|||
|
nsTArray<RefPtr<PerformanceEventTiming>> mEventTimingEntries;
|
|||
|
|
|||
|
AutoCleanLinkedList<RefPtr<PerformanceEventTiming>>
|
|||
|
mPendingEventTimingEntries;
|
|||
|
bool mHasDispatchedInputEvent = false;
|
|||
|
---[snip]----------
|
|||
|
---[snip]---------- --> dom/performance/PerformanceMainThread.cpp.rej:
|
|||
|
--- dom/performance/PerformanceMainThread.cpp
|
|||
|
+++ dom/performance/PerformanceMainThread.cpp
|
|||
|
@@ -409,12 +409,11 @@
|
|||
|
}
|
|||
|
|
|||
|
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;
|
|||
|
}
|
|||
|
|
|||
|
nsAutoString name;
|
|||
|
GetURLSpecFromChannel(mChannel, name);
|
|||
|
@@ -461,16 +460,10 @@
|
|||
|
return mEventCounts;
|
|||
|
}
|
|||
|
|
|||
|
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);
|
|||
|
|
|||
|
if (mDocEntry) {
|
|||
|
aRetval.AppendElement(mDocEntry);
|
|||
|
@@ -482,16 +475,10 @@
|
|||
|
aRetval.Sort(PerformanceEntryComparator());
|
|||
|
}
|
|||
|
|
|||
|
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();
|
|||
|
|
|||
|
if (mDocEntry) {
|
|||
|
@@ -524,16 +511,10 @@
|
|||
|
}
|
|||
|
|
|||
|
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) &&
|
|||
|
(!aEntryType.WasPassed() ||
|
|||
|
mFCPTiming->GetEntryType()->Equals(aEntryType.Value()))) {
|
|||
|
--- dom/performance/PerformanceMainThread.cpp
|
|||
|
+++ dom/performance/PerformanceMainThread.cpp
|
|||
|
@@ -89,16 +89,14 @@
|
|||
|
NS_INTERFACE_MAP_END_INHERITING(Performance)
|
|||
|
|
|||
|
PerformanceMainThread::PerformanceMainThread(nsPIDOMWindowInner* aWindow,
|
|||
|
nsDOMNavigationTiming* aDOMTiming,
|
|||
|
nsITimedChannel* aChannel)
|
|||
|
- : Performance(aWindow),
|
|||
|
+ : Performance(aWindow->AsGlobal()),
|
|||
|
mDOMTiming(aDOMTiming),
|
|||
|
- mChannel(aChannel),
|
|||
|
- mCrossOriginIsolated(aWindow->AsGlobal()->CrossOriginIsolated()) {
|
|||
|
+ mChannel(aChannel) {
|
|||
|
MOZ_ASSERT(aWindow, "Parent window object should be provided");
|
|||
|
- mRTPCallerType = aWindow->AsGlobal()->GetRTPCallerType();
|
|||
|
if (StaticPrefs::dom_enable_event_timing()) {
|
|||
|
mEventCounts = new class EventCounts(GetParentObject());
|
|||
|
}
|
|||
|
CreateNavigationTimingEntry();
|
|||
|
}
|
|||
|
@@ -449,14 +447,10 @@
|
|||
|
UpdateNavigationTimingEntry();
|
|||
|
|
|||
|
QueueEntry(mDocEntry);
|
|||
|
}
|
|||
|
|
|||
|
-bool PerformanceMainThread::CrossOriginIsolated() const {
|
|||
|
- return mCrossOriginIsolated;
|
|||
|
-}
|
|||
|
-
|
|||
|
EventCounts* PerformanceMainThread::EventCounts() {
|
|||
|
MOZ_ASSERT(StaticPrefs::dom_enable_event_timing());
|
|||
|
return mEventCounts;
|
|||
|
}
|
|||
|
|
|||
|
---[snip]----------
|
|||
|
---[snip]---------- --> dom/performance/PerformanceTiming.cpp.rej:
|
|||
|
--- dom/performance/PerformanceTiming.cpp
|
|||
|
+++ dom/performance/PerformanceTiming.cpp
|
|||
|
@@ -110,12 +110,11 @@
|
|||
|
mTimingAllowed(true),
|
|||
|
mInitialized(false) {
|
|||
|
mInitialized = !!aChannel;
|
|||
|
mZeroTime = aZeroTime;
|
|||
|
|
|||
|
- if (!StaticPrefs::dom_enable_performance() ||
|
|||
|
- nsContentUtils::ShouldResistFingerprinting()) {
|
|||
|
+ if (!StaticPrefs::dom_enable_performance()) {
|
|||
|
mZeroTime = 0;
|
|||
|
}
|
|||
|
|
|||
|
nsCOMPtr<nsIURI> uri;
|
|||
|
if (aHttpChannel) {
|
|||
|
@@ -336,24 +335,22 @@
|
|||
|
// header with the domain of the page that started the load.
|
|||
|
return aChannel->TimingAllowCheck(principal);
|
|||
|
}
|
|||
|
|
|||
|
uint8_t PerformanceTimingData::GetRedirectCount() const {
|
|||
|
- if (!StaticPrefs::dom_enable_performance() || !IsInitialized() ||
|
|||
|
- nsContentUtils::ShouldResistFingerprinting()) {
|
|||
|
+ if (!StaticPrefs::dom_enable_performance() || !IsInitialized()) {
|
|||
|
return 0;
|
|||
|
}
|
|||
|
if (!mAllRedirectsSameOrigin) {
|
|||
|
return 0;
|
|||
|
}
|
|||
|
return mRedirectCount;
|
|||
|
}
|
|||
|
|
|||
|
bool PerformanceTimingData::ShouldReportCrossOriginRedirect(
|
|||
|
bool aEnsureSameOriginAndIgnoreTAO) const {
|
|||
|
- if (!StaticPrefs::dom_enable_performance() || !IsInitialized() ||
|
|||
|
- nsContentUtils::ShouldResistFingerprinting()) {
|
|||
|
+ if (!StaticPrefs::dom_enable_performance() || !IsInitialized()) {
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
if (!mTimingAllowed || mRedirectCount == 0) {
|
|||
|
return false;
|
|||
|
--- dom/performance/PerformanceTiming.cpp
|
|||
|
+++ dom/performance/PerformanceTiming.cpp
|
|||
|
@@ -466,11 +466,11 @@
|
|||
|
|
|||
|
if (!StaticPrefs::dom_enable_performance() || !IsInitialized()) {
|
|||
|
return mZeroTime;
|
|||
|
}
|
|||
|
// Bug 1637985 - DomainLookup information may be useful for fingerprinting.
|
|||
|
- if (nsContentUtils::ShouldResistFingerprinting()) {
|
|||
|
+ if (aPerformance->ShouldResistFingerprinting()) {
|
|||
|
return FetchStartHighRes(aPerformance);
|
|||
|
}
|
|||
|
return TimeStampToReducedDOMHighResOrFetchStart(aPerformance,
|
|||
|
mDomainLookupStart);
|
|||
|
}
|
|||
|
@@ -486,11 +486,11 @@
|
|||
|
|
|||
|
if (!StaticPrefs::dom_enable_performance() || !IsInitialized()) {
|
|||
|
return mZeroTime;
|
|||
|
}
|
|||
|
// Bug 1637985 - DomainLookup information may be useful for fingerprinting.
|
|||
|
- if (nsContentUtils::ShouldResistFingerprinting()) {
|
|||
|
+ if (aPerformance->ShouldResistFingerprinting()) {
|
|||
|
return FetchStartHighRes(aPerformance);
|
|||
|
}
|
|||
|
// Bug 1155008 - nsHttpTransaction is racy. Return DomainLookupStart when null
|
|||
|
if (mDomainLookupEnd.IsNull()) {
|
|||
|
return DomainLookupStartHighRes(aPerformance);
|
|||
|
---[snip]----------
|
|||
|
---[snip]---------- --> dom/performance/PerformanceWorker.h.rej:
|
|||
|
--- dom/performance/PerformanceWorker.h
|
|||
|
+++ dom/performance/PerformanceWorker.h
|
|||
|
@@ -78,12 +78,10 @@
|
|||
|
|
|||
|
class EventCounts* EventCounts() override {
|
|||
|
MOZ_CRASH("This should not be called on workers");
|
|||
|
}
|
|||
|
|
|||
|
- bool CrossOriginIsolated() const override;
|
|||
|
-
|
|||
|
void NoteShuttingDown();
|
|||
|
|
|||
|
protected:
|
|||
|
~PerformanceWorker();
|
|||
|
|
|||
|
---[snip]----------
|
|||
|
---[snip]---------- --> dom/performance/PerformanceWorker.cpp.rej:
|
|||
|
--- dom/performance/PerformanceWorker.cpp
|
|||
|
+++ dom/performance/PerformanceWorker.cpp
|
|||
|
@@ -12,11 +12,10 @@
|
|||
|
|
|||
|
PerformanceWorker::PerformanceWorker(WorkerPrivate* aWorkerPrivate)
|
|||
|
: Performance(aWorkerPrivate->GlobalScope()),
|
|||
|
mWorkerPrivate(aWorkerPrivate) {
|
|||
|
mWorkerPrivate->AssertIsOnWorkerThread();
|
|||
|
- mRTPCallerType = aWorkerPrivate->GlobalScope()->GetRTPCallerType();
|
|||
|
}
|
|||
|
|
|||
|
PerformanceWorker::~PerformanceWorker() {
|
|||
|
if (mWorkerPrivate) {
|
|||
|
mWorkerPrivate->AssertIsOnWorkerThread();
|
|||
|
@@ -58,16 +57,8 @@
|
|||
|
return mWorkerPrivate->GetRandomTimelineSeed();
|
|||
|
}
|
|||
|
return 0;
|
|||
|
}
|
|||
|
|
|||
|
-bool PerformanceWorker::CrossOriginIsolated() const {
|
|||
|
- MOZ_DIAGNOSTIC_ASSERT(mWorkerPrivate);
|
|||
|
- if (mWorkerPrivate) {
|
|||
|
- return mWorkerPrivate->CrossOriginIsolated();
|
|||
|
- }
|
|||
|
- return false;
|
|||
|
-}
|
|||
|
-
|
|||
|
void PerformanceWorker::NoteShuttingDown() { mWorkerPrivate = nullptr; }
|
|||
|
|
|||
|
} // namespace mozilla::dom
|
|||
|
---[snip]----------
|
|||
|
|
|||
|
==> patches/sed-patches/allow-searchengines-non-esr.patch:
|
|||
|
|
|||
|
patching file browser/components/enterprisepolicies/schemas/policies-schema.json
|
|||
|
Hunk #1 succeeded at 1178 (offset 104 lines).
|
|||
|
|
|||
|
==> patches/sed-patches/disable-pocket.patch:
|
|||
|
|
|||
|
patching file browser/base/content/browser.js
|
|||
|
Hunk #1 succeeded at 5479 with fuzz 1 (offset 1 line).
|
|||
|
patching file browser/components/BrowserGlue.sys.mjs
|
|||
|
Hunk #1 succeeded at 1300 (offset 26 lines).
|
|||
|
patching file browser/components/moz.build
|
|||
|
Hunk #1 succeeded at 45 (offset 1 line).
|
|||
|
|
|||
|
==> patches/sed-patches/stop-undesired-requests.patch:
|
|||
|
|
|||
|
patching file browser/components/newtab/data/content/activity-stream.bundle.js
|
|||
|
Hunk #1 succeeded at 1748 (offset 172 lines).
|
|||
|
patching file services/settings/Utils.jsm
|
|||
|
Hunk #1 succeeded at 59 (offset -3 lines).
|
|||
|
patching file toolkit/components/search/SearchUtils.sys.mjs
|
|||
|
Hunk #1 succeeded at 150 (offset -7 lines).
|
|||
|
|
|||
|
==> patches/ui-patches/firefox-view.patch:
|
|||
|
|
|||
|
patching file browser/base/content/navigator-toolbox.inc.xhtml
|
|||
|
Hunk #2 succeeded at 697 (offset 3 lines).
|
|||
|
patching file browser/components/customizableui/CustomizableUI.jsm
|
|||
|
Hunk #1 succeeded at 289 (offset -9 lines).
|
|||
|
Hunk #2 FAILED at 626.
|
|||
|
1 out of 2 hunks FAILED -- saving rejects to file browser/components/customizableui/CustomizableUI.jsm.rej
|
|||
|
patching file browser/components/firefoxview/firefoxview.html
|
|||
|
Hunk #1 succeeded at 34 (offset -1 lines).
|
|||
|
patching file browser/components/firefoxview/firefoxview.mjs
|
|||
|
Hunk #1 succeeded at 41 with fuzz 1 (offset 13 lines).
|
|||
|
patching file browser/components/newtab/lib/OnboardingMessageProvider.jsm
|
|||
|
Hunk #1 succeeded at 92 (offset 11 lines).
|
|||
|
---[snip]---------- --> browser/components/customizableui/CustomizableUI.jsm.rej:
|
|||
|
--- browser/components/customizableui/CustomizableUI.jsm
|
|||
|
+++ browser/components/customizableui/CustomizableUI.jsm
|
|||
|
@@ -626,18 +625,6 @@ var CustomizableUIInternal = {
|
|||
|
navbarPlacements.splice(newPosition, 0, "save-to-pocket-button");
|
|||
|
}
|
|||
|
}
|
|||
|
-
|
|||
|
- // Add firefox-view if not present
|
|||
|
- if (currentVersion < 18) {
|
|||
|
- let tabstripPlacements =
|
|||
|
- gSavedState.placements[CustomizableUI.AREA_TABSTRIP];
|
|||
|
- if (
|
|||
|
- tabstripPlacements &&
|
|||
|
- !tabstripPlacements.includes("firefox-view-button")
|
|||
|
- ) {
|
|||
|
- tabstripPlacements.unshift("firefox-view-button");
|
|||
|
- }
|
|||
|
- }
|
|||
|
},
|
|||
|
|
|||
|
_updateForNewProtonVersion() {
|
|||
|
---[snip]----------
|
|||
|
|
|||
|
==> patches/ui-patches/handlers.patch:
|
|||
|
|
|||
|
patching file uriloader/exthandler/HandlerList.sys.mjs
|
|||
|
Hunk #1 succeeded at 9 (offset -4 lines).
|
|||
|
|
|||
|
==> patches/ui-patches/hide-default-browser.patch:
|
|||
|
|
|||
|
patching file browser/components/preferences/main.inc.xhtml
|
|||
|
|
|||
|
==> patches/ui-patches/lw-logo-devtools.patch:
|
|||
|
|
|||
|
patching file devtools/client/aboutdebugging/src/actions/runtimes.js
|
|||
|
patching file devtools/client/jar.mn
|
|||
|
Hunk #1 succeeded at 368 (offset -6 lines).
|
|||
|
patching file devtools/client/themes/images/aboutdebugging-firefox-librewolf.svg
|
|||
|
patching file devtools/client/themes/images/aboutdebugging-firefox-logo.svg
|
|||
|
|
|||
|
==> patches/ui-patches/pref-naming.patch:
|
|||
|
|
|||
|
patching file browser/locales/en-US/browser/preferences/preferences.ftl
|
|||
|
Hunk #2 FAILED at 471.
|
|||
|
Hunk #3 succeeded at 641 (offset 5 lines).
|
|||
|
Hunk #4 succeeded at 670 (offset 5 lines).
|
|||
|
Hunk #5 succeeded at 716 with fuzz 2 (offset 5 lines).
|
|||
|
1 out of 5 hunks FAILED -- saving rejects to file browser/locales/en-US/browser/preferences/preferences.ftl.rej
|
|||
|
---[snip]---------- --> browser/locales/en-US/browser/preferences/preferences.ftl.rej:
|
|||
|
--- browser/locales/en-US/browser/preferences/preferences.ftl
|
|||
|
+++ browser/locales/en-US/browser/preferences/preferences.ftl
|
|||
|
@@ -471,13 +473,13 @@ play-drm-content =
|
|||
|
.label = Play DRM-controlled content
|
|||
|
.accesskey = P
|
|||
|
|
|||
|
-play-drm-content-learn-more = Learn more
|
|||
|
+play-drm-content-learn-more = Why we disable it
|
|||
|
|
|||
|
update-application-title = { -brand-short-name } Updates
|
|||
|
|
|||
|
update-application-description = Keep { -brand-short-name } up to date for the best performance, stability, and security.
|
|||
|
|
|||
|
-update-application-version = Version { $version } <a data-l10n-name="learn-more">What’s new</a>
|
|||
|
+update-application-version = Version { $version } <a data-l10n-name="learn-more">Visit the repositories</a>
|
|||
|
|
|||
|
update-history =
|
|||
|
.label = Show Update History…
|
|||
|
---[snip]----------
|
|||
|
|
|||
|
==> patches/ui-patches/privacy-preferences.patch:
|
|||
|
|
|||
|
patching file browser/components/preferences/privacy.inc.xhtml
|
|||
|
Hunk #1 succeeded at 53 (offset -1 lines).
|
|||
|
Hunk #2 succeeded at 561 (offset 26 lines).
|
|||
|
Hunk #3 succeeded at 608 (offset 23 lines).
|
|||
|
Hunk #4 FAILED at 1016.
|
|||
|
1 out of 4 hunks FAILED -- saving rejects to file browser/components/preferences/privacy.inc.xhtml.rej
|
|||
|
patching file browser/locales/en-US/browser/preferences/preferences.ftl
|
|||
|
Hunk #1 succeeded at 1192 (offset 85 lines).
|
|||
|
---[snip]---------- --> browser/components/preferences/privacy.inc.xhtml.rej:
|
|||
|
--- browser/components/preferences/privacy.inc.xhtml
|
|||
|
+++ browser/components/preferences/privacy.inc.xhtml
|
|||
|
@@ -1016,15 +1017,15 @@
|
|||
|
|
|||
|
<!-- addons, forgery (phishing) UI Security -->
|
|||
|
<groupbox id="browsingProtectionGroup" data-category="panePrivacy" hidden="true">
|
|||
|
- <label><html:h2 data-l10n-id="security-browsing-protection"/></label>
|
|||
|
- <hbox align = "center">
|
|||
|
+ <label><html:h2 data-l10n-id="security-browsing-protection" hidden="true"/></label>
|
|||
|
+ <hbox align = "center" hidden="true">
|
|||
|
<checkbox id="enableSafeBrowsing"
|
|||
|
data-l10n-id="security-enable-safe-browsing"
|
|||
|
class="tail-with-learn-more"/>
|
|||
|
<label id="enableSafeBrowsingLearnMore"
|
|||
|
class="learnMore" is="text-link" data-l10n-id="security-enable-safe-browsing-link"/>
|
|||
|
</hbox>
|
|||
|
- <vbox class="indent">
|
|||
|
+ <vbox class="indent" hidden="true">
|
|||
|
<checkbox id="blockDownloads"
|
|||
|
data-l10n-id="security-block-downloads"/>
|
|||
|
<checkbox id="blockUncommonUnwanted"
|
|||
|
---[snip]----------
|
|||
|
|
|||
|
==> patches/ui-patches/remap-links.patch:
|
|||
|
|
|||
|
patching file browser/components/preferences/main.js
|
|||
|
Hunk #1 FAILED at 308.
|
|||
|
Hunk #2 FAILED at 326.
|
|||
|
Hunk #3 FAILED at 357.
|
|||
|
Hunk #4 FAILED at 512.
|
|||
|
Hunk #5 FAILED at 546.
|
|||
|
Hunk #6 FAILED at 874.
|
|||
|
6 out of 6 hunks FAILED -- saving rejects to file browser/components/preferences/main.js.rej
|
|||
|
patching file browser/components/preferences/privacy.js
|
|||
|
Hunk #1 FAILED at 277.
|
|||
|
Hunk #2 FAILED at 484.
|
|||
|
Hunk #3 FAILED at 649.
|
|||
|
Hunk #4 FAILED at 755.
|
|||
|
Hunk #5 FAILED at 930.
|
|||
|
Hunk #6 FAILED at 2402.
|
|||
|
Hunk #7 FAILED at 2637.
|
|||
|
7 out of 7 hunks FAILED -- saving rejects to file browser/components/preferences/privacy.js.rej
|
|||
|
patching file toolkit/mozapps/extensions/content/aboutaddons.js
|
|||
|
Hunk #1 FAILED at 1551.
|
|||
|
1 out of 1 hunk FAILED -- saving rejects to file toolkit/mozapps/extensions/content/aboutaddons.js.rej
|
|||
|
---[snip]---------- --> browser/components/preferences/main.js.rej:
|
|||
|
--- browser/components/preferences/main.js
|
|||
|
+++ browser/components/preferences/main.js
|
|||
|
@@ -308,12 +308,19 @@ var gMainPane = {
|
|||
|
"performanceSettingsLearnMore"
|
|||
|
);
|
|||
|
let performanceSettingsUrl =
|
|||
|
- Services.urlFormatter.formatURLPref("app.support.baseURL") +
|
|||
|
- "performance";
|
|||
|
+ "https://support.mozilla.org/en-US/kb/performance-settings";
|
|||
|
performanceSettingsLink.setAttribute("href", performanceSettingsUrl);
|
|||
|
|
|||
|
this.updateDefaultPerformanceSettingsPref();
|
|||
|
|
|||
|
+ let sessionRestoreLink = document.getElementById(
|
|||
|
+ "sessionRestoreLearnMore"
|
|||
|
+ );
|
|||
|
+ let sessionRestoreUrl =
|
|||
|
+ Services.urlFormatter.formatURLPref("app.support.baseURL") +
|
|||
|
+ "why-is-session-restore-not-working";
|
|||
|
+ sessionRestoreLink.setAttribute("href", sessionRestoreUrl);
|
|||
|
+
|
|||
|
let defaultPerformancePref = Preferences.get(
|
|||
|
"browser.preferences.defaultPerformanceSettings.enabled"
|
|||
|
);
|
|||
|
@@ -326,8 +333,7 @@ var gMainPane = {
|
|||
|
"connectionSettingsLearnMore"
|
|||
|
);
|
|||
|
let connectionSettingsUrl =
|
|||
|
- Services.urlFormatter.formatURLPref("app.support.baseURL") +
|
|||
|
- "prefs-connection-settings";
|
|||
|
+ "https://support.mozilla.org/en-US/kb/connection-settings-firefox"
|
|||
|
connectionSettingsLink.setAttribute("href", connectionSettingsUrl);
|
|||
|
this.updateProxySettingsUI();
|
|||
|
initializeProxyUI(gMainPane);
|
|||
|
@@ -357,8 +363,7 @@ var gMainPane = {
|
|||
|
document.getElementById("pictureInPictureBox").hidden = false;
|
|||
|
|
|||
|
let pipLearnMoreUrl =
|
|||
|
- Services.urlFormatter.formatURLPref("app.support.baseURL") +
|
|||
|
- "picture-in-picture";
|
|||
|
+ "https://support.mozilla.org/en-US/kb/turn-picture-picture-mode";
|
|||
|
let link = document.getElementById("pictureInPictureLearnMore");
|
|||
|
link.setAttribute("href", pipLearnMoreUrl);
|
|||
|
}
|
|||
|
@@ -512,8 +517,7 @@ var gMainPane = {
|
|||
|
) {
|
|||
|
document.getElementById("mediaControlBox").hidden = false;
|
|||
|
let mediaControlLearnMoreUrl =
|
|||
|
- Services.urlFormatter.formatURLPref("app.support.baseURL") +
|
|||
|
- "media-keyboard-control";
|
|||
|
+ "https://support.mozilla.org/en-US/kb/control-audio-or-video-playback-your-keyboard";
|
|||
|
let link = document.getElementById("mediaControlLearnMore");
|
|||
|
link.setAttribute("href", mediaControlLearnMoreUrl);
|
|||
|
}
|
|||
|
@@ -546,7 +550,7 @@ var gMainPane = {
|
|||
|
|
|||
|
let drmInfoURL =
|
|||
|
Services.urlFormatter.formatURLPref("app.support.baseURL") +
|
|||
|
- "drm-content";
|
|||
|
+ "how-do-i-enable-drm";
|
|||
|
document
|
|||
|
.getElementById("playDRMContentLink")
|
|||
|
.setAttribute("href", drmInfoURL);
|
|||
|
@@ -874,7 +878,8 @@ var gMainPane = {
|
|||
|
|
|||
|
const link = document.getElementById("browserContainersLearnMore");
|
|||
|
link.href =
|
|||
|
- Services.urlFormatter.formatURLPref("app.support.baseURL") + "containers";
|
|||
|
+ Services.urlFormatter.formatURLPref("app.support.baseURL") +
|
|||
|
+ "why-isnt-first-party-isolate-enabled-by-default";
|
|||
|
|
|||
|
document.getElementById("browserContainersbox").hidden = false;
|
|||
|
this.readBrowserContainersCheckbox();
|
|||
|
---[snip]----------
|
|||
|
---[snip]---------- --> browser/components/preferences/privacy.js.rej:
|
|||
|
--- browser/components/preferences/privacy.js
|
|||
|
+++ browser/components/preferences/privacy.js
|
|||
|
@@ -277,7 +277,7 @@ function setUpContentBlockingWarnings() {
|
|||
|
let links = document.querySelectorAll(".contentBlockWarningLink");
|
|||
|
let contentBlockingWarningUrl =
|
|||
|
Services.urlFormatter.formatURLPref("app.support.baseURL") +
|
|||
|
- "turn-off-etp-desktop";
|
|||
|
+ "what-is-enhanced-tracking-protection";
|
|||
|
for (let link of links) {
|
|||
|
link.setAttribute("href", contentBlockingWarningUrl);
|
|||
|
}
|
|||
|
@@ -484,7 +484,7 @@ var gPrivacyPane = {
|
|||
|
let link = document.getElementById("httpsOnlyLearnMore");
|
|||
|
let httpsOnlyURL =
|
|||
|
Services.urlFormatter.formatURLPref("app.support.baseURL") +
|
|||
|
- "https-only-prefs";
|
|||
|
+ "does-librewolf-use-https-only-mode";
|
|||
|
link.setAttribute("href", httpsOnlyURL);
|
|||
|
|
|||
|
// Set radio-value based on the pref value
|
|||
|
@@ -649,7 +649,7 @@ var gPrivacyPane = {
|
|||
|
);
|
|||
|
const breachAlertsLearnMoreUrl =
|
|||
|
Services.urlFormatter.formatURLPref("app.support.baseURL") +
|
|||
|
- "lockwise-alerts";
|
|||
|
+ "why-is-the-built-in-password-manager-disabled";
|
|||
|
breachAlertsLearnMoreLink.setAttribute("href", breachAlertsLearnMoreUrl);
|
|||
|
|
|||
|
this._initSafeBrowsing();
|
|||
|
@@ -755,13 +755,14 @@ var gPrivacyPane = {
|
|||
|
);
|
|||
|
let url =
|
|||
|
Services.urlFormatter.formatURLPref("app.support.baseURL") +
|
|||
|
- "storage-permissions";
|
|||
|
+ "how-do-i-stay-logged-into-specific-websites";
|
|||
|
document.getElementById("siteDataLearnMoreLink").setAttribute("href", url);
|
|||
|
|
|||
|
this.initCookieBannerHandling();
|
|||
|
|
|||
|
let notificationInfoURL =
|
|||
|
- Services.urlFormatter.formatURLPref("app.support.baseURL") + "push";
|
|||
|
+ Services.urlFormatter.formatURLPref("app.support.baseURL") +
|
|||
|
+ "how-do-i-enable-push-notifications";
|
|||
|
document
|
|||
|
.getElementById("notificationPermissionsLearnMore")
|
|||
|
.setAttribute("href", notificationInfoURL);
|
|||
|
@@ -930,7 +931,7 @@ var gPrivacyPane = {
|
|||
|
let link = document.getElementById("contentBlockingLearnMore");
|
|||
|
let contentBlockingUrl =
|
|||
|
Services.urlFormatter.formatURLPref("app.support.baseURL") +
|
|||
|
- "enhanced-tracking-protection";
|
|||
|
+ "what-is-mozilla-tracking-protection";
|
|||
|
link.setAttribute("href", contentBlockingUrl);
|
|||
|
|
|||
|
// Toggles the text "Cross-site and social media trackers" based on the
|
|||
|
@@ -2402,7 +2403,7 @@ var gPrivacyPane = {
|
|||
|
let learnMoreLink = document.getElementById("primaryPasswordLearnMoreLink");
|
|||
|
let learnMoreURL =
|
|||
|
Services.urlFormatter.formatURLPref("app.support.baseURL") +
|
|||
|
- "primary-password-stored-logins";
|
|||
|
+ "why-is-the-built-in-password-manager-disabled";
|
|||
|
learnMoreLink.setAttribute("href", learnMoreURL);
|
|||
|
},
|
|||
|
|
|||
|
@@ -2637,7 +2638,7 @@ var gPrivacyPane = {
|
|||
|
let learnMoreLink = document.getElementById("enableSafeBrowsingLearnMore");
|
|||
|
let phishingUrl =
|
|||
|
Services.urlFormatter.formatURLPref("app.support.baseURL") +
|
|||
|
- "phishing-malware";
|
|||
|
+ "why-do-you-disable-google-safe-browsing";
|
|||
|
learnMoreLink.setAttribute("href", phishingUrl);
|
|||
|
|
|||
|
enableSafeBrowsing.addEventListener("command", function() {
|
|||
|
---[snip]----------
|
|||
|
---[snip]---------- --> toolkit/mozapps/extensions/content/aboutaddons.js.rej:
|
|||
|
--- toolkit/mozapps/extensions/content/aboutaddons.js
|
|||
|
+++ toolkit/mozapps/extensions/content/aboutaddons.js
|
|||
|
@@ -1551,7 +1551,7 @@ class SidebarFooter extends HTMLElement {
|
|||
|
icon: "chrome://global/skin/icons/help.svg",
|
|||
|
createLinkElement: () => {
|
|||
|
let link = document.createElement("a", { is: "support-link" });
|
|||
|
- link.setAttribute("support-page", "addons-help");
|
|||
|
+ link.setAttribute("support-page", "do-you-recommend-using-any-extensions");
|
|||
|
link.id = "help-button";
|
|||
|
return link;
|
|||
|
},
|
|||
|
---[snip]----------
|
|||
|
|
|||
|
==> patches/ui-patches/remove-branding-urlbar.patch:
|
|||
|
|
|||
|
patching file browser/locales/en-US/browser/browser.ftl
|
|||
|
Hunk #1 succeeded at 643 (offset 100 lines).
|
|||
|
|
|||
|
==> patches/ui-patches/remove-cfrprefs.patch:
|
|||
|
|
|||
|
patching file browser/components/preferences/main.inc.xhtml
|
|||
|
Hunk #1 FAILED at 665.
|
|||
|
1 out of 1 hunk FAILED -- saving rejects to file browser/components/preferences/main.inc.xhtml.rej
|
|||
|
---[snip]---------- --> browser/components/preferences/main.inc.xhtml.rej:
|
|||
|
--- browser/components/preferences/main.inc.xhtml
|
|||
|
+++ browser/components/preferences/main.inc.xhtml
|
|||
|
@@ -665,14 +665,14 @@
|
|||
|
preference="media.hardwaremediakeys.enabled"/>
|
|||
|
<label id="mediaControlLearnMore" class="learnMore" data-l10n-id="browsing-media-control-learn-more" is="text-link"/>
|
|||
|
</hbox>
|
|||
|
- <hbox align="center" data-subcategory="cfraddons">
|
|||
|
+ <hbox align="center" data-subcategory="cfraddons" hidden="true">
|
|||
|
<checkbox id="cfrRecommendations"
|
|||
|
class="tail-with-learn-more"
|
|||
|
data-l10n-id="browsing-cfr-recommendations"
|
|||
|
preference="browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons"/>
|
|||
|
<label id="cfrLearnMore" class="learnMore" data-l10n-id="browsing-cfr-recommendations-learn-more" is="text-link"/>
|
|||
|
</hbox>
|
|||
|
- <hbox align="center" data-subcategory="cfrfeatures">
|
|||
|
+ <hbox align="center" data-subcategory="cfrfeatures" hidden="true">
|
|||
|
<checkbox id="cfrRecommendations-features"
|
|||
|
class="tail-with-learn-more"
|
|||
|
data-l10n-id="browsing-cfr-features"
|
|||
|
---[snip]----------
|
|||
|
|
|||
|
==> patches/ui-patches/remove-organization-policy-banner.patch:
|
|||
|
|
|||
|
patching file browser/components/preferences/preferences.js
|
|||
|
Hunk #1 succeeded at 245 (offset 11 lines).
|
|||
|
|
|||
|
==> patches/ui-patches/remove-snippets-from-home.patch:
|
|||
|
|
|||
|
patching file browser/components/newtab/lib/AboutPreferences.jsm
|
|||
|
Hunk #1 succeeded at 55 (offset -1 lines).
|
|||
|
|
|||
|
==> patches/ui-patches/website-appearance-ui-rfp.patch:
|
|||
|
|
|||
|
patching file browser/components/preferences/main.js
|
|||
|
Hunk #1 succeeded at 3705 (offset -8 lines).
|
|||
|
Hunk #2 succeeded at 3725 (offset -8 lines).
|
|||
|
Hunk #3 succeeded at 3765 (offset -8 lines).
|
|||
|
|
|||
|
==> patches/unified-extensions-dont-show-recommendations.patch:
|
|||
|
|
|||
|
patching file browser/base/content/browser-addons.js
|
|||
|
|
|||
|
==> patches/urlbarprovider-interventions.patch:
|
|||
|
|
|||
|
patching file browser/components/urlbar/UrlbarProviderInterventions.sys.mjs
|
|||
|
Hunk #1 succeeded at 458 (offset 4 lines).
|
|||
|
|
|||
|
Removing 'tmpdir92'...
|
|||
|
|
|||
|
[patches/librewolf-pref-pane.patch] [patches/mozilla_dirs.patch] [patches/rfp-performance-api.patch] [patches/ui-patches/firefox-view.patch] [patches/ui-patches/pref-naming.patch] [patches/ui-patches/privacy-preferences.patch] [patches/ui-patches/remap-links.patch] [patches/ui-patches/remove-cfrprefs.patch]
|
|||
|
|
|||
|
error: Some patches failed!
|