blob: 738e8b95b59b9a356e45a3c647b04dd30f41ddb4 [file] [log] [blame]
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "content/browser/code_cache/generated_code_cache_context.h"
#include "base/bind.h"
#include "base/files/file_path.h"
#include "base/task/post_task.h"
#include "content/browser/code_cache/generated_code_cache.h"
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h"
#include "third_party/blink/public/common/features.h"
namespace content {
GeneratedCodeCacheContext::GeneratedCodeCacheContext() {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
}
void GeneratedCodeCacheContext::Initialize(const base::FilePath& path,
int max_bytes) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
generated_js_code_cache_.reset(
new GeneratedCodeCache(path.AppendASCII("js"), max_bytes,
GeneratedCodeCache::CodeCacheType::kJavaScript));
// Only create the Wasm cache if it's enabled.
if (base::FeatureList::IsEnabled(blink::features::kWasmCodeCache)) {
generated_wasm_code_cache_.reset(new GeneratedCodeCache(
path.AppendASCII("wasm"), max_bytes,
GeneratedCodeCache::CodeCacheType::kWebAssembly));
}
}
void GeneratedCodeCacheContext::Shutdown() {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
generated_js_code_cache_.reset();
generated_wasm_code_cache_.reset();
}
GeneratedCodeCache* GeneratedCodeCacheContext::generated_js_code_cache() const {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
return generated_js_code_cache_.get();
}
GeneratedCodeCache* GeneratedCodeCacheContext::generated_wasm_code_cache()
const {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
return generated_wasm_code_cache_.get();
}
GeneratedCodeCacheContext::~GeneratedCodeCacheContext() = default;
} // namespace content