mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-05 23:38:38 +09:00
Merge remote-tracking branch 'origin/master' into custom
This commit is contained in:
commit
3e1ffe6299
19 changed files with 108 additions and 53 deletions
|
|
@ -15,25 +15,21 @@
|
|||
pref("@GUAO_PREF@.accounts.firefox.com", "Mozilla/5.0 (%OS_SLICE% rv:@GK_VERSION@) @GK_SLICE@ @FX_SLICE@");
|
||||
pref("@GUAO_PREF@.addons.mozilla.org", "Mozilla/5.0 (%OS_SLICE% rv:@GK_VERSION@) @GK_SLICE@ @FX_SLICE@");
|
||||
|
||||
// Required for domains that have proven unresponsive to requests from users
|
||||
// Required for domains that have proven unresponsive to requests from users (notice a trend...? ;) )
|
||||
pref("@GUAO_PREF@.youtube.com","Mozilla/5.0 (%OS_SLICE% rv:62.0) @GK_SLICE@ Firefox/62.0 @APP_SLICE@");
|
||||
pref("@GUAO_PREF@.gaming.youtube.com","Mozilla/5.0 (%OS_SLICE% rv:62.0) @GK_SLICE@ Firefox/62.0");
|
||||
pref("@GUAO_PREF@.studio.youtube.com","Mozilla/5.0 (%OS_SLICE% rv:71.0) @GK_SLICE@ Firefox/71.0 @APP_SLICE@");
|
||||
pref("@GUAO_PREF@.netflix.com","Mozilla/5.0 (%OS_SLICE% rv:42.0) @GK_SLICE@ Firefox/42.0 @APP_SLICE@");
|
||||
pref("@GUAO_PREF@.gaming.youtube.com","Mozilla/5.0 (%OS_SLICE% rv:71.0) @GK_SLICE@ Firefox/71.0 @APP_SLICE@");
|
||||
pref("@GUAO_PREF@.netflix.com","Mozilla/5.0 (Windows NT 6.1; rv:42.0) @GK_SLICE@ Firefox/42.0 @APP_SLICE@");
|
||||
pref("@GUAO_PREF@.netflximg.net","Mozilla/5.0 (Windows NT 6.1; rv:42.0) @GK_SLICE@ Firefox/42.0 @APP_SLICE@");
|
||||
pref("@GUAO_PREF@.google.com","Mozilla/5.0 (%OS_SLICE% rv:71.0) @GK_SLICE@ Firefox/71.0 @APP_SLICE@");
|
||||
pref("@GUAO_PREF@.googlevideos.com","Mozilla/5.0 (%OS_SLICE% rv:52.9) @GK_SLICE@ @GRE_VERSION_SLICE@ Firefox/52.9");
|
||||
|
||||
// The never-ending Facebook debacle...
|
||||
|
||||
// UA-Sniffing domains below are pending responses from their operators - temp workaround
|
||||
// Daily motion only likes strict Firefox UAs
|
||||
pref("@GUAO_PREF@.dailymotion.com","Mozilla/5.0 (%OS_SLICE% rv:52.0) @GK_SLICE@ Firefox/52.0");
|
||||
|
||||
// The following requires native mode. Or it blocks.. "too old firefox", breakage, etc.
|
||||
|
||||
// UA-Sniffing domains below have indicated no interest in supporting Pale Moon (BOO!)
|
||||
// UA-sniffing domains that are "app/vendor-specific" and do not like Basilisk
|
||||
pref("@GUAO_PREF@.whatsapp.com","Mozilla/5.0 (%OS_SLICE% rv:68.0) @GK_SLICE@ Firefox/68.0");
|
||||
|
||||
// UA-sniffing domains that are "app/vendor-specific" and do not like Pale Moon
|
||||
|
||||
// The following domains do not like the Goanna slice
|
||||
pref("@GUAO_PREF@.hitbox.tv","Mozilla/5.0 (%OS_SLICE% rv:@GK_VERSION@) @GK_SLICE@ @FX_SLICE@");
|
||||
pref("@GUAO_PREF@.yuku.com","Mozilla/5.0 (%OS_SLICE% rv:@GK_VERSION@) @GK_SLICE@ @FX_SLICE@ @APP_SLICE@");
|
||||
|
|
|
|||
|
|
@ -10,4 +10,4 @@
|
|||
# hardcoded milestones in the tree from these two files.
|
||||
#--------------------------------------------------------
|
||||
|
||||
4.7.0
|
||||
4.8.0
|
||||
|
|
@ -10,6 +10,7 @@
|
|||
#include "mozilla/dom/AnimationEffectTiming.h"
|
||||
#include "mozilla/dom/KeyframeEffectBinding.h"
|
||||
#include "mozilla/KeyframeUtils.h"
|
||||
#include "mozilla/Preferences.h"
|
||||
#include "nsContentUtils.h"
|
||||
#include "nsDOMMutationObserver.h" // For nsAutoAnimationMutationBatch
|
||||
#include "nsIScriptError.h"
|
||||
|
|
@ -135,9 +136,9 @@ void
|
|||
KeyframeEffect::SetIterationComposite(
|
||||
const IterationCompositeOperation& aIterationComposite)
|
||||
{
|
||||
// Ignore iterationComposite if the Web Animations API is not enabled,
|
||||
// Ignore iterationComposite if the API is not enabled,
|
||||
// then the default value 'Replace' will be used.
|
||||
if (!AnimationUtils::IsCoreAPIEnabledForCaller()) {
|
||||
if (!Preferences::GetBool("dom.animations-api.compositing.enabled")) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@
|
|||
#include "mozilla/AnimationUtils.h"
|
||||
#include "mozilla/ErrorResult.h"
|
||||
#include "mozilla/Move.h"
|
||||
#include "mozilla/Preferences.h"
|
||||
#include "mozilla/RangedArray.h"
|
||||
#include "mozilla/ServoBindings.h"
|
||||
#include "mozilla/StyleAnimationValue.h"
|
||||
|
|
@ -21,6 +22,7 @@
|
|||
#include "nsCSSPropertyIDSet.h"
|
||||
#include "nsCSSProps.h"
|
||||
#include "nsCSSPseudoElements.h" // For CSSPseudoElementType
|
||||
#include "nsDocument.h"
|
||||
#include "nsTArray.h"
|
||||
#include <algorithm> // For std::stable_sort
|
||||
|
||||
|
|
@ -400,7 +402,7 @@ GetKeyframeListFromPropertyIndexedKeyframe(JSContext* aCx,
|
|||
ErrorResult& aRv);
|
||||
|
||||
static bool
|
||||
RequiresAdditiveAnimation(const nsTArray<Keyframe>& aKeyframes,
|
||||
HasImplicitKeyframeValues(const nsTArray<Keyframe>& aKeyframes,
|
||||
nsIDocument* aDocument);
|
||||
|
||||
static void
|
||||
|
|
@ -467,11 +469,13 @@ KeyframeUtils::GetKeyframesFromObject(JSContext* aCx,
|
|||
// says that if you don't have a keyframe at offset 0 or 1, then you should
|
||||
// synthesize one using an additive zero value when you go to compose style.
|
||||
// Until we implement additive animations we just throw if we encounter any
|
||||
// set of keyframes that would put us in that situation.
|
||||
// set of keyframes that would put us in that situation and keyframes aren't
|
||||
// explicitly force-enabled.
|
||||
|
||||
if (RequiresAdditiveAnimation(keyframes, aDocument)) {
|
||||
aRv.Throw(NS_ERROR_DOM_ANIM_MISSING_PROPS_ERR);
|
||||
if (!nsDocument::AreWebAnimationsImplicitKeyframesEnabled(aCx, nullptr) &&
|
||||
HasImplicitKeyframeValues(keyframes, aDocument)) {
|
||||
keyframes.Clear();
|
||||
aRv.Throw(NS_ERROR_DOM_ANIM_MISSING_PROPS_ERR);
|
||||
}
|
||||
|
||||
return keyframes;
|
||||
|
|
@ -1330,10 +1334,16 @@ GetKeyframeListFromPropertyIndexedKeyframe(JSContext* aCx,
|
|||
// No animation values for this property.
|
||||
continue;
|
||||
}
|
||||
if (count == 1) {
|
||||
// We don't support additive values and so can't support an
|
||||
// animation that goes from the underlying value to this
|
||||
// specified value. Throw an exception until we do support this.
|
||||
if (!Preferences::GetBool("dom.animations-api.implicit-keyframes.enabled") &&
|
||||
count == 1) {
|
||||
// We don't support implicit keyframes by preference.
|
||||
aRv.Throw(NS_ERROR_DOM_ANIM_MISSING_PROPS_ERR);
|
||||
return;
|
||||
} else if (count == 1) {
|
||||
// Implicit keyframes isn't implemented yet and so we can't
|
||||
// support an animation that goes from the underlying value
|
||||
// to this specified value.
|
||||
// Throw an exception until we do support this.
|
||||
aRv.Throw(NS_ERROR_DOM_ANIM_MISSING_PROPS_ERR);
|
||||
return;
|
||||
}
|
||||
|
|
@ -1374,7 +1384,7 @@ GetKeyframeListFromPropertyIndexedKeyframe(JSContext* aCx,
|
|||
* try to detect where we have an invalid value at 0%/100%.
|
||||
*/
|
||||
static bool
|
||||
RequiresAdditiveAnimation(const nsTArray<Keyframe>& aKeyframes,
|
||||
HasImplicitKeyframeValues(const nsTArray<Keyframe>& aKeyframes,
|
||||
nsIDocument* aDocument)
|
||||
{
|
||||
// We are looking to see if that every property referenced in |aKeyframes|
|
||||
|
|
@ -1385,7 +1395,7 @@ RequiresAdditiveAnimation(const nsTArray<Keyframe>& aKeyframes,
|
|||
// a document which we might not always have at the point where we want to
|
||||
// perform this check.
|
||||
//
|
||||
// This is only a temporary measure until we implement additive animation.
|
||||
// This is only a temporary measure until we implement implicit keyframes.
|
||||
// So as long as this check catches most cases, and we don't do anything
|
||||
// horrible in one of the cases we can't detect, it should be sufficient.
|
||||
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
pref(dom.animations-api.core.enabled,true) load 1239889-1.html
|
||||
pref(dom.animations-api.core.enabled,true) load 1244595-1.html
|
||||
pref(dom.animations-api.core.enabled,true) load 1216842-1.html
|
||||
pref(dom.animations-api.core.enabled,true) load 1216842-2.html
|
||||
pref(dom.animations-api.core.enabled,true) load 1216842-3.html
|
||||
pref(dom.animations-api.core.enabled,true) load 1216842-4.html
|
||||
pref(dom.animations-api.core.enabled,true) load 1216842-5.html
|
||||
pref(dom.animations-api.core.enabled,true) load 1216842-6.html
|
||||
pref(dom.animations-api.core.enabled,true) pref(dom.animations-api.timelines.enabled,true) load 1216842-1.html
|
||||
pref(dom.animations-api.core.enabled,true) pref(dom.animations-api.timelines.enabled,true) load 1216842-2.html
|
||||
pref(dom.animations-api.core.enabled,true) pref(dom.animations-api.timelines.enabled,true) load 1216842-3.html
|
||||
pref(dom.animations-api.core.enabled,true) pref(dom.animations-api.timelines.enabled,true) load 1216842-4.html
|
||||
pref(dom.animations-api.core.enabled,true) pref(dom.animations-api.timelines.enabled,true) load 1216842-5.html
|
||||
pref(dom.animations-api.core.enabled,true) pref(dom.animations-api.timelines.enabled,true) load 1216842-6.html
|
||||
pref(dom.animations-api.core.enabled,true) load 1272475-1.html
|
||||
pref(dom.animations-api.core.enabled,true) load 1272475-2.html
|
||||
pref(dom.animations-api.core.enabled,true) load 1278485-1.html
|
||||
pref(dom.animations-api.core.enabled,true) load 1277272-1.html
|
||||
pref(dom.animations-api.core.enabled,true) pref(dom.animations-api.timelines.enabled,true) load 1277272-1.html
|
||||
pref(dom.animations-api.core.enabled,true) load 1290535-1.html
|
||||
|
|
|
|||
|
|
@ -1,4 +1,10 @@
|
|||
[DEFAULT]
|
||||
prefs =
|
||||
dom.animations-api.compositing.enabled=true
|
||||
dom.animations-api.core.enabled=true
|
||||
dom.animations-api.getAnimations.enabled=true
|
||||
dom.animations-api.implicit-keyframes.enabled=true
|
||||
dom.animations-api.timelines.enabled=true
|
||||
# Support files for chrome tests that we want to load over HTTP need
|
||||
# to go in here, not chrome.ini.
|
||||
support-files =
|
||||
|
|
|
|||
|
|
@ -2923,6 +2923,33 @@ nsDocument::IsWebAnimationsEnabled(JSContext* /*unused*/, JSObject* /*unused*/)
|
|||
Preferences::GetBool("dom.animations-api.core.enabled");
|
||||
}
|
||||
|
||||
bool
|
||||
nsDocument::AreWebAnimationsTimelinesEnabled(JSContext* /*unused*/, JSObject* /*unused*/)
|
||||
{
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
|
||||
return nsContentUtils::IsCallerChrome() ||
|
||||
Preferences::GetBool("dom.animations-api.timelines.enabled");
|
||||
}
|
||||
|
||||
bool
|
||||
nsDocument::AreWebAnimationsImplicitKeyframesEnabled(JSContext* /*unused*/, JSObject* /*unused*/)
|
||||
{
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
|
||||
return nsContentUtils::IsCallerChrome() ||
|
||||
Preferences::GetBool("dom.animations-api.implicit-keyframes.enabled");
|
||||
}
|
||||
|
||||
bool
|
||||
nsDocument::IsWebAnimationsGetAnimationsEnabled(JSContext* /*unused*/, JSObject* /*unused*/)
|
||||
{
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
|
||||
return nsContentUtils::IsCallerChrome() ||
|
||||
Preferences::GetBool("dom.animations-api.getAnimations.enabled");
|
||||
}
|
||||
|
||||
DocumentTimeline*
|
||||
nsDocument::Timeline()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -433,6 +433,10 @@ public:
|
|||
|
||||
static bool IsElementAnimateEnabled(JSContext* aCx, JSObject* aObject);
|
||||
static bool IsWebAnimationsEnabled(JSContext* aCx, JSObject* aObject);
|
||||
static bool AreWebAnimationsImplicitKeyframesEnabled(JSContext* aCx, JSObject* aObject);
|
||||
static bool AreWebAnimationsTimelinesEnabled(JSContext* aCx, JSObject* aObject);
|
||||
static bool IsWebAnimationsGetAnimationsEnabled(JSContext* aCx, JSObject* aObject);
|
||||
|
||||
virtual mozilla::dom::DocumentTimeline* Timeline() override;
|
||||
virtual void GetAnimations(
|
||||
nsTArray<RefPtr<mozilla::dom::Animation>>& aAnimations) override;
|
||||
|
|
|
|||
|
|
@ -23,6 +23,6 @@ interface Animatable {
|
|||
[Func="nsDocument::IsElementAnimateEnabled", Throws]
|
||||
Animation animate(object? keyframes,
|
||||
optional UnrestrictedDoubleOrKeyframeAnimationOptions options);
|
||||
[Func="nsDocument::IsWebAnimationsEnabled"]
|
||||
[Func="nsDocument::IsWebAnimationsGetAnimationsEnabled"]
|
||||
sequence<Animation> getAnimations(optional AnimationFilter filter);
|
||||
};
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ interface Animation : EventTarget {
|
|||
attribute DOMString id;
|
||||
[Func="nsDocument::IsWebAnimationsEnabled", Pure]
|
||||
attribute AnimationEffectReadOnly? effect;
|
||||
[Func="nsDocument::IsWebAnimationsEnabled"]
|
||||
[Func="nsDocument::AreWebAnimationsTimelinesEnabled"]
|
||||
attribute AnimationTimeline? timeline;
|
||||
[BinaryName="startTimeAsDouble"]
|
||||
attribute double? startTime;
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
* liability, trademark and document use rules apply.
|
||||
*/
|
||||
|
||||
[Func="nsDocument::IsWebAnimationsEnabled"]
|
||||
[Func="nsDocument::AreWebAnimationsTimelinesEnabled"]
|
||||
interface AnimationTimeline {
|
||||
[BinaryName="currentTimeAsDouble"]
|
||||
readonly attribute double? currentTime;
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
// this interface.
|
||||
// What we implement here is a minimal subset of the two definitions which we
|
||||
// ship behind a pref until the specification issues have been resolved.
|
||||
[Func="nsDocument::IsWebAnimationsEnabled"]
|
||||
[Func="nsDocument::IsWebAnimationsGetAnimationsEnabled"]
|
||||
interface CSSPseudoElement {
|
||||
readonly attribute DOMString type;
|
||||
readonly attribute Element parentElement;
|
||||
|
|
|
|||
|
|
@ -312,9 +312,9 @@ partial interface Document {
|
|||
|
||||
// http://w3c.github.io/web-animations/#extensions-to-the-document-interface
|
||||
partial interface Document {
|
||||
[Func="nsDocument::IsWebAnimationsEnabled"]
|
||||
[Func="nsDocument::AreWebAnimationsTimelinesEnabled"]
|
||||
readonly attribute DocumentTimeline timeline;
|
||||
[Func="nsDocument::IsWebAnimationsEnabled"]
|
||||
[Func="nsDocument::IsWebAnimationsGetAnimationsEnabled"]
|
||||
sequence<Animation> getAnimations();
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ dictionary DocumentTimelineOptions {
|
|||
DOMHighResTimeStamp originTime = 0;
|
||||
};
|
||||
|
||||
[Func="nsDocument::IsWebAnimationsEnabled",
|
||||
[Func="nsDocument::AreWebAnimationsTimelinesEnabled",
|
||||
Constructor (optional DocumentTimelineOptions options)]
|
||||
interface DocumentTimeline : AnimationTimeline {
|
||||
};
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=1135764
|
|||
}
|
||||
addLoadEvent(function() {
|
||||
SpecialPowers.pushPrefEnv(
|
||||
{ "set": [[ "dom.animations-api.core.enabled", true]] },
|
||||
{ "set": [[ "dom.animations-api.timelines.enabled", true]] },
|
||||
function() {
|
||||
var ifr = document.querySelector("iframe");
|
||||
ifr.onload = function() {
|
||||
|
|
|
|||
|
|
@ -15,6 +15,6 @@ test-pref(dom.animations-api.core.enabled,true) == stacking-context-transform-ch
|
|||
test-pref(dom.animations-api.core.enabled,true) == stacking-context-transform-changing-effect.html stacking-context-animation-ref.html
|
||||
test-pref(dom.animations-api.core.enabled,true) == stacking-context-transform-changing-display-property.html stacking-context-animation-ref.html
|
||||
test-pref(dom.animations-api.core.enabled,true) == stacking-context-transform-losing-css-animation-in-delay.html stacking-context-animation-ref.html
|
||||
test-pref(dom.animations-api.core.enabled,true) == style-updates-on-iteration-composition-changed-from-accumulate-to-replace.html style-updates-for-iteration-composite-ref.html
|
||||
test-pref(dom.animations-api.core.enabled,true) == style-updates-on-iteration-composition-changed-from-replace-to-accumulate.html style-updates-for-iteration-composite-ref.html
|
||||
test-pref(dom.animations-api.core.enabled,true) == style-updates-on-current-iteration-changed.html style-updates-for-iteration-composite-ref.html
|
||||
test-pref(dom.animations-api.core.enabled,true) test-pref(dom.animations-api.compositing.enabled,true) == style-updates-on-iteration-composition-changed-from-accumulate-to-replace.html style-updates-for-iteration-composite-ref.html
|
||||
test-pref(dom.animations-api.core.enabled,true) test-pref(dom.animations-api.compositing.enabled,true) == style-updates-on-iteration-composition-changed-from-replace-to-accumulate.html style-updates-for-iteration-composite-ref.html
|
||||
test-pref(dom.animations-api.core.enabled,true) test-pref(dom.animations-api.compositing.enabled,true) == style-updates-on-current-iteration-changed.html style-updates-for-iteration-composite-ref.html
|
||||
|
|
|
|||
|
|
@ -1,4 +1,7 @@
|
|||
[DEFAULT]
|
||||
prefs =
|
||||
dom.animations-api.core.enabled=true
|
||||
dom.animations-api.timelines.enabled=true
|
||||
support-files =
|
||||
animation_utils.js
|
||||
ccd-quirks.html
|
||||
|
|
|
|||
|
|
@ -580,7 +580,7 @@ pref("media.mediasource.webm.enabled", true);
|
|||
pref("media.mediasource.webm.audio.enabled", true);
|
||||
|
||||
#ifdef MOZ_AV1
|
||||
pref("media.av1.enabled", false);
|
||||
pref("media.av1.enabled", true);
|
||||
#endif
|
||||
|
||||
// Use new MediaFormatReader architecture for plain ogg.
|
||||
|
|
@ -2710,14 +2710,12 @@ pref("layout.idle_period.required_quiescent_frames", 2);
|
|||
pref("layout.idle_period.time_limit", 1);
|
||||
|
||||
// Is support for the Web Animations API enabled?
|
||||
// Before enabling this by default, make sure also CSSPseudoElement interface
|
||||
// has been spec'ed properly, or we should add a separate pref for
|
||||
// CSSPseudoElement interface. See Bug 1174575 for further details.
|
||||
#ifdef RELEASE_OR_BETA
|
||||
pref("dom.animations-api.core.enabled", false);
|
||||
#else
|
||||
pref("dom.animations-api.core.enabled", true);
|
||||
#endif
|
||||
|
||||
pref("dom.animations-api.timelines.enabled", false);
|
||||
pref("dom.animations-api.implicit-keyframes.enabled", false);
|
||||
pref("dom.animations-api.compositing.enabled", false);
|
||||
pref("dom.animations-api.getAnimations.enabled", false);
|
||||
|
||||
// Is support for the Element.animate() function (a subset of the Web Animations
|
||||
// API) enabled?
|
||||
|
|
@ -4813,7 +4811,7 @@ pref("dom.w3c_touch_events.enabled", 2);
|
|||
#endif
|
||||
|
||||
// W3C draft pointer events
|
||||
pref("dom.w3c_pointer_events.enabled", false);
|
||||
pref("dom.w3c_pointer_events.enabled", true);
|
||||
|
||||
// W3C pointer events draft
|
||||
pref("dom.w3c_pointer_events.implicit_capture", false);
|
||||
|
|
|
|||
|
|
@ -483,8 +483,18 @@ var Printing = {
|
|||
printSettings.printerName = PSSVC.defaultPrinterName;
|
||||
}
|
||||
// First get any defaults from the printer
|
||||
PSSVC.initPrintSettingsFromPrinter(printSettings.printerName,
|
||||
printSettings);
|
||||
try {
|
||||
PSSVC.initPrintSettingsFromPrinter(printSettings.printerName,
|
||||
printSettings);
|
||||
} catch(e) {
|
||||
// The printer name specified was invalid or there was an O.S. error.
|
||||
Components.utils.reportError("Invalid printer: " + printSettings.printerName);
|
||||
Services.prefs.clearUserPref("print.print_printer");
|
||||
// Try again with default
|
||||
printSettings.printerName = PSSVC.defaultPrinterName;
|
||||
PSSVC.initPrintSettingsFromPrinter(printSettings.printerName,
|
||||
printSettings);
|
||||
}
|
||||
// now augment them with any values from last time
|
||||
PSSVC.initPrintSettingsFromPrefs(printSettings, true,
|
||||
printSettings.kInitSaveAll);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue