#include "extensions/renderer/api/runtime_hooks_delegate.h"
#include <string_view>
#include "base/check.h"
#include "base/containers/span.h"
#include "base/strings/stringprintf.h"
#include "content/public/renderer/render_frame.h"
#include "content/public/renderer/v8_value_converter.h"
#include "extensions/common/api/messaging/message.h"
#include "extensions/common/constants.h"
#include "extensions/common/extension.h"
#include "extensions/common/extension_features.h"
#include "extensions/common/manifest.h"
#include "extensions/common/manifest_handlers/web_accessible_resources_info.h"
#include "extensions/common/mojom/message_port.mojom-shared.h"
#include "extensions/renderer/api/messaging/message_target.h"
#include "extensions/renderer/api/messaging/messaging_util.h"
#include "extensions/renderer/api/messaging/native_renderer_messaging_service.h"
#include "extensions/renderer/bindings/api_binding_types.h"
#include "extensions/renderer/bindings/js_runner.h"
#include "extensions/renderer/extension_frame_helper.h"
#include "extensions/renderer/get_script_context.h"
#include "extensions/renderer/script_context.h"
#include "extensions/renderer/v8_helpers.h"
#include "gin/converter.h"
#include "third_party/blink/public/web/web_local_frame.h"
#include "v8/include/v8-function-callback.h"
#include "v8/include/v8-function.h"
#include "v8/include/v8-isolate.h"
#include "v8/include/v8-object.h"
#include "v8/include/v8-primitive.h"
#include "v8/include/v8-template.h"
namespace extensions {
namespace {
RequestResult;
void GetExtensionId(v8::Local<v8::Name> property_name,
const v8::PropertyCallbackInfo<v8::Value>& info) { … }
void GetDynamicId(v8::Local<v8::Name> property_name,
const v8::PropertyCallbackInfo<v8::Value>& info) { … }
void EmptySetter(v8::Local<v8::Name> name,
v8::Local<v8::Value> value,
const v8::PropertyCallbackInfo<void>& info) { … }
constexpr char kGetManifest[] = …;
constexpr char kGetURL[] = …;
constexpr char kConnect[] = …;
constexpr char kConnectNative[] = …;
constexpr char kSendMessage[] = …;
constexpr char kSendNativeMessage[] = …;
constexpr char kGetBackgroundPage[] = …;
constexpr char kGetPackageDirectoryEntry[] = …;
constexpr char kRequestUpdateCheck[] = …;
void GetBackgroundPageCallback(
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
v8::LocalVector<v8::Value> MassageRequestUpdateCheckResults(
const v8::LocalVector<v8::Value>& result_args,
v8::Local<v8::Context> context,
binding::AsyncResponseType async_type) { … }
}
RuntimeHooksDelegate::RuntimeHooksDelegate(
NativeRendererMessagingService* messaging_service)
: … { … }
RuntimeHooksDelegate::~RuntimeHooksDelegate() = default;
RequestResult RuntimeHooksDelegate::GetURL(
ScriptContext* script_context,
const v8::LocalVector<v8::Value>& arguments) { … }
RequestResult RuntimeHooksDelegate::HandleRequest(
const std::string& method_name,
const APISignature* signature,
v8::Local<v8::Context> context,
v8::LocalVector<v8::Value>* arguments,
const APITypeReferenceMap& refs) { … }
void RuntimeHooksDelegate::InitializeTemplate(
v8::Isolate* isolate,
v8::Local<v8::ObjectTemplate> object_template,
const APITypeReferenceMap& type_refs) { … }
RequestResult RuntimeHooksDelegate::HandleGetManifest(
ScriptContext* script_context,
const APISignature::V8ParseResult& parse_result) { … }
RequestResult RuntimeHooksDelegate::HandleGetURL(
ScriptContext* script_context,
const APISignature::V8ParseResult& parse_result) { … }
RequestResult RuntimeHooksDelegate::HandleSendMessage(
ScriptContext* script_context,
const APISignature::V8ParseResult& parse_result) { … }
RequestResult RuntimeHooksDelegate::HandleSendNativeMessage(
ScriptContext* script_context,
const APISignature::V8ParseResult& parse_result) { … }
RequestResult RuntimeHooksDelegate::HandleConnect(
ScriptContext* script_context,
const APISignature::V8ParseResult& parse_result) { … }
RequestResult RuntimeHooksDelegate::HandleConnectNative(
ScriptContext* script_context,
const APISignature::V8ParseResult& parse_result) { … }
RequestResult RuntimeHooksDelegate::HandleGetBackgroundPage(
ScriptContext* script_context,
const APISignature::V8ParseResult& parse_result) { … }
RequestResult RuntimeHooksDelegate::HandleGetPackageDirectoryEntryCallback(
ScriptContext* script_context,
const APISignature::V8ParseResult& parse_result) { … }
RequestResult RuntimeHooksDelegate::HandleRequestUpdateCheck(
ScriptContext* script_context,
const APISignature::V8ParseResult& parse_result) { … }
}