0
Files
src/gin
Leszek Swirski c062a07fbb Reland "[android] Re-adds ability to include both v8 snapshot types"
This is a reland of commit 87a4a1df82

The reland adds a dependency on v8_context_snapshot:buildflags in NaCL,
to fix lacros build issues.

Original change's description:
> [android] Re-adds ability to include both v8 snapshot types
>
> A reland of https://crrev.com/c/3209682, which allows selecting at
> runtime whether V8 uses the blink-generated context snapshot or not.
> This reland is both a rebase and an update, and as such has some
> mechanical differences with the original patch -- in particular, it
> switches to using BUILDFLAGS over `#if defined`.
>
> We're relanding this because we want to retry the experiment with
> various new differences (e.g. trying out enabling for just high-end
> Android, collecting metrics from partners rather than aggregated whole
> web performance, looking at metrics outside of CWV, experimenting with
> the impact on the trade-off space of alternative compression schemes
> for the snapshot).
>
> Original description:
>
> > And adds feature as to which one is used at runtime. Specific
> > parts:
> > . adds gn arg: include_both_v8_snapshots. At this time this is
> >   only supported on android. I will likely make it work on chromeos
> >   next.
> > . Adds feature kUseContextSnapshot. This feature is available if
> >   include_both_v8_snapshots is set.
> > . Adds switch kUseContextSnapshotSwitch. This is passed from browser
> >   to renderer if kUseContextSnapshot is enabled. A separate switch is
> >   used as at the time the v8 snapshot is loaded features have not been
> >   loaded.
> > And this updates a bunch of build targets accordingly.
>
> Bug: 40200623, 40539769
> Change-Id: I4e82581809321ec143b3c1484af4267279aa1e2f
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5482109
> Reviewed-by: Richard (Torne) Coles <torne@chromium.org>
> Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
> Reviewed-by: John Abd-El-Malek <jam@chromium.org>
> Auto-Submit: Leszek Swirski <leszeks@chromium.org>
> Reviewed-by: Andrey Kosyakov <caseq@chromium.org>
> Commit-Queue: Leszek Swirski <leszeks@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#1293558}

Bug: 40200623, 40539769
Cq-Include-Trybots: luci.chrome.try:linux-lacros-chrome
Change-Id: I5141e1a1ea488ffc3f539f941bf0c52297378e99
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5491087
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Derek Schuff <dschuff@chromium.org>
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1295360}
2024-05-02 10:51:09 +00:00
..

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.