From 712ca7303b0835772f8abca85ebec981e254a017 Mon Sep 17 00:00:00 2001 From: Moonchild Date: Fri, 22 Apr 2022 13:18:55 +0000 Subject: Issue #1880 - Boot Comic Sans out of the font configuration. Resolves #1880 --- modules/libpref/init/all.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js index 42ccc24ba6..c6b0077902 100644 --- a/modules/libpref/init/all.js +++ b/modules/libpref/init/all.js @@ -3089,12 +3089,12 @@ pref("font.name.serif.ar", "Times New Roman"); pref("font.name.sans-serif.ar", "Segoe UI"); pref("font.name-list.sans-serif.ar", "Segoe UI, Tahoma, Arial"); pref("font.name.monospace.ar", "Consolas"); -pref("font.name.cursive.ar", "Comic Sans MS"); +pref("font.name.cursive.ar", "Segoe Script"); pref("font.name.serif.el", "Times New Roman"); pref("font.name.sans-serif.el", "Arial"); pref("font.name.monospace.el", "Consolas"); -pref("font.name.cursive.el", "Comic Sans MS"); +pref("font.name.cursive.el", "Segoe Script"); pref("font.name.serif.he", "Narkisim"); pref("font.name.sans-serif.he", "Arial"); @@ -3129,17 +3129,17 @@ pref("font.name.cursive.th", "Tahoma"); pref("font.name.serif.x-cyrillic", "Times New Roman"); pref("font.name.sans-serif.x-cyrillic", "Arial"); pref("font.name.monospace.x-cyrillic", "Consolas"); -pref("font.name.cursive.x-cyrillic", "Comic Sans MS"); +pref("font.name.cursive.x-cyrillic", "Segoe Script"); pref("font.name.serif.x-unicode", "Times New Roman"); pref("font.name.sans-serif.x-unicode", "Arial"); pref("font.name.monospace.x-unicode", "Consolas"); -pref("font.name.cursive.x-unicode", "Comic Sans MS"); +pref("font.name.cursive.x-unicode", "Segoe Script"); pref("font.name.serif.x-western", "Times New Roman"); pref("font.name.sans-serif.x-western", "Arial"); pref("font.name.monospace.x-western", "Consolas"); -pref("font.name.cursive.x-western", "Comic Sans MS"); +pref("font.name.cursive.x-western", "Segoe Script"); pref("font.name.serif.zh-CN", "SimSun"); pref("font.name.sans-serif.zh-CN", "Microsoft YaHei"); @@ -3285,7 +3285,7 @@ pref("font.name.serif.x-math", "Latin Modern Math"); pref("font.name-list.serif.x-math", "Latin Modern Math, XITS Math, Cambria Math, Libertinus Math, DejaVu Math TeX Gyre, TeX Gyre Bonum Math, TeX Gyre Pagella Math, TeX Gyre Schola, TeX Gyre Termes Math, STIX Math, Asana Math, STIXGeneral, DejaVu Serif, DejaVu Sans, Symbol, Times New Roman"); pref("font.name.sans-serif.x-math", "Arial"); pref("font.name.monospace.x-math", "Consolas"); -pref("font.name.cursive.x-math", "Comic Sans MS"); +pref("font.name.cursive.x-math", "Segoe Script"); // ClearType tuning parameters for directwrite/d2d. // -- cgit v1.2.3 From 5aa65d2aeab36ea8de8129c0babcf70a5e4e662a Mon Sep 17 00:00:00 2001 From: Moonchild Date: Sun, 20 Feb 2022 22:00:59 +0000 Subject: Issue #1877 - Resolve NIGHTLY_BUILD conditionals. --- build/moz.configure/init.configure | 14 ++---- devtools/client/preferences/devtools.js | 12 +---- devtools/shared/tests/unit/xpcshell.ini | 6 --- dom/base/Navigator.cpp | 11 ++--- dom/base/Navigator.h | 2 - dom/quota/ActorsParent.cpp | 39 ---------------- dom/webidl/Navigator.webidl | 7 --- gfx/src/DriverCrashGuard.cpp | 8 ---- gfx/thebes/gfxEnv.h | 1 - js/src/builtin/TestingFunctions.cpp | 41 ----------------- js/src/jit/x86-shared/BaseAssembler-x86-shared.h | 23 +--------- js/src/js-config.mozbuild | 6 +-- js/src/jsutil.h | 4 +- js/src/vm/Debugger.cpp | 10 ++-- js/src/vm/Debugger.h | 4 +- js/src/vm/UnboxedObject.cpp | 10 +--- js/src/wasm/AsmJS.cpp | 5 +- layout/style/nsCSSParser.cpp | 7 +-- mfbt/WeakPtr.h | 2 +- modules/libpref/init/all.js | 53 ++-------------------- .../components/formautofill/formautofill.manifest | 3 -- toolkit/content/aboutSupport.js | 18 -------- toolkit/modules/AppConstants.jsm | 18 ++------ xpcom/glue/nsDebug.h | 2 +- xpcom/glue/nsISupportsImpl.h | 4 +- 25 files changed, 34 insertions(+), 276 deletions(-) diff --git a/build/moz.configure/init.configure b/build/moz.configure/init.configure index 281f2c1ad7..aab1b755bb 100644 --- a/build/moz.configure/init.configure +++ b/build/moz.configure/init.configure @@ -652,11 +652,7 @@ set_define('MOZ_BUILD_APP', build_project) add_old_configure_assignment('MOZ_BUILD_APP', build_project) -# set RELEASE_OR_BETA and NIGHTLY_BUILD variables depending on the cycle we're in -# The logic works like this: -# - if we have "a1" in GRE_MILESTONE, we're building Nightly (define NIGHTLY_BUILD) -# - otherwise, if we have "a" in GRE_MILESTONE, we're building Nightly or Aurora -# - otherwise, we're building Release/Beta (define RELEASE_OR_BETA) +# set RELEASE_OR_BETA and NIGHTLY_BUILD variables for compatibility @depends(check_build_environment, '--help') @imports(_from='__builtin__', _import='open') def milestone(build_env, _): @@ -666,12 +662,8 @@ def milestone(build_env, _): with open(milestone_path, 'r') as fh: milestone = fh.read().splitlines()[-1] - is_nightly = is_release_or_beta = None - - if 'a1' in milestone: - is_nightly = True - elif 'a' not in milestone: - is_release_or_beta = True + is_nightly = None + is_release_or_beta = True return namespace(version=milestone, is_nightly=is_nightly, diff --git a/devtools/client/preferences/devtools.js b/devtools/client/preferences/devtools.js index 2f31e18e30..a8c4e119ee 100644 --- a/devtools/client/preferences/devtools.js +++ b/devtools/client/preferences/devtools.js @@ -146,12 +146,8 @@ pref("devtools.performance.ui.show-triggers-for-gc-types", // TODO remove once we have flame charts via bug 1148663 pref("devtools.performance.ui.enable-memory-flame", false); -// Enable experimental options in the UI only in Nightly -#if defined(NIGHTLY_BUILD) -pref("devtools.performance.ui.experimental", true); -#else +// Enable experimental options in the UI? pref("devtools.performance.ui.experimental", false); -#endif // The default cache UI setting pref("devtools.cache.disabled", false); @@ -304,12 +300,8 @@ pref("devtools.webconsole.timestampMessages", false); // to automatically trigger multiline editing (equivalent to shift + enter). pref("devtools.webconsole.autoMultiline", true); -// Enable the experimental webconsole frontend -#if defined(NIGHTLY_BUILD) -pref("devtools.webconsole.new-frontend-enabled", true); -#else +// Enable the experimental webconsole frontend? pref("devtools.webconsole.new-frontend-enabled", false); -#endif // Enable the experimental support for source maps in console (work in progress) pref("devtools.sourcemap.locations.enabled", false); diff --git a/devtools/shared/tests/unit/xpcshell.ini b/devtools/shared/tests/unit/xpcshell.ini index d0323c813c..92a561e8c3 100644 --- a/devtools/shared/tests/unit/xpcshell.ini +++ b/devtools/shared/tests/unit/xpcshell.ini @@ -9,12 +9,6 @@ support-files = [test_assert.js] [test_csslexer.js] -[test_css-properties-db.js] -# This test only enforces that the CSS database is up to date with nightly. The DB is -# only used when inspecting a target that doesn't support the getCSSDatabase actor. -# CSS properties are behind compile-time flags, and there is no automatic rebuild -# process for uplifts, so this test breaks on uplift. -run-if = nightly_build [test_fetch-bom.js] [test_fetch-chrome.js] [test_fetch-file.js] diff --git a/dom/base/Navigator.cpp b/dom/base/Navigator.cpp index 5ad763af76..3972abc688 100644 --- a/dom/base/Navigator.cpp +++ b/dom/base/Navigator.cpp @@ -1346,14 +1346,9 @@ Navigator::HasUserMediaSupport(JSContext* /* unused */, bool Navigator::IsE10sEnabled(JSContext* aCx, JSObject* aGlobal) { - return XRE_IsContentProcess(); -} - -bool -Navigator::MozE10sEnabled() -{ - // This will only be called if IsE10sEnabled() is true. - return true; + // We no longer support this, so always false. + // TODO: Remove this. + return false; } /* static */ diff --git a/dom/base/Navigator.h b/dom/base/Navigator.h index 56e7dfaf8a..2915b50692 100644 --- a/dom/base/Navigator.h +++ b/dom/base/Navigator.h @@ -214,8 +214,6 @@ public: void GetLanguages(nsTArray& aLanguages); - bool MozE10sEnabled(); - StorageManager* Storage(); static void GetAcceptLanguages(nsTArray& aLanguages); diff --git a/dom/quota/ActorsParent.cpp b/dom/quota/ActorsParent.cpp index c240cbf201..74d57c5db6 100644 --- a/dom/quota/ActorsParent.cpp +++ b/dom/quota/ActorsParent.cpp @@ -3799,37 +3799,6 @@ QuotaManager::InitializeRepository(PersistenceType aPersistenceType) return NS_OK; } -namespace { - -// The Cache API was creating top level morgue directories by accident for -// a short time in nightly. This unfortunately prevents all storage from -// working. So recover these profiles by removing these corrupt directories. -// This should be removed at some point in the future. -bool -MaybeRemoveCorruptDirectory(const nsAString& aLeafName, nsIFile* aDir) -{ -#ifdef NIGHTLY_BUILD - MOZ_ASSERT(aDir); - - if (aLeafName != NS_LITERAL_STRING("morgue")) { - return false; - } - - NS_WARNING("QuotaManager removing corrupt morgue directory!"); - - nsresult rv = aDir->Remove(true /* recursive */); - if (NS_WARN_IF(NS_FAILED(rv))) { - return false; - } - - return true; -#else - return false; -#endif // NIGHTLY_BUILD -} - -} // namespace - nsresult QuotaManager::InitializeOrigin(PersistenceType aPersistenceType, const nsACString& aGroup, @@ -3883,10 +3852,6 @@ QuotaManager::InitializeOrigin(PersistenceType aPersistenceType, return NS_ERROR_UNEXPECTED; } - if (MaybeRemoveCorruptDirectory(leafName, file)) { - continue; - } - Client::Type clientType; rv = Client::TypeFromText(leafName, clientType); if (NS_FAILED(rv)) { @@ -5981,10 +5946,6 @@ QuotaUsageRequestBase::GetUsageForOrigin(QuotaManager* aQuotaManager, } } - if (MaybeRemoveCorruptDirectory(leafName, file)) { - continue; - } - Client::Type clientType; rv = Client::TypeFromText(leafName, clientType); if (NS_FAILED(rv)) { diff --git a/dom/webidl/Navigator.webidl b/dom/webidl/Navigator.webidl index 379585ef9f..516b5415e3 100644 --- a/dom/webidl/Navigator.webidl +++ b/dom/webidl/Navigator.webidl @@ -313,13 +313,6 @@ partial interface Navigator { }; #endif -#ifdef NIGHTLY_BUILD -partial interface Navigator { - [Func="Navigator::IsE10sEnabled"] - readonly attribute boolean mozE10sEnabled; -}; -#endif - [NoInterfaceObject, Exposed=(Window,Worker)] interface NavigatorConcurrentHardware { readonly attribute unsigned long long hardwareConcurrency; diff --git a/gfx/src/DriverCrashGuard.cpp b/gfx/src/DriverCrashGuard.cpp index 3b69d387c5..333c624e94 100644 --- a/gfx/src/DriverCrashGuard.cpp +++ b/gfx/src/DriverCrashGuard.cpp @@ -68,19 +68,11 @@ AreCrashGuardsEnabled() if (XRE_IsGPUProcess()) { return false; } -#ifdef NIGHTLY_BUILD - // We only use the crash guard on non-nightly channels, since the nightly - // channel is for development and having graphics features perma-disabled - // is rather annoying. Unless the user forces is with an environment - // variable, which comes in handy for testing. - return gfxEnv::ForceCrashGuardNightly(); -#else // Check to see if all guards have been disabled through the environment. if (gfxEnv::DisableCrashGuard()) { return false; } return true; -#endif } void diff --git a/gfx/thebes/gfxEnv.h b/gfx/thebes/gfxEnv.h index ff4a8063ac..e1e491a9bc 100644 --- a/gfx/thebes/gfxEnv.h +++ b/gfx/thebes/gfxEnv.h @@ -42,7 +42,6 @@ public: // Disabling the crash guard in DriverCrashGuard DECL_GFX_ENV("MOZ_DISABLE_CRASH_GUARD", DisableCrashGuard); - DECL_GFX_ENV("MOZ_FORCE_CRASH_GUARD_NIGHTLY", ForceCrashGuardNightly); // We force present to work around some Windows bugs - disable that if this // environment variable is set. diff --git a/js/src/builtin/TestingFunctions.cpp b/js/src/builtin/TestingFunctions.cpp index f91a53eae2..8bcae4d826 100644 --- a/js/src/builtin/TestingFunctions.cpp +++ b/js/src/builtin/TestingFunctions.cpp @@ -2433,39 +2433,6 @@ SharedMemoryEnabled(JSContext* cx, unsigned argc, Value* vp) return true; } -#ifdef NIGHTLY_BUILD -static bool -ObjectAddress(JSContext* cx, unsigned argc, Value* vp) -{ - CallArgs args = CallArgsFromVp(argc, vp); - if (args.length() != 1) { - RootedObject callee(cx, &args.callee()); - ReportUsageErrorASCII(cx, callee, "Wrong number of arguments"); - return false; - } - if (!args[0].isObject()) { - RootedObject callee(cx, &args.callee()); - ReportUsageErrorASCII(cx, callee, "Expected object"); - return false; - } - -#ifdef JS_MORE_DETERMINISTIC - args.rval().setInt32(0); -#else - void* ptr = js::UncheckedUnwrap(&args[0].toObject(), true); - char buffer[64]; - SprintfLiteral(buffer, "%p", ptr); - - JSString* str = JS_NewStringCopyZ(cx, buffer); - if (!str) - return false; - - args.rval().setString(str); -#endif - - return true; -} - static bool SharedAddress(JSContext* cx, unsigned argc, Value* vp) { @@ -2507,7 +2474,6 @@ SharedAddress(JSContext* cx, unsigned argc, Value* vp) return true; } -#endif static bool DumpBacktrace(JSContext* cx, unsigned argc, Value* vp) @@ -4430,16 +4396,9 @@ JS_FN_HELP("rejectPromise", RejectPromise, 2, 0, "sharedMemoryEnabled()", " Return true if SharedArrayBuffer and Atomics are enabled"), -#ifdef NIGHTLY_BUILD - JS_FN_HELP("objectAddress", ObjectAddress, 1, 0, -"objectAddress(obj)", -" Return the current address of the object. For debugging only--this\n" -" address may change during a moving GC."), - JS_FN_HELP("sharedAddress", SharedAddress, 1, 0, "sharedAddress(obj)", " Return the address of the shared storage of a SharedArrayBuffer."), -#endif JS_FN_HELP("evalReturningScope", EvalReturningScope, 1, 0, "evalReturningScope(scriptStr, [global])", diff --git a/js/src/jit/x86-shared/BaseAssembler-x86-shared.h b/js/src/jit/x86-shared/BaseAssembler-x86-shared.h index 54b862a56c..b5f800cdab 100644 --- a/js/src/jit/x86-shared/BaseAssembler-x86-shared.h +++ b/js/src/jit/x86-shared/BaseAssembler-x86-shared.h @@ -2,6 +2,7 @@ * * ***** BEGIN LICENSE BLOCK ***** * Copyright (C) 2008 Apple Inc. All rights reserved. + * Portions Copyright (C) 2022 Moonchild Productions. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -3779,28 +3780,6 @@ threeByteOpImmSimd("vblendps", VEX_PD, OP3_BLENDPS_VpsWpsIb, ESCAPE_3A, imm, off return false; if (MOZ_UNLIKELY(size_t(offset) >= size())) { -#ifdef NIGHTLY_BUILD - // Stash some data on the stack so we can retrieve it from minidumps, - // see bug 1124397. - int32_t startOffset = from.offset() - 1; - while (startOffset >= 0 && code[startOffset] == 0xe5) - startOffset--; - int32_t endOffset = from.offset() - 1; - while (endOffset < int32_t(size()) && code[endOffset] == 0xe5) - endOffset++; - volatile uintptr_t dump[10]; - blackbox = dump; - blackbox[0] = uintptr_t(0xABCD1234); - blackbox[1] = uintptr_t(offset); - blackbox[2] = uintptr_t(size()); - blackbox[3] = uintptr_t(from.offset()); - blackbox[4] = uintptr_t(code[from.offset() - 5]); - blackbox[5] = uintptr_t(code[from.offset() - 4]); - blackbox[6] = uintptr_t(code[from.offset() - 3]); - blackbox[7] = uintptr_t(startOffset); - blackbox[8] = uintptr_t(endOffset); - blackbox[9] = uintptr_t(0xFFFF7777); -#endif MOZ_CRASH("nextJump bogus offset"); } diff --git a/js/src/js-config.mozbuild b/js/src/js-config.mozbuild index 4166c0ad16..d90a42466a 100644 --- a/js/src/js-config.mozbuild +++ b/js/src/js-config.mozbuild @@ -10,11 +10,9 @@ DEFINES['ENABLE_SHARED_ARRAY_BUFFER'] = True DEFINES['EXPORT_JS_API'] = True -if CONFIG['NIGHTLY_BUILD']: - DEFINES['ENABLE_BINARYDATA'] = True +DEFINES['ENABLE_BINARYDATA'] = True -if CONFIG['NIGHTLY_BUILD']: - DEFINES['ENABLE_SIMD'] = True +DEFINES['ENABLE_SIMD'] = True if CONFIG['JS_HAS_CTYPES']: DEFINES['JS_HAS_CTYPES'] = True diff --git a/js/src/jsutil.h b/js/src/jsutil.h index daf056ad2f..48141b1592 100644 --- a/js/src/jsutil.h +++ b/js/src/jsutil.h @@ -361,8 +361,8 @@ Poison(void* ptr, uint8_t value, size_t num) return ptr; } -/* Crash diagnostics by default in debug and on nightly channel. */ -#if (defined(DEBUG) || defined(NIGHTLY_BUILD)) && !defined(MOZ_ASAN) +/* Crash diagnostics by default in debug. */ +#if defined(DEBUG) && !defined(MOZ_ASAN) # define JS_CRASH_DIAGNOSTICS 1 #endif diff --git a/js/src/vm/Debugger.cpp b/js/src/vm/Debugger.cpp index 305555f414..1c875c606f 100644 --- a/js/src/vm/Debugger.cpp +++ b/js/src/vm/Debugger.cpp @@ -641,7 +641,7 @@ Debugger::Debugger(JSContext* cx, NativeObject* dbg) environments(cx), wasmInstanceScripts(cx), wasmInstanceSources(cx), -#ifdef NIGHTLY_BUILD +#ifdef DEBUG traceLoggerLastDrainedSize(0), traceLoggerLastDrainedIteration(0), #endif @@ -656,7 +656,7 @@ Debugger::Debugger(JSContext* cx, NativeObject* dbg) #ifdef JS_TRACE_LOGGING TraceLoggerThread* logger = TraceLoggerForMainThread(cx->runtime()); if (logger) { -#ifdef NIGHTLY_BUILD +#ifdef DEBUG logger->getIterationAndSize(&traceLoggerLastDrainedIteration, &traceLoggerLastDrainedSize); #endif logger->getIterationAndSize(&traceLoggerScriptedCallsLastDrainedIteration, @@ -4891,7 +4891,7 @@ DefineProperty(JSContext* cx, HandleObject obj, HandleId id, const char* value, } #ifdef JS_TRACE_LOGGING -# ifdef NIGHTLY_BUILD +# ifdef DEBUG bool Debugger::setupTraceLogger(JSContext* cx, unsigned argc, Value* vp) { @@ -5009,7 +5009,7 @@ Debugger::drainTraceLogger(JSContext* cx, unsigned argc, Value* vp) return true; } -# endif // NIGHTLY_BUILD +# endif // DEBUG bool Debugger::setupTraceLoggerScriptCalls(JSContext* cx, unsigned argc, Value* vp) @@ -5262,7 +5262,7 @@ const JSFunctionSpec Debugger::methods[] = { JS_FN("drainTraceLoggerScriptCalls", Debugger::drainTraceLoggerScriptCalls, 0, 0), JS_FN("startTraceLogger", Debugger::startTraceLogger, 0, 0), JS_FN("endTraceLogger", Debugger::endTraceLogger, 0, 0), -# ifdef NIGHTLY_BUILD +# ifdef DEBUG JS_FN("setupTraceLogger", Debugger::setupTraceLogger, 1, 0), JS_FN("drainTraceLogger", Debugger::drainTraceLogger, 0, 0), # endif diff --git a/js/src/vm/Debugger.h b/js/src/vm/Debugger.h index c8b84d8b14..56a6318ba9 100644 --- a/js/src/vm/Debugger.h +++ b/js/src/vm/Debugger.h @@ -485,7 +485,7 @@ class Debugger : private mozilla::LinkedListElement * Keep track of tracelogger last drained identifiers to know if there are * lost events. */ -#ifdef NIGHTLY_BUILD +#ifdef DEBUG uint32_t traceLoggerLastDrainedSize; uint32_t traceLoggerLastDrainedIteration; #endif @@ -629,7 +629,7 @@ class Debugger : private mozilla::LinkedListElement static bool startTraceLogger(JSContext* cx, unsigned argc, Value* vp); static bool endTraceLogger(JSContext* cx, unsigned argc, Value* vp); static bool isCompilableUnit(JSContext* cx, unsigned argc, Value* vp); -#ifdef NIGHTLY_BUILD +#ifdef DEBUG static bool setupTraceLogger(JSContext* cx, unsigned argc, Value* vp); static bool drainTraceLogger(JSContext* cx, unsigned argc, Value* vp); #endif diff --git a/js/src/vm/UnboxedObject.cpp b/js/src/vm/UnboxedObject.cpp index de6bdef9e3..4912e65db9 100644 --- a/js/src/vm/UnboxedObject.cpp +++ b/js/src/vm/UnboxedObject.cpp @@ -1906,17 +1906,9 @@ js::TryConvertToUnboxedLayout(ExclusiveContext* cx, AutoEnterAnalysis& enter, Sh { bool isArray = !templateShape; - // Unboxed arrays are nightly only for now. The getenv() call will be - // removed when they are on by default. See bug 1153266. + // Unboxed arrays are disabled for now. See bug 1153266. if (isArray) { -#ifdef NIGHTLY_BUILD - if (!getenv("JS_OPTION_USE_UNBOXED_ARRAYS")) { - if (!cx->options().unboxedArrays()) - return true; - } -#else return true; -#endif } else { if (jit::JitOptions.disableUnboxedObjects) return true; diff --git a/js/src/wasm/AsmJS.cpp b/js/src/wasm/AsmJS.cpp index f659c27ffa..8cbbff5370 100644 --- a/js/src/wasm/AsmJS.cpp +++ b/js/src/wasm/AsmJS.cpp @@ -1,6 +1,7 @@ /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- * * Copyright 2014 Mozilla Foundation + * Copyright 2022 Moonchild Productions * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -8546,9 +8547,7 @@ LookupAsmJSModuleInCache(ExclusiveContext* cx, AsmJSParser& parser, bool* loaded // Don't punish release users by crashing if there is a programmer error // here, just gracefully return with a cache miss. -#ifdef NIGHTLY_BUILD - MOZ_RELEASE_ASSERT(cursor == entry.memory + entry.serializedSize); -#endif + MOZ_ASSERT(cursor == entry.memory + entry.serializedSize); if (cursor != entry.memory + entry.serializedSize) return true; diff --git a/layout/style/nsCSSParser.cpp b/layout/style/nsCSSParser.cpp index 70115d2a4a..f3df2df208 100644 --- a/layout/style/nsCSSParser.cpp +++ b/layout/style/nsCSSParser.cpp @@ -67,9 +67,7 @@ static bool sOpentypeSVGEnabled; static bool sWebkitPrefixedAliasesEnabled; static bool sWebkitDevicePixelRatioEnabled; static bool sUnprefixingServiceEnabled; -#ifdef NIGHTLY_BUILD static bool sUnprefixingServiceGloballyWhitelisted; -#endif static bool sMozGradientsEnabled; static bool sControlCharVisibility; @@ -7197,13 +7195,12 @@ CSSParserImpl::ShouldUseUnprefixingService() const return false; } -#ifdef NIGHTLY_BUILD if (sUnprefixingServiceGloballyWhitelisted) { // Unprefixing is globally whitelisted, // so no need to check mSheetPrincipal. return true; } -#endif + // Unprefixing enabled; see if our principal is whitelisted for unprefixing. return mSheetPrincipal && mSheetPrincipal->IsOnCSSUnprefixingWhitelist(); } @@ -17992,10 +17989,8 @@ nsCSSParser::Startup() "layout.css.prefixes.device-pixel-ratio-webkit"); Preferences::AddBoolVarCache(&sUnprefixingServiceEnabled, "layout.css.unprefixing-service.enabled"); -#ifdef NIGHTLY_BUILD Preferences::AddBoolVarCache(&sUnprefixingServiceGloballyWhitelisted, "layout.css.unprefixing-service.globally-whitelisted"); -#endif Preferences::AddBoolVarCache(&sMozGradientsEnabled, "layout.css.prefixes.gradients"); Preferences::AddBoolVarCache(&sControlCharVisibility, diff --git a/mfbt/WeakPtr.h b/mfbt/WeakPtr.h index 477c56bbf3..a3164c3f87 100644 --- a/mfbt/WeakPtr.h +++ b/mfbt/WeakPtr.h @@ -99,7 +99,7 @@ // b. switch to POSIX-based threading in MinGW with pthread emulation // c. refactor it to not use std::thread -#if !defined(__MINGW32__) && (defined(DEBUG) || (defined(NIGHTLY_BUILD) && !defined(MOZ_PROFILING))) +#if !defined(__MINGW32__) && defined(DEBUG) #include #define MOZ_WEAKPTR_DECLARE_THREAD_SAFETY_CHECK \ diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js index c6b0077902..03dec83bac 100644 --- a/modules/libpref/init/all.js +++ b/modules/libpref/init/all.js @@ -150,11 +150,7 @@ pref("dom.manifest.onappinstalled", false); pref("dom.select_events.enabled", true); // Whether or not selection events on text controls are enabled -#ifdef NIGHTLY_BUILD -pref("dom.select_events.textcontrols.enabled", true); -#else pref("dom.select_events.textcontrols.enabled", false); -#endif // Whether or not the document visbility API is enabled pref("dom.visibilityAPI.enabled", true); @@ -202,11 +198,7 @@ pref("dom.permissions.revoke.enable", false); pref("dom.performance.time_to_non_blank_paint.enabled", false); // Enable Performance Observer API -#ifdef NIGHTLY_BUILD -pref("dom.enable_performance_observer", true); -#else pref("dom.enable_performance_observer", false); -#endif // Enable requestIdleCallback API pref("dom.requestIdleCallback.enabled", true); @@ -346,12 +338,8 @@ pref("mathml.disabled", false); // Enable scale transform for stretchy MathML operators. See bug 414277. pref("mathml.scale_stretchy_operators.enabled", true); -// Enabled on nightly only until we fix mochitest failures. -#ifdef NIGHTLY_BUILD -pref("media.dormant-on-pause-timeout-ms", 5000); -#else -pref("media.dormant-on-pause-timeout-ms", -1); -#endif +// Reduce resource use after 10s of pause on media playback. +pref("media.dormant-on-pause-timeout-ms", 10000); // Media cache size in kilobytes pref("media.cache_size", 512000); @@ -388,11 +376,7 @@ pref("media.wmf.enabled", true); pref("media.wmf.decoder.thread-count", -1); pref("media.wmf.low-latency.enabled", false); pref("media.wmf.skip-blacklist", false); -#ifdef NIGHTLY_BUILD pref("media.wmf.vp9.enabled", true); -#else -pref("media.wmf.vp9.enabled", false); -#endif pref("media.windows-media-foundation.allow-d3d11-dxva", true); pref("media.wmf.disable-d3d11-for-dlls", "igd11dxva64.dll: 20.19.15.4463, 20.19.15.4454, 20.19.15.4444, 20.19.15.4416, 20.19.15.4404, 20.19.15.4390, 20.19.15.4380, 20.19.15.4377, 20.19.15.4364, 20.19.15.4360, 20.19.15.4352, 20.19.15.4331, 20.19.15.4326, 20.19.15.4300; igd10iumd32.dll: 20.19.15.4444, 20.19.15.4424, 20.19.15.4409, 20.19.15.4390, 20.19.15.4380, 20.19.15.4360, 10.18.10.4358, 20.19.15.4331, 20.19.15.4312, 20.19.15.4300, 10.18.15.4281, 10.18.15.4279, 10.18.10.4276, 10.18.15.4268, 10.18.15.4256, 10.18.10.4252, 10.18.15.4248, 10.18.14.4112, 10.18.10.3958, 10.18.10.3496, 10.18.10.3431, 10.18.10.3412, 10.18.10.3355, 9.18.10.3234, 9.18.10.3071, 9.18.10.3055, 9.18.10.3006; igd10umd32.dll: 9.17.10.4229, 9.17.10.3040, 9.17.10.2857, 8.15.10.2274, 8.15.10.2272, 8.15.10.2246, 8.15.10.1840, 8.15.10.1808; igd10umd64.dll: 9.17.10.4229, 9.17.10.2857, 10.18.10.3496; isonyvideoprocessor.dll: 4.1.2247.8090, 4.1.2153.6200; tosqep.dll: 1.2.15.526, 1.1.12.201, 1.0.11.318, 1.0.11.215, 1.0.10.1224; tosqep64.dll: 1.1.12.201, 1.0.11.215; nvwgf2um.dll: 22.21.13.8253, 22.21.13.8233, 22.21.13.8205, 22.21.13.8189, 22.21.13.8178, 22.21.13.8165, 21.21.13.7892, 21.21.13.7878, 21.21.13.7866, 21.21.13.7849, 21.21.13.7654, 21.21.13.7653, 21.21.13.7633, 21.21.13.7619, 21.21.13.7563, 21.21.13.7306, 21.21.13.7290, 21.21.13.7270, 21.21.13.7254, 21.21.13.6939, 21.21.13.6926, 21.21.13.6909, 21.21.13.4201, 21.21.13.4200, 10.18.13.6881, 10.18.13.6839, 10.18.13.6510, 10.18.13.6472, 10.18.13.6143, 10.18.13.5946, 10.18.13.5923, 10.18.13.5921, 10.18.13.5891, 10.18.13.5887, 10.18.13.5582, 10.18.13.5445, 10.18.13.5382, 10.18.13.5362, 9.18.13.4788, 9.18.13.4752, 9.18.13.4725, 9.18.13.4709, 9.18.13.4195, 9.18.13.4192, 9.18.13.4144, 9.18.13.4052, 9.18.13.3788, 9.18.13.3523, 9.18.13.3235, 9.18.13.3165, 9.18.13.2723, 9.18.13.2702, 9.18.13.1422, 9.18.13.1407, 9.18.13.1106, 9.18.13.546; atidxx32.dll: 21.19.151.3, 21.19.142.257, 21.19.137.514, 21.19.137.1, 21.19.134.1, 21.19.128.7, 21.19.128.4, 20.19.0.32837, 20.19.0.32832, 8.17.10.682, 8.17.10.671, 8.17.10.661, 8.17.10.648, 8.17.10.644, 8.17.10.625, 8.17.10.605, 8.17.10.581, 8.17.10.569, 8.17.10.560, 8.17.10.545, 8.17.10.539, 8.17.10.531, 8.17.10.525, 8.17.10.520, 8.17.10.519, 8.17.10.514, 8.17.10.511, 8.17.10.494, 8.17.10.489, 8.17.10.483, 8.17.10.453, 8.17.10.451, 8.17.10.441, 8.17.10.436, 8.17.10.432, 8.17.10.425, 8.17.10.418, 8.17.10.414, 8.17.10.401, 8.17.10.395, 8.17.10.385, 8.17.10.378, 8.17.10.362, 8.17.10.355, 8.17.10.342, 8.17.10.331, 8.17.10.318, 8.17.10.310, 8.17.10.286, 8.17.10.269, 8.17.10.261, 8.17.10.247, 8.17.10.240, 8.15.10.212; atidxx64.dll: 21.19.151.3, 21.19.142.257, 21.19.137.514, 21.19.137.1, 21.19.134.1, 21.19.128.7, 21.19.128.4, 20.19.0.32832, 8.17.10.682, 8.17.10.661, 8.17.10.644, 8.17.10.625; nvumdshim.dll: 10.18.13.6822"); pref("media.wmf.disable-d3d9-for-dlls", "igdumd64.dll: 8.15.10.2189, 8.15.10.2119, 8.15.10.2104, 8.15.10.2102, 8.771.1.0; atiumd64.dll: 7.14.10.833, 7.14.10.867, 7.14.10.885, 7.14.10.903, 7.14.10.911, 8.14.10.768, 9.14.10.1001, 9.14.10.1017, 9.14.10.1080, 9.14.10.1128, 9.14.10.1162, 9.14.10.1171, 9.14.10.1183, 9.14.10.1197, 9.14.10.945, 9.14.10.972, 9.14.10.984, 9.14.10.996"); @@ -439,11 +423,8 @@ pref("media.decoder-doctor.verbose", false); pref("media.decoder-doctor.wmf-disabled-is-failure", false); // Whether to suspend decoding of videos in background tabs. -#ifdef NIGHTLY_BUILD pref("media.suspend-bkgnd-video.enabled", true); -#else -pref("media.suspend-bkgnd-video.enabled", false); -#endif + // Delay, in ms, from time window goes to background to suspending // video decoders. Defaults to 10 seconds. pref("media.suspend-bkgnd-video.delay-ms", 10000); @@ -672,11 +653,7 @@ pref("apz.peek_messages.enabled", true); // Whether to print the APZC tree for debugging pref("apz.printtree", false); -#ifdef NIGHTLY_BUILD -pref("apz.record_checkerboarding", true); -#else pref("apz.record_checkerboarding", false); -#endif pref("apz.test.logging_enabled", false); pref("apz.touch_start_tolerance", "0.1"); pref("apz.touch_move_tolerance", "0.03"); @@ -1244,11 +1221,7 @@ pref("javascript.options.mem.log", false); pref("javascript.options.mem.notify", false); pref("javascript.options.gc_on_memory_pressure", true); pref("javascript.options.compact_on_user_inactive", true); -#ifdef NIGHTLY_BUILD -pref("javascript.options.compact_on_user_inactive_delay", 15000); // ms -#else pref("javascript.options.compact_on_user_inactive_delay", 300000); // ms -#endif pref("javascript.options.mem.gc_high_frequency_time_limit_ms", 1000); pref("javascript.options.mem.gc_high_frequency_low_limit_mb", 100); @@ -2483,12 +2456,8 @@ pref("layout.css.prefixes.device-pixel-ratio-webkit", false); // Is the CSS Unprefixing Service enabled? (This service emulates support // for certain vendor-prefixed properties & values, for sites on a "fixlist".) pref("layout.css.unprefixing-service.enabled", true); -#ifdef NIGHTLY_BUILD // Is the CSS Unprefixing Service whitelisted for all domains? -// (This pref is only honored in Nightly builds and can be removed when -// Bug 1177263 is fixed.) pref("layout.css.unprefixing-service.globally-whitelisted", false); -#endif // Is support for the :scope selector enabled? pref("layout.css.scope-pseudo.enabled", true); @@ -2693,10 +2662,6 @@ pref("hangmonitor.timeout", 0); pref("plugins.load_appdir_plugins", false); // If true, plugins will be click to play pref("plugins.click_to_play", false); -#ifdef NIGHTLY_BUILD -// This only supports one hidden ctp plugin, edit nsPluginArray.cpp if adding a second -pref("plugins.navigator.hidden_ctp_plugin", "Shockwave Flash"); -#endif // The default value for nsIPluginTag.enabledState (STATE_ENABLED = 2) pref("plugin.default.state", 2); @@ -3936,10 +3901,6 @@ pref("layers.acceleration.force", false); // and output the result to stderr. pref("layers.bench.enabled", false); -#if defined(XP_WIN) && defined(NIGHTLY_BUILD) -pref("layers.gpu-process.dev.enabled", true); -#endif - pref("layers.acceleration.draw-fps", false); // Enable DEAA antialiasing for transformed layers in the compositor @@ -4078,11 +4039,7 @@ pref("notification.feature.enabled", false); pref("dom.webnotifications.enabled", true); pref("dom.webnotifications.serviceworker.enabled", true); pref("dom.webnotifications.requireinteraction.count", 3); -#ifdef NIGHTLY_BUILD -pref("dom.webnotifications.requireinteraction.enabled", true); -#else pref("dom.webnotifications.requireinteraction.enabled", false); -#endif // Alert animation effect, name is disableSlidingEffect for backwards-compat. pref("alerts.disableSlidingEffect", false); @@ -4462,11 +4419,7 @@ pref("dom.mozSettings.SettingsService.verbose.enabled", false); pref("dom.mozSettings.allowForceReadOnly", false); // The interval at which to check for slow running addons -#ifdef NIGHTLY_BUILD -pref("browser.addon-watch.interval", 15000); -#else pref("browser.addon-watch.interval", -1); -#endif pref("browser.addon-watch.ignore", "[\"mochikit@mozilla.org\",\"special-powers@mozilla.org\",\"fxdevtools-adapters@mozilla.org\",\"fx-devtools\"]"); // Search service settings diff --git a/toolkit/components/formautofill/formautofill.manifest b/toolkit/components/formautofill/formautofill.manifest index 880972edc2..8d5144a034 100644 --- a/toolkit/components/formautofill/formautofill.manifest +++ b/toolkit/components/formautofill/formautofill.manifest @@ -2,6 +2,3 @@ component {ed9c2c3c-3f86-4ae5-8e31-10f71b0f19e6} FormAutofillContentService.js contract @mozilla.org/formautofill/content-service;1 {ed9c2c3c-3f86-4ae5-8e31-10f71b0f19e6} component {51c95b3d-7431-467b-8d50-383f158ce9e5} FormAutofillStartup.js contract @mozilla.org/formautofill/startup;1 {51c95b3d-7431-467b-8d50-383f158ce9e5} -#ifdef NIGHTLY_BUILD -category profile-after-change FormAutofillStartup @mozilla.org/formautofill/startup;1 -#endif diff --git a/toolkit/content/aboutSupport.js b/toolkit/content/aboutSupport.js index f9a0abcb0e..ae991b888a 100644 --- a/toolkit/content/aboutSupport.js +++ b/toolkit/content/aboutSupport.js @@ -196,24 +196,6 @@ var snapshotFormatters = { delete data.info; } -#ifdef NIGHTLY_BUILD - let windowUtils = window.QueryInterface(Ci.nsIInterfaceRequestor) - .getInterface(Ci.nsIDOMWindowUtils); - let gpuProcessPid = windowUtils.gpuProcessPid; - - if (gpuProcessPid != -1) { - let gpuProcessKillButton = $.new("button"); - - gpuProcessKillButton.addEventListener("click", function() { - windowUtils.terminateGPUProcess(); - }); - - gpuProcessKillButton.textContent = strings.GetStringFromName("gpuProcessKillButton"); - addRow("diagnostics", "GPUProcessPid", gpuProcessPid); - addRow("diagnostics", "GPUProcess", [gpuProcessKillButton]); - } -#endif - // graphics-failures-tbody tbody if ("failures" in data) { // If indices is there, it should be the same length as failures, diff --git a/toolkit/modules/AppConstants.jsm b/toolkit/modules/AppConstants.jsm index 40a630a445..4f018355ab 100644 --- a/toolkit/modules/AppConstants.jsm +++ b/toolkit/modules/AppConstants.jsm @@ -13,21 +13,9 @@ this.EXPORTED_SYMBOLS = ["AppConstants"]; // Immutable for export. this.AppConstants = Object.freeze({ - // See this wiki page for more details about channel specific build - // defines: https://wiki.mozilla.org/Platform/Channel-specific_build_defines - NIGHTLY_BUILD: -#ifdef NIGHTLY_BUILD - true, -#else - false, -#endif - - RELEASE_OR_BETA: -#ifdef RELEASE_OR_BETA - true, -#else - false, -#endif + // These defines are no longer used but kept for compatibility + NIGHTLY_BUILD: false, + RELEASE_OR_BETA: true, ACCESSIBILITY: #ifdef ACCESSIBILITY diff --git a/xpcom/glue/nsDebug.h b/xpcom/glue/nsDebug.h index 8921d60214..eca36c5137 100644 --- a/xpcom/glue/nsDebug.h +++ b/xpcom/glue/nsDebug.h @@ -355,7 +355,7 @@ inline void MOZ_PretendNoReturn() /*****************************************************************************/ -#if (defined(DEBUG) || (defined(NIGHTLY_BUILD) && !defined(MOZ_PROFILING))) && !defined(XPCOM_GLUE_AVOID_NSPR) +#if defined(DEBUG) && !defined(XPCOM_GLUE_AVOID_NSPR) #define MOZ_THREAD_SAFETY_OWNERSHIP_CHECKS_SUPPORTED 1 #endif diff --git a/xpcom/glue/nsISupportsImpl.h b/xpcom/glue/nsISupportsImpl.h index 66c4ad6d85..8c75cbe643 100644 --- a/xpcom/glue/nsISupportsImpl.h +++ b/xpcom/glue/nsISupportsImpl.h @@ -64,13 +64,13 @@ private: #define NS_ASSERT_OWNINGTHREAD_AGGREGATE(agg, _class) \ NS_CheckThreadSafe(agg->_mOwningThread.GetThread(), #_class " not thread-safe") #define NS_ASSERT_OWNINGTHREAD(_class) NS_ASSERT_OWNINGTHREAD_AGGREGATE(this, _class) -#else // !DEBUG && !(NIGHTLY_BUILD && !MOZ_PROFILING) +#else // !DEBUG #define NS_DECL_OWNINGTHREAD /* nothing */ #define NS_ASSERT_OWNINGTHREAD_AGGREGATE(agg, _class) ((void)0) #define NS_ASSERT_OWNINGTHREAD(_class) ((void)0) -#endif // DEBUG || (NIGHTLY_BUILD && !MOZ_PROFILING) +#endif // DEBUG // Macros for reference-count and constructor logging -- cgit v1.2.3 From 6f685140aa98ef0a4a8ddd6da420ea14f61ea31c Mon Sep 17 00:00:00 2001 From: FranklinDM Date: Fri, 22 Apr 2022 21:50:17 +0800 Subject: Issue #1881 - Interpret empty or whitespace root margin string as zero length This attempts to get the first non-whitespace token, which if exists, continues with previous behavior of parsing the margin string. Otherwise, if the specified margin string is empty or consists only of whitespace characters, is interpreted as zero length. IntersectionObserver is the only consumer of the `ParseMarginString` method, as far as I can tell, so this should not affect anything else. Note: For some reason, Firefox and Chrome treat the unitless zero length as invalid, while with this change, we do not change existing behavior in that regard and continue to accept that value. --- layout/style/nsCSSParser.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/layout/style/nsCSSParser.cpp b/layout/style/nsCSSParser.cpp index f3df2df208..387f6ed27f 100644 --- a/layout/style/nsCSSParser.cpp +++ b/layout/style/nsCSSParser.cpp @@ -2300,8 +2300,20 @@ CSSParserImpl::ParseMarginString(const nsSubstring& aBuffer, nsAutoSuppressErrors suppressErrors(this, aSuppressErrors); - // Parse a margin, and check that there's nothing else after it. - bool marginParsed = ParseGroupedBoxProperty(VARIANT_LP, aValue, 0) && !GetToken(true); + bool marginParsed = false; + + // Treat margin as zero length if there are no tokens, i.e., the specified + // margin string is empty or consists only of whitespace characters. + if (!GetToken(true)) { + nsCSSRect& zeroRootMargin = aValue.SetRectValue(); + zeroRootMargin.SetAllSidesTo(nsCSSValue(0.0f, eCSSUnit_Pixel)); + marginParsed = true; + } else { + UngetToken(); + // Parse a margin, and check that there's nothing else after it. + marginParsed = ParseGroupedBoxProperty(VARIANT_LP, aValue, 0) && + !GetToken(true); + } if (aSuppressErrors) { CLEAR_ERROR(); -- cgit v1.2.3 From 17b2aa76508e24b937fc92666bb0513360b103cc Mon Sep 17 00:00:00 2001 From: FranklinDM Date: Mon, 4 Apr 2022 22:54:59 +0800 Subject: Issue #21 - Remove use counters telemetry This reverts Bug 968923 - Implement some equivalent of Chrome's use counters (on top of telemetry?) For reference: https://bugzilla.mozilla.org/show_bug.cgi?id=968923 --- dom/base/UseCounter.h | 36 ---- dom/base/UseCounters.conf | 63 ------ dom/base/gen-usecounters.py | 80 ------- dom/base/moz.build | 15 -- dom/base/nsDOMWindowUtils.cpp | 24 --- dom/base/nsDocument.cpp | 77 ------- dom/base/nsIDocument.h | 46 +--- dom/base/nsImageLoadingContent.cpp | 6 - dom/base/test/browser.ini | 8 - dom/base/test/browser_use_counters.js | 238 --------------------- dom/base/test/file_use_counter_outer.html | 17 -- .../test/file_use_counter_svg_currentScale.svg | 17 -- .../test/file_use_counter_svg_fill_pattern.svg | 15 -- .../file_use_counter_svg_fill_pattern_data.svg | 15 -- ...ile_use_counter_svg_fill_pattern_definition.svg | 14 -- .../file_use_counter_svg_fill_pattern_internal.svg | 23 -- .../test/file_use_counter_svg_getElementById.svg | 22 -- dom/base/usecounters.py | 71 ------ dom/bindings/BindingUtils.cpp | 12 -- dom/bindings/BindingUtils.h | 6 - dom/bindings/Codegen.py | 37 +--- dom/bindings/parser/WebIDL.py | 10 - dom/html/HTMLImageElement.cpp | 12 -- dom/html/HTMLImageElement.h | 6 - dom/interfaces/base/nsIDOMWindowUtils.idl | 13 +- dom/svg/nsSVGElement.cpp | 20 +- dom/webidl/External.webidl | 2 +- dom/webidl/OfflineResourceList.webidl | 14 +- dom/webidl/PushManager.webidl | 2 +- dom/webidl/PushSubscription.webidl | 2 +- dom/webidl/SVGSVGElement.webidl | 2 - dom/webidl/Window.webidl | 2 +- image/DynamicImage.cpp | 6 - image/ImageWrapper.cpp | 6 - image/RasterImage.cpp | 6 - image/VectorImage.cpp | 10 - image/imgIContainer.idl | 11 +- layout/generic/nsBulletFrame.cpp | 10 - layout/style/ImageLoader.cpp | 23 -- layout/style/ImageLoader.h | 2 - layout/style/nsCSSDataBlock.cpp | 19 +- layout/style/nsCSSDataBlock.h | 9 +- layout/style/nsCSSParser.cpp | 19 +- layout/style/nsCSSProps.cpp | 15 -- layout/style/nsCSSProps.h | 12 -- 45 files changed, 25 insertions(+), 1050 deletions(-) delete mode 100644 dom/base/UseCounter.h delete mode 100644 dom/base/UseCounters.conf delete mode 100755 dom/base/gen-usecounters.py delete mode 100644 dom/base/test/browser_use_counters.js delete mode 100644 dom/base/test/file_use_counter_outer.html delete mode 100644 dom/base/test/file_use_counter_svg_currentScale.svg delete mode 100644 dom/base/test/file_use_counter_svg_fill_pattern.svg delete mode 100644 dom/base/test/file_use_counter_svg_fill_pattern_data.svg delete mode 100644 dom/base/test/file_use_counter_svg_fill_pattern_definition.svg delete mode 100644 dom/base/test/file_use_counter_svg_fill_pattern_internal.svg delete mode 100644 dom/base/test/file_use_counter_svg_getElementById.svg delete mode 100644 dom/base/usecounters.py diff --git a/dom/base/UseCounter.h b/dom/base/UseCounter.h deleted file mode 100644 index 01cdb9969e..0000000000 --- a/dom/base/UseCounter.h +++ /dev/null @@ -1,36 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -#ifndef UseCounter_h_ -#define UseCounter_h_ - -#include - -namespace mozilla { - -enum UseCounter : int16_t { - eUseCounter_UNKNOWN = -1, -#define USE_COUNTER_DOM_METHOD(interface_, name_) \ - eUseCounter_##interface_##_##name_, -#define USE_COUNTER_DOM_ATTRIBUTE(interface_, name_) \ - eUseCounter_##interface_##_##name_##_getter, \ - eUseCounter_##interface_##_##name_##_setter, -#define USE_COUNTER_CSS_PROPERTY(name_, id_) \ - eUseCounter_property_##id_, -#include "mozilla/dom/UseCounterList.h" -#undef USE_COUNTER_DOM_METHOD -#undef USE_COUNTER_DOM_ATTRIBUTE -#undef USE_COUNTER_CSS_PROPERTY - -#define DEPRECATED_OPERATION(op_) \ - eUseCounter_##op_, -#include "nsDeprecatedOperationList.h" -#undef DEPRECATED_OPERATION - - eUseCounter_Count -}; - -} - -#endif diff --git a/dom/base/UseCounters.conf b/dom/base/UseCounters.conf deleted file mode 100644 index f9202b629e..0000000000 --- a/dom/base/UseCounters.conf +++ /dev/null @@ -1,63 +0,0 @@ -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this -// file, You can obtain one at http://mozilla.org/MPL/2.0/. - -// This file defines a list of use counters, which are things that can -// record usage of Web platform features and then report this information -// through Telemetry. -// -// The format of this file is very strict. Each line can be: -// -// (a) a blank line -// -// (b) a comment, which is a line that begins with "//" -// -// (c) one of three possible use counter declarations: -// -// method . -// attribute . -// property -// -// The |CSS property method name| should be identical to the |method| -// argument to CSS_PROP and related macros. The method name is -// identical to the name of the property, except that all hyphens are -// removed and CamelCase naming is used. See nsCSSPropList.h for -// further details. -// -// To actually cause use counters to be incremented, DOM methods -// and attributes must have a [UseCounter] extended attribute in -// the Web IDL file. CSS properties require no special treatment -// beyond being listed below. -// -// You might reasonably ask why we have this file and we require -// annotating things with [UseCounter] in the relevant WebIDL file as -// well. Generating things from bindings codegen and ensuring all the -// dependencies were correct would have been rather difficult, and -// annotating the WebIDL files does nothing for identifying CSS -// property usage, which we would also like to track. - -method SVGSVGElement.getElementById -attribute SVGSVGElement.currentScale -property Fill -property FillOpacity - -// Push API -method PushManager.subscribe -method PushSubscription.unsubscribe - -// window.sidebar.addSearchEngine -attribute Window.sidebar -method External.addSearchEngine - -// AppCache API -method OfflineResourceList.swapCache -method OfflineResourceList.update -attribute OfflineResourceList.status -attribute OfflineResourceList.onchecking -attribute OfflineResourceList.onerror -attribute OfflineResourceList.onnoupdate -attribute OfflineResourceList.ondownloading -attribute OfflineResourceList.onprogress -attribute OfflineResourceList.onupdateready -attribute OfflineResourceList.oncached -attribute OfflineResourceList.onobsolete diff --git a/dom/base/gen-usecounters.py b/dom/base/gen-usecounters.py deleted file mode 100755 index 5b17c22e44..0000000000 --- a/dom/base/gen-usecounters.py +++ /dev/null @@ -1,80 +0,0 @@ -#!/usr/bin/env python - -# This Source Code Form is subject to the terms of the Mozilla Public -# License, v. 2.0. If a copy of the MPL was not distributed with this -# file, You can obtain one at http://mozilla.org/MPL/2.0/. - -from __future__ import print_function - -import json -import os -import sys -sys.path.append(os.path.dirname(__file__)) - -import usecounters - -AUTOGENERATED_WARNING_COMMENT = "/* THIS FILE IS AUTOGENERATED BY gen-usecounters.py - DO NOT EDIT */" - -def generate_list(f, counters): - def print_optional_macro_declare(name): - print(''' -#ifndef %(name)s -#define %(name)s(interface_, name_) // nothing -#define DEFINED_%(name)s -#endif -''' % { 'name': name }, file=f) - - def print_optional_macro_undeclare(name): - print(''' -#ifdef DEFINED_%(name)s -#undef DEFINED_%(name)s -#undef %(name)s -#endif -''' % { 'name': name }, file=f) - - print(AUTOGENERATED_WARNING_COMMENT, file=f) - - print_optional_macro_declare('USE_COUNTER_DOM_METHOD') - print_optional_macro_declare('USE_COUNTER_DOM_ATTRIBUTE') - print_optional_macro_declare('USE_COUNTER_CSS_PROPERTY') - - for counter in counters: - if counter['type'] == 'method': - print('USE_COUNTER_DOM_METHOD(%s, %s)' % (counter['interface_name'], counter['method_name']), file=f) - elif counter['type'] == 'attribute': - print('USE_COUNTER_DOM_ATTRIBUTE(%s, %s)' % (counter['interface_name'], counter['attribute_name']), file=f) - elif counter['type'] == 'property': - prop = counter['property_name'] - print('USE_COUNTER_CSS_PROPERTY(%s, %s)' % (prop, prop), file=f) - - print_optional_macro_undeclare('USE_COUNTER_DOM_METHOD') - print_optional_macro_undeclare('USE_COUNTER_DOM_ATTRIBUTE') - print_optional_macro_undeclare('USE_COUNTER_CSS_PROPERTY') - -def generate_property_map(f, counters): - print(AUTOGENERATED_WARNING_COMMENT, file=f) - print(''' -enum { - #define CSS_PROP_PUBLIC_OR_PRIVATE(publicname_, privatename_) privatename_ - #define CSS_PROP_LIST_INCLUDE_LOGICAL - #define CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, \\ - kwtable_, stylestruct_, stylestructoffset_, animtype_) \\ - USE_COUNTER_FOR_CSS_PROPERTY_##method_ = eUseCounter_UNKNOWN, - #include "nsCSSPropList.h" - #undef CSS_PROP - #undef CSS_PROP_LIST_INCLUDE_LOGICAL - #undef CSS_PROP_PUBLIC_OR_PRIVATE -}; -''', file=f) - for counter in counters: - if counter['type'] == 'property': - prop = counter['property_name'] - print('#define USE_COUNTER_FOR_CSS_PROPERTY_%s eUseCounter_property_%s' % (prop, prop), file=f) - -def use_counter_list(output_header, conf_filename): - counters = usecounters.read_conf(conf_filename) - generate_list(output_header, counters) - -def property_map(output_map, conf_filename): - counters = usecounters.read_conf(conf_filename) - generate_property_map(output_map, counters) diff --git a/dom/base/moz.build b/dom/base/moz.build index d8f00e82db..98235c0622 100755 --- a/dom/base/moz.build +++ b/dom/base/moz.build @@ -141,11 +141,9 @@ EXPORTS.mozilla += [ 'FeedWriterEnabled.h', 'TextInputProcessor.h', 'TimerClamping.h', - 'UseCounter.h', ] EXPORTS.mozilla.dom += [ - '!UseCounterList.h', 'AnonymousContent.h', 'Attr.h', 'BarProps.h', @@ -471,18 +469,5 @@ if CONFIG['MOZ_PHOENIX']: if CONFIG['MOZ_X11']: CXXFLAGS += CONFIG['TK_CFLAGS'] -GENERATED_FILES += [ - 'PropertyUseCounterMap.inc', - 'UseCounterList.h', -] - -countermap = GENERATED_FILES['PropertyUseCounterMap.inc'] -countermap.script = 'gen-usecounters.py:property_map' -countermap.inputs = ['UseCounters.conf'] - -counterlist = GENERATED_FILES['UseCounterList.h'] -counterlist.script = 'gen-usecounters.py:use_counter_list' -counterlist.inputs = ['UseCounters.conf'] - if CONFIG['GNU_CXX']: CXXFLAGS += ['-Wno-error=shadow'] diff --git a/dom/base/nsDOMWindowUtils.cpp b/dom/base/nsDOMWindowUtils.cpp index d05f3b71fc..d38b3c600b 100644 --- a/dom/base/nsDOMWindowUtils.cpp +++ b/dom/base/nsDOMWindowUtils.cpp @@ -104,9 +104,6 @@ #include "nsContentPermissionHelper.h" #include "nsCSSPseudoElements.h" // for CSSPseudoElementType #include "nsNetUtil.h" -#include "nsDocument.h" -#include "HTMLImageElement.h" -#include "mozilla/css/ImageLoader.h" #include "mozilla/layers/APZCTreeManager.h" // for layers::ZoomToRectBehavior #include "mozilla/dom/Promise.h" #include "mozilla/StyleSheetInlines.h" @@ -4025,27 +4022,6 @@ nsDOMWindowUtils::LeaveChaosMode() return NS_OK; } -NS_IMETHODIMP -nsDOMWindowUtils::ForceUseCounterFlush(nsIDOMNode *aNode) -{ - NS_ENSURE_ARG_POINTER(aNode); - - if (nsCOMPtr doc = do_QueryInterface(aNode)) { - mozilla::css::ImageLoader* loader = doc->StyleImageLoader(); - loader->FlushUseCounters(); - return NS_OK; - } - - if (nsCOMPtr content = do_QueryInterface(aNode)) { - if (HTMLImageElement* img = HTMLImageElement::FromContent(content)) { - img->FlushUseCounters(); - return NS_OK; - } - } - - return NS_OK; -} - NS_IMETHODIMP nsDOMWindowUtils::HasRuleProcessorUsedByMultipleStyleSets(uint32_t aSheetType, bool* aRetVal) diff --git a/dom/base/nsDocument.cpp b/dom/base/nsDocument.cpp index c00a41addf..95827151db 100644 --- a/dom/base/nsDocument.cpp +++ b/dom/base/nsDocument.cpp @@ -9713,19 +9713,6 @@ static const char* kDocumentWarnings[] = { }; #undef DOCUMENT_WARNING -static UseCounter -OperationToUseCounter(nsIDocument::DeprecatedOperations aOperation) -{ - switch(aOperation) { -#define DEPRECATED_OPERATION(_op) \ - case nsIDocument::e##_op: return eUseCounter_##_op; -#include "nsDeprecatedOperationList.h" -#undef DEPRECATED_OPERATION - default: - MOZ_CRASH(); - } -} - bool nsIDocument::HasWarnedAbout(DeprecatedOperations aOperation) const { @@ -9741,7 +9728,6 @@ nsIDocument::WarnOnceAbout(DeprecatedOperations aOperation, return; } mDeprecationWarnedAbout[aOperation] = true; - const_cast(this)->SetDocumentAndPageUseCounter(OperationToUseCounter(aOperation)); uint32_t flags = asError ? nsIScriptError::errorFlag : nsIScriptError::warningFlag; nsContentUtils::ReportToConsole(flags, @@ -11992,69 +11978,6 @@ nsIDocument::GetTopLevelContentDocument() return parent; } -void -nsIDocument::PropagateUseCounters(nsIDocument* aParentDocument) -{ - MOZ_ASSERT(this != aParentDocument); - - // What really matters here is that our use counters get propagated as - // high up in the content document hierarchy as possible. So, - // starting with aParentDocument, we need to find the toplevel content - // document, and propagate our use counters into its - // mChildDocumentUseCounters. - nsIDocument* contentParent = aParentDocument->GetTopLevelContentDocument(); - - if (!contentParent) { - return; - } - - contentParent->mChildDocumentUseCounters |= mUseCounters; - contentParent->mChildDocumentUseCounters |= mChildDocumentUseCounters; -} - -void -nsIDocument::SetPageUseCounter(UseCounter aUseCounter) -{ - // We want to set the use counter on the "page" that owns us; the definition - // of "page" depends on what kind of document we are. See the comments below - // for details. In any event, checking all the conditions below is - // reasonably expensive, so we cache whether we've notified our owning page. - if (mNotifiedPageForUseCounter[aUseCounter]) { - return; - } - mNotifiedPageForUseCounter[aUseCounter] = true; - - if (mDisplayDocument) { - // If we are a resource document, we won't have a docshell and so we won't - // record any page use counters on this document. Instead, we should - // forward it up to the document that loaded us. - MOZ_ASSERT(!mDocumentContainer); - mDisplayDocument->SetChildDocumentUseCounter(aUseCounter); - return; - } - - if (IsBeingUsedAsImage()) { - // If this is an SVG image document, we also won't have a docshell. - MOZ_ASSERT(!mDocumentContainer); - return; - } - - // We only care about use counters in content. If we're already a toplevel - // content document, then we should have already set the use counter on - // ourselves, and we are done. - nsIDocument* contentParent = GetTopLevelContentDocument(); - if (!contentParent) { - return; - } - - if (this == contentParent) { - MOZ_ASSERT(GetUseCounter(aUseCounter)); - return; - } - - contentParent->SetChildDocumentUseCounter(aUseCounter); -} - bool nsIDocument::HasScriptsBlockedBySandbox() { diff --git a/dom/base/nsIDocument.h b/dom/base/nsIDocument.h index fd393723c1..f6645aaefc 100644 --- a/dom/base/nsIDocument.h +++ b/dom/base/nsIDocument.h @@ -24,7 +24,6 @@ #include "nsTHashtable.h" // for member #include "mozilla/net/ReferrerPolicy.h" // for member #include "nsWeakReference.h" -#include "mozilla/UseCounter.h" #include "mozilla/WeakPtr.h" #include "Units.h" #include "nsContentListDeclarations.h" @@ -2782,23 +2781,6 @@ public: bool DidFireDOMContentLoaded() const { return mDidFireDOMContentLoaded; } - void SetDocumentUseCounter(mozilla::UseCounter aUseCounter) - { - if (!mUseCounters[aUseCounter]) { - mUseCounters[aUseCounter] = true; - } - } - - void SetPageUseCounter(mozilla::UseCounter aUseCounter); - - void SetDocumentAndPageUseCounter(mozilla::UseCounter aUseCounter) - { - SetDocumentUseCounter(aUseCounter); - SetPageUseCounter(aUseCounter); - } - - void PropagateUseCounters(nsIDocument* aParentDocument); - void SetUserHasInteracted(bool aUserHasInteracted) { mUserHasInteracted = aUserHasInteracted; @@ -2857,24 +2839,6 @@ public: virtual void ScheduleResizeObserversNotification() const = 0; -protected: - bool GetUseCounter(mozilla::UseCounter aUseCounter) - { - return mUseCounters[aUseCounter]; - } - - void SetChildDocumentUseCounter(mozilla::UseCounter aUseCounter) - { - if (!mChildDocumentUseCounters[aUseCounter]) { - mChildDocumentUseCounters[aUseCounter] = true; - } - } - - bool GetChildDocumentUseCounter(mozilla::UseCounter aUseCounter) - { - return mChildDocumentUseCounters[aUseCounter]; - } - private: mutable std::bitset mDeprecationWarnedAbout; mutable std::bitset mDocWarningWarnedAbout; @@ -3315,15 +3279,7 @@ protected: // Our live MediaQueryLists PRCList mDOMMediaQueryLists; - // Flags for use counters used directly by this document. - std::bitset mUseCounters; - // Flags for use counters used by any child documents of this document. - std::bitset mChildDocumentUseCounters; - // Flags for whether we've notified our top-level "page" of a use counter - // for this child document. - std::bitset mNotifiedPageForUseCounter; - - // Whether the user has interacted with the document or not: + // Whether the user has interacted with the document or not: bool mUserHasInteracted; mozilla::TimeStamp mPageUnloadingEventTimeStamp; diff --git a/dom/base/nsImageLoadingContent.cpp b/dom/base/nsImageLoadingContent.cpp index fecd995d72..091ee65263 100644 --- a/dom/base/nsImageLoadingContent.cpp +++ b/dom/base/nsImageLoadingContent.cpp @@ -180,12 +180,6 @@ nsImageLoadingContent::Notify(imgIRequest* aRequest, } if (aType == imgINotificationObserver::DECODE_COMPLETE) { - nsCOMPtr container; - aRequest->GetImage(getter_AddRefs(container)); - if (container) { - container->PropagateUseCounters(GetOurOwnerDoc()); - } - UpdateImageState(true); } diff --git a/dom/base/test/browser.ini b/dom/base/test/browser.ini index 60949f7a2d..506eeb97ad 100644 --- a/dom/base/test/browser.ini +++ b/dom/base/test/browser.ini @@ -4,13 +4,6 @@ support-files = file_bug1011748_redirect.sjs file_bug1011748_OK.sjs file_messagemanager_unload.html - file_use_counter_outer.html - file_use_counter_svg_getElementById.svg - file_use_counter_svg_currentScale.svg - file_use_counter_svg_fill_pattern_definition.svg - file_use_counter_svg_fill_pattern.svg - file_use_counter_svg_fill_pattern_internal.svg - file_use_counter_svg_fill_pattern_data.svg [browser_bug593387.js] [browser_bug902350.js] @@ -24,5 +17,4 @@ tags = mcb skip-if = e10s # this tests non-e10s behavior. it's not expected to work in e10s. [browser_state_notifications.js] skip-if = true # Bug 1271028 -[browser_use_counters.js] [browser_bug1307747.js] diff --git a/dom/base/test/browser_use_counters.js b/dom/base/test/browser_use_counters.js deleted file mode 100644 index 7206bb5064..0000000000 --- a/dom/base/test/browser_use_counters.js +++ /dev/null @@ -1,238 +0,0 @@ -/* -*- Mode: javascript; tab-width: 2; indent-tabs-mode: nil; js-indent-level: 2 -*- */ - -requestLongerTimeout(2); - -var {Promise: promise} = Cu.import("resource://gre/modules/Promise.jsm", {}); -Cu.import("resource://gre/modules/Services.jsm"); - -const gHttpTestRoot = "http://example.com/browser/dom/base/test/"; - -add_task(function* () { - // Check that use counters are incremented by SVGs loaded directly in iframes. - yield check_use_counter_iframe("file_use_counter_svg_getElementById.svg", - "SVGSVGELEMENT_GETELEMENTBYID"); - yield check_use_counter_iframe("file_use_counter_svg_currentScale.svg", - "SVGSVGELEMENT_CURRENTSCALE_getter"); - yield check_use_counter_iframe("file_use_counter_svg_currentScale.svg", - "SVGSVGELEMENT_CURRENTSCALE_setter"); - - // Check that even loads from the imglib cache update use counters. The - // images should still be there, because we just loaded them in the last - // set of tests. But we won't get updated counts for the document - // counters, because we won't be re-parsing the SVG documents. - yield check_use_counter_iframe("file_use_counter_svg_getElementById.svg", - "SVGSVGELEMENT_GETELEMENTBYID", false); - yield check_use_counter_iframe("file_use_counter_svg_currentScale.svg", - "SVGSVGELEMENT_CURRENTSCALE_getter", false); - yield check_use_counter_iframe("file_use_counter_svg_currentScale.svg", - "SVGSVGELEMENT_CURRENTSCALE_setter", false); - - // Check that use counters are incremented by SVGs loaded as images. - // Note that SVG images are not permitted to execute script, so we can only - // check for properties here. - yield check_use_counter_img("file_use_counter_svg_getElementById.svg", - "PROPERTY_FILL"); - yield check_use_counter_img("file_use_counter_svg_currentScale.svg", - "PROPERTY_FILL"); - - // Check that use counters are incremented by directly loading SVGs - // that reference patterns defined in another SVG file. - yield check_use_counter_direct("file_use_counter_svg_fill_pattern.svg", - "PROPERTY_FILLOPACITY", /*xfail=*/true); - - // Check that use counters are incremented by directly loading SVGs - // that reference patterns defined in the same file or in data: URLs. - yield check_use_counter_direct("file_use_counter_svg_fill_pattern_internal.svg", - "PROPERTY_FILLOPACITY"); - // data: URLs don't correctly propagate to their referring document yet. - //yield check_use_counter_direct("file_use_counter_svg_fill_pattern_data.svg", - // "PROPERTY_FILL_OPACITY"); -}); - - -function waitForDestroyedDocuments() { - let deferred = promise.defer(); - SpecialPowers.exactGC(deferred.resolve); - return deferred.promise; -} - -function waitForPageLoad(browser) { - return ContentTask.spawn(browser, null, function*() { - Cu.import("resource://gre/modules/PromiseUtils.jsm"); - yield new Promise(resolve => { - let listener = () => { - removeEventListener("load", listener, true); - resolve(); - } - addEventListener("load", listener, true); - }); - }); -} - -function grabHistogramsFromContent(use_counter_middlefix, page_before = null) { -} - -var check_use_counter_iframe = Task.async(function* (file, use_counter_middlefix, check_documents=true) { - info("checking " + file + " with histogram " + use_counter_middlefix); - - let newTab = gBrowser.addTab( "about:blank"); - gBrowser.selectedTab = newTab; - newTab.linkedBrowser.stop(); - - gBrowser.selectedBrowser.loadURI(gHttpTestRoot + "file_use_counter_outer.html"); - yield waitForPageLoad(gBrowser.selectedBrowser); - - // Inject our desired file into the iframe of the newly-loaded page. - yield ContentTask.spawn(gBrowser.selectedBrowser, { file: file }, function(opts) { - Cu.import("resource://gre/modules/PromiseUtils.jsm"); - let deferred = PromiseUtils.defer(); - - let wu = content.window.QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIDOMWindowUtils); - - let iframe = content.document.getElementById('content'); - iframe.src = opts.file; - let listener = (event) => { - event.target.removeEventListener("load", listener, true); - - // We flush the main document first, then the iframe's document to - // ensure any propagation that might happen from content->parent should - // have already happened. - wu.forceUseCounterFlush(content.document); - wu.forceUseCounterFlush(iframe.contentDocument); - - deferred.resolve(); - }; - iframe.addEventListener("load", listener, true); - - return deferred.promise; - }); - - // Tear down the page. - gBrowser.removeTab(newTab); - - // The histograms only get recorded when the document actually gets - // destroyed, which might not have happened yet due to GC/CC effects, etc. - // Try to force document destruction. - yield waitForDestroyedDocuments(); - - // Grab histograms again and compare. - let [histogram_page_after, histogram_document_after, - histogram_docs_after, histogram_toplevel_docs_after] = - yield grabHistogramsFromContent(use_counter_middlefix, histogram_page_before); - - is(histogram_page_after, histogram_page_before + 1, - "page counts for " + use_counter_middlefix + " after are correct"); - ok(histogram_toplevel_docs_after >= histogram_toplevel_docs_before + 1, - "top level document counts are correct"); - if (check_documents) { - is(histogram_document_after, histogram_document_before + 1, - "document counts for " + use_counter_middlefix + " after are correct"); - } -}); - -var check_use_counter_img = Task.async(function* (file, use_counter_middlefix) { - info("checking " + file + " as image with histogram " + use_counter_middlefix); - - let newTab = gBrowser.addTab("about:blank"); - gBrowser.selectedTab = newTab; - newTab.linkedBrowser.stop(); - - gBrowser.selectedBrowser.loadURI(gHttpTestRoot + "file_use_counter_outer.html"); - yield waitForPageLoad(gBrowser.selectedBrowser); - - // Inject our desired file into the img of the newly-loaded page. - yield ContentTask.spawn(gBrowser.selectedBrowser, { file: file }, function(opts) { - Cu.import("resource://gre/modules/PromiseUtils.jsm"); - let deferred = PromiseUtils.defer(); - - let img = content.document.getElementById('display'); - img.src = opts.file; - let listener = (event) => { - img.removeEventListener("load", listener, true); - - // Flush for the image. It matters what order we do these in, so that - // the image can propagate its use counters to the document prior to the - // document reporting its use counters. - let wu = content.window.QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIDOMWindowUtils); - wu.forceUseCounterFlush(img); - - // Flush for the main window. - wu.forceUseCounterFlush(content.document); - - deferred.resolve(); - }; - img.addEventListener("load", listener, true); - - return deferred.promise; - }); - - // Tear down the page. - gBrowser.removeTab(newTab); - - // The histograms only get recorded when the document actually gets - // destroyed, which might not have happened yet due to GC/CC effects, etc. - // Try to force document destruction. - yield waitForDestroyedDocuments(); - - // Grab histograms again and compare. - let [histogram_page_after, histogram_document_after, - histogram_docs_after, histogram_toplevel_docs_after] = - yield grabHistogramsFromContent(use_counter_middlefix, histogram_page_before); - is(histogram_page_after, histogram_page_before + 1, - "page counts for " + use_counter_middlefix + " after are correct"); - is(histogram_document_after, histogram_document_before + 1, - "document counts for " + use_counter_middlefix + " after are correct"); - ok(histogram_toplevel_docs_after >= histogram_toplevel_docs_before + 1, - "top level document counts are correct"); - // 2 documents: one for the outer html page containing the element, and - // one for the SVG image itself. - ok(histogram_docs_after >= histogram_docs_before + 2, - "document counts are correct"); -}); - -var check_use_counter_direct = Task.async(function* (file, use_counter_middlefix, xfail=false) { - info("checking " + file + " with histogram " + use_counter_middlefix); - - let newTab = gBrowser.addTab( "about:blank"); - gBrowser.selectedTab = newTab; - newTab.linkedBrowser.stop(); - - gBrowser.selectedBrowser.loadURI(gHttpTestRoot + file); - yield ContentTask.spawn(gBrowser.selectedBrowser, null, function*() { - Cu.import("resource://gre/modules/PromiseUtils.jsm"); - yield new Promise(resolve => { - let listener = () => { - removeEventListener("load", listener, true); - - let wu = content.window.QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIDOMWindowUtils); - wu.forceUseCounterFlush(content.document); - - setTimeout(resolve, 0); - } - addEventListener("load", listener, true); - }); - }); - - // Tear down the page. - gBrowser.removeTab(newTab); - - // The histograms only get recorded when the document actually gets - // destroyed, which might not have happened yet due to GC/CC effects, etc. - // Try to force document destruction. - yield waitForDestroyedDocuments(); - - // Grab histograms again and compare. - let [histogram_page_after, histogram_document_after, - histogram_docs_after, histogram_toplevel_docs_after] = - yield grabHistogramsFromContent(use_counter_middlefix, histogram_page_before); - if (!xfail) { - is(histogram_page_after, histogram_page_before + 1, - "page counts for " + use_counter_middlefix + " after are correct"); - is(histogram_document_after, histogram_document_before + 1, - "document counts for " + use_counter_middlefix + " after are correct"); - } - ok(histogram_toplevel_docs_after >= histogram_toplevel_docs_before + 1, - "top level document counts are correct"); - ok(histogram_docs_after >= histogram_docs_before + 1, - "document counts are correct"); -}); diff --git a/dom/base/test/file_use_counter_outer.html b/dom/base/test/file_use_counter_outer.html deleted file mode 100644 index 1a7eb90f7c..0000000000 --- a/dom/base/test/file_use_counter_outer.html +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - Test for Bug 968923 - - -Mozilla Bug 968923 - - - - diff --git a/dom/base/test/file_use_counter_svg_currentScale.svg b/dom/base/test/file_use_counter_svg_currentScale.svg deleted file mode 100644 index ea9721a599..0000000000 --- a/dom/base/test/file_use_counter_svg_currentScale.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - Test graphic for hitting currentScale - - - - - - diff --git a/dom/base/test/file_use_counter_svg_fill_pattern.svg b/dom/base/test/file_use_counter_svg_fill_pattern.svg deleted file mode 100644 index ec8059a3d4..0000000000 --- a/dom/base/test/file_use_counter_svg_fill_pattern.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - Borrowed from http://www.w3.org/TR/SVG/pservers.html - - - - - - diff --git a/dom/base/test/file_use_counter_svg_fill_pattern_data.svg b/dom/base/test/file_use_counter_svg_fill_pattern_data.svg deleted file mode 100644 index 21f4753148..0000000000 --- a/dom/base/test/file_use_counter_svg_fill_pattern_data.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - Borrowed from http://www.w3.org/TR/SVG/pservers.html - - - - - - diff --git a/dom/base/test/file_use_counter_svg_fill_pattern_definition.svg b/dom/base/test/file_use_counter_svg_fill_pattern_definition.svg deleted file mode 100644 index ffc2f1bed2..0000000000 --- a/dom/base/test/file_use_counter_svg_fill_pattern_definition.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - Borrowed from http://www.w3.org/TR/SVG/pservers.html - - - - - - diff --git a/dom/base/test/file_use_counter_svg_fill_pattern_internal.svg b/dom/base/test/file_use_counter_svg_fill_pattern_internal.svg deleted file mode 100644 index 3b0670cd0b..0000000000 --- a/dom/base/test/file_use_counter_svg_fill_pattern_internal.svg +++ /dev/null @@ -1,23 +0,0 @@ - - - - Borrowed from http://www.w3.org/TR/SVG/pservers.html - - - - - - - - - - - - diff --git a/dom/base/test/file_use_counter_svg_getElementById.svg b/dom/base/test/file_use_counter_svg_getElementById.svg deleted file mode 100644 index 3393f43752..0000000000 --- a/dom/base/test/file_use_counter_svg_getElementById.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - - Test graphic for hitting getElementById - - - - - - diff --git a/dom/base/usecounters.py b/dom/base/usecounters.py deleted file mode 100644 index b93f02f801..0000000000 --- a/dom/base/usecounters.py +++ /dev/null @@ -1,71 +0,0 @@ -# This Source Code Form is subject to the terms of the Mozilla Public -# License, v. 2.0. If a copy of the MPL was not distributed with this -# file, You can obtain one at http://mozilla.org/MPL/2.0/. - -import buildconfig -import collections -import re -import StringIO -import sys - -def read_conf(conf_filename): - # Can't read/write from a single StringIO, so make a new one for reading. - stream = open(conf_filename, 'rU') - - def parse_counters(stream): - for line_num, line in enumerate(stream): - line = line.rstrip('\n') - if not line or line.startswith('//'): - # empty line or comment - continue - m = re.match(r'method ([A-Za-z0-9]+)\.([A-Za-z0-9]+)$', line) - if m: - interface_name, method_name = m.groups() - yield { 'type': 'method', - 'interface_name': interface_name, - 'method_name': method_name } - continue - m = re.match(r'attribute ([A-Za-z0-9]+)\.([A-Za-z0-9]+)$', line) - if m: - interface_name, attribute_name = m.groups() - yield { 'type': 'attribute', - 'interface_name': interface_name, - 'attribute_name': attribute_name } - continue - m = re.match(r'property ([A-Za-z0-9]+)$', line) - if m: - property_name = m.group(1) - yield { 'type': 'property', - 'property_name': property_name } - continue - raise ValueError('error parsing %s at line %d' % (conf_filename, line_num)) - - return parse_counters(stream) - -def generate_histograms(filename): - # The mapping for use counters to telemetry histograms depends on the - # ordering of items in the dictionary. - items = collections.OrderedDict() - for counter in read_conf(filename): - def append_counter(name, desc): - items[name] = { 'expires_in_version': 'never', - 'kind' : 'boolean', - 'description': desc } - - def append_counters(name, desc): - append_counter('USE_COUNTER2_%s_DOCUMENT' % name, 'Whether a document %s' % desc) - append_counter('USE_COUNTER2_%s_PAGE' % name, 'Whether a page %s' % desc) - - if counter['type'] == 'method': - method = '%s.%s' % (counter['interface_name'], counter['method_name']) - append_counters(method.replace('.', '_').upper(), 'called %s' % method) - elif counter['type'] == 'attribute': - attr = '%s.%s' % (counter['interface_name'], counter['attribute_name']) - counter_name = attr.replace('.', '_').upper() - append_counters('%s_getter' % counter_name, 'got %s' % attr) - append_counters('%s_setter' % counter_name, 'set %s' % attr) - elif counter['type'] == 'property': - prop = counter['property_name'] - append_counters('PROPERTY_%s' % prop.replace('-', '_').upper(), "used the '%s' property" % prop) - - return items diff --git a/dom/bindings/BindingUtils.cpp b/dom/bindings/BindingUtils.cpp index a8884d6a45..512b9f8173 100644 --- a/dom/bindings/BindingUtils.cpp +++ b/dom/bindings/BindingUtils.cpp @@ -14,7 +14,6 @@ #include "mozilla/Preferences.h" #include "mozilla/SizePrintfMacros.h" #include "mozilla/Unused.h" -#include "mozilla/UseCounter.h" #include "mozilla/dom/DocGroup.h" #include "AccessCheck.h" @@ -59,7 +58,6 @@ #include "mozilla/jsipc/CrossProcessObjectWrappers.h" #include "nsDOMClassInfo.h" #include "ipc/ErrorIPCUtils.h" -#include "mozilla/UseCounter.h" namespace mozilla { namespace dom { @@ -3592,16 +3590,6 @@ AssertReflectorHasGivenProto(JSContext* aCx, JSObject* aReflector, } // namespace binding_detail #endif // DEBUG -void -SetDocumentAndPageUseCounter(JSContext* aCx, JSObject* aObject, - UseCounter aUseCounter) -{ - nsGlobalWindow* win = xpc::WindowGlobalOrNull(js::UncheckedUnwrap(aObject)); - if (win && win->GetDocument()) { - win->GetDocument()->SetDocumentAndPageUseCounter(aUseCounter); - } -} - namespace { // This runnable is used to write a deprecation message from a worker to the diff --git a/dom/bindings/BindingUtils.h b/dom/bindings/BindingUtils.h index c80631fc14..9ae5ed1f73 100644 --- a/dom/bindings/BindingUtils.h +++ b/dom/bindings/BindingUtils.h @@ -46,8 +46,6 @@ class nsIJSID; namespace mozilla { -enum UseCounter : int16_t; - namespace dom { class CustomElementReactionsStack; template class Record; @@ -3428,10 +3426,6 @@ already_AddRefed CreateHTMLElement(const GlobalObject& aGlobal, const JS::CallArgs& aCallArgs, JS::Handle aGivenProto, ErrorResult& aRv); -void -SetDocumentAndPageUseCounter(JSContext* aCx, JSObject* aObject, - UseCounter aUseCounter); - // Warnings void DeprecationWarning(JSContext* aCx, JSObject* aObject, diff --git a/dom/bindings/Codegen.py b/dom/bindings/Codegen.py index 42ce94fcb4..a70253fc3a 100644 --- a/dom/bindings/Codegen.py +++ b/dom/bindings/Codegen.py @@ -7467,8 +7467,8 @@ class CGPerSignatureCall(CGThing): def __init__(self, returnType, arguments, nativeMethodName, static, descriptor, idlNode, argConversionStartsAt=0, getter=False, - setter=False, isConstructor=False, useCounterName=None, - resultVar=None, objectName="obj"): + setter=False, isConstructor=False, resultVar=None, + objectName="obj"): assert idlNode.isMethod() == (not getter and not setter) assert idlNode.isAttr() == (getter or setter) # Constructors are always static @@ -7701,11 +7701,6 @@ class CGPerSignatureCall(CGThing): nativeMethodName, static, argsPost=argsPost, resultVar=resultVar)) - if useCounterName: - # Generate a telemetry call for when [UseCounter] is used. - code = "SetDocumentAndPageUseCounter(cx, obj, eUseCounter_%s);\n" % useCounterName - cgThings.append(CGGeneric(code)) - self.cgRoot = CGList(cgThings) def getArguments(self): @@ -7934,11 +7929,6 @@ class CGMethodCall(CGThing): methodName = "%s.%s" % (descriptor.interface.identifier.name, method.identifier.name) argDesc = "argument %d of " + methodName - if method.getExtendedAttribute("UseCounter"): - useCounterName = methodName.replace(".", "_") - else: - useCounterName = None - if method.isStatic(): nativeType = descriptor.nativeType staticTypeOverride = PropertyDefiner.getStringAttr(method, "StaticClassOverride") @@ -7960,8 +7950,7 @@ class CGMethodCall(CGThing): nativeMethodName, static, descriptor, method, argConversionStartsAt=argConversionStartsAt, - isConstructor=isConstructor, - useCounterName=useCounterName) + isConstructor=isConstructor) signatures = method.signatures() if len(signatures) == 1: @@ -8337,16 +8326,11 @@ class CGGetterCall(CGPerSignatureCall): getter. """ def __init__(self, returnType, nativeMethodName, descriptor, attr): - if attr.getExtendedAttribute("UseCounter"): - useCounterName = "%s_%s_getter" % (descriptor.interface.identifier.name, - attr.identifier.name) - else: - useCounterName = None if attr.isStatic(): nativeMethodName = "%s::%s" % (descriptor.nativeType, nativeMethodName) CGPerSignatureCall.__init__(self, returnType, [], nativeMethodName, attr.isStatic(), descriptor, attr, - getter=True, useCounterName=useCounterName) + getter=True) class CGNavigatorGetterCall(CGPerSignatureCall): @@ -8413,17 +8397,12 @@ class CGSetterCall(CGPerSignatureCall): setter. """ def __init__(self, argType, nativeMethodName, descriptor, attr): - if attr.getExtendedAttribute("UseCounter"): - useCounterName = "%s_%s_setter" % (descriptor.interface.identifier.name, - attr.identifier.name) - else: - useCounterName = None if attr.isStatic(): nativeMethodName = "%s::%s" % (descriptor.nativeType, nativeMethodName) CGPerSignatureCall.__init__(self, None, [FakeArgument(argType, attr, allowTreatNonCallableAsNull=True)], nativeMethodName, attr.isStatic(), - descriptor, attr, setter=True, useCounterName=useCounterName) + descriptor, attr, setter=True) def wrap_return_value(self): attr = self.idlNode @@ -13932,12 +13911,6 @@ class CGBindingRoot(CGThing): bindingHeaders[CGHeaders.getDeclarationFilename(enums[0])] = True bindingHeaders["jsapi.h"] = True - # For things that have [UseCounter] - def descriptorRequiresTelemetry(desc): - iface = desc.interface - return any(m.getExtendedAttribute("UseCounter") for m in iface.members) - bindingHeaders["mozilla/UseCounter.h"] = any( - descriptorRequiresTelemetry(d) for d in descriptors) bindingHeaders["mozilla/dom/SimpleGlobalObject.h"] = any( CGDictionary.dictionarySafeToJSONify(d) for d in dictionaries) bindingHeaders["XrayWrapper.h"] = any( diff --git a/dom/bindings/parser/WebIDL.py b/dom/bindings/parser/WebIDL.py index 81911996d5..ce8862c02b 100644 --- a/dom/bindings/parser/WebIDL.py +++ b/dom/bindings/parser/WebIDL.py @@ -4245,11 +4245,6 @@ class IDLAttribute(IDLInterfaceMember): "readonly attributes" % attr.value(), [attr.location, self.location]) self._setDependsOn(attr.value()) - elif identifier == "UseCounter": - if self.stringifier: - raise WebIDLError("[UseCounter] must not be used on a " - "stringifier attribute", - [attr.location, self.location]) elif identifier == "Unscopable": if not attr.noArguments(): raise WebIDLError("[Unscopable] must take no arguments", @@ -4979,11 +4974,6 @@ class IDLMethod(IDLInterfaceMember, IDLScope): raise WebIDLError("[Alias] takes an identifier or string", [attr.location]) self._addAlias(attr.value()) - elif identifier == "UseCounter": - if self.isSpecial(): - raise WebIDLError("[UseCounter] must not be used on a special " - "operation", - [attr.location, self.location]) elif identifier == "Unscopable": if not attr.noArguments(): raise WebIDLError("[Unscopable] must take no arguments", diff --git a/dom/html/HTMLImageElement.cpp b/dom/html/HTMLImageElement.cpp index cb586d68ac..f7fe0fdcee 100644 --- a/dom/html/HTMLImageElement.cpp +++ b/dom/html/HTMLImageElement.cpp @@ -10,7 +10,6 @@ #include "nsPresContext.h" #include "nsMappedAttributes.h" #include "nsSize.h" -#include "nsDocument.h" #include "nsIDocument.h" #include "nsIDOMMutationEvent.h" #include "nsIScriptContext.h" @@ -27,7 +26,6 @@ #include "mozilla/dom/HTMLFormElement.h" #include "nsAttrValueOrString.h" #include "imgLoader.h" -#include "Image.h" // Responsive images! #include "mozilla/dom/HTMLSourceElement.h" @@ -1362,16 +1360,6 @@ HTMLImageElement::MediaFeatureValuesChanged() QueueImageLoadTask(false); } -void -HTMLImageElement::FlushUseCounters() -{ - nsCOMPtr request; - GetRequest(CURRENT_REQUEST, getter_AddRefs(request)); - - nsCOMPtr container; - request->GetImage(getter_AddRefs(container)); -} - } // namespace dom } // namespace mozilla diff --git a/dom/html/HTMLImageElement.h b/dom/html/HTMLImageElement.h index 8d382610da..3d3c7c834e 100644 --- a/dom/html/HTMLImageElement.h +++ b/dom/html/HTMLImageElement.h @@ -261,12 +261,6 @@ public: const nsAString& aMediaAttr, nsAString& aResult); - /** - * If this image's src pointers to an SVG document, flush the SVG document's - * use counters to telemetry. Only used for testing purposes. - */ - void FlushUseCounters(); - protected: virtual ~HTMLImageElement(); diff --git a/dom/interfaces/base/nsIDOMWindowUtils.idl b/dom/interfaces/base/nsIDOMWindowUtils.idl index 70ec7e0ae6..ad45e6e520 100644 --- a/dom/interfaces/base/nsIDOMWindowUtils.idl +++ b/dom/interfaces/base/nsIDOMWindowUtils.idl @@ -49,7 +49,7 @@ interface nsIJSRAIIHelper; interface nsIContentPermissionRequest; interface nsIObserver; -[scriptable, uuid(c471d440-004b-4c50-a6f2-747db5f443b6)] +[scriptable, uuid(7fcc7958-77d9-45ff-8c81-277bde5f0dc8)] interface nsIDOMWindowUtils : nsISupports { /** @@ -1938,17 +1938,6 @@ interface nsIDOMWindowUtils : nsISupports { */ bool hasRuleProcessorUsedByMultipleStyleSets(in unsigned long aSheetType); - /* - * Force the use counters for the node's associated document(s) to be - * flushed to telemetry. For example, a document node will flush its own - * counters and an image node with an SVG source will flush the SVG - * document's counters. Normally, use counters are flushed to telemetry - * upon document destruction, but as document destruction is somewhat - * non-deterministic, we have this method here for more determinism when - * running tests. - */ - void forceUseCounterFlush(in nsIDOMNode aNode); - void setNextPaintSyncId(in long aSyncId); /** diff --git a/dom/svg/nsSVGElement.cpp b/dom/svg/nsSVGElement.cpp index 30ba920c9f..97578b81c7 100644 --- a/dom/svg/nsSVGElement.cpp +++ b/dom/svg/nsSVGElement.cpp @@ -1208,27 +1208,9 @@ MappedAttrParser::ParseMappedAttrValue(nsIAtom* aMappedAttrName, nsCSSProps::LookupProperty(nsDependentAtomString(aMappedAttrName), CSSEnabledState::eForAllContent); if (propertyID != eCSSProperty_UNKNOWN) { - bool changed = false; // outparam for ParseProperty. + bool changed; // outparam for ParseProperty. (ignored) mParser.ParseProperty(propertyID, aMappedAttrValue, mDocURI, mBaseURI, mElement->NodePrincipal(), mDecl, &changed, false, true); - if (changed) { - // The normal reporting of use counters by the nsCSSParser won't happen - // since it doesn't have a sheet. - if (nsCSSProps::IsShorthand(propertyID)) { - CSSPROPS_FOR_SHORTHAND_SUBPROPERTIES(subprop, propertyID, - CSSEnabledState::eForAllContent) { - UseCounter useCounter = nsCSSProps::UseCounterFor(*subprop); - if (useCounter != eUseCounter_UNKNOWN) { - mElement->OwnerDoc()->SetDocumentAndPageUseCounter(useCounter); - } - } - } else { - UseCounter useCounter = nsCSSProps::UseCounterFor(propertyID); - if (useCounter != eUseCounter_UNKNOWN) { - mElement->OwnerDoc()->SetDocumentAndPageUseCounter(useCounter); - } - } - } return; } MOZ_ASSERT(aMappedAttrName == nsGkAtoms::lang, diff --git a/dom/webidl/External.webidl b/dom/webidl/External.webidl index 890dff306e..4b97a2007e 100644 --- a/dom/webidl/External.webidl +++ b/dom/webidl/External.webidl @@ -13,7 +13,7 @@ interface External // Mozilla extension partial interface External { - [UnsafeInPrerendering, UseCounter] + [UnsafeInPrerendering] void addSearchEngine(DOMString engineURL, DOMString iconURL, DOMString suggestedTitle, DOMString suggestedCategory); }; diff --git a/dom/webidl/OfflineResourceList.webidl b/dom/webidl/OfflineResourceList.webidl index abc5118881..a646428016 100644 --- a/dom/webidl/OfflineResourceList.webidl +++ b/dom/webidl/OfflineResourceList.webidl @@ -25,38 +25,30 @@ interface OfflineResourceList : EventTarget { /* The application cache group is now obsolete. */ const unsigned short OBSOLETE = 5; - [Throws, UseCounter] + [Throws] readonly attribute unsigned short status; /** * Begin the application update process on the associated application cache. */ - [Throws, UseCounter] + [Throws] void update(); /** * Swap in the newest version of the application cache, or disassociate * from the cache if the cache group is obsolete. */ - [Throws, UseCounter] + [Throws] void swapCache(); /* Events */ - [UseCounter] attribute EventHandler onchecking; - [UseCounter] attribute EventHandler onerror; - [UseCounter] attribute EventHandler onnoupdate; - [UseCounter] attribute EventHandler ondownloading; - [UseCounter] attribute EventHandler onprogress; - [UseCounter] attribute EventHandler onupdateready; - [UseCounter] attribute EventHandler oncached; - [UseCounter] attribute EventHandler onobsolete; }; diff --git a/dom/webidl/PushManager.webidl b/dom/webidl/PushManager.webidl index de1e632c7e..ef9b49e26f 100644 --- a/dom/webidl/PushManager.webidl +++ b/dom/webidl/PushManager.webidl @@ -25,7 +25,7 @@ interface PushManagerImpl { [Exposed=(Window,Worker), Func="nsContentUtils::PushEnabled", ChromeConstructor(DOMString scope)] interface PushManager { - [Throws, UseCounter] + [Throws] Promise subscribe(optional PushSubscriptionOptionsInit options); [Throws] Promise getSubscription(); diff --git a/dom/webidl/PushSubscription.webidl b/dom/webidl/PushSubscription.webidl index eab576d3ce..4451a0441d 100644 --- a/dom/webidl/PushSubscription.webidl +++ b/dom/webidl/PushSubscription.webidl @@ -44,7 +44,7 @@ interface PushSubscription readonly attribute PushSubscriptionOptions options; [Throws] ArrayBuffer? getKey(PushEncryptionKeyName name); - [Throws, UseCounter] + [Throws] Promise unsubscribe(); // Implements the custom serializer specified in Push API, section 9. diff --git a/dom/webidl/SVGSVGElement.webidl b/dom/webidl/SVGSVGElement.webidl index afe63dbb28..d04a464008 100644 --- a/dom/webidl/SVGSVGElement.webidl +++ b/dom/webidl/SVGSVGElement.webidl @@ -33,7 +33,6 @@ interface SVGSVGElement : SVGGraphicsElement { readonly attribute float screenPixelToMillimeterY; readonly attribute boolean useCurrentView; // readonly attribute SVGViewSpec currentView; - [UseCounter] attribute float currentScale; readonly attribute SVGPoint currentTranslate; @@ -71,7 +70,6 @@ interface SVGSVGElement : SVGGraphicsElement { SVGTransform createSVGTransform(); [NewObject] SVGTransform createSVGTransformFromMatrix(SVGMatrix matrix); - [UseCounter] Element? getElementById(DOMString elementId); }; diff --git a/dom/webidl/Window.webidl b/dom/webidl/Window.webidl index ad427630bd..1b98042473 100644 --- a/dom/webidl/Window.webidl +++ b/dom/webidl/Window.webidl @@ -368,7 +368,7 @@ Window implements OnErrorEventHandlerForWindow; #ifdef HAVE_SIDEBAR // Mozilla extension partial interface Window { - [Replaceable, Throws, UseCounter] + [Replaceable, Throws] readonly attribute (External or WindowProxy) sidebar; }; #endif diff --git a/image/DynamicImage.cpp b/image/DynamicImage.cpp index aeb1fcf78e..dfdc3e5d81 100644 --- a/image/DynamicImage.cpp +++ b/image/DynamicImage.cpp @@ -337,11 +337,5 @@ DynamicImage::Unwrap() return self.forget(); } -void -DynamicImage::PropagateUseCounters(nsIDocument*) -{ - // No use counters. -} - } // namespace image } // namespace mozilla diff --git a/image/ImageWrapper.cpp b/image/ImageWrapper.cpp index 5ed6c78179..7d2fbfa363 100644 --- a/image/ImageWrapper.cpp +++ b/image/ImageWrapper.cpp @@ -291,12 +291,6 @@ ImageWrapper::SetAnimationStartTime(const TimeStamp& aTime) mInnerImage->SetAnimationStartTime(aTime); } -void -ImageWrapper::PropagateUseCounters(nsIDocument* aParentDocument) -{ - mInnerImage->PropagateUseCounters(aParentDocument); -} - nsIntSize ImageWrapper::OptimalImageSizeForDest(const gfxSize& aDest, uint32_t aWhichFrame, diff --git a/image/RasterImage.cpp b/image/RasterImage.cpp index eff6cb7b38..4fd3797bb0 100644 --- a/image/RasterImage.cpp +++ b/image/RasterImage.cpp @@ -1661,12 +1661,6 @@ RasterImage::Unwrap() return self.forget(); } -void -RasterImage::PropagateUseCounters(nsIDocument*) -{ - // No use counters. -} - IntSize RasterImage::OptimalImageSizeForDest(const gfxSize& aDest, uint32_t aWhichFrame, SamplingFilter aSamplingFilter, uint32_t aFlags) diff --git a/image/VectorImage.cpp b/image/VectorImage.cpp index 3fcb296f5f..59b31be47e 100644 --- a/image/VectorImage.cpp +++ b/image/VectorImage.cpp @@ -34,7 +34,6 @@ #include "SVGDocumentWrapper.h" #include "nsIDOMEventListener.h" #include "SurfaceCache.h" -#include "nsDocument.h" // undef the GetCurrentTime macro defined in WinBase.h from the MS Platform SDK #undef GetCurrentTime @@ -1328,15 +1327,6 @@ VectorImage::InvalidateObserversOnNextRefreshDriverTick() } } -void -VectorImage::PropagateUseCounters(nsIDocument* aParentDocument) -{ - nsIDocument* doc = mSVGDocumentWrapper->GetDocument(); - if (doc) { - doc->PropagateUseCounters(aParentDocument); - } -} - nsIntSize VectorImage::OptimalImageSizeForDest(const gfxSize& aDest, uint32_t aWhichFrame, diff --git a/image/imgIContainer.idl b/image/imgIContainer.idl index ba1c494af6..ce663a73e1 100644 --- a/image/imgIContainer.idl +++ b/image/imgIContainer.idl @@ -19,8 +19,6 @@ #include "nsSize.h" #include "limits.h" -class nsIDocument; - namespace mozilla { namespace layers { class LayerManager; @@ -67,7 +65,6 @@ native Orientation(mozilla::image::Orientation); native TempRefSourceSurface(already_AddRefed); native TempRefImgIContainer(already_AddRefed); native nsIntSizeByVal(nsIntSize); -[ptr] native nsIDocument(nsIDocument); /** @@ -77,7 +74,7 @@ native nsIntSizeByVal(nsIntSize); * * Internally, imgIContainer also manages animation of images. */ -[scriptable, builtinclass, uuid(a8dbee24-ff86-4755-b40e-51175caf31af)] +[scriptable, builtinclass, uuid(7ba72242-28da-4c5f-b53f-54da8874775e)] interface imgIContainer : nsISupports { /** @@ -542,10 +539,4 @@ interface imgIContainer : nsISupports * Removes any ImageWrappers and returns the unwrapped base image. */ [notxpcom, nostdcall] TempRefImgIContainer unwrap(); - - /* - * Propagate the use counters (if any) from this container to the passed in - * document. - */ - [noscript, notxpcom] void propagateUseCounters(in nsIDocument aDocument); }; diff --git a/layout/generic/nsBulletFrame.cpp b/layout/generic/nsBulletFrame.cpp index db9a70aff6..dad2230b36 100644 --- a/layout/generic/nsBulletFrame.cpp +++ b/layout/generic/nsBulletFrame.cpp @@ -775,16 +775,6 @@ nsBulletFrame::Notify(imgIRequest *aRequest, int32_t aType, const nsIntRect* aDa InvalidateFrame(); } - if (aType == imgINotificationObserver::DECODE_COMPLETE) { - if (nsIDocument* parent = GetOurCurrentDoc()) { - nsCOMPtr container; - aRequest->GetImage(getter_AddRefs(container)); - if (container) { - container->PropagateUseCounters(parent); - } - } - } - return NS_OK; } diff --git a/layout/style/ImageLoader.cpp b/layout/style/ImageLoader.cpp index a26a1741aa..5d4f628636 100644 --- a/layout/style/ImageLoader.cpp +++ b/layout/style/ImageLoader.cpp @@ -15,7 +15,6 @@ #include "FrameLayerBuilder.h" #include "nsSVGEffects.h" #include "imgIContainer.h" -#include "Image.h" namespace mozilla { namespace css { @@ -395,14 +394,6 @@ ImageLoader::Notify(imgIRequest* aRequest, int32_t aType, const nsIntRect* aData return OnFrameUpdate(aRequest); } - if (aType == imgINotificationObserver::DECODE_COMPLETE) { - nsCOMPtr image; - aRequest->GetImage(getter_AddRefs(image)); - if (image && mDocument) { - image->PropagateUseCounters(mDocument); - } - } - return NS_OK; } @@ -508,19 +499,5 @@ ImageLoader::UnblockOnload(imgIRequest* aRequest) return NS_OK; } -void -ImageLoader::FlushUseCounters() -{ - for (auto iter = mImages.Iter(); !iter.Done(); iter.Next()) { - nsPtrHashKey* key = iter.Get(); - ImageLoader::Image* image = key->GetKey(); - - imgIRequest* request = image->mRequests.GetWeak(mDocument); - - nsCOMPtr container; - request->GetImage(getter_AddRefs(container)); - } -} - } // namespace css } // namespace mozilla diff --git a/layout/style/ImageLoader.h b/layout/style/ImageLoader.h index 4e29da5ed4..c7469d570d 100644 --- a/layout/style/ImageLoader.h +++ b/layout/style/ImageLoader.h @@ -70,8 +70,6 @@ public: void DestroyRequest(imgIRequest* aRequest); - void FlushUseCounters(); - private: ~ImageLoader() {} diff --git a/layout/style/nsCSSDataBlock.cpp b/layout/style/nsCSSDataBlock.cpp index 33c309dd40..c32f436106 100644 --- a/layout/style/nsCSSDataBlock.cpp +++ b/layout/style/nsCSSDataBlock.cpp @@ -681,14 +681,12 @@ nsCSSExpandedDataBlock::TransferFromBlock(nsCSSExpandedDataBlock& aFromBlock, bool aIsImportant, bool aOverrideImportant, bool aMustCallValueAppended, - css::Declaration* aDeclaration, - nsIDocument* aSheetDocument) + css::Declaration* aDeclaration) { if (!nsCSSProps::IsShorthand(aPropID)) { return DoTransferFromBlock(aFromBlock, aPropID, aIsImportant, aOverrideImportant, - aMustCallValueAppended, aDeclaration, - aSheetDocument); + aMustCallValueAppended, aDeclaration); } // We can pass CSSEnabledState::eIgnore (here, and in ClearProperty @@ -700,8 +698,7 @@ nsCSSExpandedDataBlock::TransferFromBlock(nsCSSExpandedDataBlock& aFromBlock, CSSPROPS_FOR_SHORTHAND_SUBPROPERTIES(p, aPropID, aEnabledState) { changed |= DoTransferFromBlock(aFromBlock, *p, aIsImportant, aOverrideImportant, - aMustCallValueAppended, aDeclaration, - aSheetDocument); + aMustCallValueAppended, aDeclaration); } return changed; } @@ -712,8 +709,7 @@ nsCSSExpandedDataBlock::DoTransferFromBlock(nsCSSExpandedDataBlock& aFromBlock, bool aIsImportant, bool aOverrideImportant, bool aMustCallValueAppended, - css::Declaration* aDeclaration, - nsIDocument* aSheetDocument) + css::Declaration* aDeclaration) { bool changed = false; MOZ_ASSERT(aFromBlock.HasPropertyBit(aPropID), "oops"); @@ -741,13 +737,6 @@ nsCSSExpandedDataBlock::DoTransferFromBlock(nsCSSExpandedDataBlock& aFromBlock, aDeclaration->ValueAppended(aPropID); } - if (aSheetDocument) { - UseCounter useCounter = nsCSSProps::UseCounterFor(aPropID); - if (useCounter != eUseCounter_UNKNOWN) { - aSheetDocument->SetDocumentAndPageUseCounter(useCounter); - } - } - SetPropertyBit(aPropID); aFromBlock.ClearPropertyBit(aPropID); diff --git a/layout/style/nsCSSDataBlock.h b/layout/style/nsCSSDataBlock.h index b699c408b9..3d6fd659d8 100644 --- a/layout/style/nsCSSDataBlock.h +++ b/layout/style/nsCSSDataBlock.h @@ -20,7 +20,6 @@ struct nsRuleData; class nsCSSExpandedDataBlock; -class nsIDocument; namespace mozilla { namespace css { @@ -258,8 +257,6 @@ public: * Returns true if something changed, false otherwise. Calls * |ValueAppended| on |aDeclaration| if the property was not * previously set, or in any case if |aMustCallValueAppended| is true. - * Calls |SetDocumentAndPageUseCounter| on |aSheetDocument| if it is - * non-null and |aPropID| has a use counter. */ bool TransferFromBlock(nsCSSExpandedDataBlock& aFromBlock, nsCSSPropertyID aPropID, @@ -267,8 +264,7 @@ public: bool aIsImportant, bool aOverrideImportant, bool aMustCallValueAppended, - mozilla::css::Declaration* aDeclaration, - nsIDocument* aSheetDocument); + mozilla::css::Declaration* aDeclaration); /** * Copies the values for aPropID into the specified aRuleData object. @@ -302,8 +298,7 @@ private: bool aIsImportant, bool aOverrideImportant, bool aMustCallValueAppended, - mozilla::css::Declaration* aDeclaration, - nsIDocument* aSheetDocument); + mozilla::css::Declaration* aDeclaration); #ifdef DEBUG void DoAssertInitialState(); diff --git a/layout/style/nsCSSParser.cpp b/layout/style/nsCSSParser.cpp index f3df2df208..30d40fd794 100644 --- a/layout/style/nsCSSParser.cpp +++ b/layout/style/nsCSSParser.cpp @@ -141,8 +141,6 @@ public: nsresult SetStyleSheet(CSSStyleSheet* aSheet); - nsIDocument* GetDocument(); - nsresult SetQuirkMode(bool aQuirkMode); nsresult SetChildLoader(mozilla::css::Loader* aChildLoader); @@ -1647,15 +1645,6 @@ CSSParserImpl::SetStyleSheet(CSSStyleSheet* aSheet) return NS_OK; } -nsIDocument* -CSSParserImpl::GetDocument() -{ - if (!mSheet) { - return nullptr; - } - return mSheet->GetDocument(); -} - nsresult CSSParserImpl::SetQuirkMode(bool aQuirkMode) { @@ -1977,8 +1966,7 @@ CSSParserImpl::ParseTransformProperty(const nsAString& aPropValue, declaration->ExpandTo(&mData); changed = mData.TransferFromBlock(mTempData, eCSSProperty_transform, EnabledState(), false, - true, false, declaration, - GetDocument()); + true, false, declaration); declaration->CompressFrom(&mData); } @@ -2059,8 +2047,7 @@ CSSParserImpl::ParseProperty(const nsCSSPropertyID aPropID, aDeclaration->ExpandTo(&mData); *aChanged = mData.TransferFromBlock(mTempData, aPropID, EnabledState(), aIsImportant, - true, false, aDeclaration, - GetDocument()); + true, false, aDeclaration); aDeclaration->CompressFrom(&mData); } CLEAR_ERROR(); @@ -7502,7 +7489,7 @@ CSSParserImpl::ParseDeclaration(css::Declaration* aDeclaration, *aChanged |= mData.TransferFromBlock(mTempData, propID, EnabledState(), status == ePriority_Important, false, aMustCallValueAppended, - aDeclaration, GetDocument()); + aDeclaration); } return true; diff --git a/layout/style/nsCSSProps.cpp b/layout/style/nsCSSProps.cpp index e3cd802417..da50e3cb4f 100644 --- a/layout/style/nsCSSProps.cpp +++ b/layout/style/nsCSSProps.cpp @@ -3421,21 +3421,6 @@ nsCSSProps::gPropertyEnabled[eCSSProperty_COUNT_with_aliases] = { #undef IS_ENABLED_BY_DEFAULT }; -#include "../../dom/base/PropertyUseCounterMap.inc" - -/* static */ const UseCounter -nsCSSProps::gPropertyUseCounter[eCSSProperty_COUNT_no_shorthands] = { - #define CSS_PROP_PUBLIC_OR_PRIVATE(publicname_, privatename_) privatename_ - #define CSS_PROP_LIST_INCLUDE_LOGICAL - #define CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, \ - kwtable_, stylestruct_, stylestructoffset_, animtype_) \ - static_cast(USE_COUNTER_FOR_CSS_PROPERTY_##method_), - #include "nsCSSPropList.h" - #undef CSS_PROP - #undef CSS_PROP_LIST_INCLUDE_LOGICAL - #undef CSS_PROP_PUBLIC_OR_PRIVATE -}; - // Check that all logical property flags are used appropriately. #define CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, \ kwtable_, stylestruct_, stylestructoffset_, animtype_) \ diff --git a/layout/style/nsCSSProps.h b/layout/style/nsCSSProps.h index cf7ffda78f..567f7f7bfa 100644 --- a/layout/style/nsCSSProps.h +++ b/layout/style/nsCSSProps.h @@ -19,7 +19,6 @@ #include "nsStyleStructFwd.h" #include "nsCSSKeywords.h" #include "mozilla/CSSEnabledState.h" -#include "mozilla/UseCounter.h" #include "mozilla/EnumTypeTraits.h" // Length of the "--" prefix on custom names (such as custom property names, @@ -640,19 +639,8 @@ public: return gPropertyEnabled[aProperty]; } - // A table for the use counter associated with each CSS property. If a - // property does not have a use counter defined in UseCounters.conf, then - // its associated entry is |eUseCounter_UNKNOWN|. - static const mozilla::UseCounter gPropertyUseCounter[eCSSProperty_COUNT_no_shorthands]; - public: - static mozilla::UseCounter UseCounterFor(nsCSSPropertyID aProperty) { - MOZ_ASSERT(0 <= aProperty && aProperty < eCSSProperty_COUNT_no_shorthands, - "out of range"); - return gPropertyUseCounter[aProperty]; - } - static bool IsEnabled(nsCSSPropertyID aProperty, EnabledState aEnabled) { if (IsEnabled(aProperty)) { -- cgit v1.2.3 From c8b89feae8a93db677d1398d1a50bedb2094e57a Mon Sep 17 00:00:00 2001 From: FranklinDM Date: Mon, 4 Apr 2022 23:01:53 +0800 Subject: Issue #21 - Change MappedAttrParser to store its nsIPrincipal instead of nsSVGElement This reverts part 2 of Bug 968923 since this was only modified to accommodate use counters. --- dom/svg/nsSVGElement.cpp | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/dom/svg/nsSVGElement.cpp b/dom/svg/nsSVGElement.cpp index 97578b81c7..39998c1541 100644 --- a/dom/svg/nsSVGElement.cpp +++ b/dom/svg/nsSVGElement.cpp @@ -1150,7 +1150,7 @@ public: MappedAttrParser(css::Loader* aLoader, nsIURI* aDocURI, already_AddRefed aBaseURI, - nsSVGElement* aElement); + nsIPrincipal* aNodePrincipal); ~MappedAttrParser(); // Parses a mapped attribute value. @@ -1170,20 +1170,18 @@ private: // Arguments for nsCSSParser::ParseProperty nsIURI* mDocURI; nsCOMPtr mBaseURI; + nsIPrincipal* mNodePrincipal; // Declaration for storing parsed values (lazily initialized) css::Declaration* mDecl; - - // For reporting use counters - nsSVGElement* mElement; }; MappedAttrParser::MappedAttrParser(css::Loader* aLoader, nsIURI* aDocURI, already_AddRefed aBaseURI, - nsSVGElement* aElement) + nsIPrincipal* aNodePrincipal) : mParser(aLoader), mDocURI(aDocURI), mBaseURI(aBaseURI), - mDecl(nullptr), mElement(aElement) + mNodePrincipal(aNodePrincipal), mDecl(nullptr) { } @@ -1210,7 +1208,7 @@ MappedAttrParser::ParseMappedAttrValue(nsIAtom* aMappedAttrName, if (propertyID != eCSSProperty_UNKNOWN) { bool changed; // outparam for ParseProperty. (ignored) mParser.ParseProperty(propertyID, aMappedAttrValue, mDocURI, mBaseURI, - mElement->NodePrincipal(), mDecl, &changed, false, true); + mNodePrincipal, mDecl, &changed, false, true); return; } MOZ_ASSERT(aMappedAttrName == nsGkAtoms::lang, @@ -1257,7 +1255,7 @@ nsSVGElement::UpdateContentStyleRule() nsIDocument* doc = OwnerDoc(); MappedAttrParser mappedAttrParser(doc->CSSLoader(), doc->GetDocumentURI(), - GetBaseURI(), this); + GetBaseURI(), NodePrincipal()); for (uint32_t i = 0; i < attrCount; ++i) { const nsAttrName* attrName = mAttrsAndChildren.AttrNameAt(i); @@ -1330,7 +1328,7 @@ nsSVGElement::UpdateAnimatedContentStyleRule() } MappedAttrParser mappedAttrParser(doc->CSSLoader(), doc->GetDocumentURI(), - GetBaseURI(), this); + GetBaseURI(), NodePrincipal()); doc->PropertyTable(SMIL_MAPPED_ATTR_ANIMVAL)-> Enumerate(this, ParseMappedAttrAnimValueCallback, &mappedAttrParser); -- cgit v1.2.3 From fbbcbffcc786ae2b6cbfafd4e812d0a58b517159 Mon Sep 17 00:00:00 2001 From: Moonchild Date: Sun, 24 Apr 2022 09:34:16 +0000 Subject: Issue #1879 - spot-fix typo in cryptox.h Resolves #1879 --- modules/libmar/verify/cryptox.h | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/libmar/verify/cryptox.h b/modules/libmar/verify/cryptox.h index d6dceb366c..8f5ecc1575 100644 --- a/modules/libmar/verify/cryptox.h +++ b/modules/libmar/verify/cryptox.h @@ -4,6 +4,7 @@ #ifndef CRYPTOX_H #define CRYPTOX_H +#endif #define XP_MIN_SIGNATURE_LEN_IN_BYTES 256 -- cgit v1.2.3 From 677085e0c47b92b810247b0e2b88e02b79979292 Mon Sep 17 00:00:00 2001 From: Moonchild Date: Sun, 24 Apr 2022 15:48:49 +0000 Subject: Revert "Issue #1879 - spot-fix typo in cryptox.h" This reverts commit fbbcbffcc786ae2b6cbfafd4e812d0a58b517159. --- modules/libmar/verify/cryptox.h | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/libmar/verify/cryptox.h b/modules/libmar/verify/cryptox.h index 8f5ecc1575..d6dceb366c 100644 --- a/modules/libmar/verify/cryptox.h +++ b/modules/libmar/verify/cryptox.h @@ -4,7 +4,6 @@ #ifndef CRYPTOX_H #define CRYPTOX_H -#endif #define XP_MIN_SIGNATURE_LEN_IN_BYTES 256 -- cgit v1.2.3 From f25a45b9e6b24442b16f418be9d26a162c89986a Mon Sep 17 00:00:00 2001 From: Moonchild Date: Sun, 24 Apr 2022 15:52:33 +0000 Subject: Issue #1879 - Revert changes to cryptox.h The error when removing this code was an #if vs #elif. But since we're planning to restore MacOSX anyway, may as well rever the entire file here :) --- modules/libmar/verify/cryptox.h | 49 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) diff --git a/modules/libmar/verify/cryptox.h b/modules/libmar/verify/cryptox.h index d6dceb366c..2296b815f4 100644 --- a/modules/libmar/verify/cryptox.h +++ b/modules/libmar/verify/cryptox.h @@ -57,7 +57,54 @@ CryptoX_Result NSS_VerifySignature(VFYContext * const *ctx , #define CryptoX_FreeCertificate(cert) \ CERT_DestroyCertificate(*cert) -#if defined(XP_WIN) +#elif XP_MACOSX + +#define CryptoX_InvalidHandleValue NULL +#define CryptoX_ProviderHandle void* +#define CryptoX_SignatureHandle void* +#define CryptoX_PublicKey void* +#define CryptoX_Certificate void* + +// Forward-declare Objective-C functions implemented in MacVerifyCrypto.mm. +#ifdef __cplusplus +extern "C" { +#endif +CryptoX_Result CryptoMac_InitCryptoProvider(); +CryptoX_Result CryptoMac_VerifyBegin(CryptoX_SignatureHandle* aInputData); +CryptoX_Result CryptoMac_VerifyUpdate(CryptoX_SignatureHandle* aInputData, + void* aBuf, unsigned int aLen); +CryptoX_Result CryptoMac_LoadPublicKey(const unsigned char* aCertData, + unsigned int aDataSize, + CryptoX_PublicKey* aPublicKey); +CryptoX_Result CryptoMac_VerifySignature(CryptoX_SignatureHandle* aInputData, + CryptoX_PublicKey* aPublicKey, + const unsigned char* aSignature, + unsigned int aSignatureLen); +void CryptoMac_FreeSignatureHandle(CryptoX_SignatureHandle* aInputData); +void CryptoMac_FreePublicKey(CryptoX_PublicKey* aPublicKey); +#ifdef __cplusplus +} // extern "C" +#endif + +#define CryptoX_InitCryptoProvider(aProviderHandle) \ + CryptoMac_InitCryptoProvider() +#define CryptoX_VerifyBegin(aCryptoHandle, aInputData, aPublicKey) \ + CryptoMac_VerifyBegin(aInputData) +#define CryptoX_VerifyUpdate(aInputData, aBuf, aLen) \ + CryptoMac_VerifyUpdate(aInputData, aBuf, aLen) +#define CryptoX_LoadPublicKey(aProviderHandle, aCertData, aDataSize, \ + aPublicKey) \ + CryptoMac_LoadPublicKey(aCertData, aDataSize, aPublicKey) +#define CryptoX_VerifySignature(aInputData, aPublicKey, aSignature, \ + aSignatureLen) \ + CryptoMac_VerifySignature(aInputData, aPublicKey, aSignature, aSignatureLen) +#define CryptoX_FreeSignatureHandle(aInputData) \ + CryptoMac_FreeSignatureHandle(aInputData) +#define CryptoX_FreePublicKey(aPublicKey) \ + CryptoMac_FreePublicKey(aPublicKey) +#define CryptoX_FreeCertificate(aCertificate) + +#elif defined(XP_WIN) #include #include -- cgit v1.2.3 From 42ee994d993bc170db7cad8d57e2d19b03ae9d13 Mon Sep 17 00:00:00 2001 From: Moonchild Date: Sun, 24 Apr 2022 17:00:46 +0000 Subject: Issue #1885 - Allow unitless rootMargin entries for IntersectionObserver. I could have done this through a CSSLoader to allow all CSS unit quirks but I wasn't planning to start passing around document and element references everywhere, so instead just did it manually by accepting numbers/floats in addition to pixel and percent. --- dom/base/DOMIntersectionObserver.cpp | 6 +++++- layout/style/nsCSSParser.cpp | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/dom/base/DOMIntersectionObserver.cpp b/dom/base/DOMIntersectionObserver.cpp index bc8f030d0f..fb6315cc42 100644 --- a/dom/base/DOMIntersectionObserver.cpp +++ b/dom/base/DOMIntersectionObserver.cpp @@ -126,7 +126,9 @@ DOMIntersectionObserver::SetRootMargin(const nsAString& aString) for (uint32_t i = 0; i < ArrayLength(nsCSSRect::sides); ++i) { nsCSSValue value = mRootMargin.*nsCSSRect::sides[i]; - if (!(value.IsPixelLengthUnit() || value.IsPercentLengthUnit())) { + if (!(value.IsPixelLengthUnit() || + value.IsPercentLengthUnit() || + value.IsFloatUnit(value.GetUnit()))) { return false; } } @@ -327,6 +329,8 @@ DOMIntersectionObserver::Update(nsIDocument* aDocument, DOMHighResTimeStamp time nsStyleCoord coord; if (value.IsPixelLengthUnit()) { coord.SetCoordValue(value.GetPixelLength()); + } else if (value.IsFloatUnit(value.GetUnit())) { + coord.SetCoordValue(value.GetFloatValue()); } else if (value.IsPercentLengthUnit()) { coord.SetPercentValue(value.GetPercentValue()); } else { diff --git a/layout/style/nsCSSParser.cpp b/layout/style/nsCSSParser.cpp index 387f6ed27f..72427792fa 100644 --- a/layout/style/nsCSSParser.cpp +++ b/layout/style/nsCSSParser.cpp @@ -2311,7 +2311,7 @@ CSSParserImpl::ParseMarginString(const nsSubstring& aBuffer, } else { UngetToken(); // Parse a margin, and check that there's nothing else after it. - marginParsed = ParseGroupedBoxProperty(VARIANT_LP, aValue, 0) && + marginParsed = ParseGroupedBoxProperty(VARIANT_LPN, aValue, 0) && !GetToken(true); } -- cgit v1.2.3 From a0bdc21cf57e85c370a656827ef6a28f624e63df Mon Sep 17 00:00:00 2001 From: Jeremy Andrews Date: Sun, 24 Apr 2022 15:01:24 -0500 Subject: Issue #1879 - Follow-up: Update config/external/nss/target to security/target. --- config/recurse.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/recurse.mk b/config/recurse.mk index 7628eae367..c7bb531c6e 100644 --- a/config/recurse.mk +++ b/config/recurse.mk @@ -158,7 +158,7 @@ ifeq ($(MOZ_WIDGET_TOOLKIT),gtk3) toolkit/library/target: widget/gtk/mozgtk/gtk3/target endif ifdef MOZ_LDAP_XPCOM -ldap/target: config/external/nss/target mozglue/build/target +ldap/target: security/target mozglue/build/target toolkit/library/target: ldap/target endif ifeq ($(MOZ_REPLACE_MALLOC_LINKAGE),dummy library) -- cgit v1.2.3 From 72ff18e58eb1411029116faaa5c73372e4df3cd1 Mon Sep 17 00:00:00 2001 From: Moonchild Date: Mon, 25 Apr 2022 13:52:17 +0000 Subject: Issue #1885 - Follow-up: Update error message if invalid rootMargin specified. --- dom/base/DOMIntersectionObserver.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dom/base/DOMIntersectionObserver.cpp b/dom/base/DOMIntersectionObserver.cpp index fb6315cc42..7ee1a4c938 100644 --- a/dom/base/DOMIntersectionObserver.cpp +++ b/dom/base/DOMIntersectionObserver.cpp @@ -84,7 +84,7 @@ DOMIntersectionObserver::Constructor(const mozilla::dom::GlobalObject& aGlobal, if (!observer->SetRootMargin(aOptions.mRootMargin)) { aRv.ThrowDOMException(NS_ERROR_DOM_SYNTAX_ERR, - NS_LITERAL_CSTRING("rootMargin must be specified in pixels or percent.")); + NS_LITERAL_CSTRING("rootMargin must be a valid absolute or percent length.")); return nullptr; } -- cgit v1.2.3 From 33523f5d5ed0c3b8000aae21a50a56c238422db3 Mon Sep 17 00:00:00 2001 From: Moonchild Date: Wed, 27 Apr 2022 00:14:54 +0000 Subject: No issue - Update README and SECURITY - thereisonlyxul is no longer a thing. - minor wording update. --- README.md | 4 +--- SECURITY.md | 5 ++--- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index e24a7476ce..4f849359de 100644 --- a/README.md +++ b/README.md @@ -9,8 +9,6 @@ selective cherry-picking of directly-applicable patches, this repository has its own development and holds the base for a maintained platform to be used by XUL applications. -For a list of active projects making use of the Unified XUL Platform, checkout http://thereisonlyxul.org/. - ## Additional documentation Additional documentation relevant to this source code can be found in the `/docs` @@ -23,7 +21,7 @@ You are also always welcome to get in touch with our community on the [Pale Moon ### A note about trademarks and branding -Although this repository is licensed under Mozilla Public License v2.0, the +Although this repository is primarily licensed under Mozilla Public License v2.0, the trademarks and brands contained herein remain the property of their respective owners. For more details, please see the notifications in the respective directories. diff --git a/SECURITY.md b/SECURITY.md index 8ef8316746..8da448d59c 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -15,14 +15,14 @@ What should be considered vulnerabilities or security hazards by default: Generally not security vulnerabilities: - Null dereferencing crashes; -- Malware extensions (but please do report those on the forum in the extensions board!); +- Malware extensions (but please do report those on the forum in the add-ons board!); - Denial-of-service (AKA "evil trap sites") - Browser hangs - Issues with non-standard manual configuration (either at build time or by manipulating about:config directly) ## Reporting a Vulnerability -If you find an issue in UXP or the applications it builds on that could impact the security or safety of users please **do not** +If you find an issue in UXP, or the applications building on it, that could impact the security or safety of users please **do not** make an issue on Gitea about it. Gitea does not support restricted viewability for security sensitive bugs. If you want to report a security-sensitive issue then please go to the [forum](https://forum.palemoon.org) and report the issue @@ -33,4 +33,3 @@ except the recipient (not even moderators!). You will be informed via private message if the vulnerability report is accepted or declined, with reasoning. Security updates occur regularly and are given priority over most other development tasks. In general, they can be solved relatively quickly and will be included in the next point release (third digit if not rolled into a more major one). - -- cgit v1.2.3