Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(956)

Unified Diff: content/browser/gpu/shader_disk_cache.cc

Issue 2565223003: content: Move shader cache factory singleton into a separate file. (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/browser/gpu/shader_disk_cache.h ('k') | content/browser/gpu/shader_disk_cache_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/gpu/shader_disk_cache.cc
diff --git a/content/browser/gpu/shader_disk_cache.cc b/content/browser/gpu/shader_disk_cache.cc
index a609b85a2376980dd82f9bbcc62db663bd0ee4ec..601edec0c1d04b428fd9a841a7b8a3ece0357c13 100644
--- a/content/browser/gpu/shader_disk_cache.cc
+++ b/content/browser/gpu/shader_disk_cache.cc
@@ -20,8 +20,6 @@ namespace {
static const base::FilePath::CharType kGpuCachePath[] =
FILE_PATH_LITERAL("GPUCache");
-static ShaderCacheFactory* factory_instance = nullptr;
-
} // namespace
// ShaderDiskCacheEntry handles the work of caching/updating the cached
@@ -100,7 +98,8 @@ class ShaderDiskReadHelper : public base::ThreadChecker {
class ShaderClearHelper : public base::ThreadChecker {
public:
- ShaderClearHelper(scoped_refptr<ShaderDiskCache> cache,
+ ShaderClearHelper(ShaderCacheFactory* factory,
+ scoped_refptr<ShaderDiskCache> cache,
const base::FilePath& path,
const base::Time& delete_begin,
const base::Time& delete_end,
@@ -118,6 +117,7 @@ class ShaderClearHelper : public base::ThreadChecker {
void DoClearShaderCache(int rv);
+ ShaderCacheFactory* factory_;
scoped_refptr<ShaderDiskCache> cache_;
OpType op_type_;
base::FilePath path_;
@@ -319,12 +319,14 @@ int ShaderDiskReadHelper::IterationComplete(int rv) {
////////////////////////////////////////////////////////////////////////////////
// ShaderClearHelper
-ShaderClearHelper::ShaderClearHelper(scoped_refptr<ShaderDiskCache> cache,
+ShaderClearHelper::ShaderClearHelper(ShaderCacheFactory* factory,
+ scoped_refptr<ShaderDiskCache> cache,
const base::FilePath& path,
const base::Time& delete_begin,
const base::Time& delete_end,
const base::Closure& callback)
- : cache_(std::move(cache)),
+ : factory_(factory),
+ cache_(std::move(cache)),
op_type_(VERIFY_CACHE_SETUP),
path_(path),
delete_begin_(delete_begin),
@@ -360,7 +362,7 @@ void ShaderClearHelper::DoClearShaderCache(int rv) {
case TERMINATE:
callback_.Run();
// Calling CacheCleared() destroys |this|.
- ShaderCacheFactory::GetInstance()->CacheCleared(path_);
+ factory_->CacheCleared(path_);
rv = net::ERR_IO_PENDING; // Break the loop.
break;
}
@@ -370,25 +372,6 @@ void ShaderClearHelper::DoClearShaderCache(int rv) {
////////////////////////////////////////////////////////////////////////////////
// ShaderCacheFactory
-// static
-void ShaderCacheFactory::InitInstance(
- scoped_refptr<base::SingleThreadTaskRunner> task_runner,
- scoped_refptr<base::SingleThreadTaskRunner> cache_task_runner) {
- if (task_runner->BelongsToCurrentThread()) {
- CreateFactoryInstance(std::move(cache_task_runner));
- } else {
- task_runner->PostTask(FROM_HERE,
- base::Bind(&ShaderCacheFactory::CreateFactoryInstance,
- std::move(cache_task_runner)));
- }
-}
-
-// static
-ShaderCacheFactory* ShaderCacheFactory::GetInstance() {
- DCHECK(!factory_instance || factory_instance->CalledOnValidThread());
- return factory_instance;
-}
-
ShaderCacheFactory::ShaderCacheFactory(
scoped_refptr<base::SingleThreadTaskRunner> cache_task_runner)
: cache_task_runner_(std::move(cache_task_runner)) {}
@@ -396,13 +379,6 @@ ShaderCacheFactory::ShaderCacheFactory(
ShaderCacheFactory::~ShaderCacheFactory() {
}
-// static
-void ShaderCacheFactory::CreateFactoryInstance(
- scoped_refptr<base::SingleThreadTaskRunner> cache_task_runner) {
- DCHECK(!factory_instance);
- factory_instance = new ShaderCacheFactory(std::move(cache_task_runner));
-}
-
void ShaderCacheFactory::SetCacheInfo(int32_t client_id,
const base::FilePath& path) {
DCHECK(CalledOnValidThread());
@@ -429,7 +405,7 @@ scoped_refptr<ShaderDiskCache> ShaderCacheFactory::GetByPath(
if (iter != shader_cache_map_.end())
return iter->second;
- ShaderDiskCache* cache = new ShaderDiskCache(path);
+ ShaderDiskCache* cache = new ShaderDiskCache(this, path);
cache->Init(cache_task_runner_);
return cache;
}
@@ -453,7 +429,7 @@ void ShaderCacheFactory::ClearByPath(const base::FilePath& path,
DCHECK(!callback.is_null());
auto helper = base::MakeUnique<ShaderClearHelper>(
- GetByPath(path), path, delete_begin, delete_end, callback);
+ this, GetByPath(path), path, delete_begin, delete_end, callback);
// We could receive requests to clear the same path with different
// begin/end times. So, we keep a list of requests. If we haven't seen this
@@ -499,15 +475,17 @@ void ShaderCacheFactory::CacheCleared(const base::FilePath& path) {
////////////////////////////////////////////////////////////////////////////////
// ShaderDiskCache
-ShaderDiskCache::ShaderDiskCache(const base::FilePath& cache_path)
- : cache_available_(false),
+ShaderDiskCache::ShaderDiskCache(ShaderCacheFactory* factory,
+ const base::FilePath& cache_path)
+ : factory_(factory),
+ cache_available_(false),
cache_path_(cache_path),
is_initialized_(false) {
- ShaderCacheFactory::GetInstance()->AddToCache(cache_path_, this);
+ factory_->AddToCache(cache_path_, this);
}
ShaderDiskCache::~ShaderDiskCache() {
- ShaderCacheFactory::GetInstance()->RemoveFromCache(cache_path_);
+ factory_->RemoveFromCache(cache_path_);
}
void ShaderDiskCache::Init(
@@ -604,4 +582,3 @@ int ShaderDiskCache::SetCacheCompleteCallback(
}
} // namespace content
-
« no previous file with comments | « content/browser/gpu/shader_disk_cache.h ('k') | content/browser/gpu/shader_disk_cache_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698