#include "extensions/browser/updater/update_data_provider.h"
#include <optional>
#include <utility>
#include "base/base64.h"
#include "base/files/file_path.h"
#include "base/files/file_util.h"
#include "base/functional/bind.h"
#include "base/strings/string_util.h"
#include "base/task/thread_pool.h"
#include "components/crx_file/crx_verifier.h"
#include "components/update_client/utils.h"
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h"
#include "crypto/sha2.h"
#include "extensions/browser/content_verifier/content_verifier.h"
#include "extensions/browser/extension_prefs.h"
#include "extensions/browser/extension_registry.h"
#include "extensions/browser/extension_system.h"
#include "extensions/browser/extensions_browser_client.h"
#include "extensions/browser/install/crx_install_error.h"
#include "extensions/browser/updater/manifest_fetch_data.h"
#include "extensions/common/extension.h"
#include "extensions/common/extension_id.h"
#include "extensions/common/extension_urls.h"
#include "extensions/common/verifier_formats.h"
namespace extensions {
namespace {
UpdateClientCallback;
void PostErrorTasks(const base::FilePath& unpacked_dir,
UpdateClientCallback update_client_callback) { … }
}
UpdateDataProvider::UpdateDataProvider(content::BrowserContext* browser_context)
: … { … }
UpdateDataProvider::~UpdateDataProvider() = default;
void UpdateDataProvider::Shutdown() { … }
void UpdateDataProvider::GetData(
bool install_immediately,
const ExtensionUpdateDataMap& update_crx_component,
const std::vector<std::string>& ids,
base::OnceCallback<
void(const std::vector<std::optional<update_client::CrxComponent>>&)>
callback) { … }
void UpdateDataProvider::RunInstallCallback(
const ExtensionId& extension_id,
const std::string& public_key,
const base::FilePath& unpacked_dir,
bool install_immediately,
UpdateClientCallback update_client_callback) { … }
void UpdateDataProvider::InstallUpdateCallback(
const ExtensionId& extension_id,
const std::string& public_key,
const base::FilePath& unpacked_dir,
bool install_immediately,
UpdateClientCallback update_client_callback) { … }
}