#include "content/browser/webui/url_data_manager.h"
#include <stddef.h>
#include <utility>
#include <vector>
#include "base/containers/contains.h"
#include "base/functional/bind.h"
#include "base/functional/callback_helpers.h"
#include "base/lazy_instance.h"
#include "base/memory/ref_counted_memory.h"
#include "base/strings/string_util.h"
#include "base/synchronization/lock.h"
#include "base/thread_annotations.h"
#include "base/values.h"
#include "content/browser/resource_context_impl.h"
#include "content/browser/webui/url_data_manager_backend.h"
#include "content/browser/webui/url_data_source_impl.h"
#include "content/browser/webui/web_ui_data_source_impl.h"
#include "content/public/browser/browser_context.h"
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/url_data_source.h"
namespace content {
namespace {
const char kURLDataManagerKeyName[] = …;
base::LazyInstance<base::Lock>::Leaky g_delete_lock = …;
URLDataManager* GetFromBrowserContext(BrowserContext* context) { … }
}
URLDataManager::URLDataSources* URLDataManager::data_sources_ PT_GUARDED_BY(
g_delete_lock.Get()) = …;
URLDataManager::URLDataManager(BrowserContext* browser_context)
: … { … }
URLDataManager::~URLDataManager() = default;
void URLDataManager::AddDataSource(URLDataSourceImpl* source) { … }
void URLDataManager::UpdateWebUIDataSource(const std::string& source_name,
const base::Value::Dict& update) { … }
void URLDataManager::DeleteDataSources() { … }
void URLDataManager::DeleteDataSource(const URLDataSourceImpl* data_source) { … }
void URLDataManager::AddDataSource(BrowserContext* browser_context,
std::unique_ptr<URLDataSource> source) { … }
void URLDataManager::AddWebUIDataSource(BrowserContext* browser_context,
WebUIDataSource* source) { … }
void URLDataManager::UpdateWebUIDataSource(BrowserContext* browser_context,
const std::string& source_name,
const base::Value::Dict& update) { … }
bool URLDataManager::IsScheduledForDeletion(
const URLDataSourceImpl* data_source) { … }
}