diff --git a/shell/browser/javascript_environment.cc b/shell/browser/javascript_environment.cc index 4293871ad1..c176a589c7 100644 --- a/shell/browser/javascript_environment.cc +++ b/shell/browser/javascript_environment.cc @@ -104,9 +104,10 @@ gin::IsolateHolder CreateIsolateHolder(v8::Isolate* isolate) { JavascriptEnvironment::JavascriptEnvironment(uv_loop_t* event_loop, bool setup_wasm_streaming) - : isolate_(Initialize(event_loop, setup_wasm_streaming)), - isolate_holder_(CreateIsolateHolder(isolate_)), - locker_(isolate_) { + : isolate_holder_{CreateIsolateHolder( + Initialize(event_loop, setup_wasm_streaming))}, + isolate_{isolate_holder_.isolate()}, + locker_{isolate_} { isolate_->Enter(); v8::HandleScope scope(isolate_); diff --git a/shell/browser/javascript_environment.h b/shell/browser/javascript_environment.h index 459269f90e..bb38e35945 100644 --- a/shell/browser/javascript_environment.h +++ b/shell/browser/javascript_environment.h @@ -43,8 +43,12 @@ class JavascriptEnvironment { v8::Isolate* Initialize(uv_loop_t* event_loop, bool setup_wasm_streaming); std::unique_ptr platform_; - raw_ptr isolate_; gin::IsolateHolder isolate_holder_; + + // owned-by: isolate_holder_ + const raw_ptr isolate_; + + // depends-on: isolate_ v8::Locker locker_; std::unique_ptr microtasks_runner_;