#include "extensions/browser/api/declarative/declarative_api.h"
#include <stddef.h>
#include <utility>
#include <vector>
#include "base/base64.h"
#include "base/containers/span.h"
#include "base/functional/bind.h"
#include "base/functional/callback_helpers.h"
#include "base/metrics/histogram_macros.h"
#include "base/strings/string_util.h"
#include "base/task/single_thread_task_runner.h"
#include "base/values.h"
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/web_contents.h"
#include "extensions/browser/api/declarative/rules_registry_service.h"
#include "extensions/browser/api/extensions_api_client.h"
#include "extensions/browser/extension_system.h"
#include "extensions/common/api/events.h"
#include "extensions/common/extension_api.h"
#include "extensions/common/permissions/permissions_data.h"
#if BUILDFLAG(ENABLE_GUEST_VIEW)
#include "extensions/browser/guest_view/web_view/web_view_constants.h"
#include "extensions/browser/guest_view/web_view/web_view_guest.h"
#endif
Rule;
AddRules;
GetRules;
RemoveRules;
namespace extensions {
namespace {
#if BUILDFLAG(ENABLE_GUEST_VIEW)
constexpr char kDeclarativeEventPrefix[] = …;
#endif
constexpr char kDeclarativeContentEventPrefix[] = …;
constexpr char kDeclarativeWebRequestEventPrefix[] = …;
constexpr char kDeclarativeWebRequestWebViewEventPrefix[] = …;
enum class DeclarativeAPIType { … };
enum DeclarativeAPIFunctionType { … };
DeclarativeAPIType GetDeclarativeAPIType(const std::string& event_name) { … }
void RecordUMAHelper(DeclarativeAPIFunctionType type) { … }
void ConvertBinaryDictValuesToBase64(base::Value::Dict& dict);
base::Value ConvertBinaryToBase64(const base::Value& binary) { … }
void ConvertBinaryListElementsToBase64(base::Value::List& args) { … }
void ConvertBinaryDictValuesToBase64(base::Value::Dict& dict) { … }
}
RulesFunction::RulesFunction() = default;
RulesFunction::~RulesFunction() = default;
ExtensionFunction::ResponseAction RulesFunction::Run() { … }
void RulesFunction::SendResponse(ResponseValue response) { … }
EventsEventAddRulesFunction::EventsEventAddRulesFunction() = default;
EventsEventAddRulesFunction::~EventsEventAddRulesFunction() = default;
bool EventsEventAddRulesFunction::CreateParams() { … }
ExtensionFunction::ResponseValue EventsEventAddRulesFunction::RunInternal() { … }
void EventsEventAddRulesFunction::RecordUMA(
const std::string& event_name) const { … }
EventsEventRemoveRulesFunction::EventsEventRemoveRulesFunction() = default;
EventsEventRemoveRulesFunction::~EventsEventRemoveRulesFunction() = default;
bool EventsEventRemoveRulesFunction::CreateParams() { … }
ExtensionFunction::ResponseValue EventsEventRemoveRulesFunction::RunInternal() { … }
void EventsEventRemoveRulesFunction::RecordUMA(
const std::string& event_name) const { … }
EventsEventGetRulesFunction::EventsEventGetRulesFunction() = default;
EventsEventGetRulesFunction::~EventsEventGetRulesFunction() = default;
bool EventsEventGetRulesFunction::CreateParams() { … }
ExtensionFunction::ResponseValue EventsEventGetRulesFunction::RunInternal() { … }
void EventsEventGetRulesFunction::RecordUMA(
const std::string& event_name) const { … }
}