diff --git a/patches/librewolf/context-menu.patch b/patches/librewolf/context-menu.patch index da19aa6..b0e9fa4 100644 --- a/patches/librewolf/context-menu.patch +++ b/patches/librewolf/context-menu.patch @@ -1,24 +1,24 @@ diff --git a/browser/base/content/browser-context.inc b/browser/base/content/browser-context.inc -index 39a139f..c565bce 100644 +index 3a58888b28b4..471c238aa284 100644 --- a/browser/base/content/browser-context.inc +++ b/browser/base/content/browser-context.inc -@@ -100,9 +100,6 @@ +@@ -107,9 +107,6 @@ + /> - +- /> -@@ -256,9 +253,6 @@ + /> +@@ -264,9 +261,6 @@ + /> - +- /> (mContainer); +} diff --git a/widget/gtk/nsWindow.h b/widget/gtk/nsWindow.h -index 1dd1f1dce8f4..98cec928817f 100644 +index 36b039cc5e58..ce57689fcc15 100644 --- a/widget/gtk/nsWindow.h +++ b/widget/gtk/nsWindow.h @@ -13,6 +13,7 @@ @@ -77,7 +77,7 @@ index 1dd1f1dce8f4..98cec928817f 100644 #include "VsyncSource.h" #include "mozilla/EventForwards.h" #include "mozilla/Maybe.h" -@@ -422,6 +423,8 @@ class nsWindow final : public nsBaseWidget { +@@ -421,6 +422,8 @@ class nsWindow final : public nsBaseWidget { static nsWindow* GetFocusedWindow(); diff --git a/patches/playwright/0-playwright-updated.patch b/patches/playwright/0-playwright-updated.patch index 8a95e6c..eb2453e 100644 --- a/patches/playwright/0-playwright-updated.patch +++ b/patches/playwright/0-playwright-updated.patch @@ -1,4 +1,8 @@ -cd camoufox-128.0.3-1 && git diff +# Playwright patches. Modified by daijro. +# Base: https://github.com/microsoft/playwright/blob/acf5ea0904b326c461a9dd0316c36fa30c3bd34b/browser_patches/webkit/patches/bootstrap.diff +# - Removes leaks +# - Updated to Mozilla 1.29.0 +cd camoufox-129.0-beta && git diff diff --git a/accessible/base/NotificationController.h b/accessible/base/NotificationController.h index 137963f117..41fa27bc4a 100644 --- a/accessible/base/NotificationController.h @@ -90,10 +94,10 @@ index b40e0fceb5..2c4e6d5fbf 100644 DWORD creationFlags = CREATE_SUSPENDED | CREATE_UNICODE_ENVIRONMENT; diff --git a/browser/installer/allowed-dupes.mn b/browser/installer/allowed-dupes.mn -index f6d425f36a..d60999ab26 100644 +index 213a99ed43..ee4f6484cd 100644 --- a/browser/installer/allowed-dupes.mn +++ b/browser/installer/allowed-dupes.mn -@@ -73,6 +73,12 @@ browser/features/webcompat@mozilla.org/shims/empty-shim.txt +@@ -67,6 +67,12 @@ browser/features/webcompat@mozilla.org/shims/empty-shim.txt removed-files #endif @@ -103,11 +107,11 @@ index f6d425f36a..d60999ab26 100644 +chrome/juggler/content/server/stream-utils.js +chrome/marionette/content/stream-utils.js + - # Bug 1496075 - Switch searchplugins to Web Extensions - browser/chrome/browser/search-extensions/amazon/favicon.ico - browser/chrome/browser/search-extensions/amazondotcn/favicon.ico + # Bug 1606928 - There's no reliable way to connect Top Sites favicons with the favicons in the Search Service + browser/chrome/browser/content/activity-stream/data/content/tippytop/favicons/allegro-pl.ico + browser/defaults/settings/main/search-config-icons/96327a73-c433-5eb4-a16d-b090cadfb80b diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in -index 3bf9d51155..bb0f71dd60 100644 +index da760e1437..a7579b3eae 100644 --- a/browser/installer/package-manifest.in +++ b/browser/installer/package-manifest.in @@ -189,6 +189,9 @@ @@ -298,7 +302,7 @@ index 61135ab0d7..cc8eb043f1 100644 bool CanSet(FieldIndex, bool, ContentParent*) { diff --git a/docshell/base/CanonicalBrowsingContext.cpp b/docshell/base/CanonicalBrowsingContext.cpp -index b59a70321b..a1e8a44582 100644 +index 18b2bde3da..231a101312 100644 --- a/docshell/base/CanonicalBrowsingContext.cpp +++ b/docshell/base/CanonicalBrowsingContext.cpp @@ -1594,6 +1594,12 @@ void CanonicalBrowsingContext::LoadURI(nsIURI* aURI, @@ -315,7 +319,7 @@ index b59a70321b..a1e8a44582 100644 } diff --git a/docshell/base/nsDocShell.cpp b/docshell/base/nsDocShell.cpp -index 354b2c0d66..7948aa03c8 100644 +index 60cbd5d5b8..f552a69588 100644 --- a/docshell/base/nsDocShell.cpp +++ b/docshell/base/nsDocShell.cpp @@ -15,6 +15,12 @@ @@ -592,7 +596,7 @@ index 354b2c0d66..7948aa03c8 100644 NS_IMETHODIMP nsDocShell::GetIsNavigating(bool* aOut) { *aOut = mIsNavigating; -@@ -4734,7 +4959,7 @@ nsDocShell::GetVisibility(bool* aVisibility) { +@@ -4739,7 +4964,7 @@ nsDocShell::GetVisibility(bool* aVisibility) { } void nsDocShell::ActivenessMaybeChanged() { @@ -601,7 +605,7 @@ index 354b2c0d66..7948aa03c8 100644 if (RefPtr presShell = GetPresShell()) { presShell->ActivenessMaybeChanged(); } -@@ -6672,6 +6897,10 @@ bool nsDocShell::CanSavePresentation(uint32_t aLoadType, +@@ -6681,6 +6906,10 @@ bool nsDocShell::CanSavePresentation(uint32_t aLoadType, return false; // no entry to save into } @@ -612,7 +616,7 @@ index 354b2c0d66..7948aa03c8 100644 MOZ_ASSERT(!mozilla::SessionHistoryInParent(), "mOSHE cannot be non-null with SHIP"); nsCOMPtr viewer = mOSHE->GetDocumentViewer(); -@@ -8401,6 +8630,12 @@ nsresult nsDocShell::PerformRetargeting(nsDocShellLoadState* aLoadState) { +@@ -8413,6 +8642,12 @@ nsresult nsDocShell::PerformRetargeting(nsDocShellLoadState* aLoadState) { true, // aForceNoOpener getter_AddRefs(newBC)); MOZ_ASSERT(!newBC); @@ -625,7 +629,7 @@ index 354b2c0d66..7948aa03c8 100644 return rv; } -@@ -9533,6 +9768,16 @@ nsresult nsDocShell::InternalLoad(nsDocShellLoadState* aLoadState, +@@ -9549,6 +9784,16 @@ nsresult nsDocShell::InternalLoad(nsDocShellLoadState* aLoadState, nsINetworkPredictor::PREDICT_LOAD, attrs, nullptr); nsCOMPtr req; @@ -642,7 +646,7 @@ index 354b2c0d66..7948aa03c8 100644 rv = DoURILoad(aLoadState, aCacheKey, getter_AddRefs(req)); if (NS_SUCCEEDED(rv)) { -@@ -12710,6 +12955,9 @@ class OnLinkClickEvent : public Runnable { +@@ -12747,6 +12992,9 @@ class OnLinkClickEvent : public Runnable { mHandler->OnLinkClickSync(mContent, mLoadState, mNoOpenerImplied, mTriggeringPrincipal); } @@ -652,7 +656,7 @@ index 354b2c0d66..7948aa03c8 100644 return NS_OK; } -@@ -12792,6 +13040,8 @@ nsresult nsDocShell::OnLinkClick( +@@ -12836,6 +13084,8 @@ nsresult nsDocShell::OnLinkClick( nsCOMPtr ev = new OnLinkClickEvent(this, aContent, loadState, noOpenerImplied, aIsTrusted, aTriggeringPrincipal); @@ -773,10 +777,10 @@ index fdc04f16c6..199f8fdb06 100644 * This attempts to save any applicable layout history state (like * scroll position) in the nsISHEntry. This is normally done diff --git a/dom/base/Document.cpp b/dom/base/Document.cpp -index c6cb09e195..d836946872 100644 +index 235e2fcfcc..e81abc3e18 100644 --- a/dom/base/Document.cpp +++ b/dom/base/Document.cpp -@@ -3674,6 +3674,9 @@ void Document::SendToConsole(nsCOMArray& aMessages) { +@@ -3757,6 +3757,9 @@ void Document::SendToConsole(nsCOMArray& aMessages) { } void Document::ApplySettingsFromCSP(bool aSpeculative) { @@ -786,7 +790,7 @@ index c6cb09e195..d836946872 100644 nsresult rv = NS_OK; if (!aSpeculative) { // 1) apply settings from regular CSP -@@ -3731,6 +3734,11 @@ nsresult Document::InitCSP(nsIChannel* aChannel) { +@@ -3814,6 +3817,11 @@ nsresult Document::InitCSP(nsIChannel* aChannel) { MOZ_ASSERT(!mScriptGlobalObject, "CSP must be initialized before mScriptGlobalObject is set!"); @@ -798,7 +802,7 @@ index c6cb09e195..d836946872 100644 // If this is a data document - no need to set CSP. if (mLoadedAsData) { return NS_OK; -@@ -4501,6 +4509,10 @@ bool Document::HasFocus(ErrorResult& rv) const { +@@ -4613,6 +4621,10 @@ bool Document::HasFocus(ErrorResult& rv) const { return false; } @@ -809,7 +813,7 @@ index c6cb09e195..d836946872 100644 if (!fm->IsInActiveWindow(bc)) { return false; } -@@ -18878,6 +18890,66 @@ ColorScheme Document::PreferredColorScheme(IgnoreRFP aIgnoreRFP) const { +@@ -19080,6 +19092,66 @@ ColorScheme Document::PreferredColorScheme(IgnoreRFP aIgnoreRFP) const { return PreferenceSheet::PrefsFor(*this).mColorScheme; } @@ -877,10 +881,10 @@ index c6cb09e195..d836946872 100644 if (!sLoadingForegroundTopLevelContentDocument) { return false; diff --git a/dom/base/Document.h b/dom/base/Document.h -index 7eea29947d..227314db13 100644 +index 0021e45241..2325b7d65b 100644 --- a/dom/base/Document.h +++ b/dom/base/Document.h -@@ -4035,6 +4035,9 @@ class Document : public nsINode, +@@ -4053,6 +4053,9 @@ class Document : public nsINode, // color-scheme meta tag. ColorScheme DefaultColorScheme() const; @@ -891,7 +895,7 @@ index 7eea29947d..227314db13 100644 static bool AutomaticStorageAccessPermissionCanBeGranted( diff --git a/dom/base/Navigator.cpp b/dom/base/Navigator.cpp -index a7229fe412..5b737ab6a8 100644 +index e26e0968c1..8e577bd9fd 100644 --- a/dom/base/Navigator.cpp +++ b/dom/base/Navigator.cpp @@ -344,14 +344,18 @@ void Navigator::GetAppName(nsAString& aAppName) const { @@ -930,7 +934,7 @@ index a7229fe412..5b737ab6a8 100644 // The returned value is cached by the binding code. The window listens to the // accept languages change and will clear the cache when needed. It has to -@@ -2288,6 +2298,10 @@ dom::PrivateAttribution* Navigator::PrivateAttribution() { +@@ -2287,6 +2297,10 @@ dom::PrivateAttribution* Navigator::PrivateAttribution() { /* static */ bool Navigator::Webdriver() { @@ -941,7 +945,7 @@ index a7229fe412..5b737ab6a8 100644 #ifdef ENABLE_WEBDRIVER nsCOMPtr marionette = do_GetService(NS_MARIONETTE_CONTRACTID); if (marionette) { -@@ -2307,8 +2321,6 @@ bool Navigator::Webdriver() { +@@ -2306,8 +2320,6 @@ bool Navigator::Webdriver() { } } #endif @@ -951,7 +955,7 @@ index a7229fe412..5b737ab6a8 100644 AutoplayPolicy Navigator::GetAutoplayPolicy(AutoplayPolicyMediaType aType) { diff --git a/dom/base/Navigator.h b/dom/base/Navigator.h -index 4c400554f9..6efdca2363 100644 +index 6abf6cef23..46ead1f32e 100644 --- a/dom/base/Navigator.h +++ b/dom/base/Navigator.h @@ -218,7 +218,7 @@ class Navigator final : public nsISupports, public nsWrapperCache { @@ -964,20 +968,20 @@ index 4c400554f9..6efdca2363 100644 dom::MediaCapabilities* MediaCapabilities(); dom::MediaSession* MediaSession(); diff --git a/dom/base/nsContentUtils.cpp b/dom/base/nsContentUtils.cpp -index 1edbffd535..33376c1d44 100644 +index 7b7deca251..f0064bead9 100644 --- a/dom/base/nsContentUtils.cpp +++ b/dom/base/nsContentUtils.cpp -@@ -8796,7 +8796,8 @@ nsresult nsContentUtils::SendMouseEvent( +@@ -8829,7 +8829,8 @@ nsresult nsContentUtils::SendMouseEvent( bool aIgnoreRootScrollFrame, float aPressure, unsigned short aInputSourceArg, uint32_t aIdentifier, bool aToWindow, PreventDefaultResult* aPreventDefault, bool aIsDOMEventSynthesized, - bool aIsWidgetEventSynthesized) { -+ bool aIsWidgetEventSynthesized, -+ bool convertToPointer, uint32_t aJugglerEventId) { ++ bool aIsWidgetEventSynthesized, bool convertToPointer, ++ uint32_t aJugglerEventId) { nsPoint offset; nsCOMPtr widget = GetWidget(aPresShell, &offset); if (!widget) return NS_ERROR_FAILURE; -@@ -8804,6 +8805,7 @@ nsresult nsContentUtils::SendMouseEvent( +@@ -8837,6 +8838,7 @@ nsresult nsContentUtils::SendMouseEvent( EventMessage msg; Maybe exitFrom; bool contextMenuKey = false; @@ -985,7 +989,7 @@ index 1edbffd535..33376c1d44 100644 if (aType.EqualsLiteral("mousedown")) { msg = eMouseDown; } else if (aType.EqualsLiteral("mouseup")) { -@@ -8828,6 +8830,12 @@ nsresult nsContentUtils::SendMouseEvent( +@@ -8861,6 +8863,12 @@ nsresult nsContentUtils::SendMouseEvent( msg = eMouseHitTest; } else if (aType.EqualsLiteral("MozMouseExploreByTouch")) { msg = eMouseExploreByTouch; @@ -998,46 +1002,54 @@ index 1edbffd535..33376c1d44 100644 } else { return NS_ERROR_FAILURE; } -@@ -8836,12 +8844,21 @@ nsresult nsContentUtils::SendMouseEvent( - aInputSourceArg = MouseEvent_Binding::MOZ_SOURCE_MOUSE; - } +@@ -8871,6 +8879,8 @@ nsresult nsContentUtils::SendMouseEvent( -- WidgetMouseEvent event(true, msg, widget, -+ std::unique_ptr eventOwner; -+ if (isDragEvent) { -+ eventOwner.reset(new WidgetDragEvent(true, msg, widget)); -+ eventOwner->mReason = aIsWidgetEventSynthesized + Maybe pointerEvent; + Maybe mouseEvent; ++ Maybe dragEvent; ++ + if (IsPointerEventMessage(msg)) { + MOZ_ASSERT(!aIsWidgetEventSynthesized, + "The event shouldn't be dispatched as a synthesized event"); +@@ -8882,6 +8892,11 @@ nsresult nsContentUtils::SendMouseEvent( + pointerEvent.emplace(true, msg, widget, + contextMenuKey ? WidgetMouseEvent::eContextMenuKey + : WidgetMouseEvent::eNormal); ++ } else if (isDragEvent) { ++ dragEvent.emplace(true, msg, widget); ++ dragEvent->mReason = aIsWidgetEventSynthesized + ? WidgetMouseEvent::eSynthesized + : WidgetMouseEvent::eReal; -+ } else { -+ eventOwner.reset(new WidgetMouseEvent(true, msg, widget, - aIsWidgetEventSynthesized - ? WidgetMouseEvent::eSynthesized - : WidgetMouseEvent::eReal, - contextMenuKey ? WidgetMouseEvent::eContextMenuKey -- : WidgetMouseEvent::eNormal); -+ : WidgetMouseEvent::eNormal)); -+ } -+ WidgetMouseEvent& event = *eventOwner.get(); - event.pointerId = aIdentifier; - event.mModifiers = GetWidgetModifiers(aModifiers); - event.mButton = aButton; -@@ -8852,8 +8869,10 @@ nsresult nsContentUtils::SendMouseEvent( - event.mPressure = aPressure; - event.mInputSource = aInputSourceArg; - event.mClickCount = aClickCount; -+ event.mJugglerEventId = aJugglerEventId; - event.mFlags.mIsSynthesizedForTests = aIsDOMEventSynthesized; - event.mExitFrom = exitFrom; -+ event.convertToPointer = convertToPointer; + } else { + mouseEvent.emplace(true, msg, widget, + aIsWidgetEventSynthesized +@@ -8891,7 +8906,9 @@ nsresult nsContentUtils::SendMouseEvent( + : WidgetMouseEvent::eNormal); + } + WidgetMouseEvent& mouseOrPointerEvent = +- pointerEvent.isSome() ? pointerEvent.ref() : mouseEvent.ref(); ++ pointerEvent.isSome() ? pointerEvent.ref() : ++ dragEvent.isSome() ? dragEvent.ref() : mouseEvent.ref(); ++ + mouseOrPointerEvent.pointerId = aIdentifier; + mouseOrPointerEvent.mModifiers = GetWidgetModifiers(aModifiers); + mouseOrPointerEvent.mButton = aButton; +@@ -8902,8 +8919,10 @@ nsresult nsContentUtils::SendMouseEvent( + mouseOrPointerEvent.mPressure = aPressure; + mouseOrPointerEvent.mInputSource = aInputSourceArg; + mouseOrPointerEvent.mClickCount = aClickCount; ++ mouseOrPointerEvent.mJugglerEventId = aJugglerEventId; + mouseOrPointerEvent.mFlags.mIsSynthesizedForTests = aIsDOMEventSynthesized; + mouseOrPointerEvent.mExitFrom = exitFrom; ++ mouseOrPointerEvent.convertToPointer = convertToPointer; nsPresContext* presContext = aPresShell->GetPresContext(); if (!presContext) return NS_ERROR_FAILURE; diff --git a/dom/base/nsContentUtils.h b/dom/base/nsContentUtils.h -index ef3c1fd7cb..bd4e6e5db6 100644 +index 3837cce20c..81ccfbe139 100644 --- a/dom/base/nsContentUtils.h +++ b/dom/base/nsContentUtils.h -@@ -3078,7 +3078,8 @@ class nsContentUtils { +@@ -3093,7 +3093,8 @@ class nsContentUtils { int32_t aModifiers, bool aIgnoreRootScrollFrame, float aPressure, unsigned short aInputSourceArg, uint32_t aIdentifier, bool aToWindow, mozilla::PreventDefaultResult* aPreventDefault, @@ -1048,7 +1060,7 @@ index ef3c1fd7cb..bd4e6e5db6 100644 static void FirePageShowEventForFrameLoaderSwap( nsIDocShellTreeItem* aItem, diff --git a/dom/base/nsDOMWindowUtils.cpp b/dom/base/nsDOMWindowUtils.cpp -index 6d611b4a84..13640d6bd8 100644 +index e2de2b30c0..f937f561c0 100644 --- a/dom/base/nsDOMWindowUtils.cpp +++ b/dom/base/nsDOMWindowUtils.cpp @@ -684,6 +684,26 @@ nsDOMWindowUtils::GetPresShellId(uint32_t* aPresShellId) { @@ -1113,7 +1125,7 @@ index 6d611b4a84..13640d6bd8 100644 if (aPreventDefault) { *aPreventDefault = preventDefaultResult != PreventDefaultResult::No; diff --git a/dom/base/nsDOMWindowUtils.h b/dom/base/nsDOMWindowUtils.h -index 63968c9b7a..decf3ea383 100644 +index 47ff326b20..b8e084b0c7 100644 --- a/dom/base/nsDOMWindowUtils.h +++ b/dom/base/nsDOMWindowUtils.h @@ -93,7 +93,7 @@ class nsDOMWindowUtils final : public nsIDOMWindowUtils, @@ -1126,7 +1138,7 @@ index 63968c9b7a..decf3ea383 100644 MOZ_CAN_RUN_SCRIPT nsresult SendTouchEventCommon( diff --git a/dom/base/nsFocusManager.cpp b/dom/base/nsFocusManager.cpp -index 587f03849d..28780215bd 100644 +index 22c175c93e..3b4a243d1d 100644 --- a/dom/base/nsFocusManager.cpp +++ b/dom/base/nsFocusManager.cpp @@ -1684,6 +1684,10 @@ Maybe nsFocusManager::SetFocusInner(Element* aNewContent, @@ -1165,7 +1177,7 @@ index 587f03849d..28780215bd 100644 // care of lowering the present active window. This happens in // a separate runnable to avoid touching multiple windows in diff --git a/dom/base/nsGlobalWindowOuter.cpp b/dom/base/nsGlobalWindowOuter.cpp -index 460ccc17f2..d294373ca9 100644 +index e47d497907..360ab27a8f 100644 --- a/dom/base/nsGlobalWindowOuter.cpp +++ b/dom/base/nsGlobalWindowOuter.cpp @@ -2514,10 +2514,16 @@ nsresult nsGlobalWindowOuter::SetNewDocument(Document* aDocument, @@ -1222,10 +1234,10 @@ index 0039d6d91b..7a6c5da166 100644 // Outer windows only. virtual void EnsureSizeAndPositionUpToDate() override; diff --git a/dom/base/nsINode.cpp b/dom/base/nsINode.cpp -index 600fce143a..ec6f7c60d0 100644 +index 4b54dcd5b4..e75b5f148d 100644 --- a/dom/base/nsINode.cpp +++ b/dom/base/nsINode.cpp -@@ -1387,6 +1387,61 @@ void nsINode::GetBoxQuadsFromWindowOrigin(const BoxQuadOptions& aOptions, +@@ -1402,6 +1402,61 @@ void nsINode::GetBoxQuadsFromWindowOrigin(const BoxQuadOptions& aOptions, mozilla::GetBoxQuadsFromWindowOrigin(this, aOptions, aResult, aRv); } @@ -1288,10 +1300,10 @@ index 600fce143a..ec6f7c60d0 100644 DOMQuad& aQuad, const GeometryNode& aFrom, const ConvertCoordinateOptions& aOptions, CallerType aCallerType, diff --git a/dom/base/nsINode.h b/dom/base/nsINode.h -index 2906bbb56c..06697f07c7 100644 +index 6f980f472a..3d60daf881 100644 --- a/dom/base/nsINode.h +++ b/dom/base/nsINode.h -@@ -2282,6 +2282,10 @@ class nsINode : public mozilla::dom::EventTarget { +@@ -2303,6 +2303,10 @@ class nsINode : public mozilla::dom::EventTarget { nsTArray>& aResult, ErrorResult& aRv); @@ -1331,7 +1343,7 @@ index cceb725d39..e906a7fb7c 100644 static bool DumpEnabled(); diff --git a/dom/chrome-webidl/BrowsingContext.webidl b/dom/chrome-webidl/BrowsingContext.webidl -index d70f3e18cc..2f2be2a653 100644 +index 864890f6a2..a34005c323 100644 --- a/dom/chrome-webidl/BrowsingContext.webidl +++ b/dom/chrome-webidl/BrowsingContext.webidl @@ -53,6 +53,24 @@ enum PrefersColorSchemeOverride { @@ -1472,10 +1484,10 @@ index 7e1af00d05..e85af9718d 100644 ~Geolocation(); diff --git a/dom/html/HTMLInputElement.cpp b/dom/html/HTMLInputElement.cpp -index 30093e5d40..2852746b6f 100644 +index e2a77a1143..a614efef05 100644 --- a/dom/html/HTMLInputElement.cpp +++ b/dom/html/HTMLInputElement.cpp -@@ -57,6 +57,7 @@ +@@ -59,6 +59,7 @@ #include "mozilla/dom/Document.h" #include "mozilla/dom/HTMLDataListElement.h" #include "mozilla/dom/HTMLOptionElement.h" @@ -1483,7 +1495,7 @@ index 30093e5d40..2852746b6f 100644 #include "nsIFormControlFrame.h" #include "nsITextControlFrame.h" #include "nsIFrame.h" -@@ -783,6 +784,13 @@ nsresult HTMLInputElement::InitFilePicker(FilePickerType aType) { +@@ -784,6 +785,13 @@ nsresult HTMLInputElement::InitFilePicker(FilePickerType aType) { return NS_ERROR_FAILURE; } @@ -1494,14 +1506,14 @@ index 30093e5d40..2852746b6f 100644 + return NS_OK; + } + - if (IsPopupBlocked(doc)) { + if (IsPickerBlocked(doc)) { return NS_OK; } diff --git a/dom/interfaces/base/nsIDOMWindowUtils.idl b/dom/interfaces/base/nsIDOMWindowUtils.idl -index 9d185e8e7e..9d48d2e335 100644 +index ac0251b498..184f4d980c 100644 --- a/dom/interfaces/base/nsIDOMWindowUtils.idl +++ b/dom/interfaces/base/nsIDOMWindowUtils.idl -@@ -373,6 +373,26 @@ interface nsIDOMWindowUtils : nsISupports { +@@ -374,6 +374,26 @@ interface nsIDOMWindowUtils : nsISupports { [optional] in long aButtons, [optional] in unsigned long aIdentifier); @@ -1529,10 +1541,10 @@ index 9d185e8e7e..9d48d2e335 100644 * touchstart, touchend, touchmove, and touchcancel * diff --git a/dom/ipc/BrowserChild.cpp b/dom/ipc/BrowserChild.cpp -index 27fb1239db..39f9dd48ee 100644 +index 204ee71ece..8597f2d0c4 100644 --- a/dom/ipc/BrowserChild.cpp +++ b/dom/ipc/BrowserChild.cpp -@@ -1639,6 +1639,21 @@ void BrowserChild::HandleRealMouseButtonEvent(const WidgetMouseEvent& aEvent, +@@ -1656,6 +1656,21 @@ void BrowserChild::HandleRealMouseButtonEvent(const WidgetMouseEvent& aEvent, if (postLayerization) { postLayerization->Register(); } @@ -1810,7 +1822,7 @@ index 3b39538e51..c7bf4f2d53 100644 return aGlobalOrNull; diff --git a/dom/security/nsCSPUtils.cpp b/dom/security/nsCSPUtils.cpp -index f4aecfaf44..ef01750497 100644 +index 4eafb2247d..e0d0b5bc78 100644 --- a/dom/security/nsCSPUtils.cpp +++ b/dom/security/nsCSPUtils.cpp @@ -22,6 +22,7 @@ @@ -1857,7 +1869,7 @@ index 2f71b284ee..2640bd5712 100644 * returned quads are further translated relative to the window * origin -- which is not the layout origin. Further translation diff --git a/dom/workers/RuntimeService.cpp b/dom/workers/RuntimeService.cpp -index 4a7ebb2523..0b7b24a4da 100644 +index 6085248083..23b72e2d00 100644 --- a/dom/workers/RuntimeService.cpp +++ b/dom/workers/RuntimeService.cpp @@ -998,7 +998,7 @@ void PrefLanguagesChanged(const char* /* aPrefName */, void* /* aClosure */) { @@ -1879,7 +1891,7 @@ index 4a7ebb2523..0b7b24a4da 100644 mNavigatorPropertiesLoaded = true; } -@@ -1795,6 +1794,13 @@ void RuntimeService::PropagateStorageAccessPermissionGranted( +@@ -1808,6 +1807,13 @@ void RuntimeService::PropagateStorageAccessPermissionGranted( } } @@ -1893,7 +1905,7 @@ index 4a7ebb2523..0b7b24a4da 100644 template void RuntimeService::BroadcastAllWorkers(const Func& aFunc) { AssertIsOnMainThread(); -@@ -2314,6 +2320,14 @@ void PropagateStorageAccessPermissionGrantedToWorkers( +@@ -2333,6 +2339,14 @@ void PropagateStorageAccessPermissionGrantedToWorkers( } } @@ -1909,10 +1921,10 @@ index 4a7ebb2523..0b7b24a4da 100644 MOZ_ASSERT(!NS_IsMainThread()); MOZ_ASSERT(aCx); diff --git a/dom/workers/RuntimeService.h b/dom/workers/RuntimeService.h -index f51076ac14..fe15b2e00d 100644 +index 534bbe9ec4..6aa99b64fd 100644 --- a/dom/workers/RuntimeService.h +++ b/dom/workers/RuntimeService.h -@@ -109,6 +109,8 @@ class RuntimeService final : public nsIObserver { +@@ -112,6 +112,8 @@ class RuntimeService final : public nsIObserver { void PropagateStorageAccessPermissionGranted( const nsPIDOMWindowInner& aWindow); @@ -1922,10 +1934,10 @@ index f51076ac14..fe15b2e00d 100644 return mNavigatorProperties; } diff --git a/dom/workers/WorkerCommon.h b/dom/workers/WorkerCommon.h -index d10dabb5c5..53c4070c5f 100644 +index 58894a8361..c481d40d79 100644 --- a/dom/workers/WorkerCommon.h +++ b/dom/workers/WorkerCommon.h -@@ -44,6 +44,8 @@ void ResumeWorkersForWindow(const nsPIDOMWindowInner& aWindow); +@@ -47,6 +47,8 @@ void ResumeWorkersForWindow(const nsPIDOMWindowInner& aWindow); void PropagateStorageAccessPermissionGrantedToWorkers( const nsPIDOMWindowInner& aWindow); @@ -1935,10 +1947,10 @@ index d10dabb5c5..53c4070c5f 100644 bool IsWorkerGlobal(JSObject* global); diff --git a/dom/workers/WorkerPrivate.cpp b/dom/workers/WorkerPrivate.cpp -index 7fbfdb0eee..c31ae2724d 100644 +index 089f42307b..63fb760ac8 100644 --- a/dom/workers/WorkerPrivate.cpp +++ b/dom/workers/WorkerPrivate.cpp -@@ -682,6 +682,18 @@ class UpdateContextOptionsRunnable final : public WorkerControlRunnable { +@@ -700,6 +700,18 @@ class UpdateContextOptionsRunnable final : public WorkerControlRunnable { } }; @@ -1957,7 +1969,7 @@ index 7fbfdb0eee..c31ae2724d 100644 class UpdateLanguagesRunnable final : public WorkerThreadRunnable { nsTArray mLanguages; -@@ -2091,6 +2103,16 @@ void WorkerPrivate::UpdateContextOptions( +@@ -2108,6 +2120,16 @@ void WorkerPrivate::UpdateContextOptions( } } @@ -1974,7 +1986,7 @@ index 7fbfdb0eee..c31ae2724d 100644 void WorkerPrivate::UpdateLanguages(const nsTArray& aLanguages) { AssertIsOnParentThread(); -@@ -5667,6 +5689,15 @@ void WorkerPrivate::UpdateContextOptionsInternal( +@@ -5736,6 +5758,15 @@ void WorkerPrivate::UpdateContextOptionsInternal( } } @@ -1991,10 +2003,10 @@ index 7fbfdb0eee..c31ae2724d 100644 const nsTArray& aLanguages) { WorkerGlobalScope* globalScope = GlobalScope(); diff --git a/dom/workers/WorkerPrivate.h b/dom/workers/WorkerPrivate.h -index 57212e01fb..bc75882ee6 100644 +index dfb96b7b79..a463eec618 100644 --- a/dom/workers/WorkerPrivate.h +++ b/dom/workers/WorkerPrivate.h -@@ -418,6 +418,8 @@ class WorkerPrivate final +@@ -432,6 +432,8 @@ class WorkerPrivate final void UpdateContextOptionsInternal(JSContext* aCx, const JS::ContextOptions& aContextOptions); @@ -2003,7 +2015,7 @@ index 57212e01fb..bc75882ee6 100644 void UpdateLanguagesInternal(const nsTArray& aLanguages); void UpdateJSWorkerMemoryParameterInternal(JSContext* aCx, JSGCParamKey key, -@@ -1045,6 +1047,8 @@ class WorkerPrivate final +@@ -1059,6 +1061,8 @@ class WorkerPrivate final void UpdateContextOptions(const JS::ContextOptions& aContextOptions); @@ -2235,10 +2247,10 @@ index 0ec6ee3eb3..885dba71bc 100644 // No boxes to return return; diff --git a/layout/base/PresShell.cpp b/layout/base/PresShell.cpp -index 6e588cff05..a173b1154e 100644 +index f154e05a8c..0af8c24c0f 100644 --- a/layout/base/PresShell.cpp +++ b/layout/base/PresShell.cpp -@@ -11063,7 +11063,9 @@ bool PresShell::ComputeActiveness() const { +@@ -11064,7 +11064,9 @@ bool PresShell::ComputeActiveness() const { if (!browserChild->IsVisible()) { MOZ_LOG(gLog, LogLevel::Debug, (" > BrowserChild %p is not visible", browserChild)); @@ -2250,7 +2262,7 @@ index 6e588cff05..a173b1154e 100644 // If the browser is visible but just due to be preserving layers diff --git a/layout/base/nsLayoutUtils.cpp b/layout/base/nsLayoutUtils.cpp -index 2ed62888d7..0ca02752aa 100644 +index 0011b1a1a3..58e7f4a220 100644 --- a/layout/base/nsLayoutUtils.cpp +++ b/layout/base/nsLayoutUtils.cpp @@ -698,6 +698,7 @@ bool nsLayoutUtils::AllowZoomingForDocument( @@ -2295,20 +2307,18 @@ index cc86d1abf6..8cce20c719 100644 bool Gecko_MediaFeatures_PrefersReducedTransparency(const Document* aDocument) { diff --git a/netwerk/base/LoadInfo.cpp b/netwerk/base/LoadInfo.cpp -index 5ff1c5ad8b..a788218d4f 100644 +index 21d5a5e1b4..fa435f229d 100644 --- a/netwerk/base/LoadInfo.cpp +++ b/netwerk/base/LoadInfo.cpp -@@ -691,7 +691,8 @@ LoadInfo::LoadInfo(const LoadInfo& rhs) - mInterceptionInfo(rhs.mInterceptionInfo), +@@ -693,6 +693,7 @@ LoadInfo::LoadInfo(const LoadInfo& rhs) mHasInjectedCookieForCookieBannerHandling( rhs.mHasInjectedCookieForCookieBannerHandling), -- mWasSchemelessInput(rhs.mWasSchemelessInput) { -+ mWasSchemelessInput(rhs.mWasSchemelessInput), -+ mJugglerLoadIdentifier(rhs.mJugglerLoadIdentifier) { + mWasSchemelessInput(rhs.mWasSchemelessInput), ++ mJugglerLoadIdentifier(rhs.mJugglerLoadIdentifier), + mHttpsUpgradeTelemetry(rhs.mHttpsUpgradeTelemetry) { } - LoadInfo::LoadInfo( -@@ -2416,4 +2417,16 @@ LoadInfo::SetWasSchemelessInput(bool aWasSchemelessInput) { +@@ -2461,4 +2462,16 @@ LoadInfo::SetHttpsUpgradeTelemetry( return NS_OK; } @@ -2326,23 +2336,23 @@ index 5ff1c5ad8b..a788218d4f 100644 + } // namespace mozilla::net diff --git a/netwerk/base/LoadInfo.h b/netwerk/base/LoadInfo.h -index e6badeeee8..994216ee9b 100644 +index 52d867196a..140e2cd9f4 100644 --- a/netwerk/base/LoadInfo.h +++ b/netwerk/base/LoadInfo.h -@@ -408,6 +408,8 @@ class LoadInfo final : public nsILoadInfo { - +@@ -414,6 +414,8 @@ class LoadInfo final : public nsILoadInfo { bool mHasInjectedCookieForCookieBannerHandling = false; bool mWasSchemelessInput = false; -+ -+ uint64_t mJugglerLoadIdentifier = 0; - }; - // This is exposed solely for testing purposes and should not be used outside of ++ uint64_t mJugglerLoadIdentifier = 0; ++ + nsILoadInfo::HTTPSUpgradeTelemetryType mHttpsUpgradeTelemetry = + nsILoadInfo::NO_UPGRADE; + }; diff --git a/netwerk/base/TRRLoadInfo.cpp b/netwerk/base/TRRLoadInfo.cpp -index 48560a8b3b..b2114472b0 100644 +index 9dc2bb0da6..b71cf63934 100644 --- a/netwerk/base/TRRLoadInfo.cpp +++ b/netwerk/base/TRRLoadInfo.cpp -@@ -870,5 +870,15 @@ TRRLoadInfo::SetWasSchemelessInput(bool aWasSchemelessInput) { +@@ -903,5 +903,15 @@ TRRLoadInfo::SetHttpsUpgradeTelemetry( return NS_ERROR_NOT_IMPLEMENTED; } @@ -2359,16 +2369,18 @@ index 48560a8b3b..b2114472b0 100644 } // namespace net } // namespace mozilla diff --git a/netwerk/base/nsILoadInfo.idl b/netwerk/base/nsILoadInfo.idl -index 8ff5e556c9..b1429dbe18 100644 +index 12f43b9110..e1ce56501b 100644 --- a/netwerk/base/nsILoadInfo.idl +++ b/netwerk/base/nsILoadInfo.idl -@@ -1544,4 +1544,6 @@ interface nsILoadInfo : nsISupports - * Whether the load has gone through the URL bar, where the fixup had to add * the protocol scheme. +@@ -1568,6 +1568,8 @@ interface nsILoadInfo : nsISupports */ [infallible] attribute boolean wasSchemelessInput; -+ + + [infallible] attribute unsigned long long jugglerLoadIdentifier; - }; ++ + cenum HTTPSUpgradeTelemetryType : 32 { + NO_UPGRADE = 0, + ALREADY_HTTPS = (1 << 0), diff --git a/netwerk/base/nsINetworkInterceptController.idl b/netwerk/base/nsINetworkInterceptController.idl index 7f91d2df6f..ba6569f4be 100644 --- a/netwerk/base/nsINetworkInterceptController.idl @@ -2382,19 +2394,19 @@ index 7f91d2df6f..ba6569f4be 100644 /** * Set the status and reason for the forthcoming synthesized response. diff --git a/netwerk/ipc/DocumentLoadListener.cpp b/netwerk/ipc/DocumentLoadListener.cpp -index dfd80e8867..a702bbe63c 100644 +index 10f65a549c..f41d32ce90 100644 --- a/netwerk/ipc/DocumentLoadListener.cpp +++ b/netwerk/ipc/DocumentLoadListener.cpp -@@ -168,6 +168,7 @@ static auto CreateDocumentLoadInfo(CanonicalBrowsingContext* aBrowsingContext, - loadInfo->SetHasValidUserGestureActivation( - aLoadState->HasValidUserGestureActivation()); +@@ -171,6 +171,7 @@ static auto CreateDocumentLoadInfo(CanonicalBrowsingContext* aBrowsingContext, + loadInfo->SetTextDirectiveUserActivation( + aLoadState->GetTextDirectiveUserActivation()); loadInfo->SetIsMetaRefresh(aLoadState->IsMetaRefresh()); + loadInfo->SetJugglerLoadIdentifier(aLoadState->GetLoadIdentifier()); return loadInfo.forget(); } diff --git a/netwerk/protocol/http/InterceptedHttpChannel.cpp b/netwerk/protocol/http/InterceptedHttpChannel.cpp -index 5695d46f92..d28ead55f6 100644 +index e81a4538fd..d7945f8129 100644 --- a/netwerk/protocol/http/InterceptedHttpChannel.cpp +++ b/netwerk/protocol/http/InterceptedHttpChannel.cpp @@ -727,6 +727,14 @@ NS_IMPL_ISUPPORTS(ResetInterceptionHeaderVisitor, nsIHttpHeaderVisitor) @@ -2567,7 +2579,7 @@ index df1c5e464b..34451e791b 100644 } diff --git a/toolkit/components/browser/nsIWebBrowserChrome.idl b/toolkit/components/browser/nsIWebBrowserChrome.idl -index 217beda78e..7ba723410e 100644 +index 75555352b8..72855a404e 100644 --- a/toolkit/components/browser/nsIWebBrowserChrome.idl +++ b/toolkit/components/browser/nsIWebBrowserChrome.idl @@ -74,6 +74,9 @@ interface nsIWebBrowserChrome : nsISupports @@ -2581,10 +2593,10 @@ index 217beda78e..7ba723410e 100644 // ignored for Linux. const unsigned long CHROME_SUPPRESS_ANIMATION = 1 << 24; diff --git a/toolkit/components/resistfingerprinting/nsUserCharacteristics.cpp b/toolkit/components/resistfingerprinting/nsUserCharacteristics.cpp -index 32b1ac4813..808031fbeb 100644 +index 144628a310..69fa66f27d 100644 --- a/toolkit/components/resistfingerprinting/nsUserCharacteristics.cpp +++ b/toolkit/components/resistfingerprinting/nsUserCharacteristics.cpp -@@ -525,7 +525,7 @@ void PopulateLanguages() { +@@ -632,7 +632,7 @@ void PopulateLanguages() { // sufficient to only collect this information as the other properties are // just reformats of Navigator::GetAcceptLanguages. nsTArray languages; @@ -2622,10 +2634,10 @@ index 654903fadb..815b3dc24c 100644 int32_t aMaxSelfProgress, int32_t aCurTotalProgress, diff --git a/toolkit/components/windowwatcher/nsWindowWatcher.cpp b/toolkit/components/windowwatcher/nsWindowWatcher.cpp -index 0767cb1539..dc0d72b4ff 100644 +index cdba76dc8a..266fdc6235 100644 --- a/toolkit/components/windowwatcher/nsWindowWatcher.cpp +++ b/toolkit/components/windowwatcher/nsWindowWatcher.cpp -@@ -1861,7 +1861,11 @@ uint32_t nsWindowWatcher::CalculateChromeFlagsForContent( +@@ -1865,7 +1865,11 @@ uint32_t nsWindowWatcher::CalculateChromeFlagsForContent( // Open a minimal popup. *aIsPopupRequested = true; @@ -2703,7 +2715,7 @@ index fe72a2715d..a5959143ba 100644 // nsDocumentViewer::LoadComplete that doesn't do various things // that are not relevant here because this wasn't an actual diff --git a/uriloader/exthandler/nsExternalHelperAppService.cpp b/uriloader/exthandler/nsExternalHelperAppService.cpp -index b9120ededd..4d5728a737 100644 +index ad769a235b..ff18e7516a 100644 --- a/uriloader/exthandler/nsExternalHelperAppService.cpp +++ b/uriloader/exthandler/nsExternalHelperAppService.cpp @@ -112,6 +112,7 @@ @@ -2915,45 +2927,41 @@ index 1c25e9d9a1..22cf67b0f6 100644 } #endif diff --git a/widget/MouseEvents.h b/widget/MouseEvents.h -index d29b406524..6bef9c1657 100644 +index 3d469853bb..7085d1f271 100644 --- a/widget/MouseEvents.h +++ b/widget/MouseEvents.h -@@ -258,6 +258,7 @@ class WidgetMouseEvent : public WidgetMouseEventBase, - : mReason(eReal), - mContextMenuTrigger(eNormal), - mClickCount(0), -+ mJugglerEventId(0), - mIgnoreRootScrollFrame(false), - mClickEventPrevented(false) {} - -@@ -269,6 +270,7 @@ class WidgetMouseEvent : public WidgetMouseEventBase, +@@ -263,7 +263,8 @@ class WidgetMouseEvent : public WidgetMouseEventBase, + : WidgetMouseEventBase(aIsTrusted, aMessage, aWidget, aEventClassID, + aTime), mReason(aReason), - mContextMenuTrigger(eNormal), - mClickCount(0), -+ mJugglerEventId(0), - mIgnoreRootScrollFrame(false), - mClickEventPrevented(false) {} +- mContextMenuTrigger(aContextMenuTrigger) {} ++ mContextMenuTrigger(aContextMenuTrigger), ++ mJugglerEventId(0) {} -@@ -288,6 +290,7 @@ class WidgetMouseEvent : public WidgetMouseEventBase, + #ifdef DEBUG + void AssertContextMenuEventButtonConsistency() const; +@@ -279,7 +280,8 @@ class WidgetMouseEvent : public WidgetMouseEventBase, + : WidgetMouseEventBase(aIsTrusted, aMessage, aWidget, eMouseEventClass, + aTime), mReason(aReason), - mContextMenuTrigger(aContextMenuTrigger), - mClickCount(0), -+ mJugglerEventId(0), - mIgnoreRootScrollFrame(false), - mClickEventPrevented(false) { +- mContextMenuTrigger(aContextMenuTrigger) { ++ mContextMenuTrigger(aContextMenuTrigger), ++ mJugglerEventId(0) { + MOZ_ASSERT_IF(aIsTrusted, !IsPointerEventMessage(mMessage)); if (aMessage == eContextMenu) { -@@ -336,6 +339,9 @@ class WidgetMouseEvent : public WidgetMouseEventBase, + mButton = (mContextMenuTrigger == eNormal) ? MouseButton::eSecondary +@@ -327,6 +329,9 @@ class WidgetMouseEvent : public WidgetMouseEventBase, // Otherwise, this must be 0. - uint32_t mClickCount; + uint32_t mClickCount = 0; + // Unique event ID + uint32_t mJugglerEventId; + // Whether the event should ignore scroll frame bounds during dispatch. - bool mIgnoreRootScrollFrame; - -@@ -348,6 +354,7 @@ class WidgetMouseEvent : public WidgetMouseEventBase, + bool mIgnoreRootScrollFrame = false; +@@ -341,6 +346,7 @@ class WidgetMouseEvent : public WidgetMouseEventBase, + mContextMenuTrigger = aEvent.mContextMenuTrigger; mExitFrom = aEvent.mExitFrom; mClickCount = aEvent.mClickCount; + mJugglerEventId = aEvent.mJugglerEventId; @@ -3173,7 +3181,7 @@ index facd2bc65a..d6dea95472 100644 } // namespace widget diff --git a/widget/headless/HeadlessWidget.cpp b/widget/headless/HeadlessWidget.cpp -index 419b3bf940..07dc395498 100644 +index c6095751bc..ce1b995015 100644 --- a/widget/headless/HeadlessWidget.cpp +++ b/widget/headless/HeadlessWidget.cpp @@ -111,6 +111,8 @@ void HeadlessWidget::Destroy() { @@ -3185,7 +3193,7 @@ index 419b3bf940..07dc395498 100644 nsBaseWidget::OnDestroy(); nsBaseWidget::Destroy(); -@@ -620,5 +622,14 @@ nsresult HeadlessWidget::SynthesizeNativeTouchpadPan( +@@ -613,5 +615,14 @@ nsresult HeadlessWidget::SynthesizeNativeTouchpadPan( return NS_OK; } @@ -3215,7 +3223,7 @@ index 9856991ef3..948947a421 100644 ~HeadlessWidget(); bool mEnabled; diff --git a/widget/nsGUIEventIPC.h b/widget/nsGUIEventIPC.h -index 8ba4682935..a1b5b2c523 100644 +index 02775a7f27..6c1ae0e371 100644 --- a/widget/nsGUIEventIPC.h +++ b/widget/nsGUIEventIPC.h @@ -234,6 +234,7 @@ struct ParamTraits { diff --git a/upstream.sh b/upstream.sh index 9e3363e..03f4243 100644 --- a/upstream.sh +++ b/upstream.sh @@ -1,2 +1,2 @@ -version=128.0.3 -release=1 +version=129.0 +release=beta