
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}
33 lines
974 B
C++
33 lines
974 B
C++
// Copyright 2019 The Chromium Authors
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
#ifndef CONTENT_BROWSER_V8_SNAPSHOT_FILES_H_
|
|
#define CONTENT_BROWSER_V8_SNAPSHOT_FILES_H_
|
|
|
|
#include <map>
|
|
#include <string>
|
|
|
|
#include "base/files/file_path.h"
|
|
#include "base/files/scoped_file.h"
|
|
#include "third_party/abseil-cpp/absl/types/variant.h"
|
|
|
|
namespace base {
|
|
class CommandLine;
|
|
}
|
|
|
|
namespace content {
|
|
|
|
// Returns a mapping of V8 snapshot files to be preloaded for child processes
|
|
// that use V8. Note that this is defined on all platforms even though it may
|
|
// be empty or unused on some.
|
|
//
|
|
// This mapping can be used in `content::ChildProcessLauncherFileData` when
|
|
// constructing a ChildProcessLauncher.
|
|
std::map<std::string, absl::variant<base::FilePath, base::ScopedFD>>
|
|
GetV8SnapshotFilesToPreload(base::CommandLine& process_command_line);
|
|
|
|
} // namespace content
|
|
|
|
#endif // CONTENT_BROWSER_V8_SNAPSHOT_FILES_H_
|