StartupCacheInfo.cpp (1493B)
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 2 /* This Source Code Form is subject to the terms of the Mozilla Public 3 * License, v. 2.0. If a copy of the MPL was not distributed with this 4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 5 6 #include "StartupCache.h" 7 #include "StartupCacheInfo.h" 8 9 #include "mozilla/Components.h" 10 #include "mozilla/RefPtr.h" 11 #include "mozilla/StaticPtr.h" 12 13 using namespace mozilla; 14 using namespace mozilla::scache; 15 16 NS_IMPL_ISUPPORTS(StartupCacheInfo, nsIStartupCacheInfo) 17 18 nsresult StartupCacheInfo::GetIgnoreDiskCache(bool* aIgnore) { 19 *aIgnore = StartupCache::gIgnoreDiskCache; 20 return NS_OK; 21 } 22 23 nsresult StartupCacheInfo::GetFoundDiskCacheOnInit(bool* aFound) { 24 *aFound = StartupCache::gFoundDiskCacheOnInit; 25 return NS_OK; 26 } 27 28 nsresult StartupCacheInfo::GetWroteToDiskCache(bool* aWrote) { 29 if (!StartupCache::gStartupCache) { 30 *aWrote = false; 31 } else { 32 MutexAutoLock lock(StartupCache::gStartupCache->mTableLock); 33 *aWrote = StartupCache::gStartupCache->mWrittenOnce; 34 } 35 return NS_OK; 36 } 37 38 nsresult StartupCacheInfo::GetDiskCachePath(nsAString& aResult) { 39 if (!StartupCache::gStartupCache || !StartupCache::gStartupCache->mFile) { 40 return NS_OK; 41 } 42 nsAutoString path; 43 StartupCache::gStartupCache->mFile->GetPath(path); 44 aResult.Assign(path); 45 return NS_OK; 46 } 47 48 NS_IMPL_COMPONENT_FACTORY(nsIStartupCacheInfo) { 49 return MakeAndAddRef<StartupCacheInfo>().downcast<nsISupports>(); 50 }