|
|
|
@ -108,10 +108,10 @@ index 6ab29ba31e937e1c5bb1208a9a2508ff0496fd02..7989da51c5368fa80cc66cccdfc018a9
|
|
|
|
|
gmp-clearkey/0.1/manifest.json
|
|
|
|
|
i686/gmp-clearkey/0.1/manifest.json
|
|
|
|
|
diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
|
|
|
|
|
index 9229a0bd0e041815331aaf2973afda22c007423d..3ce0e453d4124d110e11877f5bbade776d11cfd4 100644
|
|
|
|
|
index 8caff8de9465e44c3535448622386c9a0b8034c2..ea498cce8de6ee099fb36eb640590d0fdace081b 100644
|
|
|
|
|
--- a/browser/installer/package-manifest.in
|
|
|
|
|
+++ b/browser/installer/package-manifest.in
|
|
|
|
|
@@ -196,6 +196,9 @@
|
|
|
|
|
@@ -195,6 +195,9 @@
|
|
|
|
|
@RESPATH@/chrome/remote.manifest
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
@ -169,7 +169,7 @@ index a32156978aacd7c8cbe9001250bfa1516dbc360f..ff03ff48b505ef8a9117671bf21e8b0e
|
|
|
|
|
const transportProvider = {
|
|
|
|
|
setListener(upgradeListener) {
|
|
|
|
|
diff --git a/docshell/base/BrowsingContext.cpp b/docshell/base/BrowsingContext.cpp
|
|
|
|
|
index e5e8720e90716f96af982d99b4c83ec74715ed26..74c858d6e05081e08a34a98fd517ffd1487dcf12 100644
|
|
|
|
|
index b270badc02ec47c3995fda5c7e6ef2b81fe86150..6027542882ced5ffc55f2cc888cab161774bf90e 100644
|
|
|
|
|
--- a/docshell/base/BrowsingContext.cpp
|
|
|
|
|
+++ b/docshell/base/BrowsingContext.cpp
|
|
|
|
|
@@ -112,6 +112,20 @@ struct ParamTraits<mozilla::dom::PrefersColorSchemeOverride>
|
|
|
|
@ -193,7 +193,7 @@ index e5e8720e90716f96af982d99b4c83ec74715ed26..74c858d6e05081e08a34a98fd517ffd1
|
|
|
|
|
template <>
|
|
|
|
|
struct ParamTraits<mozilla::dom::ExplicitActiveStatus>
|
|
|
|
|
: public ContiguousEnumSerializer<
|
|
|
|
|
@@ -2838,6 +2852,40 @@ void BrowsingContext::DidSet(FieldIndex<IDX_PrefersColorSchemeOverride>,
|
|
|
|
|
@@ -2857,6 +2871,40 @@ void BrowsingContext::DidSet(FieldIndex<IDX_PrefersColorSchemeOverride>,
|
|
|
|
|
PresContextAffectingFieldChanged();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -235,7 +235,7 @@ index e5e8720e90716f96af982d99b4c83ec74715ed26..74c858d6e05081e08a34a98fd517ffd1
|
|
|
|
|
nsString&& aOldValue) {
|
|
|
|
|
MOZ_ASSERT(IsTop());
|
|
|
|
|
diff --git a/docshell/base/BrowsingContext.h b/docshell/base/BrowsingContext.h
|
|
|
|
|
index 8d32d0f5a37396eb18aa217bcac887f131df9fa2..86eca6ab834829283454d1565d1a72116dfb9554 100644
|
|
|
|
|
index 9fc591e0981d587b47f51d9a7c94e3ab8e54d06e..1d05700dc98422e7aed7236e6e5922e0e3501f24 100644
|
|
|
|
|
--- a/docshell/base/BrowsingContext.h
|
|
|
|
|
+++ b/docshell/base/BrowsingContext.h
|
|
|
|
|
@@ -190,10 +190,10 @@ struct EmbedderColorSchemes {
|
|
|
|
@ -288,8 +288,8 @@ index 8d32d0f5a37396eb18aa217bcac887f131df9fa2..86eca6ab834829283454d1565d1a7211
|
|
|
|
|
bool IsInBFCache() const;
|
|
|
|
|
|
|
|
|
|
bool AllowJavascript() const { return GetAllowJavascript(); }
|
|
|
|
|
@@ -1079,6 +1095,23 @@ class BrowsingContext : public nsILoadContext, public nsWrapperCache {
|
|
|
|
|
|
|
|
|
|
@@ -1081,6 +1097,23 @@ class BrowsingContext : public nsILoadContext, public nsWrapperCache {
|
|
|
|
|
void WalkPresContexts(Callback&&);
|
|
|
|
|
void PresContextAffectingFieldChanged();
|
|
|
|
|
|
|
|
|
|
+ bool CanSet(FieldIndex<IDX_PrefersReducedMotionOverride>,
|
|
|
|
@ -313,24 +313,24 @@ index 8d32d0f5a37396eb18aa217bcac887f131df9fa2..86eca6ab834829283454d1565d1a7211
|
|
|
|
|
|
|
|
|
|
bool CanSet(FieldIndex<IDX_SuspendMediaWhenInactive>, bool, ContentParent*) {
|
|
|
|
|
diff --git a/docshell/base/CanonicalBrowsingContext.cpp b/docshell/base/CanonicalBrowsingContext.cpp
|
|
|
|
|
index 50863b8b4948166b63ef88eeef640bc27d5489c5..4e73297034a0f6909c4df6ff83d4453ce61f7ae6 100644
|
|
|
|
|
index fef6ea286b5a7c1f7756f1265b74ad27bd8c9917..2697e73023217314fbfaed8f8e5d204232d45cb6 100644
|
|
|
|
|
--- a/docshell/base/CanonicalBrowsingContext.cpp
|
|
|
|
|
+++ b/docshell/base/CanonicalBrowsingContext.cpp
|
|
|
|
|
@@ -1435,6 +1435,12 @@ void CanonicalBrowsingContext::LoadURI(const nsAString& aURI,
|
|
|
|
|
@@ -1447,6 +1447,12 @@ void CanonicalBrowsingContext::LoadURI(nsIURI* aURI,
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
+ {
|
|
|
|
|
+ nsCOMPtr<nsIObserverService> observerService = mozilla::services::GetObserverService();
|
|
|
|
|
+ if (observerService) {
|
|
|
|
|
+ observerService->NotifyObservers(ToSupports(this), "juggler-navigation-started-browser", NS_ConvertASCIItoUTF16(nsPrintfCString("%llu", loadState->GetLoadIdentifier())).get());
|
|
|
|
|
+ observerService->NotifyObservers(ToSupports(this), "juggler-navigation-started-browser", NS_ConvertASCIItoUTF16(nsPrintfCString("%" PRIu64, loadState->GetLoadIdentifier())).get());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
LoadURI(loadState, true);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
diff --git a/docshell/base/nsDocShell.cpp b/docshell/base/nsDocShell.cpp
|
|
|
|
|
index b0f1edf389703f650287ffd7b8320df8835836b5..319291099cca4d77490c429dc8cf4e9735a6fe3c 100644
|
|
|
|
|
index 132ed5c9a9e89cf023a76e7280e2d471475bfc87..7f5a21b0087a823190c2049d165c7fc7dea6c956 100644
|
|
|
|
|
--- a/docshell/base/nsDocShell.cpp
|
|
|
|
|
+++ b/docshell/base/nsDocShell.cpp
|
|
|
|
|
@@ -15,6 +15,12 @@
|
|
|
|
@ -628,7 +628,7 @@ index b0f1edf389703f650287ffd7b8320df8835836b5..319291099cca4d77490c429dc8cf4e97
|
|
|
|
|
NS_IMETHODIMP
|
|
|
|
|
nsDocShell::GetIsNavigating(bool* aOut) {
|
|
|
|
|
*aOut = mIsNavigating;
|
|
|
|
|
@@ -4909,7 +5155,7 @@ nsDocShell::GetVisibility(bool* aVisibility) {
|
|
|
|
|
@@ -4945,7 +5191,7 @@ nsDocShell::GetVisibility(bool* aVisibility) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void nsDocShell::ActivenessMaybeChanged() {
|
|
|
|
@ -637,7 +637,7 @@ index b0f1edf389703f650287ffd7b8320df8835836b5..319291099cca4d77490c429dc8cf4e97
|
|
|
|
|
if (RefPtr<PresShell> presShell = GetPresShell()) {
|
|
|
|
|
presShell->ActivenessMaybeChanged();
|
|
|
|
|
}
|
|
|
|
|
@@ -6854,6 +7100,10 @@ bool nsDocShell::CanSavePresentation(uint32_t aLoadType,
|
|
|
|
|
@@ -6890,6 +7136,10 @@ bool nsDocShell::CanSavePresentation(uint32_t aLoadType,
|
|
|
|
|
return false; // no entry to save into
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -648,7 +648,7 @@ index b0f1edf389703f650287ffd7b8320df8835836b5..319291099cca4d77490c429dc8cf4e97
|
|
|
|
|
MOZ_ASSERT(!mozilla::SessionHistoryInParent(),
|
|
|
|
|
"mOSHE cannot be non-null with SHIP");
|
|
|
|
|
nsCOMPtr<nsIContentViewer> viewer = mOSHE->GetContentViewer();
|
|
|
|
|
@@ -8626,6 +8876,12 @@ nsresult nsDocShell::PerformRetargeting(nsDocShellLoadState* aLoadState) {
|
|
|
|
|
@@ -8667,6 +8917,12 @@ nsresult nsDocShell::PerformRetargeting(nsDocShellLoadState* aLoadState) {
|
|
|
|
|
true, // aForceNoOpener
|
|
|
|
|
getter_AddRefs(newBC));
|
|
|
|
|
MOZ_ASSERT(!newBC);
|
|
|
|
@ -661,7 +661,7 @@ index b0f1edf389703f650287ffd7b8320df8835836b5..319291099cca4d77490c429dc8cf4e97
|
|
|
|
|
return rv;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -9656,6 +9912,16 @@ nsresult nsDocShell::InternalLoad(nsDocShellLoadState* aLoadState,
|
|
|
|
|
@@ -9697,6 +9953,16 @@ nsresult nsDocShell::InternalLoad(nsDocShellLoadState* aLoadState,
|
|
|
|
|
nsINetworkPredictor::PREDICT_LOAD, attrs, nullptr);
|
|
|
|
|
|
|
|
|
|
nsCOMPtr<nsIRequest> req;
|
|
|
|
@ -672,13 +672,13 @@ index b0f1edf389703f650287ffd7b8320df8835836b5..319291099cca4d77490c429dc8cf4e97
|
|
|
|
|
+ nsCOMPtr<nsIObserverService> observerService =
|
|
|
|
|
+ mozilla::services::GetObserverService();
|
|
|
|
|
+ if (observerService) {
|
|
|
|
|
+ observerService->NotifyObservers(GetAsSupports(this), "juggler-navigation-started-renderer", NS_ConvertASCIItoUTF16(nsPrintfCString("%llu", aLoadState->GetLoadIdentifier())).get());
|
|
|
|
|
+ observerService->NotifyObservers(GetAsSupports(this), "juggler-navigation-started-renderer", NS_ConvertASCIItoUTF16(nsPrintfCString("%" PRIu64, aLoadState->GetLoadIdentifier())).get());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
rv = DoURILoad(aLoadState, aCacheKey, getter_AddRefs(req));
|
|
|
|
|
|
|
|
|
|
if (NS_SUCCEEDED(rv)) {
|
|
|
|
|
@@ -12820,6 +13086,9 @@ class OnLinkClickEvent : public Runnable {
|
|
|
|
|
@@ -12861,6 +13127,9 @@ class OnLinkClickEvent : public Runnable {
|
|
|
|
|
mHandler->OnLinkClickSync(mContent, mLoadState, mNoOpenerImplied,
|
|
|
|
|
mTriggeringPrincipal);
|
|
|
|
|
}
|
|
|
|
@ -688,7 +688,7 @@ index b0f1edf389703f650287ffd7b8320df8835836b5..319291099cca4d77490c429dc8cf4e97
|
|
|
|
|
return NS_OK;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -12899,6 +13168,8 @@ nsresult nsDocShell::OnLinkClick(
|
|
|
|
|
@@ -12940,6 +13209,8 @@ nsresult nsDocShell::OnLinkClick(
|
|
|
|
|
nsCOMPtr<nsIRunnable> ev =
|
|
|
|
|
new OnLinkClickEvent(this, aContent, loadState, noOpenerImplied,
|
|
|
|
|
aIsTrusted, aTriggeringPrincipal);
|
|
|
|
@ -698,7 +698,7 @@ index b0f1edf389703f650287ffd7b8320df8835836b5..319291099cca4d77490c429dc8cf4e97
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
diff --git a/docshell/base/nsDocShell.h b/docshell/base/nsDocShell.h
|
|
|
|
|
index 293bfeee6e0779d15dd6ef60fc06f9969f70f003..a0481717f5f7b5ceb0301b7311c27b5631c258ee 100644
|
|
|
|
|
index 40bc4a21e789e2ee7f241f4adc410e1915105906..31f5574adcace75af6b184a3859e621022671a8a 100644
|
|
|
|
|
--- a/docshell/base/nsDocShell.h
|
|
|
|
|
+++ b/docshell/base/nsDocShell.h
|
|
|
|
|
@@ -16,6 +16,7 @@
|
|
|
|
@ -742,7 +742,7 @@ index 293bfeee6e0779d15dd6ef60fc06f9969f70f003..a0481717f5f7b5ceb0301b7311c27b56
|
|
|
|
|
// Handles retrieval of subframe session history for nsDocShell::LoadURI. If a
|
|
|
|
|
// load is requested in a subframe of the current DocShell, the subframe
|
|
|
|
|
// loadType may need to reflect the loadType of the parent document, or in
|
|
|
|
|
@@ -1313,6 +1326,17 @@ class nsDocShell final : public nsDocLoader,
|
|
|
|
|
@@ -1317,6 +1330,17 @@ class nsDocShell final : public nsDocLoader,
|
|
|
|
|
bool mAllowDNSPrefetch : 1;
|
|
|
|
|
bool mAllowWindowControl : 1;
|
|
|
|
|
bool mCSSErrorReportingEnabled : 1;
|
|
|
|
@ -761,7 +761,7 @@ index 293bfeee6e0779d15dd6ef60fc06f9969f70f003..a0481717f5f7b5ceb0301b7311c27b56
|
|
|
|
|
bool mAllowKeywordFixup : 1;
|
|
|
|
|
bool mDisableMetaRefreshWhenInactive : 1;
|
|
|
|
|
diff --git a/docshell/base/nsIDocShell.idl b/docshell/base/nsIDocShell.idl
|
|
|
|
|
index 6b85ddd842a6d2e29f86047017b78b2007b99867..f530ab61ac26cb7c94c8ccd07d11aa90c5148212 100644
|
|
|
|
|
index cc34ebbe0e8706888e26148f507180a1ebba1326..c0e6a5612beba81c3382839303e3e7a10ded8f05 100644
|
|
|
|
|
--- a/docshell/base/nsIDocShell.idl
|
|
|
|
|
+++ b/docshell/base/nsIDocShell.idl
|
|
|
|
|
@@ -44,6 +44,7 @@ interface nsIURI;
|
|
|
|
@ -817,10 +817,10 @@ index 6b85ddd842a6d2e29f86047017b78b2007b99867..f530ab61ac26cb7c94c8ccd07d11aa90
|
|
|
|
|
* 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 6afeefcd0d916c116822e5a5f725403b4577f196..168445a80b3fe05a93e36cd3218a7de3c650d2a3 100644
|
|
|
|
|
index fb54b0ebfb2e910546feb8b4d5b7ab69528c162c..865296d65fed772a5a551935fd3423b7c43f5c5a 100644
|
|
|
|
|
--- a/dom/base/Document.cpp
|
|
|
|
|
+++ b/dom/base/Document.cpp
|
|
|
|
|
@@ -3675,6 +3675,9 @@ void Document::SendToConsole(nsCOMArray<nsISecurityConsoleMessage>& aMessages) {
|
|
|
|
|
@@ -3645,6 +3645,9 @@ void Document::SendToConsole(nsCOMArray<nsISecurityConsoleMessage>& aMessages) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Document::ApplySettingsFromCSP(bool aSpeculative) {
|
|
|
|
@ -830,7 +830,7 @@ index 6afeefcd0d916c116822e5a5f725403b4577f196..168445a80b3fe05a93e36cd3218a7de3
|
|
|
|
|
nsresult rv = NS_OK;
|
|
|
|
|
if (!aSpeculative) {
|
|
|
|
|
// 1) apply settings from regular CSP
|
|
|
|
|
@@ -3732,6 +3735,11 @@ nsresult Document::InitCSP(nsIChannel* aChannel) {
|
|
|
|
|
@@ -3702,6 +3705,11 @@ nsresult Document::InitCSP(nsIChannel* aChannel) {
|
|
|
|
|
MOZ_ASSERT(!mScriptGlobalObject,
|
|
|
|
|
"CSP must be initialized before mScriptGlobalObject is set!");
|
|
|
|
|
|
|
|
|
@ -842,7 +842,7 @@ index 6afeefcd0d916c116822e5a5f725403b4577f196..168445a80b3fe05a93e36cd3218a7de3
|
|
|
|
|
// If this is a data document - no need to set CSP.
|
|
|
|
|
if (mLoadedAsData) {
|
|
|
|
|
return NS_OK;
|
|
|
|
|
@@ -4549,6 +4557,10 @@ bool Document::HasFocus(ErrorResult& rv) const {
|
|
|
|
|
@@ -4525,6 +4533,10 @@ bool Document::HasFocus(ErrorResult& rv) const {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -853,7 +853,7 @@ index 6afeefcd0d916c116822e5a5f725403b4577f196..168445a80b3fe05a93e36cd3218a7de3
|
|
|
|
|
if (!fm->IsInActiveWindow(bc)) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
@@ -17926,6 +17938,71 @@ ColorScheme Document::PreferredColorScheme(IgnoreRFP aIgnoreRFP) const {
|
|
|
|
|
@@ -18029,6 +18041,71 @@ ColorScheme Document::PreferredColorScheme(IgnoreRFP aIgnoreRFP) const {
|
|
|
|
|
return LookAndFeel::PreferredColorSchemeForContent();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -926,10 +926,10 @@ index 6afeefcd0d916c116822e5a5f725403b4577f196..168445a80b3fe05a93e36cd3218a7de3
|
|
|
|
|
if (!sLoadingForegroundTopLevelContentDocument) {
|
|
|
|
|
return false;
|
|
|
|
|
diff --git a/dom/base/Document.h b/dom/base/Document.h
|
|
|
|
|
index 0a6be5aaa858277422fa67656deb8f39152bc24d..0108c385e3e7f34b48bd0992b1779007fc7f49fc 100644
|
|
|
|
|
index 5cee4a31e29a15809e604473e4c80cbbf763b3d9..23a2165b3aefd4b1e84d3035b7ac8ac9edf45535 100644
|
|
|
|
|
--- a/dom/base/Document.h
|
|
|
|
|
+++ b/dom/base/Document.h
|
|
|
|
|
@@ -4062,6 +4062,9 @@ class Document : public nsINode,
|
|
|
|
|
@@ -4074,6 +4074,9 @@ class Document : public nsINode,
|
|
|
|
|
// color-scheme meta tag.
|
|
|
|
|
ColorScheme DefaultColorScheme() const;
|
|
|
|
|
|
|
|
|
@ -1008,20 +1008,20 @@ index 9f6b85ecfac7196cc57c1b1979313403a41d4a6c..0fe045f38c36eb0284bb7c1fb6d33463
|
|
|
|
|
dom::MediaCapabilities* MediaCapabilities();
|
|
|
|
|
dom::MediaSession* MediaSession();
|
|
|
|
|
diff --git a/dom/base/nsContentUtils.cpp b/dom/base/nsContentUtils.cpp
|
|
|
|
|
index 66838dc517687e7583dfaa3c06a2dfe62afb4c5f..75f3326be1c4d9d828f548dc22ce8ad969bca2fd 100644
|
|
|
|
|
index 1b5573d5b8508775a4b0f608183b2a6911614e97..a4b7f7e0459b9762848244ce6813e757890bacc1 100644
|
|
|
|
|
--- a/dom/base/nsContentUtils.cpp
|
|
|
|
|
+++ b/dom/base/nsContentUtils.cpp
|
|
|
|
|
@@ -8382,7 +8382,8 @@ nsresult nsContentUtils::SendMouseEvent(
|
|
|
|
|
@@ -8432,7 +8432,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) {
|
|
|
|
|
+ bool convertToPointer, uint32_t aJugglerEventId) {
|
|
|
|
|
nsPoint offset;
|
|
|
|
|
nsCOMPtr<nsIWidget> widget = GetWidget(aPresShell, &offset);
|
|
|
|
|
if (!widget) return NS_ERROR_FAILURE;
|
|
|
|
|
@@ -8390,6 +8391,7 @@ nsresult nsContentUtils::SendMouseEvent(
|
|
|
|
|
@@ -8440,6 +8441,7 @@ nsresult nsContentUtils::SendMouseEvent(
|
|
|
|
|
EventMessage msg;
|
|
|
|
|
Maybe<WidgetMouseEvent::ExitFrom> exitFrom;
|
|
|
|
|
bool contextMenuKey = false;
|
|
|
|
@ -1029,7 +1029,7 @@ index 66838dc517687e7583dfaa3c06a2dfe62afb4c5f..75f3326be1c4d9d828f548dc22ce8ad9
|
|
|
|
|
if (aType.EqualsLiteral("mousedown")) {
|
|
|
|
|
msg = eMouseDown;
|
|
|
|
|
} else if (aType.EqualsLiteral("mouseup")) {
|
|
|
|
|
@@ -8414,6 +8416,12 @@ nsresult nsContentUtils::SendMouseEvent(
|
|
|
|
|
@@ -8464,6 +8466,12 @@ nsresult nsContentUtils::SendMouseEvent(
|
|
|
|
|
msg = eMouseHitTest;
|
|
|
|
|
} else if (aType.EqualsLiteral("MozMouseExploreByTouch")) {
|
|
|
|
|
msg = eMouseExploreByTouch;
|
|
|
|
@ -1042,7 +1042,7 @@ index 66838dc517687e7583dfaa3c06a2dfe62afb4c5f..75f3326be1c4d9d828f548dc22ce8ad9
|
|
|
|
|
} else {
|
|
|
|
|
return NS_ERROR_FAILURE;
|
|
|
|
|
}
|
|
|
|
|
@@ -8422,12 +8430,21 @@ nsresult nsContentUtils::SendMouseEvent(
|
|
|
|
|
@@ -8472,12 +8480,21 @@ nsresult nsContentUtils::SendMouseEvent(
|
|
|
|
|
aInputSourceArg = MouseEvent_Binding::MOZ_SOURCE_MOUSE;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -1066,8 +1066,11 @@ index 66838dc517687e7583dfaa3c06a2dfe62afb4c5f..75f3326be1c4d9d828f548dc22ce8ad9
|
|
|
|
|
event.pointerId = aIdentifier;
|
|
|
|
|
event.mModifiers = GetWidgetModifiers(aModifiers);
|
|
|
|
|
event.mButton = aButton;
|
|
|
|
|
@@ -8440,6 +8457,7 @@ nsresult nsContentUtils::SendMouseEvent(
|
|
|
|
|
@@ -8488,8 +8505,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;
|
|
|
|
@ -1075,7 +1078,7 @@ index 66838dc517687e7583dfaa3c06a2dfe62afb4c5f..75f3326be1c4d9d828f548dc22ce8ad9
|
|
|
|
|
nsPresContext* presContext = aPresShell->GetPresContext();
|
|
|
|
|
if (!presContext) return NS_ERROR_FAILURE;
|
|
|
|
|
diff --git a/dom/base/nsContentUtils.h b/dom/base/nsContentUtils.h
|
|
|
|
|
index 10bb61f8f0ddba2f8460ccab5e23bea32df32857..b4c4f394cd8a71c57820d3cb562225910e1ba8d1 100644
|
|
|
|
|
index dd455bb3617fce75a94b3312894441ddc7d464d6..2637d4b7c523f90d7df96dc0468d581694852f9c 100644
|
|
|
|
|
--- a/dom/base/nsContentUtils.h
|
|
|
|
|
+++ b/dom/base/nsContentUtils.h
|
|
|
|
|
@@ -2911,7 +2911,8 @@ class nsContentUtils {
|
|
|
|
@ -1084,50 +1087,77 @@ index 10bb61f8f0ddba2f8460ccab5e23bea32df32857..b4c4f394cd8a71c57820d3cb56222591
|
|
|
|
|
mozilla::PreventDefaultResult* aPreventDefault,
|
|
|
|
|
- bool aIsDOMEventSynthesized, bool aIsWidgetEventSynthesized);
|
|
|
|
|
+ bool aIsDOMEventSynthesized, bool aIsWidgetEventSynthesized,
|
|
|
|
|
+ bool convertToPointer = true);
|
|
|
|
|
+ bool convertToPointer = true, uint32_t aJugglerEventId = 0);
|
|
|
|
|
|
|
|
|
|
static void FirePageShowEventForFrameLoaderSwap(
|
|
|
|
|
nsIDocShellTreeItem* aItem,
|
|
|
|
|
diff --git a/dom/base/nsDOMWindowUtils.cpp b/dom/base/nsDOMWindowUtils.cpp
|
|
|
|
|
index 0997ef3c1092b536d4462d60f81f09425d0537aa..9d4fd3f96e9565c2b824c404654a06d1ad473f1b 100644
|
|
|
|
|
index 007bcf54ca784d49655f1d9d56243dedc8dcafb4..a9ce0d07ffdd362cda194a8485aa8690a3c6ad4a 100644
|
|
|
|
|
--- a/dom/base/nsDOMWindowUtils.cpp
|
|
|
|
|
+++ b/dom/base/nsDOMWindowUtils.cpp
|
|
|
|
|
@@ -683,7 +683,7 @@ nsDOMWindowUtils::SendMouseEvent(
|
|
|
|
|
int32_t aClickCount, int32_t aModifiers, bool aIgnoreRootScrollFrame,
|
|
|
|
|
float aPressure, unsigned short aInputSourceArg,
|
|
|
|
|
bool aIsDOMEventSynthesized, bool aIsWidgetEventSynthesized,
|
|
|
|
|
- int32_t aButtons, uint32_t aIdentifier, uint8_t aOptionalArgCount,
|
|
|
|
|
+ int32_t aButtons, uint32_t aIdentifier, bool aDisablePointerEvent, uint8_t aOptionalArgCount,
|
|
|
|
|
bool* aPreventDefault) {
|
|
|
|
|
return SendMouseEventCommon(
|
|
|
|
|
aType, aX, aY, aButton, aClickCount, aModifiers, aIgnoreRootScrollFrame,
|
|
|
|
|
@@ -691,7 +691,7 @@ nsDOMWindowUtils::SendMouseEvent(
|
|
|
|
|
@@ -675,6 +675,26 @@ nsDOMWindowUtils::GetPresShellId(uint32_t* aPresShellId) {
|
|
|
|
|
return NS_ERROR_FAILURE;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
+static uint32_t sJugglerEventId = 1000;
|
|
|
|
|
+
|
|
|
|
|
+NS_IMETHODIMP
|
|
|
|
|
+nsDOMWindowUtils::JugglerSendMouseEvent(
|
|
|
|
|
+ const nsAString& aType, float aX, float aY, int32_t aButton,
|
|
|
|
|
+ int32_t aClickCount, int32_t aModifiers, bool aIgnoreRootScrollFrame,
|
|
|
|
|
+ float aPressure, unsigned short aInputSourceArg,
|
|
|
|
|
+ bool aIsDOMEventSynthesized, bool aIsWidgetEventSynthesized,
|
|
|
|
|
+ int32_t aButtons, uint32_t aIdentifier, bool aDisablePointerEvent,
|
|
|
|
|
+ uint32_t* aJugglerEventId) {
|
|
|
|
|
+ *aJugglerEventId = ++sJugglerEventId;
|
|
|
|
|
+ return SendMouseEventCommon(
|
|
|
|
|
+ aType, aX, aY, aButton, aClickCount, aModifiers, aIgnoreRootScrollFrame,
|
|
|
|
|
+ aPressure, aInputSourceArg,
|
|
|
|
|
+ aIdentifier, false,
|
|
|
|
|
+ nullptr, aIsDOMEventSynthesized,
|
|
|
|
|
+ aIsWidgetEventSynthesized,
|
|
|
|
|
+ aButtons, !aDisablePointerEvent, *aJugglerEventId);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
NS_IMETHODIMP
|
|
|
|
|
nsDOMWindowUtils::SendMouseEvent(
|
|
|
|
|
const nsAString& aType, float aX, float aY, int32_t aButton,
|
|
|
|
|
@@ -689,7 +709,7 @@ nsDOMWindowUtils::SendMouseEvent(
|
|
|
|
|
aOptionalArgCount >= 7 ? aIdentifier : DEFAULT_MOUSE_POINTER_ID, false,
|
|
|
|
|
aPreventDefault, aOptionalArgCount >= 4 ? aIsDOMEventSynthesized : true,
|
|
|
|
|
aOptionalArgCount >= 5 ? aIsWidgetEventSynthesized : false,
|
|
|
|
|
- aOptionalArgCount >= 6 ? aButtons : MOUSE_BUTTONS_NOT_SPECIFIED);
|
|
|
|
|
+ aOptionalArgCount >= 6 ? aButtons : MOUSE_BUTTONS_NOT_SPECIFIED, !aDisablePointerEvent);
|
|
|
|
|
+ aOptionalArgCount >= 6 ? aButtons : MOUSE_BUTTONS_NOT_SPECIFIED, true, 0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
NS_IMETHODIMP
|
|
|
|
|
@@ -718,13 +718,13 @@ nsDOMWindowUtils::SendMouseEventCommon(
|
|
|
|
|
@@ -707,7 +727,7 @@ nsDOMWindowUtils::SendMouseEventToWindow(
|
|
|
|
|
aOptionalArgCount >= 7 ? aIdentifier : DEFAULT_MOUSE_POINTER_ID, true,
|
|
|
|
|
nullptr, aOptionalArgCount >= 4 ? aIsDOMEventSynthesized : true,
|
|
|
|
|
aOptionalArgCount >= 5 ? aIsWidgetEventSynthesized : false,
|
|
|
|
|
- aOptionalArgCount >= 6 ? aButtons : MOUSE_BUTTONS_NOT_SPECIFIED);
|
|
|
|
|
+ aOptionalArgCount >= 6 ? aButtons : MOUSE_BUTTONS_NOT_SPECIFIED, 0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
NS_IMETHODIMP
|
|
|
|
|
@@ -716,13 +736,13 @@ nsDOMWindowUtils::SendMouseEventCommon(
|
|
|
|
|
int32_t aClickCount, int32_t aModifiers, bool aIgnoreRootScrollFrame,
|
|
|
|
|
float aPressure, unsigned short aInputSourceArg, uint32_t aPointerId,
|
|
|
|
|
bool aToWindow, bool* aPreventDefault, bool aIsDOMEventSynthesized,
|
|
|
|
|
- bool aIsWidgetEventSynthesized, int32_t aButtons) {
|
|
|
|
|
+ bool aIsWidgetEventSynthesized, int32_t aButtons, bool aConvertToPointer) {
|
|
|
|
|
+ bool aIsWidgetEventSynthesized, int32_t aButtons, bool aConvertToPointer, uint32_t aJugglerEventId) {
|
|
|
|
|
RefPtr<PresShell> presShell = GetPresShell();
|
|
|
|
|
PreventDefaultResult preventDefaultResult;
|
|
|
|
|
nsresult rv = nsContentUtils::SendMouseEvent(
|
|
|
|
|
presShell, aType, aX, aY, aButton, aButtons, aClickCount, aModifiers,
|
|
|
|
|
aIgnoreRootScrollFrame, aPressure, aInputSourceArg, aPointerId, aToWindow,
|
|
|
|
|
- &preventDefaultResult, aIsDOMEventSynthesized, aIsWidgetEventSynthesized);
|
|
|
|
|
+ &preventDefaultResult, aIsDOMEventSynthesized, aIsWidgetEventSynthesized, aConvertToPointer);
|
|
|
|
|
+ &preventDefaultResult, aIsDOMEventSynthesized, aIsWidgetEventSynthesized, aConvertToPointer, aJugglerEventId);
|
|
|
|
|
|
|
|
|
|
if (aPreventDefault) {
|
|
|
|
|
*aPreventDefault = preventDefaultResult != PreventDefaultResult::No;
|
|
|
|
|
diff --git a/dom/base/nsDOMWindowUtils.h b/dom/base/nsDOMWindowUtils.h
|
|
|
|
|
index 63968c9b7a4e418e4c0de6e7a75fa215a36a9105..4dcec26021e74ada0757b4686bd0782858995a4b 100644
|
|
|
|
|
index 63968c9b7a4e418e4c0de6e7a75fa215a36a9105..decf3ea3833ccdffd49a7aded2d600f9416e8306 100644
|
|
|
|
|
--- a/dom/base/nsDOMWindowUtils.h
|
|
|
|
|
+++ b/dom/base/nsDOMWindowUtils.h
|
|
|
|
|
@@ -93,7 +93,7 @@ class nsDOMWindowUtils final : public nsIDOMWindowUtils,
|
|
|
|
@ -1135,15 +1165,15 @@ index 63968c9b7a4e418e4c0de6e7a75fa215a36a9105..4dcec26021e74ada0757b4686bd07828
|
|
|
|
|
float aPressure, unsigned short aInputSourceArg, uint32_t aIdentifier,
|
|
|
|
|
bool aToWindow, bool* aPreventDefault, bool aIsDOMEventSynthesized,
|
|
|
|
|
- bool aIsWidgetEventSynthesized, int32_t aButtons);
|
|
|
|
|
+ bool aIsWidgetEventSynthesized, int32_t aButtons, bool aConvertToPointer = true);
|
|
|
|
|
+ bool aIsWidgetEventSynthesized, int32_t aButtons, bool aConvertToPointer = true, uint32_t aJugglerEventId = 0);
|
|
|
|
|
|
|
|
|
|
MOZ_CAN_RUN_SCRIPT
|
|
|
|
|
nsresult SendTouchEventCommon(
|
|
|
|
|
diff --git a/dom/base/nsFocusManager.cpp b/dom/base/nsFocusManager.cpp
|
|
|
|
|
index 7257629014b442de98176a313e2e51d1633b57a0..c3d647e663786acff4af2a340bb28e17dd4178ed 100644
|
|
|
|
|
index 415e941727187a9ec21aded76857e3d61c32c39b..aad2c96bcba8229b1cda3d578369af62692cf382 100644
|
|
|
|
|
--- a/dom/base/nsFocusManager.cpp
|
|
|
|
|
+++ b/dom/base/nsFocusManager.cpp
|
|
|
|
|
@@ -1633,6 +1633,10 @@ void nsFocusManager::SetFocusInner(Element* aNewContent, int32_t aFlags,
|
|
|
|
|
@@ -1656,6 +1656,10 @@ Maybe<uint64_t> nsFocusManager::SetFocusInner(Element* aNewContent,
|
|
|
|
|
(GetActiveBrowsingContext() == newRootBrowsingContext);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -1153,8 +1183,8 @@ index 7257629014b442de98176a313e2e51d1633b57a0..c3d647e663786acff4af2a340bb28e17
|
|
|
|
|
+
|
|
|
|
|
// Exit fullscreen if a website focuses another window
|
|
|
|
|
if (StaticPrefs::full_screen_api_exit_on_windowRaise() &&
|
|
|
|
|
!isElementInActiveWindow && (aFlags & FLAG_RAISE) &&
|
|
|
|
|
@@ -2944,7 +2948,9 @@ void nsFocusManager::RaiseWindow(nsPIDOMWindowOuter* aWindow,
|
|
|
|
|
!isElementInActiveWindow && (aFlags & FLAG_RAISE)) {
|
|
|
|
|
@@ -2935,7 +2939,9 @@ void nsFocusManager::RaiseWindow(nsPIDOMWindowOuter* aWindow,
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -1166,7 +1196,7 @@ index 7257629014b442de98176a313e2e51d1633b57a0..c3d647e663786acff4af2a340bb28e17
|
|
|
|
|
// 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 7a5df6943c7652d33f2b4ed773679fd6062023b5..c69fa9ed09ab132187917c4e3cead5647fc5ac68 100644
|
|
|
|
|
index 7a5df6943c7652d33f2b4ed773679fd6062023b5..786d50ddec3456dda59e36959fc9ec814770f6f1 100644
|
|
|
|
|
--- a/dom/base/nsGlobalWindowOuter.cpp
|
|
|
|
|
+++ b/dom/base/nsGlobalWindowOuter.cpp
|
|
|
|
|
@@ -2481,7 +2481,7 @@ nsresult nsGlobalWindowOuter::SetNewDocument(Document* aDocument,
|
|
|
|
@ -1219,21 +1249,6 @@ index 7a5df6943c7652d33f2b4ed773679fd6062023b5..c69fa9ed09ab132187917c4e3cead564
|
|
|
|
|
void nsGlobalWindowOuter::ClearStatus() { SetStatusOuter(u""_ns); }
|
|
|
|
|
|
|
|
|
|
void nsGlobalWindowOuter::SetDocShell(nsDocShell* aDocShell) {
|
|
|
|
|
@@ -3744,6 +3763,14 @@ Maybe<CSSIntSize> nsGlobalWindowOuter::GetRDMDeviceSize(
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
+ if (topInProcessContentDoc) {
|
|
|
|
|
+ nsIDocShell* docShell = topInProcessContentDoc->GetDocShell();
|
|
|
|
|
+ if (docShell && docShell->GetDeviceSizeIsPageSize()) {
|
|
|
|
|
+ nsPresContext* presContext = docShell->GetPresContext();
|
|
|
|
|
+ if (presContext)
|
|
|
|
|
+ return Some(CSSPixel::FromAppUnitsRounded(presContext->GetVisibleArea().Size()));
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
return Nothing();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
diff --git a/dom/base/nsGlobalWindowOuter.h b/dom/base/nsGlobalWindowOuter.h
|
|
|
|
|
index 5d2a162dce39170b66595de3f99d83afedfae287..a98c01bb6ce1971e41c0398900bf8060542663c9 100644
|
|
|
|
|
--- a/dom/base/nsGlobalWindowOuter.h
|
|
|
|
@ -1247,10 +1262,10 @@ index 5d2a162dce39170b66595de3f99d83afedfae287..a98c01bb6ce1971e41c0398900bf8060
|
|
|
|
|
// Outer windows only.
|
|
|
|
|
virtual void EnsureSizeAndPositionUpToDate() override;
|
|
|
|
|
diff --git a/dom/base/nsINode.cpp b/dom/base/nsINode.cpp
|
|
|
|
|
index 524ae260f708d5d3f6a7582984a57043eff679f2..503f1718527ef677ed9fef3f53e4dcc3f576aa34 100644
|
|
|
|
|
index 6a28c0f314e573373114b9c973f7b9087824cf34..bca53a40f213ba1f7f273ae000609749816f6786 100644
|
|
|
|
|
--- a/dom/base/nsINode.cpp
|
|
|
|
|
+++ b/dom/base/nsINode.cpp
|
|
|
|
|
@@ -1331,6 +1331,61 @@ void nsINode::GetBoxQuadsFromWindowOrigin(const BoxQuadOptions& aOptions,
|
|
|
|
|
@@ -1340,6 +1340,61 @@ void nsINode::GetBoxQuadsFromWindowOrigin(const BoxQuadOptions& aOptions,
|
|
|
|
|
mozilla::GetBoxQuadsFromWindowOrigin(this, aOptions, aResult, aRv);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -1298,8 +1313,8 @@ index 524ae260f708d5d3f6a7582984a57043eff679f2..503f1718527ef677ed9fef3f53e4dcc3
|
|
|
|
|
+ }
|
|
|
|
|
+ presShell->ScrollFrameIntoView(
|
|
|
|
|
+ primaryFrame, Some(rect),
|
|
|
|
|
+ ScrollAxis(WhereToScroll::Center, WhenToScroll::Always),
|
|
|
|
|
+ ScrollAxis(WhereToScroll::Center, WhenToScroll::Always),
|
|
|
|
|
+ ScrollAxis(WhereToScroll::Center, WhenToScroll::IfNotFullyVisible),
|
|
|
|
|
+ ScrollAxis(WhereToScroll::Center, WhenToScroll::IfNotFullyVisible),
|
|
|
|
|
+ ScrollFlags::ScrollOverflowHidden);
|
|
|
|
|
+ // If a _visual_ scroll update is pending, cancel it; otherwise, it will
|
|
|
|
|
+ // clobber next scroll (e.g. subsequent window.scrollTo(0, 0) wlll break).
|
|
|
|
@ -1313,10 +1328,10 @@ index 524ae260f708d5d3f6a7582984a57043eff679f2..503f1718527ef677ed9fef3f53e4dcc3
|
|
|
|
|
DOMQuad& aQuad, const GeometryNode& aFrom,
|
|
|
|
|
const ConvertCoordinateOptions& aOptions, CallerType aCallerType,
|
|
|
|
|
diff --git a/dom/base/nsINode.h b/dom/base/nsINode.h
|
|
|
|
|
index dfce140014c8a1009c3300a9a54871431f260d2e..f5e299613365ee9044ff1c688478172607318886 100644
|
|
|
|
|
index 1245cb9bd967d27cc95ba710999181d90a3531fd..a6c74c4ced45117f97874e0675c43ce04d22212e 100644
|
|
|
|
|
--- a/dom/base/nsINode.h
|
|
|
|
|
+++ b/dom/base/nsINode.h
|
|
|
|
|
@@ -2146,6 +2146,10 @@ class nsINode : public mozilla::dom::EventTarget {
|
|
|
|
|
@@ -2150,6 +2150,10 @@ class nsINode : public mozilla::dom::EventTarget {
|
|
|
|
|
nsTArray<RefPtr<DOMQuad>>& aResult,
|
|
|
|
|
ErrorResult& aRv);
|
|
|
|
|
|
|
|
|
@ -1356,7 +1371,7 @@ index 85a21e459305f556933f4dc0fa7441d8f9ed95a9..d7cb86479ba2ed06542307349d6d86df
|
|
|
|
|
|
|
|
|
|
static bool DumpEnabled();
|
|
|
|
|
diff --git a/dom/chrome-webidl/BrowsingContext.webidl b/dom/chrome-webidl/BrowsingContext.webidl
|
|
|
|
|
index 590ad9e2fd6f1457150a39aa2979bebcc991c5ed..e35107c8f5cc64aa97c80cf1a2e11e601deab23d 100644
|
|
|
|
|
index 369da91c6e31dbffe63fcd5044622bb8ca6150d5..aa874d57145261f14fe93e18e398c95eb63b8af5 100644
|
|
|
|
|
--- a/dom/chrome-webidl/BrowsingContext.webidl
|
|
|
|
|
+++ b/dom/chrome-webidl/BrowsingContext.webidl
|
|
|
|
|
@@ -52,6 +52,24 @@ enum PrefersColorSchemeOverride {
|
|
|
|
@ -1506,10 +1521,10 @@ index 7e1af00d05fbafa2d828e2c7e4dcc5c82d115f5b..e85af9718d064e4d2865bc944e9d4ba1
|
|
|
|
|
~Geolocation();
|
|
|
|
|
|
|
|
|
|
diff --git a/dom/html/HTMLInputElement.cpp b/dom/html/HTMLInputElement.cpp
|
|
|
|
|
index 84d72bb7c49d8e87e953441c9c842e2ba14016fd..f8cc70d6a5c3932d167627a8c2945113d9c6c31c 100644
|
|
|
|
|
index cb486a7b1270083498be997b31a6e29a206fc320..4387fe0a72463c3759eff30ee9e96e850ed39bc9 100644
|
|
|
|
|
--- a/dom/html/HTMLInputElement.cpp
|
|
|
|
|
+++ b/dom/html/HTMLInputElement.cpp
|
|
|
|
|
@@ -57,6 +57,7 @@
|
|
|
|
|
@@ -58,6 +58,7 @@
|
|
|
|
|
#include "mozilla/dom/Document.h"
|
|
|
|
|
#include "mozilla/dom/HTMLDataListElement.h"
|
|
|
|
|
#include "mozilla/dom/HTMLOptionElement.h"
|
|
|
|
@ -1517,7 +1532,7 @@ index 84d72bb7c49d8e87e953441c9c842e2ba14016fd..f8cc70d6a5c3932d167627a8c2945113
|
|
|
|
|
#include "nsIFormControlFrame.h"
|
|
|
|
|
#include "nsITextControlFrame.h"
|
|
|
|
|
#include "nsIFrame.h"
|
|
|
|
|
@@ -778,6 +779,12 @@ nsresult HTMLInputElement::InitFilePicker(FilePickerType aType) {
|
|
|
|
|
@@ -780,6 +781,12 @@ nsresult HTMLInputElement::InitFilePicker(FilePickerType aType) {
|
|
|
|
|
return NS_ERROR_FAILURE;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -1531,24 +1546,81 @@ index 84d72bb7c49d8e87e953441c9c842e2ba14016fd..f8cc70d6a5c3932d167627a8c2945113
|
|
|
|
|
return NS_OK;
|
|
|
|
|
}
|
|
|
|
|
diff --git a/dom/interfaces/base/nsIDOMWindowUtils.idl b/dom/interfaces/base/nsIDOMWindowUtils.idl
|
|
|
|
|
index 89338882e70f7954d5f728406302c8bfc88ab3af..30bef01638db72293ea093ecb572b71bb88f9528 100644
|
|
|
|
|
index 25633e4ed848996efb790f4d462d00cbffa13f6d..dc21dcafe7561c3bf226d5190670a1f9b389266b 100644
|
|
|
|
|
--- a/dom/interfaces/base/nsIDOMWindowUtils.idl
|
|
|
|
|
+++ b/dom/interfaces/base/nsIDOMWindowUtils.idl
|
|
|
|
|
@@ -372,7 +372,8 @@ interface nsIDOMWindowUtils : nsISupports {
|
|
|
|
|
[optional] in boolean aIsDOMEventSynthesized,
|
|
|
|
|
[optional] in boolean aIsWidgetEventSynthesized,
|
|
|
|
|
@@ -374,6 +374,26 @@ interface nsIDOMWindowUtils : nsISupports {
|
|
|
|
|
[optional] in long aButtons,
|
|
|
|
|
- [optional] in unsigned long aIdentifier);
|
|
|
|
|
+ [optional] in unsigned long aIdentifier,
|
|
|
|
|
+ [optional] in boolean aDisablePointerEvent);
|
|
|
|
|
[optional] in unsigned long aIdentifier);
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * Playwright: a separate method to dispatch mouse event with a
|
|
|
|
|
+ * specific `jugglerEventId`.
|
|
|
|
|
+ */
|
|
|
|
|
+ [can_run_script]
|
|
|
|
|
+ unsigned long jugglerSendMouseEvent(in AString aType,
|
|
|
|
|
+ in float aX,
|
|
|
|
|
+ in float aY,
|
|
|
|
|
+ in long aButton,
|
|
|
|
|
+ in long aClickCount,
|
|
|
|
|
+ in long aModifiers,
|
|
|
|
|
+ in boolean aIgnoreRootScrollFrame,
|
|
|
|
|
+ in float aPressure,
|
|
|
|
|
+ in unsigned short aInputSourceArg,
|
|
|
|
|
+ in boolean aIsDOMEventSynthesized,
|
|
|
|
|
+ in boolean aIsWidgetEventSynthesized,
|
|
|
|
|
+ in long aButtons,
|
|
|
|
|
+ in unsigned long aIdentifier,
|
|
|
|
|
+ in boolean aDisablePointerEvent);
|
|
|
|
|
+
|
|
|
|
|
/** Synthesize a touch event. The event types supported are:
|
|
|
|
|
* touchstart, touchend, touchmove, and touchcancel
|
|
|
|
|
*
|
|
|
|
|
diff --git a/dom/ipc/BrowserChild.cpp b/dom/ipc/BrowserChild.cpp
|
|
|
|
|
index 4d21d631a523e012acbb15fe6f274db67f462484..9f86f994acb494a49403ef313e48658d9cdd5232 100644
|
|
|
|
|
--- a/dom/ipc/BrowserChild.cpp
|
|
|
|
|
+++ b/dom/ipc/BrowserChild.cpp
|
|
|
|
|
@@ -1678,6 +1678,21 @@ void BrowserChild::HandleRealMouseButtonEvent(const WidgetMouseEvent& aEvent,
|
|
|
|
|
if (postLayerization) {
|
|
|
|
|
postLayerization->Register();
|
|
|
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ // Playwright: notify content that mouse event has been received and handled.
|
|
|
|
|
+ nsCOMPtr<nsIObserverService> observerService =
|
|
|
|
|
+ mozilla::services::GetObserverService();
|
|
|
|
|
+ if (observerService && aEvent.mJugglerEventId) {
|
|
|
|
|
+ if (aEvent.mMessage == eMouseUp) {
|
|
|
|
|
+ observerService->NotifyObservers(nullptr, "juggler-mouse-event-hit-renderer", NS_ConvertASCIItoUTF16(nsPrintfCString("mouseup %" PRIu32, aEvent.mJugglerEventId)).get());
|
|
|
|
|
+ } else if (aEvent.mMessage == eMouseDown) {
|
|
|
|
|
+ observerService->NotifyObservers(nullptr, "juggler-mouse-event-hit-renderer", NS_ConvertASCIItoUTF16(nsPrintfCString("mousedown %" PRIu32, aEvent.mJugglerEventId)).get());
|
|
|
|
|
+ } else if (aEvent.mMessage == eMouseMove) {
|
|
|
|
|
+ observerService->NotifyObservers(nullptr, "juggler-mouse-event-hit-renderer", NS_ConvertASCIItoUTF16(nsPrintfCString("mousemove %" PRIu32, aEvent.mJugglerEventId)).get());
|
|
|
|
|
+ } else if (aEvent.mMessage == eContextMenu) {
|
|
|
|
|
+ observerService->NotifyObservers(nullptr, "juggler-mouse-event-hit-renderer", NS_ConvertASCIItoUTF16(nsPrintfCString("contextmenu %" PRIu32, aEvent.mJugglerEventId)).get());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
mozilla::ipc::IPCResult BrowserChild::RecvNormalPriorityRealMouseButtonEvent(
|
|
|
|
|
diff --git a/dom/ipc/CoalescedMouseData.cpp b/dom/ipc/CoalescedMouseData.cpp
|
|
|
|
|
index 5aa445d2e0a6169e57c44569974d557b3baf7064..671f71979b407f0ca17c66f13805e851ba30479e 100644
|
|
|
|
|
--- a/dom/ipc/CoalescedMouseData.cpp
|
|
|
|
|
+++ b/dom/ipc/CoalescedMouseData.cpp
|
|
|
|
|
@@ -67,6 +67,9 @@ bool CoalescedMouseData::CanCoalesce(const WidgetMouseEvent& aEvent,
|
|
|
|
|
mCoalescedInputEvent->pointerId == aEvent.pointerId &&
|
|
|
|
|
mCoalescedInputEvent->mButton == aEvent.mButton &&
|
|
|
|
|
mCoalescedInputEvent->mButtons == aEvent.mButtons && mGuid == aGuid &&
|
|
|
|
|
+ // `mJugglerEventId` is 0 for non-juggler events and a unique number for
|
|
|
|
|
+ // juggler-emitted events.
|
|
|
|
|
+ mCoalescedInputEvent->mJugglerEventId == aEvent.mJugglerEventId &&
|
|
|
|
|
mInputBlockId == aInputBlockId);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
diff --git a/dom/media/systemservices/video_engine/desktop_capture_impl.cc b/dom/media/systemservices/video_engine/desktop_capture_impl.cc
|
|
|
|
|
index 5eddb4acb3b464e8a743c8b139231c537b364696..b1660d7497cf6b12892200dd8e2b37db745b8941 100644
|
|
|
|
|
index c5fc05f772900dd6d30b252783adb96dfbbde2a1..86d88db3ff9e411adf9fecb114e9ced1af29b610 100644
|
|
|
|
|
--- a/dom/media/systemservices/video_engine/desktop_capture_impl.cc
|
|
|
|
|
+++ b/dom/media/systemservices/video_engine/desktop_capture_impl.cc
|
|
|
|
|
@@ -129,11 +129,12 @@ int32_t ScreenDeviceInfoImpl::GetOrientation(const char* aDeviceUniqueIdUTF8,
|
|
|
|
|
@@ -132,11 +132,12 @@ int32_t ScreenDeviceInfoImpl::GetOrientation(const char* aDeviceUniqueIdUTF8,
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -1564,7 +1636,7 @@ index 5eddb4acb3b464e8a743c8b139231c537b364696..b1660d7497cf6b12892200dd8e2b37db
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int32_t WindowDeviceInfoImpl::Init() {
|
|
|
|
|
@@ -429,8 +430,12 @@ int32_t DesktopCaptureImpl::LazyInitDesktopCapturer() {
|
|
|
|
|
@@ -436,8 +437,12 @@ int32_t DesktopCaptureImpl::EnsureCapturer() {
|
|
|
|
|
DesktopCapturer::SourceId sourceId = atoi(mDeviceUniqueId.c_str());
|
|
|
|
|
windowCapturer->SelectSource(sourceId);
|
|
|
|
|
|
|
|
|
@ -1579,7 +1651,7 @@ index 5eddb4acb3b464e8a743c8b139231c537b364696..b1660d7497cf6b12892200dd8e2b37db
|
|
|
|
|
} else if (mDeviceType == CaptureDeviceType::Browser) {
|
|
|
|
|
// XXX We don't capture cursors, so avoid the extra indirection layer. We
|
|
|
|
|
// could also pass null for the pMouseCursorMonitor.
|
|
|
|
|
@@ -446,7 +451,8 @@ int32_t DesktopCaptureImpl::LazyInitDesktopCapturer() {
|
|
|
|
|
@@ -453,7 +458,8 @@ int32_t DesktopCaptureImpl::EnsureCapturer() {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
DesktopCaptureImpl::DesktopCaptureImpl(const int32_t aId, const char* aUniqueId,
|
|
|
|
@ -1589,15 +1661,15 @@ index 5eddb4acb3b464e8a743c8b139231c537b364696..b1660d7497cf6b12892200dd8e2b37db
|
|
|
|
|
: mModuleId(aId),
|
|
|
|
|
mTrackingId(mozilla::TrackingId(CaptureEngineToTrackingSourceStr([&] {
|
|
|
|
|
switch (aType) {
|
|
|
|
|
@@ -463,6 +469,7 @@ DesktopCaptureImpl::DesktopCaptureImpl(const int32_t aId, const char* aUniqueId,
|
|
|
|
|
aId)),
|
|
|
|
|
mDeviceUniqueId(aUniqueId),
|
|
|
|
|
@@ -472,6 +478,7 @@ DesktopCaptureImpl::DesktopCaptureImpl(const int32_t aId, const char* aUniqueId,
|
|
|
|
|
mDeviceType(aType),
|
|
|
|
|
mControlThread(mozilla::GetCurrentSerialEventTarget()),
|
|
|
|
|
mNextFrameMinimumTime(Timestamp::Zero()),
|
|
|
|
|
+ capture_cursor_(aCaptureCursor),
|
|
|
|
|
mTimeEvent(EventWrapper::Create()),
|
|
|
|
|
mLastFrameTimeMs(rtc::TimeMillis()),
|
|
|
|
|
mRunning(false),
|
|
|
|
|
@@ -494,6 +501,19 @@ void DesktopCaptureImpl::DeRegisterCaptureDataCallback(
|
|
|
|
|
mCallbacks("DesktopCaptureImpl::mCallbacks") {}
|
|
|
|
|
|
|
|
|
|
@@ -492,6 +499,19 @@ void DesktopCaptureImpl::DeRegisterCaptureDataCallback(
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -1617,7 +1689,7 @@ index 5eddb4acb3b464e8a743c8b139231c537b364696..b1660d7497cf6b12892200dd8e2b37db
|
|
|
|
|
int32_t DesktopCaptureImpl::StopCaptureIfAllClientsClose() {
|
|
|
|
|
{
|
|
|
|
|
auto callbacks = mCallbacks.Lock();
|
|
|
|
|
@@ -679,6 +699,15 @@ void DesktopCaptureImpl::OnCaptureResult(DesktopCapturer::Result aResult,
|
|
|
|
|
@@ -618,6 +638,15 @@ void DesktopCaptureImpl::OnCaptureResult(DesktopCapturer::Result aResult,
|
|
|
|
|
frameInfo.height = aFrame->size().height();
|
|
|
|
|
frameInfo.videoType = VideoType::kARGB;
|
|
|
|
|
|
|
|
|
@ -1632,12 +1704,20 @@ index 5eddb4acb3b464e8a743c8b139231c537b364696..b1660d7497cf6b12892200dd8e2b37db
|
|
|
|
|
+
|
|
|
|
|
size_t videoFrameLength =
|
|
|
|
|
frameInfo.width * frameInfo.height * DesktopFrame::kBytesPerPixel;
|
|
|
|
|
IncomingFrame(videoFrame, videoFrameLength,
|
|
|
|
|
|
|
|
|
|
diff --git a/dom/media/systemservices/video_engine/desktop_capture_impl.h b/dom/media/systemservices/video_engine/desktop_capture_impl.h
|
|
|
|
|
index fbbba4b8cd3c4aa93ae4c5f3f34ca78e926a16a7..57a1a7e560e5b862ef0fe18922b25a4b76ec2b88 100644
|
|
|
|
|
index 162589cb0902820afae86f0def2afab7630b96aa..4b95c351d813f5af5e316ea32fc8128ca3e1c8fb 100644
|
|
|
|
|
--- a/dom/media/systemservices/video_engine/desktop_capture_impl.h
|
|
|
|
|
+++ b/dom/media/systemservices/video_engine/desktop_capture_impl.h
|
|
|
|
|
@@ -48,6 +48,21 @@ namespace webrtc {
|
|
|
|
|
@@ -24,6 +24,7 @@
|
|
|
|
|
#include "api/video/video_sink_interface.h"
|
|
|
|
|
#include "modules/desktop_capture/desktop_capturer.h"
|
|
|
|
|
#include "modules/video_capture/video_capture.h"
|
|
|
|
|
+#include "rtc_base/deprecated/recursive_critical_section.h"
|
|
|
|
|
|
|
|
|
|
#include "desktop_device_info.h"
|
|
|
|
|
#include "mozilla/DataMutex.h"
|
|
|
|
|
@@ -43,6 +44,21 @@ namespace webrtc {
|
|
|
|
|
|
|
|
|
|
class VideoCaptureEncodeInterface;
|
|
|
|
|
|
|
|
|
@ -1659,7 +1739,7 @@ index fbbba4b8cd3c4aa93ae4c5f3f34ca78e926a16a7..57a1a7e560e5b862ef0fe18922b25a4b
|
|
|
|
|
// simulate deviceInfo interface for video engine, bridge screen/application and
|
|
|
|
|
// real screen/application device info
|
|
|
|
|
|
|
|
|
|
@@ -160,13 +175,13 @@ class BrowserDeviceInfoImpl : public VideoCaptureModule::DeviceInfo {
|
|
|
|
|
@@ -155,13 +171,13 @@ class BrowserDeviceInfoImpl : public VideoCaptureModule::DeviceInfo {
|
|
|
|
|
// As with video, DesktopCaptureImpl is a proxy for screen sharing
|
|
|
|
|
// and follows the video pipeline design
|
|
|
|
|
class DesktopCaptureImpl : public DesktopCapturer::Callback,
|
|
|
|
@ -1676,7 +1756,7 @@ index fbbba4b8cd3c4aa93ae4c5f3f34ca78e926a16a7..57a1a7e560e5b862ef0fe18922b25a4b
|
|
|
|
|
|
|
|
|
|
[[nodiscard]] static std::shared_ptr<VideoCaptureModule::DeviceInfo>
|
|
|
|
|
CreateDeviceInfo(const int32_t aId,
|
|
|
|
|
@@ -178,6 +193,8 @@ class DesktopCaptureImpl : public DesktopCapturer::Callback,
|
|
|
|
|
@@ -173,6 +189,8 @@ class DesktopCaptureImpl : public DesktopCapturer::Callback,
|
|
|
|
|
void DeRegisterCaptureDataCallback(
|
|
|
|
|
rtc::VideoSinkInterface<VideoFrame>* aCallback) override;
|
|
|
|
|
int32_t StopCaptureIfAllClientsClose() override;
|
|
|
|
@ -1685,7 +1765,7 @@ index fbbba4b8cd3c4aa93ae4c5f3f34ca78e926a16a7..57a1a7e560e5b862ef0fe18922b25a4b
|
|
|
|
|
|
|
|
|
|
int32_t SetCaptureRotation(VideoRotation aRotation) override;
|
|
|
|
|
bool SetApplyRotation(bool aEnable) override;
|
|
|
|
|
@@ -198,7 +215,8 @@ class DesktopCaptureImpl : public DesktopCapturer::Callback,
|
|
|
|
|
@@ -195,7 +213,8 @@ class DesktopCaptureImpl : public DesktopCapturer::Callback,
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
DesktopCaptureImpl(const int32_t aId, const char* aUniqueId,
|
|
|
|
@ -1693,25 +1773,26 @@ index fbbba4b8cd3c4aa93ae4c5f3f34ca78e926a16a7..57a1a7e560e5b862ef0fe18922b25a4b
|
|
|
|
|
+ const mozilla::camera::CaptureDeviceType aType,
|
|
|
|
|
+ bool aCaptureCusor);
|
|
|
|
|
virtual ~DesktopCaptureImpl();
|
|
|
|
|
int32_t DeliverCapturedFrame(webrtc::VideoFrame& aCaptureFrame);
|
|
|
|
|
|
|
|
|
|
@@ -215,6 +233,8 @@ class DesktopCaptureImpl : public DesktopCapturer::Callback,
|
|
|
|
|
void LazyInitCaptureThread();
|
|
|
|
|
int32_t LazyInitDesktopCapturer();
|
|
|
|
|
|
|
|
|
|
+ std::set<RawFrameCallback*> _rawFrameCallbacks;
|
|
|
|
|
private:
|
|
|
|
|
@@ -204,6 +223,9 @@ class DesktopCaptureImpl : public DesktopCapturer::Callback,
|
|
|
|
|
int32_t EnsureCapturer();
|
|
|
|
|
void InitOnThread(int aFramerate);
|
|
|
|
|
void ShutdownOnThread();
|
|
|
|
|
+
|
|
|
|
|
+ rtc::RecursiveCriticalSection mApiCs;
|
|
|
|
|
+ std::set<RawFrameCallback*> _rawFrameCallbacks;
|
|
|
|
|
// DesktopCapturer::Callback interface.
|
|
|
|
|
void OnCaptureResult(DesktopCapturer::Result result,
|
|
|
|
|
std::unique_ptr<DesktopFrame> frame) override;
|
|
|
|
|
@@ -231,6 +251,7 @@ class DesktopCaptureImpl : public DesktopCapturer::Callback,
|
|
|
|
|
std::atomic<uint32_t> mMaxFPSNeeded = {0};
|
|
|
|
|
// Set in StartCapture.
|
|
|
|
|
void OnCaptureResult(DesktopCapturer::Result aResult,
|
|
|
|
|
std::unique_ptr<DesktopFrame> aFrame) override;
|
|
|
|
|
@@ -215,6 +237,7 @@ class DesktopCaptureImpl : public DesktopCapturer::Callback,
|
|
|
|
|
const nsCOMPtr<nsISerialEventTarget> mControlThread;
|
|
|
|
|
// Set in StartCapture. mControlThread only.
|
|
|
|
|
VideoCaptureCapability mRequestedCapability;
|
|
|
|
|
+ bool capture_cursor_ = true;
|
|
|
|
|
// This is created on the main thread and accessed on both the main thread
|
|
|
|
|
// and the capturer thread. It is created prior to the capturer thread
|
|
|
|
|
// starting and is destroyed after it is stopped.
|
|
|
|
|
// This is created on mControlThread and accessed on both mControlThread and
|
|
|
|
|
// mCaptureThread. It is created prior to mCaptureThread starting and is
|
|
|
|
|
// destroyed after it is stopped.
|
|
|
|
|
diff --git a/dom/script/ScriptSettings.cpp b/dom/script/ScriptSettings.cpp
|
|
|
|
|
index 1f2d92bcb5d989bf9ecc044f8c51006f991b0007..9cf5dd885e658e0fe5e7ab75e7fc1f97a8d214b8 100644
|
|
|
|
|
--- a/dom/script/ScriptSettings.cpp
|
|
|
|
@ -1796,10 +1877,10 @@ index 2f71b284ee5f7e11f117c447834b48355784448c..2640bd57123c2b03bf4b06a2419cd020
|
|
|
|
|
* 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 3cc7ccebd23b1136e6360ed40c30353de2f43022..aad9ee4a96ec874fe81f32e131c86c7ebf6c5652 100644
|
|
|
|
|
index ecafc907fa17f16561d6bd43061aacf5eb8c3076..b90c50fdbc7186702959a2f1cc12d82dd11d9ac3 100644
|
|
|
|
|
--- a/dom/workers/RuntimeService.cpp
|
|
|
|
|
+++ b/dom/workers/RuntimeService.cpp
|
|
|
|
|
@@ -983,7 +983,7 @@ void PrefLanguagesChanged(const char* /* aPrefName */, void* /* aClosure */) {
|
|
|
|
|
@@ -982,7 +982,7 @@ void PrefLanguagesChanged(const char* /* aPrefName */, void* /* aClosure */) {
|
|
|
|
|
AssertIsOnMainThread();
|
|
|
|
|
|
|
|
|
|
nsTArray<nsString> languages;
|
|
|
|
@ -1808,7 +1889,7 @@ index 3cc7ccebd23b1136e6360ed40c30353de2f43022..aad9ee4a96ec874fe81f32e131c86c7e
|
|
|
|
|
|
|
|
|
|
RuntimeService* runtime = RuntimeService::GetService();
|
|
|
|
|
if (runtime) {
|
|
|
|
|
@@ -1185,8 +1185,7 @@ bool RuntimeService::RegisterWorker(WorkerPrivate& aWorkerPrivate) {
|
|
|
|
|
@@ -1184,8 +1184,7 @@ bool RuntimeService::RegisterWorker(WorkerPrivate& aWorkerPrivate) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// The navigator overridden properties should have already been read.
|
|
|
|
@ -1818,7 +1899,7 @@ index 3cc7ccebd23b1136e6360ed40c30353de2f43022..aad9ee4a96ec874fe81f32e131c86c7e
|
|
|
|
|
mNavigatorPropertiesLoaded = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -1784,6 +1783,13 @@ void RuntimeService::PropagateStorageAccessPermissionGranted(
|
|
|
|
|
@@ -1783,6 +1782,13 @@ void RuntimeService::PropagateStorageAccessPermissionGranted(
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -1832,7 +1913,7 @@ index 3cc7ccebd23b1136e6360ed40c30353de2f43022..aad9ee4a96ec874fe81f32e131c86c7e
|
|
|
|
|
template <typename Func>
|
|
|
|
|
void RuntimeService::BroadcastAllWorkers(const Func& aFunc) {
|
|
|
|
|
AssertIsOnMainThread();
|
|
|
|
|
@@ -2211,6 +2217,14 @@ void PropagateStorageAccessPermissionGrantedToWorkers(
|
|
|
|
|
@@ -2210,6 +2216,14 @@ void PropagateStorageAccessPermissionGrantedToWorkers(
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -1874,10 +1955,10 @@ index d10dabb5c5ff8e17851edf2bd2efc08e74584d8e..53c4070c5fde43b27fb8fbfdcf4c23d8
|
|
|
|
|
|
|
|
|
|
bool IsWorkerGlobal(JSObject* global);
|
|
|
|
|
diff --git a/dom/workers/WorkerPrivate.cpp b/dom/workers/WorkerPrivate.cpp
|
|
|
|
|
index 835017a4d681611c4c73d48a04f776ca042b2abc..5f281c8e07e0b53cede0f2f088822c62b1277ddf 100644
|
|
|
|
|
index a5c7f0eb41e83353916819c8c75aec475249356b..706d8501be1f1cb194648950a7e62ea0621febba 100644
|
|
|
|
|
--- a/dom/workers/WorkerPrivate.cpp
|
|
|
|
|
+++ b/dom/workers/WorkerPrivate.cpp
|
|
|
|
|
@@ -702,6 +702,18 @@ class UpdateContextOptionsRunnable final : public WorkerControlRunnable {
|
|
|
|
|
@@ -703,6 +703,18 @@ class UpdateContextOptionsRunnable final : public WorkerControlRunnable {
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
@ -1896,7 +1977,7 @@ index 835017a4d681611c4c73d48a04f776ca042b2abc..5f281c8e07e0b53cede0f2f088822c62
|
|
|
|
|
class UpdateLanguagesRunnable final : public WorkerRunnable {
|
|
|
|
|
nsTArray<nsString> mLanguages;
|
|
|
|
|
|
|
|
|
|
@@ -1973,6 +1985,16 @@ void WorkerPrivate::UpdateContextOptions(
|
|
|
|
|
@@ -1974,6 +1986,16 @@ void WorkerPrivate::UpdateContextOptions(
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -1913,7 +1994,7 @@ index 835017a4d681611c4c73d48a04f776ca042b2abc..5f281c8e07e0b53cede0f2f088822c62
|
|
|
|
|
void WorkerPrivate::UpdateLanguages(const nsTArray<nsString>& aLanguages) {
|
|
|
|
|
AssertIsOnParentThread();
|
|
|
|
|
|
|
|
|
|
@@ -5290,6 +5312,15 @@ void WorkerPrivate::UpdateContextOptionsInternal(
|
|
|
|
|
@@ -5287,6 +5309,15 @@ void WorkerPrivate::UpdateContextOptionsInternal(
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -1930,7 +2011,7 @@ index 835017a4d681611c4c73d48a04f776ca042b2abc..5f281c8e07e0b53cede0f2f088822c62
|
|
|
|
|
const nsTArray<nsString>& aLanguages) {
|
|
|
|
|
WorkerGlobalScope* globalScope = GlobalScope();
|
|
|
|
|
diff --git a/dom/workers/WorkerPrivate.h b/dom/workers/WorkerPrivate.h
|
|
|
|
|
index a3d28933a02e7d147f7b217cb7753036e8c503cf..a7f081c8869a52d16e91d86ed159310dd7a9fda5 100644
|
|
|
|
|
index bc6e31d0aecf437e22f758cc1b1485712bd507fd..5a6b1213ea1a81205894ccc78571be0978cf6ecc 100644
|
|
|
|
|
--- a/dom/workers/WorkerPrivate.h
|
|
|
|
|
+++ b/dom/workers/WorkerPrivate.h
|
|
|
|
|
@@ -340,6 +340,8 @@ class WorkerPrivate final
|
|
|
|
@ -2004,10 +2085,10 @@ index cd641a54d9f968b4f5ac62aff701576e63a29439..27067c68a74a5578b8b5e6bbef3a4b48
|
|
|
|
|
inline ClippedTime TimeClip(double time);
|
|
|
|
|
|
|
|
|
|
diff --git a/js/src/debugger/Object.cpp b/js/src/debugger/Object.cpp
|
|
|
|
|
index 56c846794236da09f818e123afdcd43cd2956625..e4c543eaa84bc69677c2833f2bc1127f48a20e07 100644
|
|
|
|
|
index 893542410468e2a999d49a826614fcba94576ccd..ff4daddfbbaa239cf12a05907f6f33b8a3be0bab 100644
|
|
|
|
|
--- a/js/src/debugger/Object.cpp
|
|
|
|
|
+++ b/js/src/debugger/Object.cpp
|
|
|
|
|
@@ -2382,7 +2382,11 @@ Maybe<Completion> DebuggerObject::call(JSContext* cx,
|
|
|
|
|
@@ -2421,7 +2421,11 @@ Maybe<Completion> DebuggerObject::call(JSContext* cx,
|
|
|
|
|
invokeArgs[i].set(args2[i]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -2169,10 +2250,10 @@ index dac899f7558b26d6848da8b98ed8a93555c8751a..2a07d67fa1c2840b25085566e84dc3b2
|
|
|
|
|
// No boxes to return
|
|
|
|
|
return;
|
|
|
|
|
diff --git a/layout/base/PresShell.cpp b/layout/base/PresShell.cpp
|
|
|
|
|
index 0e38125bc75874f4edbe1916194204ee8845a9bd..96cfa21eed9a4c33ffc7095458268acb263bc75a 100644
|
|
|
|
|
index 4b16430f9d713428c9df5607d3b25b9c2d777647..4f42913c7ecee91921e1f528d0198cf3591eb3a2 100644
|
|
|
|
|
--- a/layout/base/PresShell.cpp
|
|
|
|
|
+++ b/layout/base/PresShell.cpp
|
|
|
|
|
@@ -10936,7 +10936,9 @@ auto PresShell::ComputeActiveness() const -> Activeness {
|
|
|
|
|
@@ -10901,7 +10901,9 @@ auto PresShell::ComputeActiveness() const -> Activeness {
|
|
|
|
|
if (!browserChild->IsVisible()) {
|
|
|
|
|
MOZ_LOG(gLog, LogLevel::Debug,
|
|
|
|
|
(" > BrowserChild %p is not visible", browserChild));
|
|
|
|
@ -2184,10 +2265,10 @@ index 0e38125bc75874f4edbe1916194204ee8845a9bd..96cfa21eed9a4c33ffc7095458268acb
|
|
|
|
|
|
|
|
|
|
// If the browser is visible but just due to be preserving layers
|
|
|
|
|
diff --git a/layout/style/GeckoBindings.h b/layout/style/GeckoBindings.h
|
|
|
|
|
index 953a040ecf8c99364faa7cbd4d1f212971fe9b47..aa63c02a85cd23303cb4874dbed9425bf4e315ac 100644
|
|
|
|
|
index 171a524cf42b2ca9304a709401f77d12c952c8c4..7b5f0a93c06738927e34de183fa7b28dc5d8e16a 100644
|
|
|
|
|
--- a/layout/style/GeckoBindings.h
|
|
|
|
|
+++ b/layout/style/GeckoBindings.h
|
|
|
|
|
@@ -615,6 +615,7 @@ void Gecko_MediaFeatures_GetDeviceSize(const mozilla::dom::Document*,
|
|
|
|
|
@@ -630,6 +630,7 @@ void Gecko_MediaFeatures_GetDeviceSize(const mozilla::dom::Document*,
|
|
|
|
|
|
|
|
|
|
float Gecko_MediaFeatures_GetResolution(const mozilla::dom::Document*);
|
|
|
|
|
bool Gecko_MediaFeatures_PrefersReducedMotion(const mozilla::dom::Document*);
|
|
|
|
@ -2196,10 +2277,10 @@ index 953a040ecf8c99364faa7cbd4d1f212971fe9b47..aa63c02a85cd23303cb4874dbed9425b
|
|
|
|
|
const mozilla::dom::Document*);
|
|
|
|
|
mozilla::StylePrefersColorScheme Gecko_MediaFeatures_PrefersColorScheme(
|
|
|
|
|
diff --git a/layout/style/nsMediaFeatures.cpp b/layout/style/nsMediaFeatures.cpp
|
|
|
|
|
index 5cd90a4ca6cb85808076ece7dbc616c3fecdc352..7fbb6e25a815c4d63919c40beaea89aae62add59 100644
|
|
|
|
|
index 3e1201e8877dd3a2bd1897f8b50732c8579b27f4..d27139a4926c12b9e389f45ad7de8f59fb421f4b 100644
|
|
|
|
|
--- a/layout/style/nsMediaFeatures.cpp
|
|
|
|
|
+++ b/layout/style/nsMediaFeatures.cpp
|
|
|
|
|
@@ -276,10 +276,11 @@ bool Gecko_MediaFeatures_MatchesPlatform(StylePlatform aPlatform) {
|
|
|
|
|
@@ -277,10 +277,11 @@ bool Gecko_MediaFeatures_MatchesPlatform(StylePlatform aPlatform) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool Gecko_MediaFeatures_PrefersReducedMotion(const Document* aDocument) {
|
|
|
|
@ -2216,10 +2297,10 @@ index 5cd90a4ca6cb85808076ece7dbc616c3fecdc352..7fbb6e25a815c4d63919c40beaea89aa
|
|
|
|
|
|
|
|
|
|
StylePrefersColorScheme Gecko_MediaFeatures_PrefersColorScheme(
|
|
|
|
|
diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js
|
|
|
|
|
index 35dc85223333f510b7dd7b96739738b0f8a1629a..eca736a28ff5a9f75a6e1f19f8f4bc9614a93af0 100644
|
|
|
|
|
index 22a15d306b807902c93dede5855007705237bdbd..65c70243944c87b6894d3e654fd0e4f971cfea70 100644
|
|
|
|
|
--- a/modules/libpref/init/all.js
|
|
|
|
|
+++ b/modules/libpref/init/all.js
|
|
|
|
|
@@ -4117,7 +4117,9 @@ pref("devtools.experiment.f12.shortcut_disabled", false);
|
|
|
|
|
@@ -4113,7 +4113,9 @@ pref("devtools.experiment.f12.shortcut_disabled", false);
|
|
|
|
|
// doesn't provide a way to lock the pref
|
|
|
|
|
pref("dom.postMessage.sharedArrayBuffer.bypassCOOP_COEP.insecure.enabled", false);
|
|
|
|
|
#else
|
|
|
|
@ -2382,7 +2463,7 @@ index 94f47133802fd47a8a2bb800bdda8382d7ee82e5..2aa50e24dc1cb39012ed1d2b3b370cce
|
|
|
|
|
: AppConstants.REMOTE_SETTINGS_SERVER_URL;
|
|
|
|
|
},
|
|
|
|
|
diff --git a/servo/components/style/gecko/media_features.rs b/servo/components/style/gecko/media_features.rs
|
|
|
|
|
index 8f56f185d2ab47041a73837fe1b150c305db2893..8282ca4c0aa6d5848642fcfb48e74a90924ca7fe 100644
|
|
|
|
|
index e2ba9f62f0fc8ab83a1d810f74f17d6dd195d6c2..23e268b300475b9372a31e836e52240f5b84852a 100644
|
|
|
|
|
--- a/servo/components/style/gecko/media_features.rs
|
|
|
|
|
+++ b/servo/components/style/gecko/media_features.rs
|
|
|
|
|
@@ -265,10 +265,15 @@ pub enum ForcedColors {
|
|
|
|
@ -2560,7 +2641,7 @@ index e1e46ccdceae595f95d100116ff480905047e82b..eaa0252e768140120158525723ad867b
|
|
|
|
|
// 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 540aaedd7462759740df31a0cb5d228651ba94b7..c0a1119dc4a51e7ff8cbfdbda5f007d9eb958948 100644
|
|
|
|
|
index 43dc9b0614ab007c938dbf66a02ff614524353b7..758dc42b1fcd4f81a1a13ae9e30942489a1b620c 100644
|
|
|
|
|
--- a/uriloader/exthandler/nsExternalHelperAppService.cpp
|
|
|
|
|
+++ b/uriloader/exthandler/nsExternalHelperAppService.cpp
|
|
|
|
|
@@ -112,6 +112,7 @@
|
|
|
|
@ -2679,10 +2760,10 @@ index 540aaedd7462759740df31a0cb5d228651ba94b7..c0a1119dc4a51e7ff8cbfdbda5f007d9
|
|
|
|
|
// OnStartRequest)
|
|
|
|
|
mDialog = nullptr;
|
|
|
|
|
diff --git a/uriloader/exthandler/nsExternalHelperAppService.h b/uriloader/exthandler/nsExternalHelperAppService.h
|
|
|
|
|
index 62f9d60abcd072e4ca23cd44cf52133d29b91dfc..5ebb5c6c305fdbc761641cdf2929787874dad5df 100644
|
|
|
|
|
index 6c8cbc5871d3aa721a3f1a3ff6c0ef8b0044c63e..8e7c9af1a2cfe60c9c543af1ab55f6c229000bd4 100644
|
|
|
|
|
--- a/uriloader/exthandler/nsExternalHelperAppService.h
|
|
|
|
|
+++ b/uriloader/exthandler/nsExternalHelperAppService.h
|
|
|
|
|
@@ -253,6 +253,8 @@ class nsExternalHelperAppService : public nsIExternalHelperAppService,
|
|
|
|
|
@@ -257,6 +257,8 @@ class nsExternalHelperAppService : public nsIExternalHelperAppService,
|
|
|
|
|
mozilla::dom::BrowsingContext* aContentContext, bool aForceSave,
|
|
|
|
|
nsIInterfaceRequestor* aWindowContext,
|
|
|
|
|
nsIStreamListener** aStreamListener);
|
|
|
|
@ -2691,7 +2772,7 @@ index 62f9d60abcd072e4ca23cd44cf52133d29b91dfc..5ebb5c6c305fdbc761641cdf29297878
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
@@ -452,6 +454,9 @@ class nsExternalAppHandler final : public nsIStreamListener,
|
|
|
|
|
@@ -456,6 +458,9 @@ class nsExternalAppHandler final : public nsIStreamListener,
|
|
|
|
|
* Upon successful return, both mTempFile and mSaver will be valid.
|
|
|
|
|
*/
|
|
|
|
|
nsresult SetUpTempFile(nsIChannel* aChannel);
|
|
|
|
@ -2768,6 +2849,52 @@ index 1c25e9d9a101233f71e92288a0f93125b81ac1c5..22cf67b0f6e3ddd2b3ed725a314ba6a9
|
|
|
|
|
return new InProcessCompositorWidget(aOptions, widget);
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
diff --git a/widget/MouseEvents.h b/widget/MouseEvents.h
|
|
|
|
|
index 5a19cb4082674ede982a0c66c84bf7c4642abe2b..5fe6ae7b5bf605e5d9130aa164d7cbbb486e54e0 100644
|
|
|
|
|
--- a/widget/MouseEvents.h
|
|
|
|
|
+++ b/widget/MouseEvents.h
|
|
|
|
|
@@ -203,6 +203,7 @@ class WidgetMouseEvent : public WidgetMouseEventBase,
|
|
|
|
|
: mReason(eReal),
|
|
|
|
|
mContextMenuTrigger(eNormal),
|
|
|
|
|
mClickCount(0),
|
|
|
|
|
+ mJugglerEventId(0),
|
|
|
|
|
mIgnoreRootScrollFrame(false),
|
|
|
|
|
mUseLegacyNonPrimaryDispatch(false),
|
|
|
|
|
mClickEventPrevented(false) {}
|
|
|
|
|
@@ -213,6 +214,7 @@ class WidgetMouseEvent : public WidgetMouseEventBase,
|
|
|
|
|
mReason(aReason),
|
|
|
|
|
mContextMenuTrigger(eNormal),
|
|
|
|
|
mClickCount(0),
|
|
|
|
|
+ mJugglerEventId(0),
|
|
|
|
|
mIgnoreRootScrollFrame(false),
|
|
|
|
|
mUseLegacyNonPrimaryDispatch(false),
|
|
|
|
|
mClickEventPrevented(false) {}
|
|
|
|
|
@@ -231,6 +233,7 @@ class WidgetMouseEvent : public WidgetMouseEventBase,
|
|
|
|
|
mReason(aReason),
|
|
|
|
|
mContextMenuTrigger(aContextMenuTrigger),
|
|
|
|
|
mClickCount(0),
|
|
|
|
|
+ mJugglerEventId(0),
|
|
|
|
|
mIgnoreRootScrollFrame(false),
|
|
|
|
|
mUseLegacyNonPrimaryDispatch(false),
|
|
|
|
|
mClickEventPrevented(false) {
|
|
|
|
|
@@ -280,6 +283,9 @@ class WidgetMouseEvent : public WidgetMouseEventBase,
|
|
|
|
|
// Otherwise, this must be 0.
|
|
|
|
|
uint32_t mClickCount;
|
|
|
|
|
|
|
|
|
|
+ // Unique event ID
|
|
|
|
|
+ uint32_t mJugglerEventId;
|
|
|
|
|
+
|
|
|
|
|
// Whether the event should ignore scroll frame bounds during dispatch.
|
|
|
|
|
bool mIgnoreRootScrollFrame;
|
|
|
|
|
|
|
|
|
|
@@ -296,6 +302,7 @@ class WidgetMouseEvent : public WidgetMouseEventBase,
|
|
|
|
|
|
|
|
|
|
mExitFrom = aEvent.mExitFrom;
|
|
|
|
|
mClickCount = aEvent.mClickCount;
|
|
|
|
|
+ mJugglerEventId = aEvent.mJugglerEventId;
|
|
|
|
|
mIgnoreRootScrollFrame = aEvent.mIgnoreRootScrollFrame;
|
|
|
|
|
mUseLegacyNonPrimaryDispatch = aEvent.mUseLegacyNonPrimaryDispatch;
|
|
|
|
|
mClickEventPrevented = aEvent.mClickEventPrevented;
|
|
|
|
|
diff --git a/widget/cocoa/NativeKeyBindings.mm b/widget/cocoa/NativeKeyBindings.mm
|
|
|
|
|
index d3e5983259053175584254e7ac01ca9ce024f33a..97f5b851c402fea5477c0ee57af451c62b016eec 100644
|
|
|
|
|
--- a/widget/cocoa/NativeKeyBindings.mm
|
|
|
|
@ -2980,10 +3107,10 @@ index facd2bc65afab8ec1aa322faa20a67464964dfb9..d6dea95472bec6006411753c3dfdab2e
|
|
|
|
|
|
|
|
|
|
} // namespace widget
|
|
|
|
|
diff --git a/widget/headless/HeadlessWidget.cpp b/widget/headless/HeadlessWidget.cpp
|
|
|
|
|
index 0112fab80c463a7d02a1b0397eeb74c075c38501..ba9f27cf9e315b95aebde5338ed5f520df72c779 100644
|
|
|
|
|
index bb369eb0a5e1118d363c5a2fc35984b7d6c2aa28..3e9a6d31558c2720c2c6eef6a8de258bfa422a80 100644
|
|
|
|
|
--- a/widget/headless/HeadlessWidget.cpp
|
|
|
|
|
+++ b/widget/headless/HeadlessWidget.cpp
|
|
|
|
|
@@ -109,6 +109,8 @@ void HeadlessWidget::Destroy() {
|
|
|
|
|
@@ -110,6 +110,8 @@ void HeadlessWidget::Destroy() {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -2992,7 +3119,7 @@ index 0112fab80c463a7d02a1b0397eeb74c075c38501..ba9f27cf9e315b95aebde5338ed5f520
|
|
|
|
|
nsBaseWidget::OnDestroy();
|
|
|
|
|
|
|
|
|
|
nsBaseWidget::Destroy();
|
|
|
|
|
@@ -614,5 +616,14 @@ nsresult HeadlessWidget::SynthesizeNativeTouchpadPan(
|
|
|
|
|
@@ -621,5 +623,14 @@ nsresult HeadlessWidget::SynthesizeNativeTouchpadPan(
|
|
|
|
|
return NS_OK;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -3008,7 +3135,7 @@ index 0112fab80c463a7d02a1b0397eeb74c075c38501..ba9f27cf9e315b95aebde5338ed5f520
|
|
|
|
|
} // namespace widget
|
|
|
|
|
} // namespace mozilla
|
|
|
|
|
diff --git a/widget/headless/HeadlessWidget.h b/widget/headless/HeadlessWidget.h
|
|
|
|
|
index f07c929d9228c5dfebf983818213516bc4be5cb6..e560485adefeb1f58efd65c0b6c941ccc4fd4723 100644
|
|
|
|
|
index 9856991ef32f25f51942f8cd664a09bec2192c70..948947a421179e91c51005aeb83ed0d18cfc84ce 100644
|
|
|
|
|
--- a/widget/headless/HeadlessWidget.h
|
|
|
|
|
+++ b/widget/headless/HeadlessWidget.h
|
|
|
|
|
@@ -141,6 +141,9 @@ class HeadlessWidget : public nsBaseWidget {
|
|
|
|
@ -3021,6 +3148,26 @@ index f07c929d9228c5dfebf983818213516bc4be5cb6..e560485adefeb1f58efd65c0b6c941cc
|
|
|
|
|
private:
|
|
|
|
|
~HeadlessWidget();
|
|
|
|
|
bool mEnabled;
|
|
|
|
|
diff --git a/widget/nsGUIEventIPC.h b/widget/nsGUIEventIPC.h
|
|
|
|
|
index ad9c1887c6c95447b161b73c8623cef478137c75..c71e9ede72ff69c7e6c2080d804ec47c0051c397 100644
|
|
|
|
|
--- a/widget/nsGUIEventIPC.h
|
|
|
|
|
+++ b/widget/nsGUIEventIPC.h
|
|
|
|
|
@@ -234,6 +234,7 @@ struct ParamTraits<mozilla::WidgetMouseEvent> {
|
|
|
|
|
aParam.mExitFrom.value()));
|
|
|
|
|
}
|
|
|
|
|
WriteParam(aWriter, aParam.mClickCount);
|
|
|
|
|
+ WriteParam(aWriter, aParam.mJugglerEventId);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static bool Read(MessageReader* aReader, paramType* aResult) {
|
|
|
|
|
@@ -258,6 +259,7 @@ struct ParamTraits<mozilla::WidgetMouseEvent> {
|
|
|
|
|
aResult->mExitFrom = Some(static_cast<paramType::ExitFrom>(exitFrom));
|
|
|
|
|
}
|
|
|
|
|
rv = rv && ReadParam(aReader, &aResult->mClickCount);
|
|
|
|
|
+ rv = rv && ReadParam(aReader, &aResult->mJugglerEventId);
|
|
|
|
|
return rv;
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
diff --git a/xpcom/reflect/xptinfo/xptinfo.h b/xpcom/reflect/xptinfo/xptinfo.h
|
|
|
|
|
index 2456c2c2b58b27cd595880b547ed20fb687a1835..e967c089b2331c7cd36d34e511543fbc84320b7d 100644
|
|
|
|
|
--- a/xpcom/reflect/xptinfo/xptinfo.h
|
|
|
|
|