
crrev.com/875699 introduced gin::InitializeCppgcFromV8Platform(), which
centralized initialization of cppgc in Gin for the case of multiple
cppgc users in the same process.
Introduce gin::MaybeShutdownCppgc(), which centralizes the shutdown of
cppgc in Gin. This will help in guaranteeing that cppgc is shutdown only
after all users in the same process are done using it.
Bug: 1056170, 1111024
Change-Id: I15aebd3bea78a7033cf00743dbd4e286b1a30711
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3011899
Commit-Queue: Daniel Hosseinian <dhoss@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#899637}
Gin - Lightweight bindings for V8
This directory contains Gin, a set of utilities to make working with V8 easier.
Here are some of the key bits:
-
converter.h: Templatized JS ↔ C++ conversion routines for many common C++ types. You can define your own by specializing Converter.
-
function_template.h: Create JavaScript functions that dispatch to any C++ function, member function pointer, or base::RepeatingCallback.
-
object_template_builder.h: A handy utility for creation of v8::ObjectTemplate.
-
wrappable.h: Base class for C++ classes that want to be owned by the V8 GC. Wrappable objects are automatically deleted when GC discovers that nothing in the V8 heap refers to them. This is also an easy way to expose C++ objects to JavaScript.
-
runner.h: Create script contexts and run code in them.
-
module_runner_delegate.h: A delegate for runner that implements a subset of the AMD module specification. Also see modules/ with some example modules.