Chromium Code Reviews| Index: third_party/WebKit/Source/bindings/core/v8/V8Initializer.cpp |
| diff --git a/third_party/WebKit/Source/bindings/core/v8/V8Initializer.cpp b/third_party/WebKit/Source/bindings/core/v8/V8Initializer.cpp |
| index e73d307014aae0c4384580b9ff7a099ef35e8710..f5a6bd4fe72692d5c9cfd347326a8a58afb1fb5c 100644 |
| --- a/third_party/WebKit/Source/bindings/core/v8/V8Initializer.cpp |
| +++ b/third_party/WebKit/Source/bindings/core/v8/V8Initializer.cpp |
| @@ -40,6 +40,7 @@ |
| #include "bindings/core/v8/V8ErrorHandler.h" |
| #include "bindings/core/v8/V8GCController.h" |
| #include "bindings/core/v8/V8IdleTaskRunner.h" |
| +#include "bindings/core/v8/V8SnapshotUtil.h" |
| #include "bindings/core/v8/WorkerOrWorkletScriptController.h" |
| #include "core/dom/Document.h" |
| #include "core/dom/ExecutionContext.h" |
| @@ -388,6 +389,9 @@ static void InitializeV8Common(v8::Isolate* isolate) { |
| isolate->SetUseCounterCallback(&UseCounterCallback); |
| isolate->SetWasmModuleCallback(WasmModuleOverride); |
| isolate->SetWasmInstanceCallback(WasmInstanceOverride); |
| + |
| + v8::HandleScope handle_scope(isolate); |
| + V8SnapshotUtil::EnsureInterfaceTemplates(isolate); |
| } |
| namespace { |
| @@ -442,14 +446,21 @@ void V8Initializer::InitializeMainThread() { |
| v8_extras_mode, &array_buffer_allocator); |
| // NOTE: Some threads (namely utility threads) don't have a scheduler. |
| - WebScheduler* scheduler = Platform::Current()->CurrentThread()->Scheduler(); |
| + Platform* platform = Platform::Current(); |
| + WebThread* thread = platform->CurrentThread(); |
|
Yuki
2017/06/23 15:20:44
As I took a look at the codebase, it seems better
peria
2017/06/27 09:52:37
Done.
|
| + WebScheduler* scheduler = thread ? thread->Scheduler() : nullptr; |
| + |
| // When timer task runner is used for PerIsolateData, GC tasks are getting |
| // throttled and memory usage goes up. For now we're using loading task queue |
| // to prevent this. |
| // TODO(altimin): Consider switching to timerTaskRunner here. |
| v8::Isolate* isolate = V8PerIsolateData::Initialize( |
| scheduler ? scheduler->LoadingTaskRunner() |
| - : Platform::Current()->CurrentThread()->GetWebTaskRunner()); |
| + : thread ? thread->GetWebTaskRunner() : nullptr, |
|
Yuki
2017/06/23 15:20:44
Ditto.
peria
2017/06/27 09:52:37
Done.
|
| + V8SnapshotUtil::GetReferenceTable(), |
| + platform->IsToTakeV8Snapshot() |
| + ? V8PerIsolateData::V8ContextMode::kTakeSnapshot |
| + : V8PerIsolateData::V8ContextMode::kUseSnapshot); |
| InitializeV8Common(isolate); |