// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef ANDROID_WEBVIEW_NONEMBEDDED_WEBVIEW_APK_PROCESS_H_
#define ANDROID_WEBVIEW_NONEMBEDDED_WEBVIEW_APK_PROCESS_H_
#include <memory>
#include "base/sequence_checker.h"
#include "base/task/single_thread_task_executor.h"
#include "components/prefs/pref_service.h"
class PrefRegistrySimple;
namespace android_webview {
// Class that holds global state in the webview apk process.
class WebViewApkProcess {
public:
static void Init();
static WebViewApkProcess* GetInstance();
PrefService* GetPrefService() const;
private:
WebViewApkProcess();
~WebViewApkProcess();
void CreatePrefService();
void RegisterPrefs(PrefRegistrySimple* pref_registry);
std::unique_ptr<PrefService> pref_service_;
std::unique_ptr<base::SingleThreadTaskExecutor> main_task_executor_;
SEQUENCE_CHECKER(sequence_checker_);
};
} // namespace android_webview
#endif // ANDROID_WEBVIEW_NONEMBEDDED_WEBVIEW_APK_PROCESS_H_