diff --git a/startupcache/StartupCache.cpp b/startupcache/StartupCache.cpp index fa023fb7501a..267f8b0f66ad 100644 --- a/startupcache/StartupCache.cpp +++ b/startupcache/StartupCache.cpp @@ -113,7 +113,6 @@ StartupCache::InitSingleton() StaticRefPtr StartupCache::gStartupCache; bool StartupCache::gShutdownInitiated; bool StartupCache::gIgnoreDiskCache; -enum StartupCache::TelemetrifyAge StartupCache::gPostFlushAgeAction = StartupCache::IGNORE_AGE; NS_IMPL_ISUPPORTS(StartupCache, nsIMemoryReporter) @@ -211,7 +210,7 @@ StartupCache::Init() false); NS_ENSURE_SUCCESS(rv, rv); - rv = LoadArchive(RECORD_AGE); + rv = LoadArchive(); // Sometimes we don't have a cache yet, that's ok. // If it's corrupted, just remove it and start over. @@ -229,7 +228,7 @@ StartupCache::Init() * LoadArchive can be called from the main thread or while reloading cache on write thread. */ nsresult -StartupCache::LoadArchive(enum TelemetrifyAge flag) +StartupCache::LoadArchive() { if (gIgnoreDiskCache) return NS_ERROR_FAILURE; @@ -242,32 +241,6 @@ StartupCache::LoadArchive(enum TelemetrifyAge flag) mArchive = new nsZipArchive(); rv = mArchive->OpenArchive(mFile); - if (NS_FAILED(rv) || flag == IGNORE_AGE) - return rv; - - nsCString comment; - if (!mArchive->GetComment(comment)) { - return rv; - } - - const char *data; - size_t len = NS_CStringGetData(comment, &data); - PRTime creationStamp; - // We might not have a comment if the startup cache file was created - // before we started recording creation times in the comment. - if (len == sizeof(creationStamp)) { - memcpy(&creationStamp, data, len); - PRTime current = PR_Now(); - int64_t diff = current - creationStamp; - - // We can't use AccumulateTimeDelta here because we have no way of - // reifying a TimeStamp from creationStamp. - int64_t usec_per_hour = PR_USEC_PER_SEC * int64_t(3600); - int64_t hour_diff = (diff + usec_per_hour - 1) / usec_per_hour; - mozilla::Telemetry::Accumulate(Telemetry::STARTUP_CACHE_AGE_HOURS, - hour_diff); - } - return rv; } @@ -446,7 +419,7 @@ StartupCache::WriteToDisk() // If we didn't have an mArchive member, that means that we failed to // open the startup cache for reading. Therefore, we need to record - // the time of creation in a zipfile comment; this will be useful for + // the time of creation in a zipfile comment; this has been useful for // Telemetry statistics. PRTime now = PR_Now(); if (!mArchive) { @@ -481,7 +454,7 @@ StartupCache::WriteToDisk() gIgnoreDiskCache = false; // Our reader's view of the archive is outdated now, reload it. - LoadArchive(gPostFlushAgeAction); + LoadArchive(); return; } @@ -497,11 +470,10 @@ StartupCache::InvalidateCache() if (NS_FAILED(rv) && rv != NS_ERROR_FILE_TARGET_DOES_NOT_EXIST && rv != NS_ERROR_FILE_NOT_FOUND) { gIgnoreDiskCache = true; - mozilla::Telemetry::Accumulate(Telemetry::STARTUP_CACHE_INVALID, true); return; } gIgnoreDiskCache = false; - LoadArchive(gPostFlushAgeAction); + LoadArchive(); } void @@ -623,13 +595,6 @@ StartupCache::ResetStartupWriteTimer() return NS_OK; } -nsresult -StartupCache::RecordAgesAlways() -{ - gPostFlushAgeAction = RECORD_AGE; - return NS_OK; -} - // StartupCacheDebugOutputStream implementation #ifdef DEBUG NS_IMPL_ISUPPORTS(StartupCacheDebugOutputStream, nsIObjectOutputStream, @@ -819,11 +784,5 @@ StartupCacheWrapper::GetObserver(nsIObserver** obv) { return NS_OK; } -nsresult -StartupCacheWrapper::RecordAgesAlways() { - StartupCache *sc = StartupCache::GetSingleton(); - return sc ? sc->RecordAgesAlways() : NS_ERROR_NOT_INITIALIZED; -} - } // namespace scache } // namespace mozilla diff --git a/startupcache/StartupCache.h b/startupcache/StartupCache.h index 60cd86575a91..9c14ef026bb3 100644 --- a/startupcache/StartupCache.h +++ b/startupcache/StartupCache.h @@ -129,8 +129,6 @@ public: nsresult GetDebugObjectOutputStream(nsIObjectOutputStream* aStream, nsIObjectOutputStream** outStream); - nsresult RecordAgesAlways(); - static StartupCache* GetSingleton(); static void DeleteSingleton(); @@ -144,13 +142,7 @@ private: StartupCache(); virtual ~StartupCache(); - enum TelemetrifyAge { - IGNORE_AGE = 0, - RECORD_AGE = 1 - }; - static enum TelemetrifyAge gPostFlushAgeAction; - - nsresult LoadArchive(enum TelemetrifyAge flag); + nsresult LoadArchive(); nsresult Init(); void WriteToDisk(); nsresult ResetStartupWriteTimer(); diff --git a/startupcache/nsIStartupCache.idl b/startupcache/nsIStartupCache.idl index b03dcb3ccd16..0b629f261570 100644 --- a/startupcache/nsIStartupCache.idl +++ b/startupcache/nsIStartupCache.idl @@ -55,10 +55,6 @@ interface nsIStartupCache : nsISupports boolean startupWriteComplete(); void resetStartupWriteTimer(); - /* Instruct clients to always post cache ages to Telemetry, even in - cases where it would not normally make sense. */ - void recordAgesAlways(); - /* Allows clients to simulate the behavior of ObserverService. */ readonly attribute nsIObserver observer; }; diff --git a/startupcache/test/TestStartupCache.cpp b/startupcache/test/TestStartupCache.cpp index a16c2de72732..1ab0eb90d6ab 100644 --- a/startupcache/test/TestStartupCache.cpp +++ b/startupcache/test/TestStartupCache.cpp @@ -410,48 +410,6 @@ int main(int argc, char** argv) int rv = 0; nsresult scrv; - // Register TestStartupCacheTelemetry - nsCOMPtr manifest; - scrv = NS_GetSpecialDirectory(NS_GRE_DIR, - getter_AddRefs(manifest)); - if (NS_FAILED(scrv)) { - fail("NS_XPCOM_CURRENT_PROCESS_DIR"); - return 1; - } - -#ifdef XP_MACOSX - nsCOMPtr tempManifest; - manifest->Clone(getter_AddRefs(tempManifest)); - manifest->AppendNative( - NS_LITERAL_CSTRING("TestStartupCacheTelemetry.manifest")); - bool exists; - manifest->Exists(&exists); - if (!exists) { - // Workaround for bug 1080338 in mozharness. - manifest = tempManifest.forget(); - manifest->SetNativeLeafName(NS_LITERAL_CSTRING("MacOS")); - manifest->AppendNative( - NS_LITERAL_CSTRING("TestStartupCacheTelemetry.manifest")); - } -#else - manifest->AppendNative( - NS_LITERAL_CSTRING("TestStartupCacheTelemetry.manifest")); -#endif - - XRE_AddManifestLocation(NS_APP_LOCATION, manifest); - - nsCOMPtr telemetryThing = - do_GetService("@mozilla.org/testing/startup-cache-telemetry.js"); - if (!telemetryThing) { - fail("telemetryThing"); - return 1; - } - scrv = telemetryThing->Observe(nullptr, "save-initial", nullptr); - if (NS_FAILED(scrv)) { - fail("save-initial"); - rv = 1; - } - nsCOMPtr sc = do_GetService("@mozilla.org/startupcache/cache;1", &scrv); if (NS_FAILED(scrv)) @@ -470,11 +428,5 @@ int main(int argc, char** argv) if (NS_FAILED(TestEarlyShutdown())) rv = 1; - scrv = telemetryThing->Observe(nullptr, "save-initial", nullptr); - if (NS_FAILED(scrv)) { - fail("check-final"); - rv = 1; - } - return rv; } diff --git a/startupcache/test/TestStartupCacheTelemetry.js b/startupcache/test/TestStartupCacheTelemetry.js deleted file mode 100644 index 7a570187fda8..000000000000 --- a/startupcache/test/TestStartupCacheTelemetry.js +++ /dev/null @@ -1,60 +0,0 @@ -const Cc = Components.classes; -const Ci = Components.interfaces; -const Cu = Components.utils; - -Cu.import("resource://gre/modules/Services.jsm"); -Cu.import("resource://gre/modules/XPCOMUtils.jsm"); - -function shouldHaveChanged(a, b) -{ - if (a.length != b.length) { - throw Error("TEST-UNEXPECTED-FAIL: telemetry count array size changed"); - } - - for (let i = 0; i < a.length; ++i) { - if (a[i] == b[i]) { - continue; - } - return; // something was different, that's all that matters - } - throw Error("TEST-UNEXPECTED-FAIL: telemetry data didn't change"); -} - -function TestStartupCacheTelemetry() { } - -TestStartupCacheTelemetry.prototype = { - classID: Components.ID("{73cbeffd-d6c7-42f0-aaf3-f176430dcfc8}"), - QueryInterface: XPCOMUtils.generateQI([Ci.nsIObserver]), - - saveInitial: function() { - let t = Services.telemetry; - this._age = t.getHistogramById("STARTUP_CACHE_AGE_HOURS").snapshot.counts; - this._invalid = t.getHistogramById("STARTUP_CACHE_INVALID").snapshot.counts; - }, - - checkFinal: function() { - let t = Services.telemetry; - let newAge = t.getHistogramById("STARTUP_CACHE_AGE_HOURS").snapshot.counts; - shouldHaveChanged(this._age, newAge); - - let newInvalid = t.getHistogramById("STARTUP_CACHE_INVALID").snapshot.counts; - shouldHaveChanged(this._invalid, newInvalid); - }, - - observe: function(subject, topic, data) { - switch (topic) { - case "save-initial": - this.saveInitial(); - break; - - case "check-final": - this.checkFinal(); - break; - - default: - throw Error("BADDOG, NO MILKBONE FOR YOU"); - } - }, -}; - -this.NSGetFactory = XPCOMUtils.generateNSGetFactory([TestStartupCacheTelemetry]); diff --git a/startupcache/test/TestStartupCacheTelemetry.manifest b/startupcache/test/TestStartupCacheTelemetry.manifest deleted file mode 100644 index b288a729286d..000000000000 --- a/startupcache/test/TestStartupCacheTelemetry.manifest +++ /dev/null @@ -1,2 +0,0 @@ -component {73cbeffd-d6c7-42f0-aaf3-f176430dcfc8} TestStartupCacheTelemetry.js -contract @mozilla.org/testing/startup-cache-telemetry.js {73cbeffd-d6c7-42f0-aaf3-f176430dcfc8} diff --git a/startupcache/test/moz.build b/startupcache/test/moz.build index 5a9e6a61e020..436e397195cc 100644 --- a/startupcache/test/moz.build +++ b/startupcache/test/moz.build @@ -7,8 +7,3 @@ GeckoCppUnitTests([ 'TestStartupCache', ]) - -EXTRA_COMPONENTS += [ - 'TestStartupCacheTelemetry.js', - 'TestStartupCacheTelemetry.manifest', -] diff --git a/toolkit/components/telemetry/Histograms.json b/toolkit/components/telemetry/Histograms.json index 335c5f0c91bf..6afbb620d715 100644 --- a/toolkit/components/telemetry/Histograms.json +++ b/toolkit/components/telemetry/Histograms.json @@ -1238,19 +1238,6 @@ "n_buckets": 20, "description": "Maximum retention time for the gradient cache. (ms)" }, - "STARTUP_CACHE_AGE_HOURS": { - "expires_in_version": "default", - "kind": "exponential", - "high": 3000, - "n_buckets": 20, - "description": "Startup cache age (hours)" - }, - "STARTUP_CACHE_INVALID": { - "alert_emails": ["perf-telemetry-alerts@mozilla.com"], - "expires_in_version": "never", - "kind": "flag", - "description": "Was the disk startup cache file detected as invalid" - }, "WORD_CACHE_HITS_CONTENT": { "expires_in_version": "never", "kind": "exponential", diff --git a/toolkit/components/telemetry/histogram-whitelists.json b/toolkit/components/telemetry/histogram-whitelists.json index a934762ec8f1..8eb0b6456d6d 100644 --- a/toolkit/components/telemetry/histogram-whitelists.json +++ b/toolkit/components/telemetry/histogram-whitelists.json @@ -637,9 +637,8 @@ "SPDY_SYN_REPLY_RATIO", "SPDY_SYN_REPLY_SIZE", "SPDY_SYN_SIZE", - "SPDY_VERSION2", - "STARTUP_CACHE_AGE_HOURS", "STARTUP_CRASH_DETECTED", + "SPDY_VERSION2", "STARTUP_MEASUREMENT_ERRORS", "STS_NUMBER_OF_ONSOCKETREADY_CALLS", "STS_NUMBER_OF_PENDING_EVENTS", @@ -1569,8 +1568,6 @@ "SSL_TLS12_INTOLERANCE_REASON_PRE", "SSL_VERSION_FALLBACK_INAPPROPRIATE", "SSL_WEAK_CIPHERS_FALLBACK", - "STARTUP_CACHE_AGE_HOURS", - "STARTUP_CACHE_INVALID", "STARTUP_CRASH_DETECTED", "STARTUP_MEASUREMENT_ERRORS", "STS_NUMBER_OF_ONSOCKETREADY_CALLS", @@ -1953,7 +1950,6 @@ "FX_SESSION_RESTORE_AUTO_RESTORE_DURATION_UNTIL_EAGER_TABS_RESTORED_MS", "FX_SESSION_RESTORE_COLLECT_DATA_MS", "FX_SESSION_RESTORE_FILE_SIZE_BYTES", - "STARTUP_CACHE_AGE_HOURS", "FX_SESSION_RESTORE_DOM_STORAGE_SIZE_ESTIMATE_CHARS", "DATA_STORAGE_ENTRIES", "TRANSLATED_PAGES_BY_LANGUAGE",