From da7c3b0f8c1504014f2d71f6a65ada42e82ca27c Mon Sep 17 00:00:00 2001 From: Francois Marier Date: Sat, 13 Oct 2018 20:21:45 +0000 Subject: [PATCH] Bug 1498736 - Log the number of prefixes loaded from disk. r=dimi Differential Revision: https://phabricator.services.mozilla.com/D8622 --HG-- extra : moz-landing-system : lando --- .../url-classifier/VariableLengthPrefixSet.cpp | 13 ++++++++++++- .../url-classifier/VariableLengthPrefixSet.h | 1 + .../url-classifier/nsUrlClassifierPrefixSet.cpp | 3 ++- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/toolkit/components/url-classifier/VariableLengthPrefixSet.cpp b/toolkit/components/url-classifier/VariableLengthPrefixSet.cpp index 8575c1425b98..4ff97a733359 100644 --- a/toolkit/components/url-classifier/VariableLengthPrefixSet.cpp +++ b/toolkit/components/url-classifier/VariableLengthPrefixSet.cpp @@ -39,6 +39,7 @@ VariableLengthPrefixSet::VariableLengthPrefixSet() nsresult VariableLengthPrefixSet::Init(const nsACString& aName) { + mName = aName; mMemoryReportPath = nsPrintfCString( "explicit/storage/prefix-set/%s", @@ -304,7 +305,7 @@ VariableLengthPrefixSet::LoadPrefixes(nsCOMPtr& in) NS_ENSURE_TRUE(read == sizeof(uint32_t), NS_ERROR_FAILURE); if (magic != PREFIXSET_VERSION_MAGIC) { - LOG(("Version magic mismatch, not loading")); + LOG(("[%s] Version magic mismatch, not loading", mName.get())); return NS_ERROR_FILE_CORRUPTED; } @@ -315,6 +316,7 @@ VariableLengthPrefixSet::LoadPrefixes(nsCOMPtr& in) NS_ENSURE_SUCCESS(rv, rv); NS_ENSURE_TRUE(read == sizeof(uint32_t), NS_ERROR_FAILURE); + uint32_t totalPrefixes = 0; for(;count > 0; count--) { uint8_t prefixSize; rv = in->Read(reinterpret_cast(&prefixSize), sizeof(uint8_t), &read); @@ -330,6 +332,9 @@ VariableLengthPrefixSet::LoadPrefixes(nsCOMPtr& in) NS_ENSURE_SUCCESS(rv, rv); NS_ENSURE_TRUE(read == sizeof(uint32_t), NS_ERROR_FAILURE); + NS_ENSURE_TRUE(stringLength % prefixSize == 0, NS_ERROR_FILE_CORRUPTED); + uint32_t prefixCount = stringLength / prefixSize; + nsCString* vlPrefixes = new nsCString(); if (!vlPrefixes->SetLength(stringLength, fallible)) { return NS_ERROR_OUT_OF_MEMORY; @@ -340,8 +345,14 @@ VariableLengthPrefixSet::LoadPrefixes(nsCOMPtr& in) NS_ENSURE_TRUE(read == stringLength, NS_ERROR_FAILURE); mVLPrefixSet.Put(prefixSize, vlPrefixes); + totalPrefixes += prefixCount; + LOG(("[%s] Loaded %u %u-byte prefixes", mName.get(), prefixCount, + prefixSize)); } + LOG(("[%s] Loading VLPrefixSet successful (%u total prefixes)", mName.get(), + totalPrefixes)); + return NS_OK; } diff --git a/toolkit/components/url-classifier/VariableLengthPrefixSet.h b/toolkit/components/url-classifier/VariableLengthPrefixSet.h index e4f739f05235..d33c6943124d 100644 --- a/toolkit/components/url-classifier/VariableLengthPrefixSet.h +++ b/toolkit/components/url-classifier/VariableLengthPrefixSet.h @@ -62,6 +62,7 @@ private: const RefPtr mFixedPrefixSet; mozilla::safebrowsing::PrefixStringMap mVLPrefixSet; + nsCString mName; nsCString mMemoryReportPath; }; diff --git a/toolkit/components/url-classifier/nsUrlClassifierPrefixSet.cpp b/toolkit/components/url-classifier/nsUrlClassifierPrefixSet.cpp index 4fc1c649c2ef..5b99768e7109 100644 --- a/toolkit/components/url-classifier/nsUrlClassifierPrefixSet.cpp +++ b/toolkit/components/url-classifier/nsUrlClassifierPrefixSet.cpp @@ -519,7 +519,8 @@ nsUrlClassifierPrefixSet::LoadPrefixes(nsCOMPtr& in) } MOZ_ASSERT(mIndexPrefixes.Length() == mIndexDeltas.Length()); - LOG(("[%s] Loading PrefixSet successful", mName.get())); + LOG(("[%s] Loading PrefixSet successful (%u total prefixes)", mName.get(), + mTotalPrefixes)); return NS_OK; }