#include "gin/per_isolate_data.h"
#include <utility>
#include "base/check.h"
#include "base/notreached.h"
#include "base/task/single_thread_task_runner.h"
#include "gin/public/gin_embedders.h"
#include "gin/v8_foreground_task_runner.h"
#include "gin/v8_foreground_task_runner_with_locker.h"
#include "v8/include/v8-isolate.h"
ArrayBuffer;
Eternal;
Isolate;
Local;
Object;
FunctionTemplate;
ObjectTemplate;
namespace {
std::shared_ptr<gin::V8ForegroundTaskRunnerBase> CreateV8ForegroundTaskRunner(
v8::Isolate* isolate,
scoped_refptr<base::SingleThreadTaskRunner> task_runner,
gin::IsolateHolder::AccessMode access_mode) { … }
}
namespace gin {
PerIsolateData::PerIsolateData(
Isolate* isolate,
ArrayBuffer::Allocator* allocator,
IsolateHolder::AccessMode access_mode,
scoped_refptr<base::SingleThreadTaskRunner> task_runner,
scoped_refptr<base::SingleThreadTaskRunner> low_priority_task_runner)
: … { … }
PerIsolateData::~PerIsolateData() = default;
PerIsolateData* PerIsolateData::From(Isolate* isolate) { … }
void PerIsolateData::SetObjectTemplate(WrapperInfo* info,
Local<ObjectTemplate> templ) { … }
void PerIsolateData::SetFunctionTemplate(WrapperInfo* info,
Local<FunctionTemplate> templ) { … }
v8::Local<v8::ObjectTemplate> PerIsolateData::GetObjectTemplate(
WrapperInfo* info) { … }
v8::Local<v8::FunctionTemplate> PerIsolateData::GetFunctionTemplate(
WrapperInfo* info) { … }
void PerIsolateData::SetIndexedPropertyInterceptor(
WrappableBase* base,
IndexedPropertyInterceptor* interceptor) { … }
void PerIsolateData::SetNamedPropertyInterceptor(
WrappableBase* base,
NamedPropertyInterceptor* interceptor) { … }
void PerIsolateData::ClearIndexedPropertyInterceptor(
WrappableBase* base,
IndexedPropertyInterceptor* interceptor) { … }
void PerIsolateData::ClearNamedPropertyInterceptor(
WrappableBase* base,
NamedPropertyInterceptor* interceptor) { … }
IndexedPropertyInterceptor* PerIsolateData::GetIndexedPropertyInterceptor(
WrappableBase* base) { … }
NamedPropertyInterceptor* PerIsolateData::GetNamedPropertyInterceptor(
WrappableBase* base) { … }
void PerIsolateData::AddDisposeObserver(DisposeObserver* observer) { … }
void PerIsolateData::RemoveDisposeObserver(DisposeObserver* observer) { … }
void PerIsolateData::NotifyBeforeDispose() { … }
void PerIsolateData::NotifyDisposed() { … }
void PerIsolateData::EnableIdleTasks(
std::unique_ptr<V8IdleTaskRunner> idle_task_runner) { … }
}