
This renderer command line switch is intended to prevent feature flag overrides from configuring V8 flags. To enforce this, v8 feature flag overrides have been conditioned on this command line switch in the following locations: - content::RenderProcessImpl::RenderProcessImpl() - gin::SetFeatureFlags() This change is intended to enable consistent V8 flags at build-time and run-time, and hence compatibility for bundled code caches. Bug: 388577282 Change-Id: Ifd2465cf54bc8353a2f33701157bc9be538eb777 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6144831 Commit-Queue: Thomas Lukaszewicz <tluk@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Daniel Cheng <dcheng@chromium.org> Code-Coverage: findit-for-me@appspot.gserviceaccount.com <findit-for-me@appspot.gserviceaccount.com> Cr-Commit-Position: refs/heads/main@{#1407497}
71 lines
2.2 KiB
C++
71 lines
2.2 KiB
C++
// Copyright 2013 The Chromium Authors
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
#ifndef GIN_V8_INITIALIZER_H_
|
|
#define GIN_V8_INITIALIZER_H_
|
|
|
|
#include <stdint.h>
|
|
|
|
#include "base/files/file.h"
|
|
#include "base/files/memory_mapped_file.h"
|
|
#include "build/build_config.h"
|
|
#include "gin/array_buffer.h"
|
|
#include "gin/gin_export.h"
|
|
#include "gin/public/isolate_holder.h"
|
|
#include "gin/public/v8_platform.h"
|
|
#include "v8/include/v8-callbacks.h"
|
|
|
|
#if defined(V8_USE_EXTERNAL_STARTUP_DATA)
|
|
#include "gin/public/v8_snapshot_file_type.h"
|
|
#endif
|
|
|
|
namespace v8 {
|
|
class StartupData;
|
|
}
|
|
|
|
namespace gin {
|
|
|
|
class GIN_EXPORT V8Initializer {
|
|
public:
|
|
// This should be called by IsolateHolder::Initialize().
|
|
static void Initialize(IsolateHolder::ScriptMode mode,
|
|
const std::string& js_command_line_flags,
|
|
bool disallow_v8_feature_flag_overrides,
|
|
v8::OOMErrorCallback oom_error_callback);
|
|
|
|
// Get address and size information for currently loaded snapshot.
|
|
// If no snapshot is loaded, the return values are null for addresses
|
|
// and 0 for sizes.
|
|
static void GetV8ExternalSnapshotData(v8::StartupData* snapshot);
|
|
static void GetV8ExternalSnapshotData(const char** snapshot_data_out,
|
|
int* snapshot_size_out);
|
|
|
|
#if defined(V8_USE_EXTERNAL_STARTUP_DATA)
|
|
// Load V8 snapshot from default resources, if they are available.
|
|
static void LoadV8Snapshot(
|
|
V8SnapshotFileType snapshot_file_type = V8SnapshotFileType::kDefault);
|
|
|
|
// Load V8 snapshot from user provided file.
|
|
// The region argument, if non-zero, specifies the portions
|
|
// of the files to be mapped. Since the VM can boot with or without
|
|
// the snapshot, this function does not return a status.
|
|
static void LoadV8SnapshotFromFile(
|
|
base::File snapshot_file,
|
|
base::MemoryMappedFile::Region* snapshot_file_region,
|
|
V8SnapshotFileType snapshot_file_type);
|
|
|
|
#if BUILDFLAG(IS_ANDROID)
|
|
static base::FilePath GetSnapshotFilePath(
|
|
bool abi_32_bit,
|
|
V8SnapshotFileType snapshot_file_type);
|
|
#endif
|
|
|
|
#endif // V8_USE_EXTERNAL_STARTUP_DATA
|
|
|
|
};
|
|
|
|
} // namespace gin
|
|
|
|
#endif // GIN_V8_INITIALIZER_H_
|