1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
content / test / fuzzer / fuzzer_support.cc [blame]
// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "content/test/fuzzer/fuzzer_support.h"
#include <string>
#include "base/feature_list.h"
#include "base/i18n/icu_util.h"
#include "base/location.h"
#include "base/test/test_timeouts.h"
#include "gin/v8_initializer.h"
#include "third_party/blink/public/platform/web_runtime_features.h"
#include "tools/v8_context_snapshot/buildflags.h"
namespace content {
namespace {
#if defined(V8_USE_EXTERNAL_STARTUP_DATA)
#if BUILDFLAG(USE_V8_CONTEXT_SNAPSHOT)
constexpr gin::V8SnapshotFileType kSnapshotType =
gin::V8SnapshotFileType::kWithAdditionalContext;
#else
constexpr gin::V8SnapshotFileType kSnapshotType =
gin::V8SnapshotFileType::kDefault;
#endif
#endif
}
RenderViewTestAdapter::RenderViewTestAdapter()
// Allow fuzzing test a longer Run() timeout than normal (see
// htps://crbug.com/1053401).
: increased_timeout_(FROM_HERE, TestTimeouts::action_max_timeout()) {}
void RenderViewTestAdapter::SetUp() {
RenderViewTest::SetUp();
CreateFakeURLLoaderFactory();
}
Env::Env() {
base::CommandLine::Init(0, nullptr);
base::FeatureList::InitInstance(std::string(), std::string());
base::i18n::InitializeICU();
TestTimeouts::Initialize();
blink::WebRuntimeFeatures::EnableExperimentalFeatures(true);
blink::WebRuntimeFeatures::EnableTestOnlyFeatures(true);
#ifdef V8_USE_EXTERNAL_STARTUP_DATA
gin::V8Initializer::LoadV8Snapshot(kSnapshotType);
#endif
// Initialize the adapter before gin, because the adapter can set V8 flags
// only before initializing V8.
adapter = std::make_unique<RenderViewTestAdapter>();
adapter->SetUp();
gin::IsolateHolder::Initialize(gin::IsolateHolder::kStrictMode,
gin::ArrayBufferAllocator::SharedInstance());
}
Env::~Env() {
LOG(FATAL) << "NOT SUPPORTED";
}
} // namespace content