mirror of
https://github.com/roytam1/palemoon27.git
synced 2026-05-26 14:18:48 +00:00
applied tele.patch (dated 2018-03-17)
This commit is contained in:
Vendored
+27
-54
@@ -211,7 +211,7 @@ public:
|
||||
|
||||
NS_IMETHOD Notify(nsITimer* aTimer) override {
|
||||
if (nsCacheService::gService) {
|
||||
nsCacheServiceAutoLock autoLock(LOCK_TELEM(NSSETDISKSMARTSIZECALLBACK_NOTIFY));
|
||||
nsCacheServiceAutoLock autoLock;
|
||||
nsCacheService::gService->SetDiskSmartSize_Locked();
|
||||
nsCacheService::gService->mSmartSizeTimer = nullptr;
|
||||
}
|
||||
@@ -295,7 +295,7 @@ public:
|
||||
}
|
||||
NS_IMETHOD Run()
|
||||
{
|
||||
nsCacheServiceAutoLock autoLock(LOCK_TELEM(NSBLOCKONCACHETHREADEVENT_RUN));
|
||||
nsCacheServiceAutoLock autoLock;
|
||||
#ifdef PR_LOGGING
|
||||
CACHE_LOG_DEBUG(("nsBlockOnCacheThreadEvent [%p]\n", this));
|
||||
#endif
|
||||
@@ -985,7 +985,7 @@ public:
|
||||
NS_ASSERTION(mRequest->mListener,
|
||||
"Sync OpenCacheEntry() posted to background thread!");
|
||||
|
||||
nsCacheServiceAutoLock lock(LOCK_TELEM(NSPROCESSREQUESTEVENT_RUN));
|
||||
nsCacheServiceAutoLock lock;
|
||||
rv = nsCacheService::gService->ProcessRequest(mRequest,
|
||||
false,
|
||||
nullptr);
|
||||
@@ -1030,7 +1030,7 @@ public:
|
||||
|
||||
NS_IMETHOD Run()
|
||||
{
|
||||
nsCacheServiceAutoLock lock(LOCK_TELEM(NSDOOMEVENT_RUN));
|
||||
nsCacheServiceAutoLock lock;
|
||||
|
||||
bool foundActive = true;
|
||||
nsresult status = NS_ERROR_NOT_AVAILABLE;
|
||||
@@ -1195,13 +1195,12 @@ nsCacheService::Shutdown()
|
||||
}
|
||||
|
||||
nsCOMPtr<nsIThread> cacheIOThread;
|
||||
Telemetry::AutoTimer<Telemetry::NETWORK_DISK_CACHE_SHUTDOWN> totalTimer;
|
||||
|
||||
bool shouldSanitize = false;
|
||||
nsCOMPtr<nsIFile> parentDir;
|
||||
|
||||
{
|
||||
nsCacheServiceAutoLock lock(LOCK_TELEM(NSCACHESERVICE_SHUTDOWN));
|
||||
nsCacheServiceAutoLock lock;
|
||||
NS_ASSERTION(mInitialized,
|
||||
"can't shutdown nsCacheService unless it has been initialized.");
|
||||
if (!mInitialized)
|
||||
@@ -1216,7 +1215,7 @@ nsCacheService::Shutdown()
|
||||
UnregisterWeakMemoryReporter(this);
|
||||
|
||||
{
|
||||
nsCacheServiceAutoLock lock(LOCK_TELEM(NSCACHESERVICE_SHUTDOWN));
|
||||
nsCacheServiceAutoLock lock;
|
||||
NS_ASSERTION(mInitialized, "Bad state");
|
||||
|
||||
mInitialized = false;
|
||||
@@ -1269,10 +1268,8 @@ nsCacheService::Shutdown()
|
||||
if (NS_SUCCEEDED(parentDir->Exists(&exists)) && exists)
|
||||
nsDeleteDir::DeleteDir(parentDir, false);
|
||||
}
|
||||
Telemetry::AutoTimer<Telemetry::NETWORK_DISK_CACHE_SHUTDOWN_CLEAR_PRIVATE> timer;
|
||||
nsDeleteDir::Shutdown(shouldSanitize);
|
||||
} else {
|
||||
Telemetry::AutoTimer<Telemetry::NETWORK_DISK_CACHE_DELETEDIR_SHUTDOWN> timer;
|
||||
nsDeleteDir::Shutdown(shouldSanitize);
|
||||
}
|
||||
}
|
||||
@@ -1374,7 +1371,7 @@ nsCacheService::EvictEntriesForClient(const char * clientID,
|
||||
new EvictionNotifierRunnable(NS_ISUPPORTS_CAST(nsICacheService*, this));
|
||||
NS_DispatchToMainThread(r);
|
||||
|
||||
nsCacheServiceAutoLock lock(LOCK_TELEM(NSCACHESERVICE_EVICTENTRIESFORCLIENT));
|
||||
nsCacheServiceAutoLock lock;
|
||||
nsresult res = NS_OK;
|
||||
|
||||
if (storagePolicy == nsICache::STORE_ANYWHERE ||
|
||||
@@ -1423,7 +1420,7 @@ nsCacheService::IsStorageEnabledForPolicy(nsCacheStoragePolicy storagePolicy,
|
||||
bool * result)
|
||||
{
|
||||
if (gService == nullptr) return NS_ERROR_NOT_AVAILABLE;
|
||||
nsCacheServiceAutoLock lock(LOCK_TELEM(NSCACHESERVICE_ISSTORAGEENABLEDFORPOLICY));
|
||||
nsCacheServiceAutoLock lock;
|
||||
|
||||
*result = gService->IsStorageEnabledForPolicy_Locked(storagePolicy);
|
||||
return NS_OK;
|
||||
@@ -1479,7 +1476,7 @@ nsresult nsCacheService::VisitEntriesInternal(nsICacheVisitor *visitor)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(visitor);
|
||||
|
||||
nsCacheServiceAutoLock lock(LOCK_TELEM(NSCACHESERVICE_VISITENTRIES));
|
||||
nsCacheServiceAutoLock lock;
|
||||
|
||||
if (!(mEnableDiskDevice || mEnableMemoryDevice))
|
||||
return NS_ERROR_NOT_AVAILABLE;
|
||||
@@ -1561,7 +1558,7 @@ NS_IMETHODIMP nsCacheService::GetCacheIOTarget(nsIEventTarget * *aCacheIOTarget)
|
||||
// read from the main thread without the lock. This is useful to prevent
|
||||
// blocking the main thread on other cache operations.
|
||||
if (!NS_IsMainThread()) {
|
||||
Lock(LOCK_TELEM(NSCACHESERVICE_GETCACHEIOTARGET));
|
||||
Lock();
|
||||
}
|
||||
|
||||
nsresult rv;
|
||||
@@ -1631,9 +1628,6 @@ nsCacheService::CreateDiskDevice()
|
||||
return rv;
|
||||
}
|
||||
|
||||
Telemetry::Accumulate(Telemetry::DISK_CACHE_SMART_SIZE_USING_OLD_MAX,
|
||||
mObserver->ShouldUseOldMaxSmartSize());
|
||||
|
||||
NS_ASSERTION(!mSmartSizeTimer, "Smartsize timer was already fired!");
|
||||
|
||||
// Disk device is usually created during the startup. Delay smart size
|
||||
@@ -1973,7 +1967,7 @@ nsCacheService::ProcessRequest(nsCacheRequest * request,
|
||||
// XXX this is probably wrong...
|
||||
Unlock();
|
||||
rv = request->WaitForValidation();
|
||||
Lock(LOCK_TELEM(NSCACHESERVICE_PROCESSREQUEST));
|
||||
Lock();
|
||||
}
|
||||
|
||||
PR_REMOVE_AND_INIT_LINK(request);
|
||||
@@ -2086,7 +2080,7 @@ nsCacheService::OpenCacheEntry(nsCacheSession * session,
|
||||
}
|
||||
else {
|
||||
|
||||
nsCacheServiceAutoLock lock(LOCK_TELEM(NSCACHESERVICE_OPENCACHEENTRY));
|
||||
nsCacheServiceAutoLock lock;
|
||||
rv = gService->ProcessRequest(request, true, result);
|
||||
|
||||
// delete requests that have completed
|
||||
@@ -2212,7 +2206,6 @@ nsCacheService::ActivateEntry(nsCacheRequest * request,
|
||||
nsCacheEntry *
|
||||
nsCacheService::SearchCacheDevices(nsCString * key, nsCacheStoragePolicy policy, bool *collision)
|
||||
{
|
||||
Telemetry::AutoTimer<Telemetry::CACHE_DEVICE_SEARCH_2> timer;
|
||||
nsCacheEntry * entry = nullptr;
|
||||
|
||||
MOZ_EVENT_TRACER_NAME_OBJECT(key, key->BeginReading());
|
||||
@@ -2401,14 +2394,14 @@ nsCacheService::OnProfileShutdown()
|
||||
return;
|
||||
}
|
||||
{
|
||||
nsCacheServiceAutoLock lock(LOCK_TELEM(NSCACHESERVICE_ONPROFILESHUTDOWN));
|
||||
nsCacheServiceAutoLock lock;
|
||||
gService->mClearingEntries = true;
|
||||
gService->DoomActiveEntries(nullptr);
|
||||
}
|
||||
|
||||
gService->CloseAllStreams();
|
||||
|
||||
nsCacheServiceAutoLock lock(LOCK_TELEM(NSCACHESERVICE_ONPROFILESHUTDOWN));
|
||||
nsCacheServiceAutoLock lock;
|
||||
gService->ClearDoomList();
|
||||
|
||||
// Make sure to wait for any pending cache-operations before
|
||||
@@ -2444,7 +2437,7 @@ nsCacheService::OnProfileChanged()
|
||||
|
||||
CACHE_LOG_DEBUG(("nsCacheService::OnProfileChanged"));
|
||||
|
||||
nsCacheServiceAutoLock lock(LOCK_TELEM(NSCACHESERVICE_ONPROFILECHANGED));
|
||||
nsCacheServiceAutoLock lock;
|
||||
|
||||
gService->mEnableDiskDevice = gService->mObserver->DiskCacheEnabled();
|
||||
gService->mEnableOfflineDevice = gService->mObserver->OfflineCacheEnabled();
|
||||
@@ -2498,7 +2491,7 @@ void
|
||||
nsCacheService::SetDiskCacheEnabled(bool enabled)
|
||||
{
|
||||
if (!gService) return;
|
||||
nsCacheServiceAutoLock lock(LOCK_TELEM(NSCACHESERVICE_SETDISKCACHEENABLED));
|
||||
nsCacheServiceAutoLock lock;
|
||||
gService->mEnableDiskDevice = enabled;
|
||||
}
|
||||
|
||||
@@ -2507,7 +2500,7 @@ void
|
||||
nsCacheService::SetDiskCacheCapacity(int32_t capacity)
|
||||
{
|
||||
if (!gService) return;
|
||||
nsCacheServiceAutoLock lock(LOCK_TELEM(NSCACHESERVICE_SETDISKCACHECAPACITY));
|
||||
nsCacheServiceAutoLock lock;
|
||||
|
||||
if (gService->mDiskDevice) {
|
||||
gService->mDiskDevice->SetCapacity(capacity);
|
||||
@@ -2520,7 +2513,7 @@ void
|
||||
nsCacheService::SetDiskCacheMaxEntrySize(int32_t maxSize)
|
||||
{
|
||||
if (!gService) return;
|
||||
nsCacheServiceAutoLock lock(LOCK_TELEM(NSCACHESERVICE_SETDISKCACHEMAXENTRYSIZE));
|
||||
nsCacheServiceAutoLock lock;
|
||||
|
||||
if (gService->mDiskDevice) {
|
||||
gService->mDiskDevice->SetMaxEntrySize(maxSize);
|
||||
@@ -2531,7 +2524,7 @@ void
|
||||
nsCacheService::SetMemoryCacheMaxEntrySize(int32_t maxSize)
|
||||
{
|
||||
if (!gService) return;
|
||||
nsCacheServiceAutoLock lock(LOCK_TELEM(NSCACHESERVICE_SETMEMORYCACHEMAXENTRYSIZE));
|
||||
nsCacheServiceAutoLock lock;
|
||||
|
||||
if (gService->mMemoryDevice) {
|
||||
gService->mMemoryDevice->SetMaxEntrySize(maxSize);
|
||||
@@ -2542,7 +2535,7 @@ void
|
||||
nsCacheService::SetOfflineCacheEnabled(bool enabled)
|
||||
{
|
||||
if (!gService) return;
|
||||
nsCacheServiceAutoLock lock(LOCK_TELEM(NSCACHESERVICE_SETOFFLINECACHEENABLED));
|
||||
nsCacheServiceAutoLock lock;
|
||||
gService->mEnableOfflineDevice = enabled;
|
||||
}
|
||||
|
||||
@@ -2550,7 +2543,7 @@ void
|
||||
nsCacheService::SetOfflineCacheCapacity(int32_t capacity)
|
||||
{
|
||||
if (!gService) return;
|
||||
nsCacheServiceAutoLock lock(LOCK_TELEM(NSCACHESERVICE_SETOFFLINECACHECAPACITY));
|
||||
nsCacheServiceAutoLock lock;
|
||||
|
||||
if (gService->mOfflineDevice) {
|
||||
gService->mOfflineDevice->SetCapacity(capacity);
|
||||
@@ -2567,7 +2560,7 @@ nsCacheService::SetMemoryCache()
|
||||
|
||||
CACHE_LOG_DEBUG(("nsCacheService::SetMemoryCache"));
|
||||
|
||||
nsCacheServiceAutoLock lock(LOCK_TELEM(NSCACHESERVICE_SETMEMORYCACHE));
|
||||
nsCacheServiceAutoLock lock;
|
||||
|
||||
gService->mEnableMemoryDevice = gService->mObserver->MemoryCacheEnabled();
|
||||
|
||||
@@ -2676,34 +2669,16 @@ nsCacheService::LockReleased()
|
||||
}
|
||||
|
||||
void
|
||||
nsCacheService::Lock(mozilla::Telemetry::ID mainThreadLockerID)
|
||||
nsCacheService::Lock()
|
||||
{
|
||||
mozilla::Telemetry::ID lockerID;
|
||||
mozilla::Telemetry::ID generalID;
|
||||
|
||||
if (NS_IsMainThread()) {
|
||||
lockerID = mainThreadLockerID;
|
||||
generalID = mozilla::Telemetry::CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_2;
|
||||
} else {
|
||||
lockerID = mozilla::Telemetry::HistogramCount;
|
||||
generalID = mozilla::Telemetry::CACHE_SERVICE_LOCK_WAIT_2;
|
||||
}
|
||||
|
||||
TimeStamp start(TimeStamp::Now());
|
||||
MOZ_EVENT_TRACER_WAIT(nsCacheService::gService, "net::cache::lock");
|
||||
|
||||
gService->mLock.Lock();
|
||||
gService->LockAcquired();
|
||||
|
||||
TimeStamp stop(TimeStamp::Now());
|
||||
MOZ_EVENT_TRACER_EXEC(nsCacheService::gService, "net::cache::lock");
|
||||
|
||||
// Telemetry isn't thread safe on its own, but this is OK because we're
|
||||
// protecting it with the cache lock.
|
||||
if (lockerID != mozilla::Telemetry::HistogramCount) {
|
||||
mozilla::Telemetry::AccumulateTimeDelta(lockerID, start, stop);
|
||||
}
|
||||
mozilla::Telemetry::AccumulateTimeDelta(generalID, start, stop);
|
||||
}
|
||||
|
||||
void
|
||||
@@ -2714,7 +2689,6 @@ nsCacheService::Unlock()
|
||||
nsTArray<nsISupports*> doomed;
|
||||
doomed.SwapElements(gService->mDoomedObjects);
|
||||
|
||||
gService->LockReleased();
|
||||
gService->mLock.Unlock();
|
||||
|
||||
MOZ_EVENT_TRACER_DONE(nsCacheService::gService, "net::cache::lock");
|
||||
@@ -3019,7 +2993,7 @@ nsCacheService::CloseAllStreams()
|
||||
nsTArray<nsRefPtr<nsCacheEntryDescriptor::nsOutputStreamWrapper> > outputs;
|
||||
|
||||
{
|
||||
nsCacheServiceAutoLock lock(LOCK_TELEM(NSCACHESERVICE_CLOSEALLSTREAMS));
|
||||
nsCacheServiceAutoLock lock;
|
||||
|
||||
nsTArray<nsCacheEntry*> entries;
|
||||
|
||||
@@ -3141,7 +3115,7 @@ nsCacheService::LogCacheStatistics()
|
||||
nsresult
|
||||
nsCacheService::SetDiskSmartSize()
|
||||
{
|
||||
nsCacheServiceAutoLock lock(LOCK_TELEM(NSCACHESERVICE_SETDISKSMARTSIZE));
|
||||
nsCacheServiceAutoLock lock;
|
||||
|
||||
if (!gService) return NS_ERROR_NOT_AVAILABLE;
|
||||
|
||||
@@ -3242,7 +3216,7 @@ IsEntryPrivate(nsCacheEntry* entry)
|
||||
void
|
||||
nsCacheService::LeavePrivateBrowsing()
|
||||
{
|
||||
nsCacheServiceAutoLock lock(LOCK_TELEM(NSCACHESERVICE_LEAVEPRIVATEBROWSING));
|
||||
nsCacheServiceAutoLock lock;
|
||||
|
||||
gService->DoomActiveEntries(IsEntryPrivate);
|
||||
|
||||
@@ -3260,8 +3234,7 @@ nsCacheService::CollectReports(nsIHandleReportCallback* aHandleReport,
|
||||
{
|
||||
size_t disk = 0;
|
||||
if (mDiskDevice) {
|
||||
nsCacheServiceAutoLock
|
||||
lock(LOCK_TELEM(NSCACHESERVICE_DISKDEVICEHEAPSIZE));
|
||||
nsCacheServiceAutoLock lock;
|
||||
disk = mDiskDevice->SizeOfIncludingThis(DiskCacheDeviceMallocSizeOf);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user