import changes from `dev' branch of rmottola/Arctic-Fox:

- Bug 1208554 - Take Velocity into account for WheelScrollAnimations. r=kats (2fe3c0e047)
- Bug 1207656: APZ mouse wheel scroll: don't ignore minimum duration. r=dvander (c195a2b7e2)
- Bug 1199468 - Create prefs for the smooth scroll timing function shape. r=kats (f65176f9b1)
- Bug 1247677 - Add support for the general.smoothScroll.{pages,pixels} prefs in APZ. r=dvander (e56a15b294)
- Bug 1244735 - Preference to override the default behaviour for partial present. r=jrmuizel (a0e19e8a8e)
- Bug 1223144 - Scale texture coordinates in CompositorOGL for non POT textures. r=mwoodrow (a4b654b00a)
- set reporter end (09ddff0c78)
- Add full mix-blend mode support to the D3D11 compositor. (bug 1238496, r=bas) (6ef3e68cbf)
- Bug 1235994 - For wheel events which may have momentum following them, handle scroll snapping in APZ. r=mstange (b9837185ea)
- Bug 1230674 - part 4, Update AsyncPanZoomController to call overscroll api when building for Android r=kats (60d551820d)
- Bug 1235994 - Extract a helper function to request a snap to the predicted destination. r=botond (c4436d3c5e)
- Bug 1243547 - Route scroll position adjusting for surface shifting directly to APZC. r=rbarker (3b86ab8f2f)
- Bug 1192919 - Follow-up to fix build error with logging enabled. r=me and DONTBUILD (f29229d6c4)
- Bug 1242173 - Typing in input fields does not visually update r= (a2ef65d735)
- Bug 1244901 - When recording transform duration for potential checkerboarding time, do so on the compositor thread. r=botond (cf0be4b328)
- Bug 1240202 - Avoid getting stuck in overscroll when a second finger goes down while overscrolled and in the TOUCHING state. r=kats (96c7ef87af)
- Bug 1236519 - Ensure JSFunction::isDerivedClassConstructor properly handles lazy self-hosted functions. r=till a=bustage (236b72dd50)
- Bug 1232229 - Add some instrumentation and more fencing to ArenaLists; r=ehoogeveen (f6595958c6)
- Bug 1232229 - Instrument setting ArenaHeader::next to catch misuse and fix existing instrumentation. r=terrence (68377d13b7)
- Bug 1248949 - Optimize Arena::thingsPerArena. r=terrence (ee28f3a6af)
- Bug 1245965 - Fix and OOM handling failure in NewMemInfoObject; r=sfink (29e684a163)
- Bug 1245518 - Implement ModuleEnvironmentObject::getOwnPropertyDescriptor() which is called by the debugger r=shu (cef4dc6fce)
- Bug 1232113 - "Make the format specifiers in JS_snprintf() invocations more portable". r=jwalden+bmo (cdf8a9915f)
- Bug 1234387 - DumpBacktrace: Check the result of Sprinter::init function. r=bbouvier (3b7f6aac37)
- Bug 1233944 - Upgrade MOZ_ASSERT to MOZ_RELEASE_ASSERT in JSObject::setGroup. r=me (75e7aa92dc)
- Bug 1203696: Make js::IsInternalFunctionObject consider non-lambdas internal. r=bhackett (1531e8ecd9)
- Bug 1235641 - Add line and column info to dump bytecode basic blocks. r=sstangl (0f642867a0)
- Bug 1052793, part 1 - Do per-zone GC for CC_WAITING triggers. r=smaug (b733898730)
- Bug 1052793, part 2 - Shrink GC buffers during compartmental GCs. r=terrence (0e4cd6218e)
- Bug 1237169 - Remove some unused parameters in and around xpcom/base/. r=mccr8. (9a08690fa7)
- Bug 1247122 - Propagate the NS_ERROR_OUT_OF_MEMORY from CycleCollectedJSRuntime CTOR, r=khuey (5e8bd1d14b)
- Bug 1200514 - Run remaining stable state runnables after final cycle collection. r=froydnj,mccr8 (410c3bf2ad)
- Bug 1247381 - Restore a CC optimization dropped in bug 1105069 part 7; r=mccr8 (c76e8613e7)
- Bug 1249932 - indicate in the GC and CC log (browser console) whetherit is about default or content process, r=mccr8 (1d89d18e69)
- Bug 1232113 - "Make the format specifiers in JS_snprintf() invocations more portable". r=jandem (d9a480c28c)
- Bug 1223222 - Part 1: Add NSPRLogModulesParser. r=froydnj (2a79976e1f)
- Bug 1223222 - Part 2: Add tests for NSPRLogModulesParser. r=froydnj (bde482099c)
- Bug 1233881 - Support dynamically setting log levels at runtime via prefs. r=froydnj (c5c685f924)
- Bug 1223222 - Part 3: Remove usage of PR_NewLogModule in mozilla LogModule code. r=froydnj (6eee38c6a7)
- Bug 1150917 - Remove all values from nsIProgrammingLanguage except UNKNOWN and JAVASCRIPT. r=froydnj (9626abcc33)
- Bug 1174972 - Add basic mozilla logging backend. r=froydnj,r=bwc,r=jduell (8e22fb5a66)
- Bug 961430 - Allow pid be added to the log file name automatically. r=froydnj (4d28e09d9a)
- Bug 1239212 - Append missing newlines to log messages. r=froydnj (0a94f048f0)
- Bug 1242097 - Support sync module for logging (r=erahm) (ce3648c763)
- Bug 885952 - Add thread name to MozLogging, r=froydnj (94bb1979e2)
- Bug 1239941 - Copy va_list before using it in LogModuleManager::Print. r=froydnj (0767e1900e)
- Bug 1249451 - nsCycleCollector::ScanRoots may cause some unexpected purple buffer usage, r=mccr8 (96591fa1a1)
- Bug 1237169 (follow-up) - Fix static analysis bustage. r=me. (3e177f98cc)
- Bug 1242151: using va_list needs <stdarg.h> at least on OpenBSD r=erahm (7c36e9191c)
- Bug 1226376 - Part 1: Allow non-trivial constexpr constructors in MOZ_TRIVIAL_CTOR_DTOR classes, r=ehsan (ec1fb5cc1d)
- Bug 1226376 - Part 2: Annotate StaticMutex with MOZ_ONLY_USED_TO_AVOID_STATIC_CONSTRUCTORS, r=nfroyd (484904f38a)
- Bug 1223927 - Add resident-unique measurement to OS X. r=njn (4b97965c38)
- Bug 1224685 - Add |resident-unique| measurement to Windows. r=njn (bde0a2fbed)
- Bug 1239516 - Use nsDependentCSubstring for wrapping a slice of a char buffer. r=karlt (bd62aee33a)
- bug 1245745 include libpulse version in update URL r=glandium (74f389b1c7)
- Bug 1245673 - Remove useless NS_INT32_TO_PTR from DumpSerialNumbers. r=froydnj (16d58e9abd)
- Bug 1243949 - Fatally assert when we fail to create an XPCOM log. r=froydnj (9121c52fed)
- Remove the workaround added in bug 1022420 now that clang-cl understands __declspec(novtable) (fc81af6630)
- Bug 1239888 - Inline PLDHashTable::{Done,Get}(). r=froydnjx. (9faa5b7c2a)
- Bug 1244606 - Remove PL_DHASH_FASTCALL. r=froydnj. (6620b7c82e)
- Bug 1159306 - explicitly initialize nsBaseHashtableET::mData; r=erahm (458559bea7)
- Bug 1220544 - Fix -Wunreachable-code warnings in xpcom. r=mccr8 (371d0809e4)
- reapply Bug 833117 - Replace g_slice_set_config() with G_SLICE environmen variable (c47805a6cf)
- bug 1171574 - XPCOMGlue doesn't need LEADING_UNDERSCORE for iOS. r=froydnj (a4472ef3d3)
This commit is contained in:
2023-11-30 09:46:13 +08:00
parent 724e70642d
commit 4d2f35fc4a
90 changed files with 9424 additions and 3013 deletions
+27 -10
View File
@@ -178,6 +178,7 @@ static uint32_t sForgetSkippableBeforeCC = 0;
static uint32_t sPreviousSuspectedCount = 0;
static uint32_t sCleanupsSinceLastGC = UINT32_MAX;
static bool sNeedsFullCC = false;
static bool sNeedsFullGC = false;
static bool sNeedsGCAfterCC = false;
static bool sIncrementalCC = false;
static bool sDidPaintAfterPreviousICCSlice = false;
@@ -215,6 +216,13 @@ static bool sIsCompactingOnUserInactive = false;
static int32_t sExpensiveCollectorPokes = 0;
static const int32_t kPokesBetweenExpensiveCollectorTriggers = 5;
static const char*
ProcessNameForCollectorLog()
{
return XRE_GetProcessType() == GeckoProcessType_Default ?
"default" : "content";
}
static PRTime
GetCollectionTimeDelta()
{
@@ -1312,7 +1320,14 @@ nsJSContext::GarbageCollectNow(JS::gcreason::Reason aReason,
}
JSGCInvocationKind gckind = aShrinking == ShrinkingGC ? GC_SHRINK : GC_NORMAL;
JS::PrepareForFullGC(sRuntime);
if (sNeedsFullGC || aReason != JS::gcreason::CC_WAITING) {
sNeedsFullGC = false;
JS::PrepareForFullGC(sRuntime);
} else {
CycleCollectedJSRuntime::Get()->PrepareWaitingZonesForGC();
}
if (aIncremental == IncrementalGC) {
JS::StartIncrementalGC(sRuntime, gckind, aReason, aSliceMillis);
} else {
@@ -1710,10 +1725,11 @@ nsJSContext::EndCycleCollectionCallback(CycleCollectorResults &aResults)
}
NS_NAMED_MULTILINE_LITERAL_STRING(kFmt,
MOZ_UTF16("CC(T+%.1f) max pause: %lums, total time: %lums, slices: %lu, suspected: %lu, visited: %lu RCed and %lu%s GCed, collected: %lu RCed and %lu GCed (%lu|%lu|%lu waiting for GC)%s\n")
MOZ_UTF16("CC(T+%.1f)[%s] max pause: %lums, total time: %lums, slices: %lu, suspected: %lu, visited: %lu RCed and %lu%s GCed, collected: %lu RCed and %lu GCed (%lu|%lu|%lu waiting for GC)%s\n")
MOZ_UTF16("ForgetSkippable %lu times before CC, min: %lu ms, max: %lu ms, avg: %lu ms, total: %lu ms, max sync: %lu ms, removed: %lu"));
nsString msg;
msg.Adopt(nsTextFormatter::smprintf(kFmt.get(), double(delta) / PR_USEC_PER_SEC,
ProcessNameForCollectorLog(),
gCCStats.mMaxSliceTime, gCCStats.mTotalSliceTime,
aResults.mNumSlices, gCCStats.mSuspected,
aResults.mVisitedRefCounted, aResults.mVisitedGCed, mergeMsg.get(),
@@ -2009,6 +2025,8 @@ nsJSContext::RunNextCollectorTimer()
void
nsJSContext::PokeGC(JS::gcreason::Reason aReason, int aDelay)
{
sNeedsFullGC = sNeedsFullGC || aReason != JS::gcreason::CC_WAITING;
if (sGCTimer || sInterSliceGCTimer || sShuttingDown) {
// There's already a timer for GC'ing, just return
return;
@@ -2234,11 +2252,12 @@ DOMGCSliceCallback(JSRuntime *aRt, JS::GCProgress aProgress, const JS::GCDescrip
PRTime delta = GetCollectionTimeDelta();
if (sPostGCEventsToConsole) {
NS_NAMED_LITERAL_STRING(kFmt, "GC(T+%.1f) ");
NS_NAMED_LITERAL_STRING(kFmt, "GC(T+%.1f)[%s] ");
nsString prefix, gcstats;
gcstats.Adopt(aDesc.formatSummaryMessage(aRt));
prefix.Adopt(nsTextFormatter::smprintf(kFmt.get(),
double(delta) / PR_USEC_PER_SEC));
double(delta) / PR_USEC_PER_SEC,
ProcessNameForCollectorLog()));
nsString msg = prefix + gcstats;
nsCOMPtr<nsIConsoleService> cs = do_GetService(NS_CONSOLESERVICE_CONTRACTID);
if (cs) {
@@ -2278,13 +2297,10 @@ DOMGCSliceCallback(JSRuntime *aRt, JS::GCProgress aProgress, const JS::GCDescrip
}
} else {
nsJSContext::KillFullGCTimer();
}
// Avoid shrinking during heavy activity, which is suggested by
// compartment GC. We don't need to shrink after a shrinking GC as this
// happens automatically in this case.
if (aDesc.invocationKind_ == GC_NORMAL) {
nsJSContext::PokeShrinkGCBuffers();
}
if (aDesc.invocationKind_ == GC_NORMAL) {
nsJSContext::PokeShrinkGCBuffers();
}
if (ShouldTriggerCC(nsCycleCollector_suspectedCount())) {
@@ -2380,6 +2396,7 @@ mozilla::dom::StartupJSEnvironment()
sLikelyShortLivingObjectsNeedingGC = 0;
sPostGCEventsToConsole = false;
sNeedsFullCC = false;
sNeedsFullGC = false;
sNeedsGCAfterCC = false;
gNameSpaceManager = nullptr;
sRuntime = nullptr;