#include "chrome/common/extensions/chrome_extensions_client.h"
#include <memory>
#include <set>
#include <string>
#include "base/command_line.h"
#include "base/files/file_path.h"
#include "base/metrics/histogram_macros.h"
#include "base/strings/string_util.h"
#include "base/values.h"
#include "chrome/common/chrome_resource_request_blocked_reason.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/common/extensions/chrome_extensions_api_provider.h"
#include "chrome/common/extensions/manifest_handlers/theme_handler.h"
#include "chrome/common/url_constants.h"
#include "chrome/common/webui_url_constants.h"
#include "chrome/grit/branded_strings.h"
#include "content/public/common/url_constants.h"
#include "extensions/common/api/extension_action/action_info.h"
#include "extensions/common/constants.h"
#include "extensions/common/core_extensions_api_provider.h"
#include "extensions/common/extension.h"
#include "extensions/common/extension_api.h"
#include "extensions/common/extension_urls.h"
#include "extensions/common/icons/extension_icon_set.h"
#include "extensions/common/manifest.h"
#include "extensions/common/manifest_constants.h"
#include "extensions/common/manifest_handlers/icons_handler.h"
#include "extensions/common/permissions/api_permission_set.h"
#include "extensions/common/permissions/permissions_data.h"
#include "extensions/common/url_pattern.h"
#include "extensions/common/url_pattern_set.h"
#include "services/network/public/mojom/cors_origin_pattern.mojom.h"
#include "ui/base/l10n/l10n_util.h"
#include "url/gurl.h"
namespace extensions {
namespace {
const char kExtensionBlocklistUrlPrefix[] = …;
const char kExtensionBlocklistHttpsUrlPrefix[] = …;
}
ChromeExtensionsClient::ChromeExtensionsClient() { … }
ChromeExtensionsClient::~ChromeExtensionsClient() { … }
void ChromeExtensionsClient::Initialize() { … }
void ChromeExtensionsClient::InitializeWebStoreUrls(
base::CommandLine* command_line) { … }
const PermissionMessageProvider&
ChromeExtensionsClient::GetPermissionMessageProvider() const { … }
const std::string ChromeExtensionsClient::GetProductName() { … }
void ChromeExtensionsClient::FilterHostPermissions(
const URLPatternSet& hosts,
URLPatternSet* new_hosts,
PermissionIDSet* permissions) const { … }
void ChromeExtensionsClient::SetScriptingAllowlist(
const ExtensionsClient::ScriptingAllowlist& allowlist) { … }
const ExtensionsClient::ScriptingAllowlist&
ChromeExtensionsClient::GetScriptingAllowlist() const { … }
URLPatternSet ChromeExtensionsClient::GetPermittedChromeSchemeHosts(
const Extension* extension,
const APIPermissionSet& api_permissions) const { … }
bool ChromeExtensionsClient::IsScriptableURL(
const GURL& url, std::string* error) const { … }
const GURL& ChromeExtensionsClient::GetWebstoreBaseURL() const { … }
const GURL& ChromeExtensionsClient::GetNewWebstoreBaseURL() const { … }
const GURL& ChromeExtensionsClient::GetWebstoreUpdateURL() const { … }
bool ChromeExtensionsClient::IsBlocklistUpdateURL(const GURL& url) const { … }
std::set<base::FilePath> ChromeExtensionsClient::GetBrowserImagePaths(
const Extension* extension) { … }
void ChromeExtensionsClient::AddOriginAccessPermissions(
const Extension& extension,
bool is_extension_active,
std::vector<network::mojom::CorsOriginPatternPtr>* origin_patterns) const { … }
std::optional<int> ChromeExtensionsClient::GetExtensionExtendedErrorCode()
const { … }
}