diff --git a/shell/common/gin_converters/osr_converter.cc b/shell/common/gin_converters/osr_converter.cc index 4c513a4d34..27129416c9 100644 --- a/shell/common/gin_converters/osr_converter.cc +++ b/shell/common/gin_converters/osr_converter.cc @@ -87,10 +87,12 @@ v8::Local Converter::ToV8( // GC collects the object. auto* monitor = new OffscreenReleaseHolderMonitor(val.releaser_holder); - auto releaserHolder = v8::External::New(isolate, monitor); + auto releaserHolder = + v8::External::New(isolate, monitor, v8::kExternalPointerTypeTagDefault); auto releaserFunc = [](const v8::FunctionCallbackInfo& info) { auto* mon = static_cast( - info.Data().As()->Value()); + info.Data().As()->Value( + v8::kExternalPointerTypeTagDefault)); // Release the shared texture, so that future frames can be generated. mon->ReleaseTexture(); // Release the monitor happens at GC, don't release here. diff --git a/shell/common/gin_helper/callback.cc b/shell/common/gin_helper/callback.cc index fb56f95a01..403fe751b1 100644 --- a/shell/common/gin_helper/callback.cc +++ b/shell/common/gin_helper/callback.cc @@ -14,7 +14,10 @@ namespace { struct TranslatorHolder { explicit TranslatorHolder(v8::Isolate* isolate) - : handle(isolate, v8::External::New(isolate, this)) { + : handle(isolate, + v8::External::New(isolate, + this, + v8::kExternalPointerTypeTagDefault)) { handle.SetWeak(this, &GC, v8::WeakCallbackType::kParameter); } ~TranslatorHolder() { @@ -57,7 +60,8 @@ void CallTranslator(v8::Local external, } } - auto* holder = static_cast(external->Value()); + auto* holder = static_cast( + external->Value(v8::kExternalPointerTypeTagDefault)); holder->translator.Run(args); // Free immediately for one-time callback.