#ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_BINDINGS_V8_CROSS_ORIGIN_PROPERTY_SUPPORT_H_
#define THIRD_PARTY_BLINK_RENDERER_PLATFORM_BINDINGS_V8_CROSS_ORIGIN_PROPERTY_SUPPORT_H_
#include "base/containers/span.h"
#include "third_party/blink/renderer/platform/platform_export.h"
#include "third_party/blink/renderer/platform/wtf/text/string_view.h"
#include "v8/include/v8.h"
namespace blink {
struct WrapperTypeInfo;
namespace bindings {
struct CrossOriginAttributeTableEntry final { … };
struct CrossOriginOperationTableEntry final { … };
PLATFORM_EXPORT v8::MaybeLocal<v8::Function> GetCrossOriginFunction(
v8::Isolate* isolate,
const StringView& func_name,
v8::FunctionCallback callback,
int func_length,
const WrapperTypeInfo* wrapper_type_info,
v8::ExceptionContext exception_context,
const char* interface_name);
PLATFORM_EXPORT v8::MaybeLocal<v8::Value> GetCrossOriginGetterSetter(
v8::Isolate* isolate,
const StringView& func_name,
v8::FunctionCallback callback,
int func_length,
const WrapperTypeInfo* wrapper_type_info,
v8::ExceptionContext exception_context,
const char* interface_name);
PLATFORM_EXPORT bool IsSupportedInCrossOriginPropertyFallback(
v8::Isolate* isolate,
v8::Local<v8::Name> property_name);
PLATFORM_EXPORT v8::Local<v8::Array> EnumerateCrossOriginProperties(
v8::Isolate* isolate,
base::span<const CrossOriginAttributeTableEntry> attributes,
base::span<const CrossOriginOperationTableEntry> operations);
}
}
#endif