summaryrefslogtreecommitdiff
path: root/chromium/testing
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2019-05-24 11:40:17 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2019-05-24 12:42:11 +0000
commit5d87695f37678f96492b258bbab36486c59866b4 (patch)
treebe9783bbaf04fb930c4d74ca9c00b5e7954c8bc6 /chromium/testing
parent6c11fb357ec39bf087b8b632e2b1e375aef1b38b (diff)
downloadqtwebengine-chromium-5d87695f37678f96492b258bbab36486c59866b4.tar.gz
BASELINE: Update Chromium to 75.0.3770.56
Change-Id: I86d2007fd27a45d5797eee06f4c9369b8b50ac4f Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'chromium/testing')
-rw-r--r--chromium/testing/android/reporter/BUILD.gn2
-rw-r--r--chromium/testing/buildbot/filters/BUILD.gn1
-rw-r--r--chromium/testing/iossim/iossim.mm11
-rw-r--r--chromium/testing/libfuzzer/BUILD.gn2
-rwxr-xr-xchromium/testing/libfuzzer/archive_corpus.py11
-rw-r--r--chromium/testing/libfuzzer/drfuzz_main.cc19
-rw-r--r--chromium/testing/libfuzzer/fuzzer_test.gni6
-rw-r--r--chromium/testing/libfuzzer/fuzzers/color_space_data.h379
-rw-r--r--chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/0b145b6957b72692af59e042237e721ad95d78bd1
-rw-r--r--chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/0b31563fafdfc0c341e009146c675ca1529ebcf61
-rw-r--r--chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/15f7f8a22167427fa124e02a363bb2abd95bb9841
-rw-r--r--chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/1687520959ffc7da61ffeb387502010f70eff9291
-rw-r--r--chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/1cf4adfef4b1deaf529c8181d3e0f9abd03e72cd1
-rw-r--r--chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/20747af2b2ef5724b5a00498ed626d5374d0bcd81
-rw-r--r--chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/241c2f621b4b7dfceabc2789257966277c39af681
-rw-r--r--chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/2907dfcc21d9f90a1d5cbcdc70049f685a0d0ced1
-rw-r--r--chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/53afb7330f338fe63aba317a51c09ac4ff98812a1
-rw-r--r--chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/5a08e5c15251a31d4b619a93f6e5209136ed21c71
-rw-r--r--chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/658cb7c8e0158a23ba697d074ca29dc02b4ffded1
-rw-r--r--chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/783e3db56e3fe13ad0a2f1639b499aac769530251
-rw-r--r--chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/7a9145355094859b90d8f78eaeec6218aa23ac371
-rw-r--r--chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/8ba24866fbd53a3ac2eb2074d1dba842d782d14b1
-rw-r--r--chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/8fe7d082ef321c9de3f672f4befd511d68e4f2c91
-rw-r--r--chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/9e47bee5ac22ec0b11d3350e070c5532a41889021
-rw-r--r--chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/c05ca2448e645b6adcb21b20f57eb3204750e91b1
-rw-r--r--chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/c0d80054a4244bd0536fdcd123447e4ae95360ff1
-rw-r--r--chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/d0e31c2ad95989078ccf381a91492631fc1971601
-rw-r--r--chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/d6e5a37c382a8a78ddf8c262bdb5466b56f25e211
-rw-r--r--chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/df5f63d6a41ebb5f363da2c75e195f6a0678c5701
-rw-r--r--chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/f2fe23eeedceaf03ea2881c35b136a5568b0a4cb1
-rw-r--r--chromium/testing/libfuzzer/fuzzers/convert_woff2ttf_fuzzer.cc17
-rw-r--r--chromium/testing/libfuzzer/fuzzers/courgette_fuzzer.cc22
-rw-r--r--chromium/testing/libfuzzer/fuzzers/dicts/content_security_policy.dict49
-rw-r--r--chromium/testing/libfuzzer/fuzzers/dicts/feature_policy.dict20
-rw-r--r--chromium/testing/libfuzzer/fuzzers/dicts/generated/javascript.dict1656
-rw-r--r--chromium/testing/libfuzzer/fuzzers/dicts/generated/libxml_xml_read_memory_fuzzer.dict663
-rw-r--r--chromium/testing/libfuzzer/fuzzers/dicts/icc.dict115
-rw-r--r--chromium/testing/libfuzzer/fuzzers/dicts/javascript_parser_proto.dict307
-rw-r--r--chromium/testing/libfuzzer/fuzzers/dicts/json.dict33
-rw-r--r--chromium/testing/libfuzzer/fuzzers/dicts/mhtml.dict68
-rw-r--r--chromium/testing/libfuzzer/fuzzers/dicts/png.dict38
-rw-r--r--chromium/testing/libfuzzer/fuzzers/dicts/prtime.dict62
-rw-r--r--chromium/testing/libfuzzer/fuzzers/dicts/regexp.dict239
-rw-r--r--chromium/testing/libfuzzer/fuzzers/dicts/v8_wasm.dict2
-rw-r--r--chromium/testing/libfuzzer/fuzzers/dicts/web_icon_sizes.dict23
-rw-r--r--chromium/testing/libfuzzer/fuzzers/dicts/webgl-glsl.dict262
-rw-r--r--chromium/testing/libfuzzer/fuzzers/empty_fuzzer.cc23
-rw-r--r--chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/11
-rw-r--r--chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/101
-rw-r--r--chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/111
-rw-r--r--chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/121
-rw-r--r--chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/131
-rw-r--r--chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/141
-rw-r--r--chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/151
-rw-r--r--chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/161
-rw-r--r--chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/21
-rw-r--r--chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/31
-rw-r--r--chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/41
-rw-r--r--chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/51
-rw-r--r--chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/61
-rw-r--r--chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/71
-rw-r--r--chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/81
-rw-r--r--chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/91
-rw-r--r--chromium/testing/libfuzzer/fuzzers/flatbuffers_corpus/monsterdata_test.monbin384 -> 0 bytes
-rw-r--r--chromium/testing/libfuzzer/fuzzers/flatbuffers_verifier_fuzzer.cc16
-rwxr-xr-xchromium/testing/libfuzzer/fuzzers/generate_javascript_parser_proto.py140
-rw-r--r--chromium/testing/libfuzzer/fuzzers/gfx_png_image_fuzzer.cc32
-rw-r--r--chromium/testing/libfuzzer/fuzzers/hash_fuzzer.cc14
-rw-r--r--chromium/testing/libfuzzer/fuzzers/javascript_parser_proto_fuzzer.cc101
-rw-r--r--chromium/testing/libfuzzer/fuzzers/javascript_parser_proto_to_string.h15
-rw-r--r--chromium/testing/libfuzzer/fuzzers/language_detection_fuzzer.cc37
-rw-r--r--chromium/testing/libfuzzer/fuzzers/libpng_read_fuzzer.cc76
-rw-r--r--chromium/testing/libfuzzer/fuzzers/libsrtp_fuzzer.cc196
-rw-r--r--chromium/testing/libfuzzer/fuzzers/libxml_xml_read_memory_fuzzer.cc51
-rw-r--r--chromium/testing/libfuzzer/fuzzers/mach/BUILD.gn24
-rw-r--r--chromium/testing/libfuzzer/fuzzers/prtime_fuzzer.cc26
-rw-r--r--chromium/testing/libfuzzer/fuzzers/sha1_fuzzer.cc15
-rw-r--r--chromium/testing/libfuzzer/fuzzers/skia_image_filter_proto_fuzzer.cc71
-rw-r--r--chromium/testing/libfuzzer/fuzzers/skia_path_common.cc70
-rw-r--r--chromium/testing/libfuzzer/fuzzers/skia_path_common.h26
-rw-r--r--chromium/testing/libfuzzer/fuzzers/skia_path_fuzzer.cc67
-rw-r--r--chromium/testing/libfuzzer/fuzzers/skia_pathop_fuzzer.cc40
-rw-r--r--chromium/testing/libfuzzer/fuzzers/snappy_compress_fuzzer.cc21
-rw-r--r--chromium/testing/libfuzzer/fuzzers/snappy_uncompress_fuzzer.cc25
-rw-r--r--chromium/testing/libfuzzer/fuzzers/template_url_parser_fuzzer.cc70
-rw-r--r--chromium/testing/libfuzzer/fuzzers/url.proto94
-rw-r--r--chromium/testing/libfuzzer/fuzzers/url_parse_proto_fuzzer.cc140
-rw-r--r--chromium/testing/libfuzzer/fuzzers/usrsctp_fuzzer.cc31
-rw-r--r--chromium/testing/libfuzzer/fuzzers/v8_fuzzer.cc166
-rw-r--r--chromium/testing/libfuzzer/fuzzers/woff2_corpus/Ahem.woff2bin1624 -> 0 bytes
-rw-r--r--chromium/testing/libfuzzer/fuzzers/woff2_corpus/AhemSpaceLigature.woff2bin1080 -> 0 bytes
-rw-r--r--chromium/testing/libfuzzer/fuzzers/woff2_corpus/DejaVuSerif-webfont.woff2bin14464 -> 0 bytes
-rw-r--r--chromium/testing/libfuzzer/fuzzers/woff2_corpus/DejaVuSerif.woff2bin14036 -> 0 bytes
-rw-r--r--chromium/testing/libfuzzer/fuzzers/woff2_corpus/EzraSIL.woff2bin46240 -> 0 bytes
-rw-r--r--chromium/testing/libfuzzer/fuzzers/woff2_corpus/LinLibertineO.woff2bin334436 -> 0 bytes
-rw-r--r--chromium/testing/libfuzzer/fuzzers/woff2_corpus/MEgalopolisExtra.woff2bin30352 -> 0 bytes
-rw-r--r--chromium/testing/libfuzzer/fuzzers/woff2_corpus/OpenSans.woff2bin15264 -> 0 bytes
-rw-r--r--chromium/testing/libfuzzer/fuzzers/woff2_corpus/mplus-1p-regular.woff2bin581520 -> 0 bytes
-rw-r--r--chromium/testing/libfuzzer/fuzzers/woff2_corpus/tcu-font.woff2bin40888 -> 0 bytes
-rw-r--r--chromium/testing/libfuzzer/reproducing.md4
-rw-r--r--chromium/testing/merge_scripts/PRESUBMIT.py2
-rw-r--r--chromium/testing/merge_scripts/code_coverage/OWNERS3
-rw-r--r--chromium/testing/merge_scripts/code_coverage/merge_lib.py199
-rwxr-xr-xchromium/testing/merge_scripts/code_coverage/merge_results.py93
-rwxr-xr-xchromium/testing/merge_scripts/code_coverage/merge_results_test.py197
-rwxr-xr-xchromium/testing/merge_scripts/code_coverage/merge_steps.py33
-rwxr-xr-xchromium/testing/merge_scripts/results_merger.py1
-rwxr-xr-xchromium/testing/merge_scripts/results_merger_test.py (renamed from chromium/testing/merge_scripts/results_merger_unittest.py)14
-rwxr-xr-xchromium/testing/merge_scripts/standard_isolated_script_merge_test.py6
-rwxr-xr-xchromium/testing/scripts/cronet_sizes.py22
-rwxr-xr-xchromium/testing/scripts/get_compile_targets.py5
-rw-r--r--chromium/testing/scripts/gpu_integration_test_adapter.py34
-rwxr-xr-xchromium/testing/scripts/run_gpu_integration_test_as_googletest.py35
-rwxr-xr-xchromium/testing/scripts/run_isolated_script_test.py6
-rw-r--r--[-rwxr-xr-x]chromium/testing/scripts/sizes_common.py (renamed from chromium/testing/scripts/sizes.py)28
-rwxr-xr-xchromium/testing/scripts/test_buildbucket_api_gpu_use_cases.py98
-rwxr-xr-xchromium/testing/scripts/test_traffic_annotation_auditor.py45
-rw-r--r--chromium/testing/test.gni6
-rwxr-xr-xchromium/testing/test_env.py12
-rw-r--r--chromium/testing/variations/fieldtrial_testing_config.json854
120 files changed, 1432 insertions, 5897 deletions
diff --git a/chromium/testing/android/reporter/BUILD.gn b/chromium/testing/android/reporter/BUILD.gn
index fac1b03ba7e..3b12b2ad7de 100644
--- a/chromium/testing/android/reporter/BUILD.gn
+++ b/chromium/testing/android/reporter/BUILD.gn
@@ -10,7 +10,7 @@ android_library("reporter_java") {
deps = [
"//base:base_java",
- "//third_party/android_tools:android_test_base_java",
+ "//third_party/android_sdk:android_test_base_java",
]
java_files = [
diff --git a/chromium/testing/buildbot/filters/BUILD.gn b/chromium/testing/buildbot/filters/BUILD.gn
index 79ccffb9e55..ef0c07fcaa6 100644
--- a/chromium/testing/buildbot/filters/BUILD.gn
+++ b/chromium/testing/buildbot/filters/BUILD.gn
@@ -22,6 +22,7 @@ source_set("browser_tests_filters") {
data = [
"//testing/buildbot/filters/chromeos.mash.browser_tests.filter",
"//testing/buildbot/filters/chromeos.mash.fyi.browser_tests.filter",
+ "//testing/buildbot/filters/webui_html_imports_polyfill_browser_tests.filter",
"//testing/buildbot/filters/webui_polymer1_browser_tests.filter",
"//testing/buildbot/filters/webrtc_functional.browser_tests.filter",
]
diff --git a/chromium/testing/iossim/iossim.mm b/chromium/testing/iossim/iossim.mm
index 1cf3be2f36a..1240c62b115 100644
--- a/chromium/testing/iossim/iossim.mm
+++ b/chromium/testing/iossim/iossim.mm
@@ -190,6 +190,17 @@ NSString* GetDeviceBySDKAndName(NSDictionary* simctl_list,
NSString* sdk_version) {
NSString* sdk = [@"iOS " stringByAppendingString:sdk_version];
NSArray* devices = [simctl_list[@"devices"] objectForKey:sdk];
+ // Pre-Xcode 10.2's simulator, xcrun simctl -j returned "devices" that looked
+ // like "iOS 12.1". Now they look like
+ // com.apple.CoreSimulator.SimRuntime.iOS-12-1. Only use this block when all
+ // bots move to Xcode 10.2+
+ if (devices == nil || [devices count] == 0) {
+ sdk_version = [sdk_version stringByReplacingOccurrencesOfString:@"."
+ withString:@"-"];
+ NSString* sdk = [@"com.apple.CoreSimulator.SimRuntime.iOS-"
+ stringByAppendingString:sdk_version];
+ devices = [simctl_list[@"devices"] objectForKey:sdk];
+ }
for (NSDictionary* device in devices) {
if ([device[@"name"] isEqualToString:device_name]) {
return device[@"udid"];
diff --git a/chromium/testing/libfuzzer/BUILD.gn b/chromium/testing/libfuzzer/BUILD.gn
index c7d1ed6b86f..da8f62d013d 100644
--- a/chromium/testing/libfuzzer/BUILD.gn
+++ b/chromium/testing/libfuzzer/BUILD.gn
@@ -18,8 +18,6 @@ source_set("libfuzzer_main") {
deps += [ "//third_party/libFuzzer:libfuzzer" ]
} else if (use_afl) {
deps += [ "//third_party/libFuzzer:afl_driver" ]
- } else if (use_drfuzz) {
- sources += [ "drfuzz_main.cc" ]
} else {
sources += [ "unittest_main.cc" ]
}
diff --git a/chromium/testing/libfuzzer/archive_corpus.py b/chromium/testing/libfuzzer/archive_corpus.py
index a3fd29fa365..dddc18ffaf2 100755
--- a/chromium/testing/libfuzzer/archive_corpus.py
+++ b/chromium/testing/libfuzzer/archive_corpus.py
@@ -16,6 +16,8 @@ import sys
import warnings
import zipfile
+SEED_CORPUS_LIMIT_MB = 100
+
def main():
parser = argparse.ArgumentParser(description="Generate fuzzer config.")
@@ -23,9 +25,10 @@ def main():
nargs='+')
parser.add_argument('--output', metavar='output_archive_name.zip',
required=True)
- args = parser.parse_args()
+ args = parser.parse_args()
corpus_files = []
+ seed_corpus_path = args.output
for directory in args.corpus_directories:
if not os.path.exists(directory):
@@ -36,7 +39,7 @@ def main():
full_filename = os.path.join(dirpath, filename)
corpus_files.append(full_filename)
- with zipfile.ZipFile(args.output, 'w') as z:
+ with zipfile.ZipFile(seed_corpus_path, 'w') as z:
# Turn warnings into errors to interrupt the build: crbug.com/653920.
with warnings.catch_warnings():
warnings.simplefilter("error")
@@ -45,6 +48,10 @@ def main():
arcname = '%016d' % i
z.write(corpus_file, arcname)
+ if os.path.getsize(seed_corpus_path) > SEED_CORPUS_LIMIT_MB * 1024 * 1024:
+ print('Seed corpus %s exceeds maximum allowed size (%d MB).' %
+ (seed_corpus_path, SEED_CORPUS_LIMIT_MB))
+ sys.exit(-1)
if __name__ == '__main__':
main()
diff --git a/chromium/testing/libfuzzer/drfuzz_main.cc b/chromium/testing/libfuzzer/drfuzz_main.cc
deleted file mode 100644
index 38bbe562408..00000000000
--- a/chromium/testing/libfuzzer/drfuzz_main.cc
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (c) 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include <stddef.h>
-#include <stdint.h>
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size);
-
-// Provide main for running fuzzer tests with Dr. Fuzz.
-int main(int argc, char **argv)
-{
- static const size_t kFuzzInputMaxSize = 8;
- uint8_t* fuzz_input = new uint8_t[kFuzzInputMaxSize]();
- // The buffer and size arguments can be changed by Dr. Fuzz.
- int result = LLVMFuzzerTestOneInput(fuzz_input, kFuzzInputMaxSize);
- delete[] fuzz_input;
- return result;
-}
diff --git a/chromium/testing/libfuzzer/fuzzer_test.gni b/chromium/testing/libfuzzer/fuzzer_test.gni
index 9df3c0d3b5d..4d16b7007a0 100644
--- a/chromium/testing/libfuzzer/fuzzer_test.gni
+++ b/chromium/testing/libfuzzer/fuzzer_test.gni
@@ -35,7 +35,7 @@ import("//testing/test.gni")
# config (.options file) file would be generated or modified in root output
# dir (next to test).
template("fuzzer_test") {
- if (!disable_libfuzzer && (use_fuzzing_engine || use_drfuzz || is_linux)) {
+ if (!disable_libfuzzer && (use_fuzzing_engine || is_linux)) {
assert(defined(invoker.sources), "Need sources in $target_name.")
test_deps = [ "//testing/libfuzzer:libfuzzer_main" ]
@@ -81,7 +81,9 @@ template("fuzzer_test") {
deps = [ "//testing/libfuzzer:seed_corpus" ] + seed_corpus_deps
}
- test_deps += [ ":" + target_name + "_seed_corpus" ]
+ if (!archive_seed_corpus) {
+ test_deps += [ ":" + target_name + "_seed_corpus" ]
+ }
}
if (defined(invoker.dict) || defined(invoker.libfuzzer_options) ||
diff --git a/chromium/testing/libfuzzer/fuzzers/color_space_data.h b/chromium/testing/libfuzzer/fuzzers/color_space_data.h
deleted file mode 100644
index 0409e7882d6..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/color_space_data.h
+++ /dev/null
@@ -1,379 +0,0 @@
-// Copyright 2017 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef TESTING_LIBFUZZER_FUZZERS_COLOR_SPACE_DATA_H
-#define TESTING_LIBFUZZER_FUZZERS_COLOR_SPACE_DATA_H
-
-static const char kSRGBData[] = {
- // sRGB profile with tabular gamma curves.
- 0x00, 0x00, 0x0c, 0x48, 0x4c, 0x69, 0x6e, 0x6f, 0x02, 0x10, 0x00, 0x00,
- 0x6d, 0x6e, 0x74, 0x72, 0x52, 0x47, 0x42, 0x20, 0x58, 0x59, 0x5a, 0x20,
- 0x07, 0xce, 0x00, 0x02, 0x00, 0x09, 0x00, 0x06, 0x00, 0x31, 0x00, 0x00,
- 0x61, 0x63, 0x73, 0x70, 0x4d, 0x53, 0x46, 0x54, 0x00, 0x00, 0x00, 0x00,
- 0x49, 0x45, 0x43, 0x20, 0x73, 0x52, 0x47, 0x42, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0xd6,
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0xd3, 0x2d, 0x48, 0x50, 0x20, 0x20,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11,
- 0x63, 0x70, 0x72, 0x74, 0x00, 0x00, 0x01, 0x50, 0x00, 0x00, 0x00, 0x33,
- 0x64, 0x65, 0x73, 0x63, 0x00, 0x00, 0x01, 0x84, 0x00, 0x00, 0x00, 0x6c,
- 0x77, 0x74, 0x70, 0x74, 0x00, 0x00, 0x01, 0xf0, 0x00, 0x00, 0x00, 0x14,
- 0x62, 0x6b, 0x70, 0x74, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x14,
- 0x72, 0x58, 0x59, 0x5a, 0x00, 0x00, 0x02, 0x18, 0x00, 0x00, 0x00, 0x14,
- 0x67, 0x58, 0x59, 0x5a, 0x00, 0x00, 0x02, 0x2c, 0x00, 0x00, 0x00, 0x14,
- 0x62, 0x58, 0x59, 0x5a, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x14,
- 0x64, 0x6d, 0x6e, 0x64, 0x00, 0x00, 0x02, 0x54, 0x00, 0x00, 0x00, 0x70,
- 0x64, 0x6d, 0x64, 0x64, 0x00, 0x00, 0x02, 0xc4, 0x00, 0x00, 0x00, 0x88,
- 0x76, 0x75, 0x65, 0x64, 0x00, 0x00, 0x03, 0x4c, 0x00, 0x00, 0x00, 0x86,
- 0x76, 0x69, 0x65, 0x77, 0x00, 0x00, 0x03, 0xd4, 0x00, 0x00, 0x00, 0x24,
- 0x6c, 0x75, 0x6d, 0x69, 0x00, 0x00, 0x03, 0xf8, 0x00, 0x00, 0x00, 0x14,
- 0x6d, 0x65, 0x61, 0x73, 0x00, 0x00, 0x04, 0x0c, 0x00, 0x00, 0x00, 0x24,
- 0x74, 0x65, 0x63, 0x68, 0x00, 0x00, 0x04, 0x30, 0x00, 0x00, 0x00, 0x0c,
- 0x72, 0x54, 0x52, 0x43, 0x00, 0x00, 0x04, 0x3c, 0x00, 0x00, 0x08, 0x0c,
- 0x67, 0x54, 0x52, 0x43, 0x00, 0x00, 0x04, 0x3c, 0x00, 0x00, 0x08, 0x0c,
- 0x62, 0x54, 0x52, 0x43, 0x00, 0x00, 0x04, 0x3c, 0x00, 0x00, 0x08, 0x0c,
- 0x74, 0x65, 0x78, 0x74, 0x00, 0x00, 0x00, 0x00, 0x43, 0x6f, 0x70, 0x79,
- 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x28, 0x63, 0x29, 0x20, 0x31, 0x39,
- 0x39, 0x38, 0x20, 0x48, 0x65, 0x77, 0x6c, 0x65, 0x74, 0x74, 0x2d, 0x50,
- 0x61, 0x63, 0x6b, 0x61, 0x72, 0x64, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x61,
- 0x6e, 0x79, 0x00, 0x00, 0x64, 0x65, 0x73, 0x63, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x12, 0x73, 0x52, 0x47, 0x42, 0x20, 0x49, 0x45, 0x43,
- 0x36, 0x31, 0x39, 0x36, 0x36, 0x2d, 0x32, 0x2e, 0x31, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x73, 0x52, 0x47,
- 0x42, 0x20, 0x49, 0x45, 0x43, 0x36, 0x31, 0x39, 0x36, 0x36, 0x2d, 0x32,
- 0x2e, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x58, 0x59, 0x5a, 0x20, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0xf3, 0x51, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x16, 0xcc,
- 0x58, 0x59, 0x5a, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x59, 0x5a, 0x20,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6f, 0xa2, 0x00, 0x00, 0x38, 0xf5,
- 0x00, 0x00, 0x03, 0x90, 0x58, 0x59, 0x5a, 0x20, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x62, 0x99, 0x00, 0x00, 0xb7, 0x85, 0x00, 0x00, 0x18, 0xda,
- 0x58, 0x59, 0x5a, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xa0,
- 0x00, 0x00, 0x0f, 0x84, 0x00, 0x00, 0xb6, 0xcf, 0x64, 0x65, 0x73, 0x63,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x49, 0x45, 0x43, 0x20,
- 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x69,
- 0x65, 0x63, 0x2e, 0x63, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x16, 0x49, 0x45, 0x43, 0x20, 0x68, 0x74, 0x74,
- 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x69, 0x65, 0x63, 0x2e,
- 0x63, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x64, 0x65, 0x73, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2e,
- 0x49, 0x45, 0x43, 0x20, 0x36, 0x31, 0x39, 0x36, 0x36, 0x2d, 0x32, 0x2e,
- 0x31, 0x20, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x52, 0x47,
- 0x42, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x75, 0x72, 0x20, 0x73, 0x70, 0x61,
- 0x63, 0x65, 0x20, 0x2d, 0x20, 0x73, 0x52, 0x47, 0x42, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2e, 0x49, 0x45, 0x43,
- 0x20, 0x36, 0x31, 0x39, 0x36, 0x36, 0x2d, 0x32, 0x2e, 0x31, 0x20, 0x44,
- 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x52, 0x47, 0x42, 0x20, 0x63,
- 0x6f, 0x6c, 0x6f, 0x75, 0x72, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x20,
- 0x2d, 0x20, 0x73, 0x52, 0x47, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x64, 0x65, 0x73, 0x63, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x2c, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63,
- 0x65, 0x20, 0x56, 0x69, 0x65, 0x77, 0x69, 0x6e, 0x67, 0x20, 0x43, 0x6f,
- 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x49,
- 0x45, 0x43, 0x36, 0x31, 0x39, 0x36, 0x36, 0x2d, 0x32, 0x2e, 0x31, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x52,
- 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x56, 0x69, 0x65,
- 0x77, 0x69, 0x6e, 0x67, 0x20, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69,
- 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x49, 0x45, 0x43, 0x36, 0x31, 0x39,
- 0x36, 0x36, 0x2d, 0x32, 0x2e, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0x69, 0x65, 0x77,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0xa4, 0xfe, 0x00, 0x14, 0x5f, 0x2e,
- 0x00, 0x10, 0xcf, 0x14, 0x00, 0x03, 0xed, 0xcc, 0x00, 0x04, 0x13, 0x0b,
- 0x00, 0x03, 0x5c, 0x9e, 0x00, 0x00, 0x00, 0x01, 0x58, 0x59, 0x5a, 0x20,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x09, 0x56, 0x00, 0x50, 0x00, 0x00,
- 0x00, 0x57, 0x1f, 0xe7, 0x6d, 0x65, 0x61, 0x73, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x8f,
- 0x00, 0x00, 0x00, 0x02, 0x73, 0x69, 0x67, 0x20, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x52, 0x54, 0x20, 0x63, 0x75, 0x72, 0x76, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x0a, 0x00, 0x0f,
- 0x00, 0x14, 0x00, 0x19, 0x00, 0x1e, 0x00, 0x23, 0x00, 0x28, 0x00, 0x2d,
- 0x00, 0x32, 0x00, 0x37, 0x00, 0x3b, 0x00, 0x40, 0x00, 0x45, 0x00, 0x4a,
- 0x00, 0x4f, 0x00, 0x54, 0x00, 0x59, 0x00, 0x5e, 0x00, 0x63, 0x00, 0x68,
- 0x00, 0x6d, 0x00, 0x72, 0x00, 0x77, 0x00, 0x7c, 0x00, 0x81, 0x00, 0x86,
- 0x00, 0x8b, 0x00, 0x90, 0x00, 0x95, 0x00, 0x9a, 0x00, 0x9f, 0x00, 0xa4,
- 0x00, 0xa9, 0x00, 0xae, 0x00, 0xb2, 0x00, 0xb7, 0x00, 0xbc, 0x00, 0xc1,
- 0x00, 0xc6, 0x00, 0xcb, 0x00, 0xd0, 0x00, 0xd5, 0x00, 0xdb, 0x00, 0xe0,
- 0x00, 0xe5, 0x00, 0xeb, 0x00, 0xf0, 0x00, 0xf6, 0x00, 0xfb, 0x01, 0x01,
- 0x01, 0x07, 0x01, 0x0d, 0x01, 0x13, 0x01, 0x19, 0x01, 0x1f, 0x01, 0x25,
- 0x01, 0x2b, 0x01, 0x32, 0x01, 0x38, 0x01, 0x3e, 0x01, 0x45, 0x01, 0x4c,
- 0x01, 0x52, 0x01, 0x59, 0x01, 0x60, 0x01, 0x67, 0x01, 0x6e, 0x01, 0x75,
- 0x01, 0x7c, 0x01, 0x83, 0x01, 0x8b, 0x01, 0x92, 0x01, 0x9a, 0x01, 0xa1,
- 0x01, 0xa9, 0x01, 0xb1, 0x01, 0xb9, 0x01, 0xc1, 0x01, 0xc9, 0x01, 0xd1,
- 0x01, 0xd9, 0x01, 0xe1, 0x01, 0xe9, 0x01, 0xf2, 0x01, 0xfa, 0x02, 0x03,
- 0x02, 0x0c, 0x02, 0x14, 0x02, 0x1d, 0x02, 0x26, 0x02, 0x2f, 0x02, 0x38,
- 0x02, 0x41, 0x02, 0x4b, 0x02, 0x54, 0x02, 0x5d, 0x02, 0x67, 0x02, 0x71,
- 0x02, 0x7a, 0x02, 0x84, 0x02, 0x8e, 0x02, 0x98, 0x02, 0xa2, 0x02, 0xac,
- 0x02, 0xb6, 0x02, 0xc1, 0x02, 0xcb, 0x02, 0xd5, 0x02, 0xe0, 0x02, 0xeb,
- 0x02, 0xf5, 0x03, 0x00, 0x03, 0x0b, 0x03, 0x16, 0x03, 0x21, 0x03, 0x2d,
- 0x03, 0x38, 0x03, 0x43, 0x03, 0x4f, 0x03, 0x5a, 0x03, 0x66, 0x03, 0x72,
- 0x03, 0x7e, 0x03, 0x8a, 0x03, 0x96, 0x03, 0xa2, 0x03, 0xae, 0x03, 0xba,
- 0x03, 0xc7, 0x03, 0xd3, 0x03, 0xe0, 0x03, 0xec, 0x03, 0xf9, 0x04, 0x06,
- 0x04, 0x13, 0x04, 0x20, 0x04, 0x2d, 0x04, 0x3b, 0x04, 0x48, 0x04, 0x55,
- 0x04, 0x63, 0x04, 0x71, 0x04, 0x7e, 0x04, 0x8c, 0x04, 0x9a, 0x04, 0xa8,
- 0x04, 0xb6, 0x04, 0xc4, 0x04, 0xd3, 0x04, 0xe1, 0x04, 0xf0, 0x04, 0xfe,
- 0x05, 0x0d, 0x05, 0x1c, 0x05, 0x2b, 0x05, 0x3a, 0x05, 0x49, 0x05, 0x58,
- 0x05, 0x67, 0x05, 0x77, 0x05, 0x86, 0x05, 0x96, 0x05, 0xa6, 0x05, 0xb5,
- 0x05, 0xc5, 0x05, 0xd5, 0x05, 0xe5, 0x05, 0xf6, 0x06, 0x06, 0x06, 0x16,
- 0x06, 0x27, 0x06, 0x37, 0x06, 0x48, 0x06, 0x59, 0x06, 0x6a, 0x06, 0x7b,
- 0x06, 0x8c, 0x06, 0x9d, 0x06, 0xaf, 0x06, 0xc0, 0x06, 0xd1, 0x06, 0xe3,
- 0x06, 0xf5, 0x07, 0x07, 0x07, 0x19, 0x07, 0x2b, 0x07, 0x3d, 0x07, 0x4f,
- 0x07, 0x61, 0x07, 0x74, 0x07, 0x86, 0x07, 0x99, 0x07, 0xac, 0x07, 0xbf,
- 0x07, 0xd2, 0x07, 0xe5, 0x07, 0xf8, 0x08, 0x0b, 0x08, 0x1f, 0x08, 0x32,
- 0x08, 0x46, 0x08, 0x5a, 0x08, 0x6e, 0x08, 0x82, 0x08, 0x96, 0x08, 0xaa,
- 0x08, 0xbe, 0x08, 0xd2, 0x08, 0xe7, 0x08, 0xfb, 0x09, 0x10, 0x09, 0x25,
- 0x09, 0x3a, 0x09, 0x4f, 0x09, 0x64, 0x09, 0x79, 0x09, 0x8f, 0x09, 0xa4,
- 0x09, 0xba, 0x09, 0xcf, 0x09, 0xe5, 0x09, 0xfb, 0x0a, 0x11, 0x0a, 0x27,
- 0x0a, 0x3d, 0x0a, 0x54, 0x0a, 0x6a, 0x0a, 0x81, 0x0a, 0x98, 0x0a, 0xae,
- 0x0a, 0xc5, 0x0a, 0xdc, 0x0a, 0xf3, 0x0b, 0x0b, 0x0b, 0x22, 0x0b, 0x39,
- 0x0b, 0x51, 0x0b, 0x69, 0x0b, 0x80, 0x0b, 0x98, 0x0b, 0xb0, 0x0b, 0xc8,
- 0x0b, 0xe1, 0x0b, 0xf9, 0x0c, 0x12, 0x0c, 0x2a, 0x0c, 0x43, 0x0c, 0x5c,
- 0x0c, 0x75, 0x0c, 0x8e, 0x0c, 0xa7, 0x0c, 0xc0, 0x0c, 0xd9, 0x0c, 0xf3,
- 0x0d, 0x0d, 0x0d, 0x26, 0x0d, 0x40, 0x0d, 0x5a, 0x0d, 0x74, 0x0d, 0x8e,
- 0x0d, 0xa9, 0x0d, 0xc3, 0x0d, 0xde, 0x0d, 0xf8, 0x0e, 0x13, 0x0e, 0x2e,
- 0x0e, 0x49, 0x0e, 0x64, 0x0e, 0x7f, 0x0e, 0x9b, 0x0e, 0xb6, 0x0e, 0xd2,
- 0x0e, 0xee, 0x0f, 0x09, 0x0f, 0x25, 0x0f, 0x41, 0x0f, 0x5e, 0x0f, 0x7a,
- 0x0f, 0x96, 0x0f, 0xb3, 0x0f, 0xcf, 0x0f, 0xec, 0x10, 0x09, 0x10, 0x26,
- 0x10, 0x43, 0x10, 0x61, 0x10, 0x7e, 0x10, 0x9b, 0x10, 0xb9, 0x10, 0xd7,
- 0x10, 0xf5, 0x11, 0x13, 0x11, 0x31, 0x11, 0x4f, 0x11, 0x6d, 0x11, 0x8c,
- 0x11, 0xaa, 0x11, 0xc9, 0x11, 0xe8, 0x12, 0x07, 0x12, 0x26, 0x12, 0x45,
- 0x12, 0x64, 0x12, 0x84, 0x12, 0xa3, 0x12, 0xc3, 0x12, 0xe3, 0x13, 0x03,
- 0x13, 0x23, 0x13, 0x43, 0x13, 0x63, 0x13, 0x83, 0x13, 0xa4, 0x13, 0xc5,
- 0x13, 0xe5, 0x14, 0x06, 0x14, 0x27, 0x14, 0x49, 0x14, 0x6a, 0x14, 0x8b,
- 0x14, 0xad, 0x14, 0xce, 0x14, 0xf0, 0x15, 0x12, 0x15, 0x34, 0x15, 0x56,
- 0x15, 0x78, 0x15, 0x9b, 0x15, 0xbd, 0x15, 0xe0, 0x16, 0x03, 0x16, 0x26,
- 0x16, 0x49, 0x16, 0x6c, 0x16, 0x8f, 0x16, 0xb2, 0x16, 0xd6, 0x16, 0xfa,
- 0x17, 0x1d, 0x17, 0x41, 0x17, 0x65, 0x17, 0x89, 0x17, 0xae, 0x17, 0xd2,
- 0x17, 0xf7, 0x18, 0x1b, 0x18, 0x40, 0x18, 0x65, 0x18, 0x8a, 0x18, 0xaf,
- 0x18, 0xd5, 0x18, 0xfa, 0x19, 0x20, 0x19, 0x45, 0x19, 0x6b, 0x19, 0x91,
- 0x19, 0xb7, 0x19, 0xdd, 0x1a, 0x04, 0x1a, 0x2a, 0x1a, 0x51, 0x1a, 0x77,
- 0x1a, 0x9e, 0x1a, 0xc5, 0x1a, 0xec, 0x1b, 0x14, 0x1b, 0x3b, 0x1b, 0x63,
- 0x1b, 0x8a, 0x1b, 0xb2, 0x1b, 0xda, 0x1c, 0x02, 0x1c, 0x2a, 0x1c, 0x52,
- 0x1c, 0x7b, 0x1c, 0xa3, 0x1c, 0xcc, 0x1c, 0xf5, 0x1d, 0x1e, 0x1d, 0x47,
- 0x1d, 0x70, 0x1d, 0x99, 0x1d, 0xc3, 0x1d, 0xec, 0x1e, 0x16, 0x1e, 0x40,
- 0x1e, 0x6a, 0x1e, 0x94, 0x1e, 0xbe, 0x1e, 0xe9, 0x1f, 0x13, 0x1f, 0x3e,
- 0x1f, 0x69, 0x1f, 0x94, 0x1f, 0xbf, 0x1f, 0xea, 0x20, 0x15, 0x20, 0x41,
- 0x20, 0x6c, 0x20, 0x98, 0x20, 0xc4, 0x20, 0xf0, 0x21, 0x1c, 0x21, 0x48,
- 0x21, 0x75, 0x21, 0xa1, 0x21, 0xce, 0x21, 0xfb, 0x22, 0x27, 0x22, 0x55,
- 0x22, 0x82, 0x22, 0xaf, 0x22, 0xdd, 0x23, 0x0a, 0x23, 0x38, 0x23, 0x66,
- 0x23, 0x94, 0x23, 0xc2, 0x23, 0xf0, 0x24, 0x1f, 0x24, 0x4d, 0x24, 0x7c,
- 0x24, 0xab, 0x24, 0xda, 0x25, 0x09, 0x25, 0x38, 0x25, 0x68, 0x25, 0x97,
- 0x25, 0xc7, 0x25, 0xf7, 0x26, 0x27, 0x26, 0x57, 0x26, 0x87, 0x26, 0xb7,
- 0x26, 0xe8, 0x27, 0x18, 0x27, 0x49, 0x27, 0x7a, 0x27, 0xab, 0x27, 0xdc,
- 0x28, 0x0d, 0x28, 0x3f, 0x28, 0x71, 0x28, 0xa2, 0x28, 0xd4, 0x29, 0x06,
- 0x29, 0x38, 0x29, 0x6b, 0x29, 0x9d, 0x29, 0xd0, 0x2a, 0x02, 0x2a, 0x35,
- 0x2a, 0x68, 0x2a, 0x9b, 0x2a, 0xcf, 0x2b, 0x02, 0x2b, 0x36, 0x2b, 0x69,
- 0x2b, 0x9d, 0x2b, 0xd1, 0x2c, 0x05, 0x2c, 0x39, 0x2c, 0x6e, 0x2c, 0xa2,
- 0x2c, 0xd7, 0x2d, 0x0c, 0x2d, 0x41, 0x2d, 0x76, 0x2d, 0xab, 0x2d, 0xe1,
- 0x2e, 0x16, 0x2e, 0x4c, 0x2e, 0x82, 0x2e, 0xb7, 0x2e, 0xee, 0x2f, 0x24,
- 0x2f, 0x5a, 0x2f, 0x91, 0x2f, 0xc7, 0x2f, 0xfe, 0x30, 0x35, 0x30, 0x6c,
- 0x30, 0xa4, 0x30, 0xdb, 0x31, 0x12, 0x31, 0x4a, 0x31, 0x82, 0x31, 0xba,
- 0x31, 0xf2, 0x32, 0x2a, 0x32, 0x63, 0x32, 0x9b, 0x32, 0xd4, 0x33, 0x0d,
- 0x33, 0x46, 0x33, 0x7f, 0x33, 0xb8, 0x33, 0xf1, 0x34, 0x2b, 0x34, 0x65,
- 0x34, 0x9e, 0x34, 0xd8, 0x35, 0x13, 0x35, 0x4d, 0x35, 0x87, 0x35, 0xc2,
- 0x35, 0xfd, 0x36, 0x37, 0x36, 0x72, 0x36, 0xae, 0x36, 0xe9, 0x37, 0x24,
- 0x37, 0x60, 0x37, 0x9c, 0x37, 0xd7, 0x38, 0x14, 0x38, 0x50, 0x38, 0x8c,
- 0x38, 0xc8, 0x39, 0x05, 0x39, 0x42, 0x39, 0x7f, 0x39, 0xbc, 0x39, 0xf9,
- 0x3a, 0x36, 0x3a, 0x74, 0x3a, 0xb2, 0x3a, 0xef, 0x3b, 0x2d, 0x3b, 0x6b,
- 0x3b, 0xaa, 0x3b, 0xe8, 0x3c, 0x27, 0x3c, 0x65, 0x3c, 0xa4, 0x3c, 0xe3,
- 0x3d, 0x22, 0x3d, 0x61, 0x3d, 0xa1, 0x3d, 0xe0, 0x3e, 0x20, 0x3e, 0x60,
- 0x3e, 0xa0, 0x3e, 0xe0, 0x3f, 0x21, 0x3f, 0x61, 0x3f, 0xa2, 0x3f, 0xe2,
- 0x40, 0x23, 0x40, 0x64, 0x40, 0xa6, 0x40, 0xe7, 0x41, 0x29, 0x41, 0x6a,
- 0x41, 0xac, 0x41, 0xee, 0x42, 0x30, 0x42, 0x72, 0x42, 0xb5, 0x42, 0xf7,
- 0x43, 0x3a, 0x43, 0x7d, 0x43, 0xc0, 0x44, 0x03, 0x44, 0x47, 0x44, 0x8a,
- 0x44, 0xce, 0x45, 0x12, 0x45, 0x55, 0x45, 0x9a, 0x45, 0xde, 0x46, 0x22,
- 0x46, 0x67, 0x46, 0xab, 0x46, 0xf0, 0x47, 0x35, 0x47, 0x7b, 0x47, 0xc0,
- 0x48, 0x05, 0x48, 0x4b, 0x48, 0x91, 0x48, 0xd7, 0x49, 0x1d, 0x49, 0x63,
- 0x49, 0xa9, 0x49, 0xf0, 0x4a, 0x37, 0x4a, 0x7d, 0x4a, 0xc4, 0x4b, 0x0c,
- 0x4b, 0x53, 0x4b, 0x9a, 0x4b, 0xe2, 0x4c, 0x2a, 0x4c, 0x72, 0x4c, 0xba,
- 0x4d, 0x02, 0x4d, 0x4a, 0x4d, 0x93, 0x4d, 0xdc, 0x4e, 0x25, 0x4e, 0x6e,
- 0x4e, 0xb7, 0x4f, 0x00, 0x4f, 0x49, 0x4f, 0x93, 0x4f, 0xdd, 0x50, 0x27,
- 0x50, 0x71, 0x50, 0xbb, 0x51, 0x06, 0x51, 0x50, 0x51, 0x9b, 0x51, 0xe6,
- 0x52, 0x31, 0x52, 0x7c, 0x52, 0xc7, 0x53, 0x13, 0x53, 0x5f, 0x53, 0xaa,
- 0x53, 0xf6, 0x54, 0x42, 0x54, 0x8f, 0x54, 0xdb, 0x55, 0x28, 0x55, 0x75,
- 0x55, 0xc2, 0x56, 0x0f, 0x56, 0x5c, 0x56, 0xa9, 0x56, 0xf7, 0x57, 0x44,
- 0x57, 0x92, 0x57, 0xe0, 0x58, 0x2f, 0x58, 0x7d, 0x58, 0xcb, 0x59, 0x1a,
- 0x59, 0x69, 0x59, 0xb8, 0x5a, 0x07, 0x5a, 0x56, 0x5a, 0xa6, 0x5a, 0xf5,
- 0x5b, 0x45, 0x5b, 0x95, 0x5b, 0xe5, 0x5c, 0x35, 0x5c, 0x86, 0x5c, 0xd6,
- 0x5d, 0x27, 0x5d, 0x78, 0x5d, 0xc9, 0x5e, 0x1a, 0x5e, 0x6c, 0x5e, 0xbd,
- 0x5f, 0x0f, 0x5f, 0x61, 0x5f, 0xb3, 0x60, 0x05, 0x60, 0x57, 0x60, 0xaa,
- 0x60, 0xfc, 0x61, 0x4f, 0x61, 0xa2, 0x61, 0xf5, 0x62, 0x49, 0x62, 0x9c,
- 0x62, 0xf0, 0x63, 0x43, 0x63, 0x97, 0x63, 0xeb, 0x64, 0x40, 0x64, 0x94,
- 0x64, 0xe9, 0x65, 0x3d, 0x65, 0x92, 0x65, 0xe7, 0x66, 0x3d, 0x66, 0x92,
- 0x66, 0xe8, 0x67, 0x3d, 0x67, 0x93, 0x67, 0xe9, 0x68, 0x3f, 0x68, 0x96,
- 0x68, 0xec, 0x69, 0x43, 0x69, 0x9a, 0x69, 0xf1, 0x6a, 0x48, 0x6a, 0x9f,
- 0x6a, 0xf7, 0x6b, 0x4f, 0x6b, 0xa7, 0x6b, 0xff, 0x6c, 0x57, 0x6c, 0xaf,
- 0x6d, 0x08, 0x6d, 0x60, 0x6d, 0xb9, 0x6e, 0x12, 0x6e, 0x6b, 0x6e, 0xc4,
- 0x6f, 0x1e, 0x6f, 0x78, 0x6f, 0xd1, 0x70, 0x2b, 0x70, 0x86, 0x70, 0xe0,
- 0x71, 0x3a, 0x71, 0x95, 0x71, 0xf0, 0x72, 0x4b, 0x72, 0xa6, 0x73, 0x01,
- 0x73, 0x5d, 0x73, 0xb8, 0x74, 0x14, 0x74, 0x70, 0x74, 0xcc, 0x75, 0x28,
- 0x75, 0x85, 0x75, 0xe1, 0x76, 0x3e, 0x76, 0x9b, 0x76, 0xf8, 0x77, 0x56,
- 0x77, 0xb3, 0x78, 0x11, 0x78, 0x6e, 0x78, 0xcc, 0x79, 0x2a, 0x79, 0x89,
- 0x79, 0xe7, 0x7a, 0x46, 0x7a, 0xa5, 0x7b, 0x04, 0x7b, 0x63, 0x7b, 0xc2,
- 0x7c, 0x21, 0x7c, 0x81, 0x7c, 0xe1, 0x7d, 0x41, 0x7d, 0xa1, 0x7e, 0x01,
- 0x7e, 0x62, 0x7e, 0xc2, 0x7f, 0x23, 0x7f, 0x84, 0x7f, 0xe5, 0x80, 0x47,
- 0x80, 0xa8, 0x81, 0x0a, 0x81, 0x6b, 0x81, 0xcd, 0x82, 0x30, 0x82, 0x92,
- 0x82, 0xf4, 0x83, 0x57, 0x83, 0xba, 0x84, 0x1d, 0x84, 0x80, 0x84, 0xe3,
- 0x85, 0x47, 0x85, 0xab, 0x86, 0x0e, 0x86, 0x72, 0x86, 0xd7, 0x87, 0x3b,
- 0x87, 0x9f, 0x88, 0x04, 0x88, 0x69, 0x88, 0xce, 0x89, 0x33, 0x89, 0x99,
- 0x89, 0xfe, 0x8a, 0x64, 0x8a, 0xca, 0x8b, 0x30, 0x8b, 0x96, 0x8b, 0xfc,
- 0x8c, 0x63, 0x8c, 0xca, 0x8d, 0x31, 0x8d, 0x98, 0x8d, 0xff, 0x8e, 0x66,
- 0x8e, 0xce, 0x8f, 0x36, 0x8f, 0x9e, 0x90, 0x06, 0x90, 0x6e, 0x90, 0xd6,
- 0x91, 0x3f, 0x91, 0xa8, 0x92, 0x11, 0x92, 0x7a, 0x92, 0xe3, 0x93, 0x4d,
- 0x93, 0xb6, 0x94, 0x20, 0x94, 0x8a, 0x94, 0xf4, 0x95, 0x5f, 0x95, 0xc9,
- 0x96, 0x34, 0x96, 0x9f, 0x97, 0x0a, 0x97, 0x75, 0x97, 0xe0, 0x98, 0x4c,
- 0x98, 0xb8, 0x99, 0x24, 0x99, 0x90, 0x99, 0xfc, 0x9a, 0x68, 0x9a, 0xd5,
- 0x9b, 0x42, 0x9b, 0xaf, 0x9c, 0x1c, 0x9c, 0x89, 0x9c, 0xf7, 0x9d, 0x64,
- 0x9d, 0xd2, 0x9e, 0x40, 0x9e, 0xae, 0x9f, 0x1d, 0x9f, 0x8b, 0x9f, 0xfa,
- 0xa0, 0x69, 0xa0, 0xd8, 0xa1, 0x47, 0xa1, 0xb6, 0xa2, 0x26, 0xa2, 0x96,
- 0xa3, 0x06, 0xa3, 0x76, 0xa3, 0xe6, 0xa4, 0x56, 0xa4, 0xc7, 0xa5, 0x38,
- 0xa5, 0xa9, 0xa6, 0x1a, 0xa6, 0x8b, 0xa6, 0xfd, 0xa7, 0x6e, 0xa7, 0xe0,
- 0xa8, 0x52, 0xa8, 0xc4, 0xa9, 0x37, 0xa9, 0xa9, 0xaa, 0x1c, 0xaa, 0x8f,
- 0xab, 0x02, 0xab, 0x75, 0xab, 0xe9, 0xac, 0x5c, 0xac, 0xd0, 0xad, 0x44,
- 0xad, 0xb8, 0xae, 0x2d, 0xae, 0xa1, 0xaf, 0x16, 0xaf, 0x8b, 0xb0, 0x00,
- 0xb0, 0x75, 0xb0, 0xea, 0xb1, 0x60, 0xb1, 0xd6, 0xb2, 0x4b, 0xb2, 0xc2,
- 0xb3, 0x38, 0xb3, 0xae, 0xb4, 0x25, 0xb4, 0x9c, 0xb5, 0x13, 0xb5, 0x8a,
- 0xb6, 0x01, 0xb6, 0x79, 0xb6, 0xf0, 0xb7, 0x68, 0xb7, 0xe0, 0xb8, 0x59,
- 0xb8, 0xd1, 0xb9, 0x4a, 0xb9, 0xc2, 0xba, 0x3b, 0xba, 0xb5, 0xbb, 0x2e,
- 0xbb, 0xa7, 0xbc, 0x21, 0xbc, 0x9b, 0xbd, 0x15, 0xbd, 0x8f, 0xbe, 0x0a,
- 0xbe, 0x84, 0xbe, 0xff, 0xbf, 0x7a, 0xbf, 0xf5, 0xc0, 0x70, 0xc0, 0xec,
- 0xc1, 0x67, 0xc1, 0xe3, 0xc2, 0x5f, 0xc2, 0xdb, 0xc3, 0x58, 0xc3, 0xd4,
- 0xc4, 0x51, 0xc4, 0xce, 0xc5, 0x4b, 0xc5, 0xc8, 0xc6, 0x46, 0xc6, 0xc3,
- 0xc7, 0x41, 0xc7, 0xbf, 0xc8, 0x3d, 0xc8, 0xbc, 0xc9, 0x3a, 0xc9, 0xb9,
- 0xca, 0x38, 0xca, 0xb7, 0xcb, 0x36, 0xcb, 0xb6, 0xcc, 0x35, 0xcc, 0xb5,
- 0xcd, 0x35, 0xcd, 0xb5, 0xce, 0x36, 0xce, 0xb6, 0xcf, 0x37, 0xcf, 0xb8,
- 0xd0, 0x39, 0xd0, 0xba, 0xd1, 0x3c, 0xd1, 0xbe, 0xd2, 0x3f, 0xd2, 0xc1,
- 0xd3, 0x44, 0xd3, 0xc6, 0xd4, 0x49, 0xd4, 0xcb, 0xd5, 0x4e, 0xd5, 0xd1,
- 0xd6, 0x55, 0xd6, 0xd8, 0xd7, 0x5c, 0xd7, 0xe0, 0xd8, 0x64, 0xd8, 0xe8,
- 0xd9, 0x6c, 0xd9, 0xf1, 0xda, 0x76, 0xda, 0xfb, 0xdb, 0x80, 0xdc, 0x05,
- 0xdc, 0x8a, 0xdd, 0x10, 0xdd, 0x96, 0xde, 0x1c, 0xde, 0xa2, 0xdf, 0x29,
- 0xdf, 0xaf, 0xe0, 0x36, 0xe0, 0xbd, 0xe1, 0x44, 0xe1, 0xcc, 0xe2, 0x53,
- 0xe2, 0xdb, 0xe3, 0x63, 0xe3, 0xeb, 0xe4, 0x73, 0xe4, 0xfc, 0xe5, 0x84,
- 0xe6, 0x0d, 0xe6, 0x96, 0xe7, 0x1f, 0xe7, 0xa9, 0xe8, 0x32, 0xe8, 0xbc,
- 0xe9, 0x46, 0xe9, 0xd0, 0xea, 0x5b, 0xea, 0xe5, 0xeb, 0x70, 0xeb, 0xfb,
- 0xec, 0x86, 0xed, 0x11, 0xed, 0x9c, 0xee, 0x28, 0xee, 0xb4, 0xef, 0x40,
- 0xef, 0xcc, 0xf0, 0x58, 0xf0, 0xe5, 0xf1, 0x72, 0xf1, 0xff, 0xf2, 0x8c,
- 0xf3, 0x19, 0xf3, 0xa7, 0xf4, 0x34, 0xf4, 0xc2, 0xf5, 0x50, 0xf5, 0xde,
- 0xf6, 0x6d, 0xf6, 0xfb, 0xf7, 0x8a, 0xf8, 0x19, 0xf8, 0xa8, 0xf9, 0x38,
- 0xf9, 0xc7, 0xfa, 0x57, 0xfa, 0xe7, 0xfb, 0x77, 0xfc, 0x07, 0xfc, 0x98,
- 0xfd, 0x29, 0xfd, 0xba, 0xfe, 0x4b, 0xfe, 0xdc, 0xff, 0x6d, 0xff, 0xff,
-};
-
-static const char kSRGBPara[] = {
- // sRGB profile with parametric gamma curves.
- 0x00, 0x00, 0x02, 0x54, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
- 0x6d, 0x6e, 0x74, 0x72, 0x52, 0x47, 0x42, 0x20, 0x58, 0x59, 0x5a, 0x20,
- 0x07, 0xe0, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x09, 0x00, 0x26, 0x00, 0x1c,
- 0x61, 0x63, 0x73, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x47, 0x4f, 0x4f, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0xd6,
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0xd3, 0x2d, 0x47, 0x4f, 0x4f, 0x47,
- 0x75, 0xe1, 0xa6, 0xb1, 0x3c, 0x34, 0x37, 0x63, 0x10, 0xc8, 0xab, 0x66,
- 0x06, 0x32, 0xa2, 0x8a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b,
- 0x64, 0x65, 0x73, 0x63, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00, 0x40,
- 0x63, 0x70, 0x72, 0x74, 0x00, 0x00, 0x01, 0x48, 0x00, 0x00, 0x00, 0x5a,
- 0x77, 0x74, 0x70, 0x74, 0x00, 0x00, 0x01, 0xa4, 0x00, 0x00, 0x00, 0x14,
- 0x62, 0x6b, 0x70, 0x74, 0x00, 0x00, 0x01, 0xb8, 0x00, 0x00, 0x00, 0x14,
- 0x72, 0x58, 0x59, 0x5a, 0x00, 0x00, 0x01, 0xcc, 0x00, 0x00, 0x00, 0x14,
- 0x67, 0x58, 0x59, 0x5a, 0x00, 0x00, 0x01, 0xe0, 0x00, 0x00, 0x00, 0x14,
- 0x62, 0x58, 0x59, 0x5a, 0x00, 0x00, 0x01, 0xf4, 0x00, 0x00, 0x00, 0x14,
- 0x72, 0x54, 0x52, 0x43, 0x00, 0x00, 0x02, 0x08, 0x00, 0x00, 0x00, 0x20,
- 0x63, 0x68, 0x61, 0x64, 0x00, 0x00, 0x02, 0x28, 0x00, 0x00, 0x00, 0x2c,
- 0x62, 0x54, 0x52, 0x43, 0x00, 0x00, 0x02, 0x08, 0x00, 0x00, 0x00, 0x20,
- 0x67, 0x54, 0x52, 0x43, 0x00, 0x00, 0x02, 0x08, 0x00, 0x00, 0x00, 0x20,
- 0x6d, 0x6c, 0x75, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
- 0x00, 0x00, 0x00, 0x0c, 0x65, 0x6e, 0x55, 0x53, 0x00, 0x00, 0x00, 0x24,
- 0x00, 0x00, 0x00, 0x1c, 0x00, 0x73, 0x00, 0x52, 0x00, 0x47, 0x00, 0x42,
- 0x00, 0x20, 0x00, 0x49, 0x00, 0x45, 0x00, 0x43, 0x00, 0x36, 0x00, 0x31,
- 0x00, 0x39, 0x00, 0x36, 0x00, 0x36, 0x00, 0x2d, 0x00, 0x32, 0x00, 0x2e,
- 0x00, 0x31, 0x00, 0x00, 0x6d, 0x6c, 0x75, 0x63, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0c, 0x65, 0x6e, 0x55, 0x53,
- 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x43, 0x00, 0x6f,
- 0x00, 0x70, 0x00, 0x79, 0x00, 0x72, 0x00, 0x69, 0x00, 0x67, 0x00, 0x68,
- 0x00, 0x74, 0x00, 0x20, 0x00, 0x28, 0x00, 0x63, 0x00, 0x29, 0x00, 0x20,
- 0x00, 0x32, 0x00, 0x30, 0x00, 0x31, 0x00, 0x36, 0x00, 0x20, 0x00, 0x47,
- 0x00, 0x6f, 0x00, 0x6f, 0x00, 0x67, 0x00, 0x6c, 0x00, 0x65, 0x00, 0x20,
- 0x00, 0x49, 0x00, 0x6e, 0x00, 0x63, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x00,
- 0x58, 0x59, 0x5a, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf3, 0x51,
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x16, 0xcc, 0x58, 0x59, 0x5a, 0x20,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x58, 0x59, 0x5a, 0x20, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x6f, 0xa0, 0x00, 0x00, 0x38, 0xf5, 0x00, 0x00, 0x03, 0x90,
- 0x58, 0x59, 0x5a, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x62, 0x97,
- 0x00, 0x00, 0xb7, 0x87, 0x00, 0x00, 0x18, 0xd9, 0x58, 0x59, 0x5a, 0x20,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x9f, 0x00, 0x00, 0x0f, 0x84,
- 0x00, 0x00, 0xb6, 0xc3, 0x70, 0x61, 0x72, 0x61, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x66, 0x66, 0x00, 0x00, 0xf2, 0xa7,
- 0x00, 0x00, 0x0d, 0x59, 0x00, 0x00, 0x13, 0xd0, 0x00, 0x00, 0x0a, 0x5b,
- 0x73, 0x66, 0x33, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0c, 0x42,
- 0x00, 0x00, 0x05, 0xde, 0xff, 0xff, 0xf3, 0x27, 0x00, 0x00, 0x07, 0x93,
- 0x00, 0x00, 0xfd, 0x90, 0xff, 0xff, 0xfb, 0xa3, 0xff, 0xff, 0xfd, 0xa4,
- 0x00, 0x00, 0x03, 0xdc, 0x00, 0x00, 0xc0, 0x6e,
-};
-
-static const char kAdobeData[] = {
- // Adobe 1998 profile with gamma 2.2 curves.
- 0x00, 0x00, 0x02, 0x30, 0x41, 0x44, 0x42, 0x45, 0x02, 0x10, 0x00, 0x00,
- 0x6d, 0x6e, 0x74, 0x72, 0x52, 0x47, 0x42, 0x20, 0x58, 0x59, 0x5a, 0x20,
- 0x07, 0xd0, 0x00, 0x08, 0x00, 0x0b, 0x00, 0x13, 0x00, 0x33, 0x00, 0x3b,
- 0x61, 0x63, 0x73, 0x70, 0x41, 0x50, 0x50, 0x4c, 0x00, 0x00, 0x00, 0x00,
- 0x6e, 0x6f, 0x6e, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0xd6,
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0xd3, 0x2d, 0x41, 0x44, 0x42, 0x45,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a,
- 0x63, 0x70, 0x72, 0x74, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x32,
- 0x64, 0x65, 0x73, 0x63, 0x00, 0x00, 0x01, 0x30, 0x00, 0x00, 0x00, 0x6b,
- 0x77, 0x74, 0x70, 0x74, 0x00, 0x00, 0x01, 0x9c, 0x00, 0x00, 0x00, 0x14,
- 0x62, 0x6b, 0x70, 0x74, 0x00, 0x00, 0x01, 0xb0, 0x00, 0x00, 0x00, 0x14,
- 0x72, 0x54, 0x52, 0x43, 0x00, 0x00, 0x01, 0xc4, 0x00, 0x00, 0x00, 0x0e,
- 0x67, 0x54, 0x52, 0x43, 0x00, 0x00, 0x01, 0xd4, 0x00, 0x00, 0x00, 0x0e,
- 0x62, 0x54, 0x52, 0x43, 0x00, 0x00, 0x01, 0xe4, 0x00, 0x00, 0x00, 0x0e,
- 0x72, 0x58, 0x59, 0x5a, 0x00, 0x00, 0x01, 0xf4, 0x00, 0x00, 0x00, 0x14,
- 0x67, 0x58, 0x59, 0x5a, 0x00, 0x00, 0x02, 0x08, 0x00, 0x00, 0x00, 0x14,
- 0x62, 0x58, 0x59, 0x5a, 0x00, 0x00, 0x02, 0x1c, 0x00, 0x00, 0x00, 0x14,
- 0x74, 0x65, 0x78, 0x74, 0x00, 0x00, 0x00, 0x00, 0x43, 0x6f, 0x70, 0x79,
- 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x32, 0x30, 0x30, 0x30, 0x20, 0x41,
- 0x64, 0x6f, 0x62, 0x65, 0x20, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73,
- 0x20, 0x49, 0x6e, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x74, 0x65,
- 0x64, 0x00, 0x00, 0x00, 0x64, 0x65, 0x73, 0x63, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x11, 0x41, 0x64, 0x6f, 0x62, 0x65, 0x20, 0x52, 0x47,
- 0x42, 0x20, 0x28, 0x31, 0x39, 0x39, 0x38, 0x29, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x58, 0x59, 0x5a, 0x20, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0xf3, 0x51, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x16, 0xcc,
- 0x58, 0x59, 0x5a, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x75, 0x72, 0x76,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x33, 0x00, 0x00,
- 0x63, 0x75, 0x72, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
- 0x02, 0x33, 0x00, 0x00, 0x63, 0x75, 0x72, 0x76, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x01, 0x02, 0x33, 0x00, 0x00, 0x58, 0x59, 0x5a, 0x20,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9c, 0x18, 0x00, 0x00, 0x4f, 0xa5,
- 0x00, 0x00, 0x04, 0xfc, 0x58, 0x59, 0x5a, 0x20, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x34, 0x8d, 0x00, 0x00, 0xa0, 0x2c, 0x00, 0x00, 0x0f, 0x95,
- 0x58, 0x59, 0x5a, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, 0x31,
- 0x00, 0x00, 0x10, 0x2f, 0x00, 0x00, 0xbe, 0x9c,
-};
-
-#endif // TESTING_LIBFUZZER_FUZZERS_COLOR_SPACE_DATA_H
diff --git a/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/0b145b6957b72692af59e042237e721ad95d78bd b/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/0b145b6957b72692af59e042237e721ad95d78bd
deleted file mode 100644
index b34aad3cbd5..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/0b145b6957b72692af59e042237e721ad95d78bd
+++ /dev/null
@@ -1 +0,0 @@
-default-src 'self' http://example.com http://example.net; connect-src 'none' \ No newline at end of file
diff --git a/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/0b31563fafdfc0c341e009146c675ca1529ebcf6 b/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/0b31563fafdfc0c341e009146c675ca1529ebcf6
deleted file mode 100644
index b017f492319..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/0b31563fafdfc0c341e009146c675ca1529ebcf6
+++ /dev/null
@@ -1 +0,0 @@
-default-src 'self' \ No newline at end of file
diff --git a/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/15f7f8a22167427fa124e02a363bb2abd95bb984 b/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/15f7f8a22167427fa124e02a363bb2abd95bb984
deleted file mode 100644
index de485a69cb8..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/15f7f8a22167427fa124e02a363bb2abd95bb984
+++ /dev/null
@@ -1 +0,0 @@
-manifest-src https://example.com/ \ No newline at end of file
diff --git a/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/1687520959ffc7da61ffeb387502010f70eff929 b/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/1687520959ffc7da61ffeb387502010f70eff929
deleted file mode 100644
index e38f6e85492..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/1687520959ffc7da61ffeb387502010f70eff929
+++ /dev/null
@@ -1 +0,0 @@
-default-src 'self'; report-uri https://endpoint.com; report-to groupname \ No newline at end of file
diff --git a/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/1cf4adfef4b1deaf529c8181d3e0f9abd03e72cd b/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/1cf4adfef4b1deaf529c8181d3e0f9abd03e72cd
deleted file mode 100644
index c1cea24c01c..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/1cf4adfef4b1deaf529c8181d3e0f9abd03e72cd
+++ /dev/null
@@ -1 +0,0 @@
-default-src 'self'; script-src https://example.com \ No newline at end of file
diff --git a/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/20747af2b2ef5724b5a00498ed626d5374d0bcd8 b/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/20747af2b2ef5724b5a00498ed626d5374d0bcd8
deleted file mode 100644
index 7012b083468..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/20747af2b2ef5724b5a00498ed626d5374d0bcd8
+++ /dev/null
@@ -1 +0,0 @@
-worker-src https://example.com/ \ No newline at end of file
diff --git a/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/241c2f621b4b7dfceabc2789257966277c39af68 b/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/241c2f621b4b7dfceabc2789257966277c39af68
deleted file mode 100644
index d1361458326..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/241c2f621b4b7dfceabc2789257966277c39af68
+++ /dev/null
@@ -1 +0,0 @@
-connect-src https://example.com/ \ No newline at end of file
diff --git a/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/2907dfcc21d9f90a1d5cbcdc70049f685a0d0ced b/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/2907dfcc21d9f90a1d5cbcdc70049f685a0d0ced
deleted file mode 100644
index f3e2e3afd14..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/2907dfcc21d9f90a1d5cbcdc70049f685a0d0ced
+++ /dev/null
@@ -1 +0,0 @@
-child-src https://example.com/ \ No newline at end of file
diff --git a/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/53afb7330f338fe63aba317a51c09ac4ff98812a b/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/53afb7330f338fe63aba317a51c09ac4ff98812a
deleted file mode 100644
index 1ff2d9ef116..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/53afb7330f338fe63aba317a51c09ac4ff98812a
+++ /dev/null
@@ -1 +0,0 @@
-script-src 'unsafe-hashed-attributes' 'sha256-jzgBGA4UWFFmpOBq0JpdsySukE1FrEN5bUpoK8Z29fY=' \ No newline at end of file
diff --git a/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/5a08e5c15251a31d4b619a93f6e5209136ed21c7 b/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/5a08e5c15251a31d4b619a93f6e5209136ed21c7
deleted file mode 100644
index d4d1b943272..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/5a08e5c15251a31d4b619a93f6e5209136ed21c7
+++ /dev/null
@@ -1 +0,0 @@
-connect-src 'self'; font-src 'self'; frame-src 'self'; img-src 'self'; manifest-src 'self'; media-src 'self'; object-src 'self'; script-src https://example.com; style-src 'self'; worker-src 'self' \ No newline at end of file
diff --git a/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/658cb7c8e0158a23ba697d074ca29dc02b4ffded b/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/658cb7c8e0158a23ba697d074ca29dc02b4ffded
deleted file mode 100644
index 4433e587962..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/658cb7c8e0158a23ba697d074ca29dc02b4ffded
+++ /dev/null
@@ -1 +0,0 @@
-plugin-types application/x-shockwave-flash \ No newline at end of file
diff --git a/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/783e3db56e3fe13ad0a2f1639b499aac76953025 b/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/783e3db56e3fe13ad0a2f1639b499aac76953025
deleted file mode 100644
index 7b540e8eacd..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/783e3db56e3fe13ad0a2f1639b499aac76953025
+++ /dev/null
@@ -1 +0,0 @@
-frame-src https://example.com/ \ No newline at end of file
diff --git a/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/7a9145355094859b90d8f78eaeec6218aa23ac37 b/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/7a9145355094859b90d8f78eaeec6218aa23ac37
deleted file mode 100644
index 8a61baa4e1d..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/7a9145355094859b90d8f78eaeec6218aa23ac37
+++ /dev/null
@@ -1 +0,0 @@
-script-src https://cdn.example.com/scripts/; object-src 'none' \ No newline at end of file
diff --git a/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/8ba24866fbd53a3ac2eb2074d1dba842d782d14b b/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/8ba24866fbd53a3ac2eb2074d1dba842d782d14b
deleted file mode 100644
index 509a1ef7f7e..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/8ba24866fbd53a3ac2eb2074d1dba842d782d14b
+++ /dev/null
@@ -1 +0,0 @@
-img-src https://example.com/ \ No newline at end of file
diff --git a/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/8fe7d082ef321c9de3f672f4befd511d68e4f2c9 b/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/8fe7d082ef321c9de3f672f4befd511d68e4f2c9
deleted file mode 100644
index 0bf35017aa1..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/8fe7d082ef321c9de3f672f4befd511d68e4f2c9
+++ /dev/null
@@ -1 +0,0 @@
-font-src https://example.com/ \ No newline at end of file
diff --git a/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/9e47bee5ac22ec0b11d3350e070c5532a4188902 b/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/9e47bee5ac22ec0b11d3350e070c5532a4188902
deleted file mode 100644
index 63dd7b21ea8..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/9e47bee5ac22ec0b11d3350e070c5532a4188902
+++ /dev/null
@@ -1 +0,0 @@
-script-src 'self'; report-to csp-reporting-endpoint \ No newline at end of file
diff --git a/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/c05ca2448e645b6adcb21b20f57eb3204750e91b b/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/c05ca2448e645b6adcb21b20f57eb3204750e91b
deleted file mode 100644
index 8665e593ccc..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/c05ca2448e645b6adcb21b20f57eb3204750e91b
+++ /dev/null
@@ -1 +0,0 @@
-media-src https://example.com/ \ No newline at end of file
diff --git a/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/c0d80054a4244bd0536fdcd123447e4ae95360ff b/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/c0d80054a4244bd0536fdcd123447e4ae95360ff
deleted file mode 100644
index cd36aa66a03..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/c0d80054a4244bd0536fdcd123447e4ae95360ff
+++ /dev/null
@@ -1 +0,0 @@
-plugin-types application/pdf \ No newline at end of file
diff --git a/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/d0e31c2ad95989078ccf381a91492631fc197160 b/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/d0e31c2ad95989078ccf381a91492631fc197160
deleted file mode 100644
index 4fe695d429e..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/d0e31c2ad95989078ccf381a91492631fc197160
+++ /dev/null
@@ -1 +0,0 @@
-script-src 'nonce-abcdefg' 'strict-dynamic' \ No newline at end of file
diff --git a/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/d6e5a37c382a8a78ddf8c262bdb5466b56f25e21 b/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/d6e5a37c382a8a78ddf8c262bdb5466b56f25e21
deleted file mode 100644
index 066449849d6..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/d6e5a37c382a8a78ddf8c262bdb5466b56f25e21
+++ /dev/null
@@ -1 +0,0 @@
-connect-src http://example.com; script-src http://example.com \ No newline at end of file
diff --git a/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/df5f63d6a41ebb5f363da2c75e195f6a0678c570 b/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/df5f63d6a41ebb5f363da2c75e195f6a0678c570
deleted file mode 100644
index 61f45cc6b32..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/df5f63d6a41ebb5f363da2c75e195f6a0678c570
+++ /dev/null
@@ -1 +0,0 @@
-connect-src 'self'; font-src 'self'; frame-src 'self'; img-src 'self'; manifest-src 'self'; media-src 'self'; object-src 'self'; script-src 'self'; style-src 'self'; worker-src 'self' \ No newline at end of file
diff --git a/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/f2fe23eeedceaf03ea2881c35b136a5568b0a4cb b/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/f2fe23eeedceaf03ea2881c35b136a5568b0a4cb
deleted file mode 100644
index 5b6df3d14a3..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/content_security_policy_corpus/f2fe23eeedceaf03ea2881c35b136a5568b0a4cb
+++ /dev/null
@@ -1 +0,0 @@
-object-src https://example.com/ \ No newline at end of file
diff --git a/chromium/testing/libfuzzer/fuzzers/convert_woff2ttf_fuzzer.cc b/chromium/testing/libfuzzer/fuzzers/convert_woff2ttf_fuzzer.cc
deleted file mode 100644
index f54b6fb283c..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/convert_woff2ttf_fuzzer.cc
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include <stddef.h>
-#include <stdint.h>
-
-#include <woff2/decode.h>
-
-// Entry point for LibFuzzer.
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
- std::string buf;
- woff2::WOFF2StringOut out(&buf);
- out.SetMaxSize(30 * 1024 * 1024);
- woff2::ConvertWOFF2ToTTF(data, size, &out);
- return 0;
-}
diff --git a/chromium/testing/libfuzzer/fuzzers/courgette_fuzzer.cc b/chromium/testing/libfuzzer/fuzzers/courgette_fuzzer.cc
deleted file mode 100644
index ec61ee702e9..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/courgette_fuzzer.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include <stddef.h>
-#include <stdint.h>
-
-#include "courgette/courgette.h"
-#include "courgette/courgette_flow.h"
-#include "courgette/region.h"
-
-// Entry point for LibFuzzer.
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
- courgette::CourgetteFlow flow;
- courgette::RegionBuffer buffer(courgette::Region(data, size));
- flow.ReadDisassemblerFromBuffer(flow.ONLY, buffer);
- flow.CreateAssemblyProgramFromDisassembler(flow.ONLY, false);
- flow.CreateEncodedProgramFromDisassemblerAndAssemblyProgram(flow.ONLY);
- flow.WriteSinkStreamSetFromEncodedProgram(flow.ONLY);
- // Not bothering to check |flow.failed()|.
- return 0;
-}
diff --git a/chromium/testing/libfuzzer/fuzzers/dicts/content_security_policy.dict b/chromium/testing/libfuzzer/fuzzers/dicts/content_security_policy.dict
deleted file mode 100644
index 32a0ad272bb..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/dicts/content_security_policy.dict
+++ /dev/null
@@ -1,49 +0,0 @@
-# Copyright 2016 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-" "
-","
-";"
-"self"
-"//"
-"*"
-"www"
-".example.com"
-":443"
-"/path/to/resource"
-"'none'"
-"'self'"
-"'strict-dynamic'"
-"'unsafe-inline'"
-"'unsafe-eval'"
-"data:"
-"blob:"
-"filesystem:"
-"http:"
-"https:"
-"allow-forms"
-"allow-scripts"
-"base-uri"
-"block-all-mixed-content"
-"child-src"
-"connect-src"
-"default-src"
-"font-src"
-"form-action"
-"frame-ancestors"
-"frame-src"
-"img-src"
-"manifest-src"
-"media-src"
-"object-src"
-"plugin-types"
-"report-to"
-"report-uri"
-"require-sri-for"
-"sandbox"
-"script-src"
-"style-src"
-"treat-as-public-address"
-"upgrade-insecure-requests"
-"application/octet-stream"
diff --git a/chromium/testing/libfuzzer/fuzzers/dicts/feature_policy.dict b/chromium/testing/libfuzzer/fuzzers/dicts/feature_policy.dict
deleted file mode 100644
index de7638516e3..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/dicts/feature_policy.dict
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright 2016 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-"\"cookie\""
-"\"domain\""
-"\"docwrite\""
-"\"geolocation\""
-"\"midi\""
-"\"notifications\""
-"\"payment\""
-"\"push\""
-"\"sync-script\""
-"\"sync-xhr\""
-"\"usermedia\""
-"\"vibrate\""
-"\"webrtc\""
-"\"https://example.com/\""
-"*"
-"\"self\""
diff --git a/chromium/testing/libfuzzer/fuzzers/dicts/generated/javascript.dict b/chromium/testing/libfuzzer/fuzzers/dicts/generated/javascript.dict
deleted file mode 100644
index b4d536cad0d..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/dicts/generated/javascript.dict
+++ /dev/null
@@ -1,1656 +0,0 @@
-#
-# AFL dictionary for JavaScript
-# -----------------------------
-#
-# Contains basic reserved keywords and syntax building blocks.
-#
-# Created by Michal Zalewski <lcamtuf@google.com>
-#
-
-keyword_arguments="arguments"
-keyword_break="break"
-keyword_case="case"
-keyword_catch="catch"
-keyword_const="const"
-keyword_continue="continue"
-keyword_debugger="debugger"
-keyword_decodeURI="decodeURI"
-keyword_default="default"
-keyword_delete="delete"
-keyword_do="do"
-keyword_else="else"
-keyword_escape="escape"
-keyword_eval="eval"
-keyword_export="export"
-keyword_finally="finally"
-keyword_for="for (a=0;a<2;a++)"
-keyword_function="function"
-keyword_if="if"
-keyword_in="in"
-keyword_instanceof="instanceof"
-keyword_isNaN="isNaN"
-keyword_let="let"
-keyword_new="new"
-keyword_parseInt="parseInt"
-keyword_return="return"
-keyword_super="super"
-keyword_switch="switch"
-keyword_this="this"
-keyword_throw="throw"
-keyword_try="try"
-keyword_typeof="typeof"
-keyword_var="var"
-keyword_void="void"
-keyword_while="while"
-keyword_with="with"
-
-misc_1=" 1"
-misc_a="a"
-misc_array=" [1]"
-misc_assign=" a=1"
-misc_code_block=" {1}"
-misc_colon_num=" 1:"
-misc_colon_string=" 'a':"
-misc_comma=" ,"
-misc_comment_block=" /* */"
-misc_comment_line=" //"
-misc_cond=" 1?2:3"
-misc_dec=" --"
-misc_div=" /"
-misc_equals=" ="
-misc_fn=" a()"
-misc_identical=" ==="
-misc_inc=" ++"
-misc_minus=" -"
-misc_modulo=" %"
-misc_parentheses=" ()"
-misc_parentheses_1=" (1)"
-misc_parentheses_1x4=" (1,1,1,1)"
-misc_parentheses_a=" (a)"
-misc_period="."
-misc_plus=" +"
-misc_plus_assign=" +="
-misc_regex=" /a/g"
-misc_rol=" <<<"
-misc_semicolon=" ;"
-misc_serialized_object=" {'a': 1}"
-misc_string=" 'a'"
-misc_unicode=" '\\u0001'"
-misc_shl=" <<"
-misc_shr=" >>"
-misc_sae=" >>>"
-misc_bit_or=" |"
-misc_bit_and=" &"
-misc_bit_xor=" ^"
-misc_bit_not=" ~"
-
-object_Array=" Array"
-object_Boolean=" Boolean"
-object_Date=" Date"
-object_Function=" Function"
-object_Infinity=" Infinity"
-object_Int8Array=" Int8Array"
-object_Math=" Math"
-object_NaN=" NaN"
-object_Number=" Number"
-object_Object=" Object"
-object_RegExp=" RegExp"
-object_String=" String"
-object_Symbol=" Symbol"
-object_false=" false"
-object_null=" null"
-object_true=" true"
-
-prop_charAt=".charAt"
-prop_concat=".concat"
-prop_constructor=".constructor"
-prop_destructor=".destructor"
-prop_length=".length"
-prop_match=".match"
-prop_proto=".__proto__"
-prop_prototype=".prototype"
-prop_slice=".slice"
-prop_toCode=".toCode"
-prop_toString=".toString"
-prop_valueOf=".valueOf"
-
-
-# This part has been generated with testing/libfuzzer/dictionary_generator.py
-# using v8_script_parser_fuzzer binary and ECMA-262 standard 6.0.
-"all"
-"ECMA-404."
-"contexts."
-"Date.prototype.setHours"
-"IsConstructor"
-"forbidden"
-"dynamic"
-"month"
-"(exclusive)"
-"(OOPSLA"
-"arguments)"
-"consists"
-"expressions"
-"(which"
-"(in"
-"WeakSet"
-"whose"
-"iterator"
-"PATENT"
-"(for"
-"equivalence"
-"including"
-"to"
-"tail"
-"program"
-"under"
-"immutable"
-"started"
-"@"
-"digit"
-"returned"
-"very"
-"activation"
-"'UA-32577963-1']);"
-"Classes"
-"every"
-"updates"
-"U+200C"
-"(URI):"
-"condition"
-"(QUOTATION"
-"exponential"
-"Reference"
-"EXPRESS"
-"list"
-"prefix"
-"non-extensible"
-"large"
-"INDIRECT,"
-"NY,"
-"enclosing"
-"small"
-"abbreviated"
-"built-in"
-"range."
-"BUSINESS"
-"C++,"
-"translating"
-"surrounding"
-"second"
-"Version"
-"pass"
-"UTF-8."
-"invariant"
-"(LINE"
-"implemented"
-"INFRINGE"
-"Z."
-"Latin"
-"incompatible"
-"section"
-"selected"
-"supplied"
-"decoding"
-"version"
-"run"
-"above"
-"Int8Array"
-"method"
-"\"BSD"
-"full"
-"escaping"
-"Undefined"
-"compilation"
-"never"
-"component"
-"here"
-"ranges"
-"reported"
-"U+007D"
-"operations."
-"active"
-"path"
-"placeholder"
-"8601:2004(E)"
-"search"
-"White_Space"
-"U+10FFFF,"
-"changed"
-"allows"
-"(see"
-"SOLIDUS)"
-"prior"
-"real"
-"successors"
-"error,"
-"error."
-"proxy"
-"prints"
-"via"
-"shorthand"
-"divide"
-"replace"
-"Object.defineProperties"
-"Instance"
-"TO"
-"S,"
-"SUCH"
-"total"
-"unit"
-"languages"
-"executable"
-"takes"
-"would"
-"U+003A"
-"contains"
-"negative"
-"URI;"
-"call"
-"JTC"
-"6"
-"type"
-"until"
-"more"
-"Date.prototype.setMinutes"
-"GOODS"
-"EXEMPLARY,"
-"expose"
-"SIGN)"
-"flag"
-"U+000A"
-"V"
-"Representation"
-"Alphabetic"
-"hold"
-"finalization"
-"must"
-"Array.prototype"
-"PROVIDED"
-"none"
-"word"
-"U+000D"
-"hour"
-"SV"
-"(REVERSE"
-"paragraph"
-"ms"
-"v"
-"exceptions"
-"COMMA,"
-"root"
-"could"
-"defer"
-"compare"
-"type."
-"(with"
-"JavaScript"
-"states"
-"minimum"
-"numbers"
-"keep"
-"SEPARATOR),"
-"absolute"
-"information"
-"end"
-"recursive"
-"Format"
-"provide"
-"DataView"
-"HOWEVER"
-"maps"
-"reject"
-"Promise"
-"IMPLIED"
-"<CR>"
-"A"
-"description"
-"binary"
-"Arrays"
-"typed"
-"after"
-"variant"
-"mapping"
-"U+0024"
-"hoisting"
-"reflect"
-"SPECIAL,"
-"types"
-"All"
-"short"
-"(CHARACTER"
-"postfix"
-"ID_Start"
-"map,"
-"blocks."
-")"
-"LICENSING"
-"QUOTATION"
-"order"
-"DAMAGES"
-"operations"
-"executed"
-"interpretation"
-"V,"
-"over"
-"NO-BREAK"
-"expects"
-"through"
-"LINE"
-"its"
-"before"
-"byteLength"
-"style"
-"20"
-"(V,"
-"CreateIterResultObject"
-","
-"writing"
-"detected"
-"verifies"
-"SUBSTITUTE"
-"might"
-"then"
-"them"
-"skipped"
-"combination"
-"strings."
-"URI"
-"number"
-"of:"
-"nested"
-"operation."
-"[~U]"
-"always"
-"decimal"
-"Date.prototype.setMonth"
-"token"
-"API"
-"twice."
-"arrow"
-"each"
-"types."
-"side"
-"(but"
-"GetSuperConstructor"
-"directly"
-"Zone"
-"UTC"
-"FITNESS"
-"numeric"
-"expect"
-"RegExp"
-"loops"
-"operation"
-"scope)"
-"Type"
-"Reflect.ownKeys"
-"More"
-"WILL"
-"by"
-"mark-up"
-"restricted"
-"since"
-"BMP"
-"7"
-"newly"
-"Super"
-"Class"
-"Must"
-"loop."
-"Extension"
-"found"
-"free"
-"standard"
-"reason"
-"base"
-"byteOffset"
-"Constructor"
-"put"
-"Block"
-"thrown"
-"definition"
-"pairs"
-"unresolved"
-"created"
-"starts"
-"filter"
-"uses"
-"assign"
-"already"
-"features"
-">>"
-"encoding"
-"SYMBOL"
-"TC39"
-"SameValue"
-"primary"
-"system"
-"Maps"
-"Handler"
-"done"
-"notify"
-"another"
-"RETURN),"
-"SMALL"
-"Date.prototype.setSeconds"
-"script"
-"top"
-"least"
-"ToString"
-"needed"
-"SymbolDescriptiveString"
-"too"
-"statement"
-"store"
-"passed"
-"Language"
-"OrdinaryHasInstance"
-"Named"
-"immediate"
-"direct"
-"tokens"
-"execution."
-"BRACKET)."
-"translation"
-"to:"
-"kind"
-"Code"
-"keyword"
-"double"
-"enabled"
-"zero"
-"normalizing"
-"Reflect.getOwnPropertyDescriptor"
-"(NOTE"
-"minus"
-"debugging"
-"script."
-"constructors"
-"bitwise"
-"randomly"
-"UTC,"
-"Reflect.has"
-"initialized"
-"U+005D"
-"null"
-"ARISING"
-"UTF-8,"
-"contents"
-"option"
-"forced"
-"Power"
-"-"
-"eagerly"
-"indexes"
-"also"
-"internal"
-"(LEFT"
-"Date.prototype.setYear"
-"ARE"
-"REGARDING"
-"added"
-"object"
-"most"
-"optimized"
-"regular"
-"rejected"
-"letter"
-"scripts"
-"Date.prototype.setDate"
-"The"
-"<ZWNJ>"
-"brackets"
-"flow"
-"traditional"
-"Single"
-"Boolean"
-"place"
-"parenthesis"
-"Native"
-"+"
-"heuristics"
-"radix"
-"SyntaxError"
-"(N,"
-"syntax"
-"attempts"
-"O,"
-"relation"
-"find"
-"(COMMA)."
-"access"
-"(COMMA),"
-"parameters"
-"THAT"
-"HTML"
-"8"
-"exports"
-"dependent"
-"account"
-"Value"
-"(P)"
-"ToLength"
-"non-integer"
-"report"
-"during"
-"target"
-"runs"
-"resolve"
-"THIS"
-"fields"
-"bytes"
-"remove"
-"twice"
-"common"
-"CET,"
-"parameter,"
-"parameter."
-"automatic"
-"ToObject"
-"set"
-"reference"
-"locale"
-"testing"
-"<ZWNBSP>"
-"Tail"
-"are"
-"arg"
-"hash"
-"(CARRIAGE"
-"stringify"
-"said"
-"currently"
-"BUT"
-"future"
-"various"
-"OWNERSHIP"
-"consecutive"
-"conditions"
-"available"
-"C"
-"1))"
-"creating"
-"missing"
-"modify"
-"weak"
-"zone,"
-"PROCUREMENT"
-"succeed"
-"IS\""
-"interface"
-"IMPLEMENT"
-"AND"
-"both"
-"c"
-"TypeError"
-"last"
-"SHALL"
-"false,"
-"against"
-"became"
-"PURPOSE"
-"context"
-"receiver"
-"exceeds"
-"(MV),"
-"finds"
-"WARRANTY"
-"point"
-"header"
-"globals"
-"written"
-"slots"
-"Method"
-"iterable"
-"Wide"
-"Date.prototype.toDateString"
-"C,"
-"format,"
-"create"
-"Processing"
-"(SV,"
-"been"
-"accessor"
-"Early"
-"TORT"
-"JSON"
-"UTF-16."
-"basic"
-"expected"
-"C0"
-"empty"
-"Date.prototype.setUTCMilliseconds"
-"CLEF)."
-"precision"
-"N"
-"TV,"
-"assigning"
-"exception"
-"Date.prototype.setMilliseconds"
-"frozen"
-"Uint16Array"
-"deferred"
-"optimization"
-"replaced"
-"Object.defineProperty"
-"error"
-"property"
-"EVENT"
-"loop"
-"resolved"
-"USE,"
-"Both"
-"is"
-"binding"
-"it"
-"encountered"
-"itself"
-"[[Handler]]"
-"containing"
-"U+005F"
-"ISO/IEC"
-"Boolean.prototype.toString"
-"flag."
-"make"
-"NaN"
-"shorter"
-"(PARAGRAPH"
-"(MV,"
-"split"
-"9"
-"AT&T"
-"U+005B"
-"(TV)"
-"used"
-"keys"
-"assignment"
-"LIABILITY,"
-"NOT"
-"levels"
-"moving"
-"user"
-"characters"
-"CONDUCT"
-"stack"
-"normalization"
-"early"
-"lower"
-"surrogate"
-"changes"
-"ZERO),"
-"flags"
-"Names"
-"y"
-"entry"
-"the"
-"encodeURIComponent"
-"ECMA"
-"left"
-"construct"
-"quoted"
-"sentence"
-"||"
-"overflows"
-"SERVICES;"
-"(F,"
-"Inherited"
-"followed"
-"32"
-"yet"
-"previous"
-"tables"
-"Assignment"
-"LEFT-TO-RIGHT"
-"character"
-"source"
-"n"
-"collections"
-"found,"
-"input"
-"has"
-"remaining"
-"..."
-"format"
-"lexically"
-"big"
-"(O,"
-"possible"
-"marked"
-"integer"
-"bit"
-"enumerable"
-"formal"
-"ON"
-"d"
-"OF"
-"ignore"
-"steps"
-"Date.prototype.toISOString"
-"table."
-"OR"
-"right"
-"old"
-"Reflect.set"
-"<PS>"
-"creation"
-"back"
-"Numeric"
-"apply"
-"indirect"
-"encodeURI"
-"sourceText"
-"String"
-"for"
-"notification"
-"subclass"
-"<LF>"
-"track"
-"Let"
-"eliminate"
-"either"
-"be"
-"<LS>"
-"algorithmic"
-"Calls"
-"processing"
-"O"
-"step"
-"RIGHT-TO-LEFT"
-"ToNumber"
-"BMP."
-"method."
-"from"
-"Property"
-"properties"
-"<ZWJ>,"
-"Abstract"
-"Argument"
-"range"
-"extensions"
-"value."
-"runtime"
-"automatically"
-"Common"
-"IANA"
-"primitive"
-"statements"
-"constructor."
-"garbage"
-"CAUSED"
-"into"
-"within"
-"bound"
-"ACM"
-"parsing"
-"Literal"
-"Java"
-"Reflect.get"
-"IsRegExp"
-"32-bit"
-"U+005C"
-"Keys"
-"intrinsic"
-"support"
-"initial"
-"handles"
-"long"
-"ReferenceError"
-"RangeError"
-"array."
-"Variable"
-"perform"
-"analyze"
-"was"
-"(i.e."
-"form"
-"memory"
-"failure"
-"decodeURIComponent"
-"CONTRACT,"
-"statement."
-"objects."
-"true"
-"objects)"
-"Left"
-"arrays"
-"inside"
-"caller"
-"maximum"
-"...,"
-"annotations"
-"LEFT"
-"called"
-"constant"
-"defined"
-"Deseret"
-"iterator,"
-"To"
-"single"
-"Arguments"
-"floating"
-"check"
-"Map"
-"Only"
-"no"
-"TV"
-"binding."
-"when"
-"Possible"
-"invalid"
-"A."
-"application"
-"points"
-"Proxy"
-"Scripts"
-"test"
-"Reflect.isExtensible"
-"arithmetic"
-"node"
-"elements"
-"update"
-"prepared"
-"class"
-"AT"
-"variable"
-"structure"
-"for-in"
-"required"
-"modules"
-"An"
-"NOTE"
-"logical"
-"time"
-"PROFITS;"
-"code)"
-"requires"
-"CreateDataProperty"
-"non-writable"
-"once"
-"code"
-"partial"
-"FEED),"
-"chain"
-"FEED)."
-"(MUSICAL"
-"global"
-"existing"
-"WIDTH"
-"signatures"
-"per"
-"computation"
-"SOLIDUS),"
-"U+017F"
-"CLEF"
-"millisecond"
-"aligned"
-"U+007B"
-"zone"
-"default,"
-"Object"
-"environment"
-"0"
-"Array.prototype.concat"
-"stable"
-"include"
-"resources"
-"uninitialized"
-"division"
-"string"
-"LOSS"
-"(LATIN"
-"(INCLUDING,"
-"Tagged"
-"Keyed"
-"P"
-"ObjectDefineProperties"
-"anonymous"
-"entries"
-"specific"
-"minute"
-"level"
-"did"
-"positions"
-"Global"
-"EvalError"
-"round"
-"Canonical"
-"prevent"
-"CODE"
-"HTTP"
-"INFORMATION"
-"M,"
-"M."
-"object."
-"initializer"
-"non-strict"
-"manipulating"
-"Date.prototype.setUTCMinutes"
-"index"
-"adds"
-"appear"
-"TO,"
-"MUSICAL"
-"current"
-"Float64Array"
-"lazily"
-"template"
-"shared"
-";"
-"filled"
-"body"
-"(SOLIDUS)"
-"U+2028"
-"U+2029"
-"Descriptor"
-"objects"
-"(FORM"
-"["
-"UTF-16,"
-"implicit"
-"change"
-"convert"
-"\"AS"
-"shift"
-"31"
-"Date.prototype.setUTCSeconds"
-"queue"
-"MV"
-"weekday"
-"(MV)"
-"{"
-"Null"
-"named"
-"tasks"
-"GetOwnPropertyKeys"
-"extra"
-"When"
-"Construct"
-"modifying"
-"Languages"
-"names"
-"(DIGIT"
-"marker"
-"Import"
-"bindings"
-"use"
-"additive"
-"handled"
-"&"
-"illegal"
-"value,"
-"value)"
-"next"
-"few"
-"duplicate"
-"handler"
-"Date.prototype.setUTCFullYear"
-"attribute"
-"scope"
-"String.prototype"
-"F"
-"Default"
-"trail"
-"Time"
-"cases"
-"ID_Continue"
-"\"CODE\","
-"NON-JOINER)"
-"lowercase"
-"RIGHTS"
-"ObjectCreate"
-"modified"
-"MARK"
-"descriptor"
-"tag"
-"values"
-"can"
-"executor"
-"following"
-"meet"
-"detached"
-"F,"
-"control"
-"FTP)"
-"reserved"
-"stream"
-"escapes"
-"process"
-"lock"
-"escaped"
-"incremental"
-"UTF-8"
-"allowed"
-"unhandled"
-"block."
-"for-of"
-"requirements"
-"UTF-32"
-"means"
-"write"
-"INTERNATIONAL"
-"instead"
-"WARRANTIES,"
-"parameter"
-"attributes,"
-"circular"
-"map"
-"may"
-"clone"
-"(PLUS"
-"collection"
-"DISCLAIMS"
-"produce"
-"preferred"
-"Prologue"
-"date"
-"representations"
-"Int16Array"
-"data"
-"annotation"
-"ambiguous"
-"USA,"
-"computations"
-"bind"
-"lines"
-"element"
-"q"
-"rather"
-"block"
-"allow"
-"representation"
-"terminating"
-"__proto__"
-"(COLON),"
-"tagged"
-"@@toPrimitive"
-"Uint32Array"
-"Generator"
-"move"
-"Use"
-"years"
-"symbols"
-"comma"
-"differs"
-"INCIDENTAL,"
-"THE"
-"non-zero"
-"1"
-"(LF)"
-"group"
-"Rules"
-"platform"
-"Using"
-"main"
-"defining"
-"<"
-"pending"
-"Date.prototype.toUTCString"
-"non"
-"greater"
-"views"
-"%JSON%"
-"(FULL"
-"BRACKET)"
-"EVEN"
-"Extensions"
-"subtraction"
-"SameValueZero"
-"not"
-"(P,"
-"now"
-"nor"
-"execute"
-"name"
-"Iterator"
-"U+1D11E"
-"(LOW"
-"unrepresentable"
-"trap"
-"Eliminating"
-"identifier"
-"|"
-"subset"
-"(the"
-"8,"
-"Generic"
-"non-object"
-"U+0000"
-"static"
-"(HYPHEN-MINUS)"
-"year"
-"operand"
-"U+0008"
-"transitions"
-"Parameter"
-"special"
-"out"
-"space"
-"REQUIRED"
-"RegExpExec"
-"Set"
-"Float32Array"
-"Throw"
-"index."
-"G"
-"state"
-"column"
-"RFC"
-"completely"
-"Used"
-"x"
-"IMPLIED,"
-"byte"
-"remainder"
-"log"
-"DATA,"
-"backwards"
-"unescape"
-"language"
-"ArrayBuffer"
-"@@hasInstance"
-"times"
-"STRICT"
-"length"
-"separator"
-"isView"
-"hexadecimal"
-"first"
-"clause"
-"variables"
-"one"
-"INTERRUPTION)"
-"ISO"
-"suspended"
-"JOINER)"
-"reached"
-"array"
-"size"
-"given"
-"Runtime"
-"checked"
-"CURLY"
-"start"
-"ordering"
-"Symbol"
-"Date.prototype.setFullYear"
-"Uint8Array"
-"grow"
-"their"
-"SEE"
-"2"
-"Date"
-"TypedArray"
-"bits"
-"final"
-"HasProperty"
-"destructuring"
-"that"
-"completed"
-"exactly"
-"R"
-"closures"
-"LETTER"
-"variable."
-"PDF"
-"copy"
-"than"
-"specify"
-"==="
-"relative"
-"later."
-":"
-"1;"
-"depends"
-"accesses"
-"WHETHER"
-"r"
-"were"
-"1)"
-"accessed"
-"GeneratorFunction"
-"URIError"
-"1,"
-"ArrayBuffer.prototype.slice"
-"result"
-"and"
-"Executable"
-"false"
-"NEGLIGENCE"
-"explicit"
-"argument"
-"generalization"
-"Field"
-"Other"
-"Call"
-"have"
-"String.prototype.charAt"
-"any"
-"conversion"
-"Date.prototype.setUTCMonth"
-"min"
-"LINE)"
-"(no"
-"instance"
-"which"
-"="
-"TRV."
-"begin"
-"multiple"
-"Name"
-"normal"
-"buffer"
-"callable"
-"connected"
-"comparison"
-"inserted"
-"pages"
-"RIGHT"
-"considered"
-"request"
-"Module"
-"Date.prototype.toString"
-"OUT"
-"Date.prototype.setUTCHours"
-"Export"
-"ECMA-404"
-"STOP),"
-"Array"
-"}"
-"selection"
-"text"
-"supported"
-"POSSIBILITY"
-"BRACKET,"
-"Reflect.setPrototypeOf"
-"ECMA-402"
-"line"
-"Math"
-"slot"
-"We"
-"based"
-"("
-"cache"
-"3"
-"should"
-"only"
-"unable"
-"invocation"
-"SEPARATOR)"
-"b"
-"local"
-"WARRANTIES"
-"handle"
-"get"
-"=="
-"space,"
-"HEREIN"
-"cannot"
-"words"
-"progress"
-"quantifier"
-"interpreted"
-"neither"
-"secondary"
-"closure"
-"Right"
-"resource"
-"upper"
-"encounters"
-"yield"
-"keyed"
-"EST,"
-"Date.prototype.getYear"
-"INCLUDING"
-"contain"
-"Reflect.preventExtensions"
-"fixed"
-"where"
-"view"
-"SOFTWARE,"
-"declared"
-"declarations"
-"RETURN"
-"computed"
-"exists"
-"we"
-"module"
-"up"
-"writable"
-"Source"
-"(BACKSPACE),"
-"legacy"
-"truncating"
-"receiver."
-"THEORY"
-"invoked"
-"attribute,"
-"U+001F"
-"pattern"
-"lexical"
-"label"
-"outside"
-"toString"
-"closed"
-"between"
-"Reflect.getPrototypeOf"
-"import"
-"boundary"
-"reading"
-"checks"
-"AVAILABLE"
-"FOR"
-"<NUL>"
-"S"
-"key"
-"Identifier"
-"valid"
-"P,"
-"observable"
-"revoked"
-"many"
-"equal"
-"Month"
-"propagation"
-"s"
-"Unicode"
-"Escape"
-"values)"
-"MapIterator"
-"expression"
-"values,"
-"Boolean.prototype.valueOf"
-"comment"
-"(HYPHEN-MINUS),"
-"color"
-"pos"
-"adding"
-"table"
-"allocated"
-"array-like"
-"IS"
-"addition"
-"]"
-"MARK)"
-"mark"
-"(SPACE),"
-"literal"
-"(SPACE)."
-"non-configurable"
-"U+200D"
-"prototype"
-">"
-"enable"
-"(S,"
-"restrictions"
-"instantiated"
-"Function.prototype.apply"
-"external"
-"WAY"
-"declaration"
-"CONSEQUENTIAL"
-"folding"
-"Date.prototype"
-"an"
-"E),"
-"present"
-"IsArray"
-"/"
-"contexts"
-"Number"
-"value"
-"will"
-"(UCS)"
-"J.UCS"
-"ADVISED"
-"unpaired"
-"FEED"
-"ECMA-402:"
-"architecture."
-"parse"
-"Strict"
-"PARTICULAR"
-"IEEE"
-"comments"
-"capture"
-"different"
-"Return"
-"compiling"
-"generic"
-"Typed"
-"same"
-"configurable"
-"member"
-"Regular"
-"mode."
-"events"
-"Types"
-"SOFTWARE"
-"string."
-"extended"
-"infinity"
-"again"
-"initialization"
-"LIABLE"
-"effect"
-"running"
-"IN"
-"changing"
-"validate"
-"ACM,"
-"U+002D"
-"IF"
-"//"
-"undefined"
-"String.prototype.trim"
-"argument."
-"argument,"
-"UTC)"
-"UTC."
-"It"
-"<table"
-"ANY"
-"patterns"
-"without"
-"extensible"
-"In"
-"String.prototype.charCodeAt"
-"position"
-"(ZERO"
-"bodies"
-"If"
-"BE"
-"(UTC)"
-"less"
-"being"
-"captures"
-"ToInteger"
-"numbering"
-"rest"
-"unary"
-"R,"
-"unicode"
-"BY"
-"captured"
-"U+212A"
-"generator"
-"hint"
-"supply"
-"unsigned"
-"add"
-"setting"
-"extends"
-"4"
-"usage"
-"lookup"
-"(A"
-"match"
-"Labelled"
-"identical"
-"Control"
-"rules"
-"DIRECT,"
-"(inclusive)"
-"non-null"
-"[U]"
-"immediately"
-"execution"
-"left-hand"
-"desc"
-"LIMITED"
-"(EQUALS"
-"missing."
-"B."
-"user-defined"
-"Bitwise"
-"MATTERS"
-"BRACKET"
-"t"
-"CLAIMS"
-"multiplicative"
-"output"
-"OTHERWISE)"
-"page"
-"replacement"
-"specifies"
-"because"
-"sequence"
-"uppercase"
-"conditional"
-"searching"
-"calling"
-"INCLUDING,"
-"specified"
-"proper"
-"New"
-"Date.prototype.toTimeString"
-"literals"
-"lead"
-"[+U]"
-"avoid"
-"results:"
-"leap"
-"does"
-"\"B\","
-"CreateListFromArrayLike"
-"?"
-"mode"
-"SQUARE"
-"power"
-"compiler"
-"WeakMap"
-"(TRV)"
-"A-Z"
-"offset"
-"regexp"
-"TRV"
-"ALL"
-"on"
-"actual"
-"extension"
-"Date.prototype.valueOf"
-"of"
-"Date.prototype.setTime"
-"recognized"
-"(SV)"
-"(U+00DF)"
-"FL,"
-"constructor"
-"or"
-"Int32Array"
-"referenced"
-"letters"
-"No"
-"Internal"
-"promise"
-"Function.prototype.toString"
-"Reflect.defineProperty"
-"operator"
-"Empty"
-"Week"
-"(U+017F)"
-"Infinity"
-"additional"
-"prepare"
-"NO"
-"*"
-"ECMA-262"
-"decode"
-"strict"
-"context."
-"SIGPLAN"
-"N,"
-"triggered"
-"enough"
-"TABULATION),"
-"DISCLAIMED."
-"ToPrimitive"
-"but"
-"repeated"
-"construction"
-"Error"
-"(RIGHT"
-"N2"
-"promote"
-"(C,"
-"longer"
-"count"
-"1024"
-"UTF-16"
-"embedded"
-"U+002F"
-"using"
-"signed"
-"U+002C"
-"below"
-"converted"
-"limit"
-"MERCHANTABILITY"
-"<BS>"
-"define"
-"detailed"
-"USE"
-"<CR><LF>"
-"Space"
-"exhausted"
-"combining"
-"FIFO"
-"general"
-"as"
-"optionally"
-"at"
-"file"
-"Reflect.deleteProperty"
-"trailing"
-"Function"
-"parameters."
-"functions"
-"beyond"
-"Date.prototype.setUTCDate"
-"virtual"
-"Reflect"
-"field"
-"other"
-"5"
-"details"
-"<<"
-"requested"
-"repeat"
-"Uint8ClampedArray"
-"separate"
-"symbol"
-"Remove"
-"U"
-"functions)"
-"(DOLLAR"
-"Object.prototype"
-"calls"
-"code,"
-"(INCLUDING"
-"rule"
-"strings"
-"code."
-"Year"
-"(URL),"
-"validation"
-"starting"
-"function,"
diff --git a/chromium/testing/libfuzzer/fuzzers/dicts/generated/libxml_xml_read_memory_fuzzer.dict b/chromium/testing/libfuzzer/fuzzers/dicts/generated/libxml_xml_read_memory_fuzzer.dict
deleted file mode 100644
index 62570381647..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/dicts/generated/libxml_xml_read_memory_fuzzer.dict
+++ /dev/null
@@ -1,663 +0,0 @@
-#
-# AFL dictionary for XML
-# ----------------------
-#
-# Several basic syntax elements and attributes, modeled on libxml2.
-#
-# Created by Michal Zalewski <lcamtuf@google.com>
-#
-
-attr_encoding=" encoding=\"1\""
-attr_generic=" a=\"1\""
-attr_href=" href=\"1\""
-attr_standalone=" standalone=\"no\""
-attr_version=" version=\"1\""
-attr_xml_base=" xml:base=\"1\""
-attr_xml_id=" xml:id=\"1\""
-attr_xml_lang=" xml:lang=\"1\""
-attr_xml_space=" xml:space=\"1\""
-attr_xmlns=" xmlns=\"1\""
-
-entity_builtin="&lt;"
-entity_decimal="&#1;"
-entity_external="&a;"
-entity_hex="&#x1;"
-
-string_any="ANY"
-string_brackets="[]"
-string_cdata="CDATA"
-string_col_fallback=":fallback"
-string_col_generic=":a"
-string_col_include=":include"
-string_dashes="--"
-string_empty="EMPTY"
-string_empty_dblquotes="\"\""
-string_empty_quotes="''"
-string_entities="ENTITIES"
-string_entity="ENTITY"
-string_fixed="#FIXED"
-string_id="ID"
-string_idref="IDREF"
-string_idrefs="IDREFS"
-string_implied="#IMPLIED"
-string_nmtoken="NMTOKEN"
-string_nmtokens="NMTOKENS"
-string_notation="NOTATION"
-string_parentheses="()"
-string_pcdata="#PCDATA"
-string_percent="%a"
-string_public="PUBLIC"
-string_required="#REQUIRED"
-string_schema=":schema"
-string_system="SYSTEM"
-string_ucs4="UCS-4"
-string_utf16="UTF-16"
-string_utf8="UTF-8"
-string_xmlns="xmlns:"
-
-tag_attlist="<!ATTLIST"
-tag_cdata="<![CDATA["
-tag_close="</a>"
-tag_doctype="<!DOCTYPE"
-tag_element="<!ELEMENT"
-tag_entity="<!ENTITY"
-tag_ignore="<![IGNORE["
-tag_include="<![INCLUDE["
-tag_notation="<!NOTATION"
-tag_open="<a>"
-tag_open_close="<a />"
-tag_open_exclamation="<!"
-tag_open_q="<?"
-tag_sq2_close="]]>"
-tag_xml_q="<?xml?>"
-"http://docboo"
-"http://www.w"
-"UTF-16LE"
-"xmlns"
-"he30"
-"he2"
-"IET"
-"FDF-10"
-"aDUCS-4OPveb:"
-"a>"
-"UT"
-"xMl"
-"/usr/share/sg"
-"ha07"
-"http://www.oa"
-"cle"
-
-
-# This part has been generated with testing/libfuzzer/dictionary_generator.py
-# using libxml_xml_read_memory_fuzzer binary and XML 1.0 W3C Recommendation.
-"WG"
-"all"
-"code"
-"TC2."
-"text"
-"forbidden"
-"supported"
-"(UAX"
-"by"
-"syntax"
-"notations"
-"area"
-"SGML,"
-"/"
-"Content"
-"conditional"
-"follow"
-"Document"
-"find"
-"MUST"
-"with,"
-"removed"
-"based"
-"("
-"V.,"
-"outside"
-"should"
-"to"
-"only"
-"'('"
-"W3C."
-"8"
-"quotation"
-"local"
-"(E)."
-"do"
-"QUESTION"
-"FULL"
-"WIDTH"
-"string"
-"notation"
-"without"
-"':'"
-"between"
-"space,"
-"Value"
-"choice"
-"'INCLUDE'"
-"cannot"
-"JIS"
-"NO-BREAK"
-"E62"
-"ending"
-"(URI):"
-"(#PCDATA"
-"LAO"
-"resource"
-"embedded"
-"called"
-"'&#60;!ENTITY"
-"Conditional"
-"list"
-"Entity"
-"large"
-"(GI),"
-"contain"
-"small"
-"&MAY;"
-"->"
-"ASCII"
-"available"
-"abbreviated"
-"set"
-"3986\">IETF"
-"\"REC\">"
-"reference"
-"##"
-"etc."
-"DTD,"
-"direct"
-"module"
-"sign"
-"zero"
-"Version"
-"M."
-"are"
-"3C"
-"UTF-8,"
-"3F"
-"canonical"
-"&SGML;"
-"font"
-"incompatible"
-"B+,"
-"EMPTY>"
-"section"
-"ID,"
-"label"
-"state"
-"version"
-"enumerated"
-"apos"
-"above"
-"capital"
-"new"
-"(ASCII)"
-"PI"
-"'='"
-"public"
-"body"
-"C"
-"full"
-"escaping"
-"parent"
-"UAX"
-"error"
-"component"
-"here"
-"ranges"
-"MIDDLE"
-"objects"
-"address"
-"path"
-"Identifier"
-"UTF-16,"
-"change"
-"V2.1"
-"last"
-"2141\">IETF"
-"root"
-"ISO-10646-UCS-2"
-"equal"
-"against"
-"[A-Z]"
-"connection"
-"2781\">IETF"
-"attributes"
-"Attribute"
-"error,"
-"comment"
-"among"
-"named"
-"LINE"
-"point"
-"color"
-"character"
-"marked"
-"names"
-"FF"
-"table"
-"BCP"
-"DOT"
-"once"
-"use"
-"from"
-"stream"
-"entities"
-"MARK,"
-"P."
-"contains"
-"two"
-"'ANY'"
-"symbol"
-"few"
-"duplicate"
-"CDATA,"
-"call"
-"UCS-4,"
-"scope"
-"type"
-"empty"
-"more"
-"XML"
-"field"
-"XSLT"
-"Default"
-"Markup"
-"validity"
-"ZERO"
-"Space"
-"normalized"
-"child"
-"')*'"
-"%YN;\""
-"(MUST,"
-"must"
-"#IMPLIED>"
-"sample"
-"6F"
-"GREEK"
-"this"
-"Text"
-"expanded"
-"single"
-"value"
-"will"
-"(UCS)"
-"FEED"
-"paragraph"
-"values"
-"three"
-"many"
-"following"
-"closing"
-"property"
-"'}'"
-"F."
-"LOW"
-"control"
-"ASCII,"
-"2119\">IETF"
-"L."
-"links"
-"YN"
-"process"
-"attribute"
-"is"
-"in"
-"accept"
-"parse"
-"middle"
-"tag"
-"MIME"
-"allowed"
-"X-0208-1997."
-"UTF-7"
-"']'"
-"absolute"
-"information"
-"different"
-"end"
-"PI."
-"Notation"
-"quot"
-"generic"
-"unparsed"
-"charset"
-"namespace"
-"same"
-"(CDATA)"
-"write"
-"read"
-"ISO/IEC"
-"H"
-"units"
-"8879\">ISO"
-"document"
-"parameter"
-"start"
-"A"
-"product"
-"Resource"
-"description"
-"see"
-"may"
-"stop"
-"after"
-"'IGNORE'"
-"U+FEFF,"
-"HTML."
-"possible"
-"user"
-"characters"
-"such"
-"on"
-"data"
-"compatibility"
-"STACS"
-"a"
-"All"
-"I"
-"undefined"
-"rules"
-"expression"
-"markup"
-"author"
-"well"
-"-MSM"
-"element"
-"')'"
-")"
-"xml:lang"
-"y"
-"position"
-"the"
-"first"
-"left"
-"decl"
-"S."
-"MA,"
-"BB"
-"less"
-"<body>"
-"storage"
-"';'"
-"entity"
-"symbols"
-"10646\">ISO"
-"stored"
-"nbsp"
-"COLON,"
-"THAI"
-"(FAMILY"
-"R."
-"before"
-"HTML"
-"MIME),"
-"MIME)."
-"group"
-"trying"
-"No"
-"had"
-"except"
-"detected"
-"valid"
-"usage"
-"input"
-"(double-hyphen)"
-"has"
-"match"
-"(('X'"
-"identical"
-"..."
-"V2.5"
-"3023\">IETF"
-"combination"
-"format"
-"fragment"
-"URN"
-"URI"
-"symbol,"
-"SHOULD,"
-"declared"
-"logical"
-"not"
-"using"
-"bit"
-"NDATA"
-"like"
-"sequence,"
-"term"
-"name"
-"Encoding"
-"B,"
-"decimal"
-"B)"
-"JC)"
-"(#PCDATA)"
-"token"
-"10744\">ISO"
-"steps"
-"ENTITY)"
-"found"
-"8879:1986(E)."
-"|"
-"FE"
-"subset"
-"profile"
-"right"
-"(W3C)"
-"p"
-"bytes"
-"creation"
-"(('#FIXED'"
-"HH"
-"elements"
-"escape"
-"proper"
-"et"
-"FINAL"
-"out"
-"predefined"
-"provided"
-"declaration"
-"XML."
-"container"
-"network"
-"'"
-"space"
-"SPACE"
-"preserve"
-"SGML"
-"per"
-"content"
-"method"
-"does"
-"XML),"
-"occurs"
-"be"
-"HTTP"
-"8879:1986(E)"
-"10646:2000\">ISO"
-"B"
-"'{'"
-"RFC"
-"step"
-"base"
-"references"
-"output"
-"\"MUST"
-"permitted"
-"definition"
-"EDIT:"
-"language"
-"standalone"
-"column"
-"of"
-"could"
-"Tags"
-"mdash"
-"recognized"
-"times"
-"range"
-"due"
-"'#PCDATA'"
-"hexadecimal"
-"or"
-"'PUBLIC'"
-"N.B."
-"','"
-"A,"
-"encoding"
-"xml:space"
-"within"
-"STOP"
-"number"
-"one"
-"&MAY;,"
-"Internal"
-"ISO"
-"construct"
-"operator"
-"RETURN"
-"mark"
-"Empty"
-"IANA"
-"doesn't"
-"(#PCDATA)>"
-"long"
-"checked"
-"(C"
-"indicate"
-"IETF"
-"unknown"
-"there"
-"system"
-"wrapper"
-"HYPHEN-MINUS,"
-"needed"
-"2"
-"too"
-"literal"
-"white"
-"<!--"
-"was"
-"final"
-"function"
-"D."
-"T."
-"'?>'"
-"option"
-"form"
-"enough"
-"D21"
-"collapsed"
-"(XML)"
-"but"
-"selector"
-"ampersand,"
-"part"
-"scripts,"
-"DTD."
-"EBCDIC"
-"UTF-16LE,"
-"line"
-"DTD"
-"with"
-"than"
-"MAY"
-"relative"
-"Set"
-"target"
-"keyword"
-"default"
-"double"
-"SA,"
-"tree"
-"return,"
-"'['"
-"carriage"
-"computer"
-"to,"
-">"
-"similar"
-"declare"
-"result"
-"and"
-"files"
-"UTF-16BE,"
-"ISBN"
-"semicolon"
-"up"
-"defined"
-"parser"
-"CHARACTER"
-"E14"
-"an"
-"UTF-8."
-"as"
-"warning"
-"exist"
-"at"
-"file"
-"New"
-"need"
-"check"
-"('M'"
-"conversion"
-"angle"
-"no"
-"#IMPLIED\">"
-"-"
-"validating"
-"invalid"
-"A."
-"EUC,"
-"instance"
-"internal"
-"A7"
-"XHTML"
-"registered"
-"'|'"
-"node"
-"added"
-"multiple"
-"Name"
-"XML,"
-"quote"
-"preceding"
-"object"
-"AM"
-"W3C"
-"(WG)."
-"Element"
-"('L'"
-"class"
-"generated"
-"letter"
-"SARA"
-"inserted"
-"model"
-"structure"
-"'\\'"
-"building"
-"'NDATA'"
-"backward"
-"less-than"
-"for"
-"E11"
-"failure"
-"FFFE,"
-"required"
-"rule"
-"(EBNF)"
-"CARRIAGE"
-"bracket"
-"link"
-"%"
-"requires"
-"external"
-
diff --git a/chromium/testing/libfuzzer/fuzzers/dicts/icc.dict b/chromium/testing/libfuzzer/fuzzers/dicts/icc.dict
deleted file mode 100644
index f050ce22809..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/dicts/icc.dict
+++ /dev/null
@@ -1,115 +0,0 @@
-# Fuzzing dictionary for icc color profiles.
-
-magic="acsp"
-
-# Tag names and types
-"A2B0"
-"A2B1"
-"A2B2"
-"B2A0"
-"B2A1"
-"B2A2"
-"XYZ "
-"bTRC"
-"bXYZ"
-"bfd "
-"bkpt"
-"calt"
-"chad"
-"chrm"
-"ciis"
-"clot"
-"clro"
-"clrt"
-"cprt"
-"crdi"
-"curv"
-"data"
-"desc"
-"devs"
-"dict"
-"dmdd"
-"dmnd"
-"dscm"
-"dtim"
-"gTRC"
-"gXYZ"
-"gamt"
-"kTRC"
-"lumi"
-"mAB "
-"mBA "
-"meas"
-"meta"
-"mft1"
-"mft2"
-"mluc"
-"mmod"
-"mpet"
-"ncl2"
-"ncol"
-"para"
-"pre0"
-"pre1"
-"pre2"
-"ps2i"
-"ps2s"
-"psd0"
-"psd1"
-"psd2"
-"psd3"
-"pseq"
-"psid"
-"rTRC"
-"rXYZ"
-"rcs2"
-"resp"
-"rig0"
-"rig2"
-"scrd"
-"sf32"
-"sig "
-"targ"
-"tech"
-"text"
-"uf32"
-"ui08"
-"ui16"
-"ui32"
-"ui64"
-"vcgt"
-"view"
-"vued"
-"wtpt"
-
-# Color spaces
-"CMYK"
-"CMY "
-"GRAY"
-"Lab "
-"Lch "
-"Luv "
-"RGB "
-"XYZ "
-"YCbr"
-
-# Profile class
-"abst"
-"link"
-"mntr"
-"nmcl"
-"prtr"
-"scnr"
-"spac"
-
-# Platforms
-"ADBE"
-"APPL"
-"MSFT"
-
-# Profile creators or CMM names
-"argl"
-"appl"
-"adbe"
-"goog"
-"lcms"
diff --git a/chromium/testing/libfuzzer/fuzzers/dicts/javascript_parser_proto.dict b/chromium/testing/libfuzzer/fuzzers/dicts/javascript_parser_proto.dict
deleted file mode 100644
index 8cb0209694f..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/dicts/javascript_parser_proto.dict
+++ /dev/null
@@ -1,307 +0,0 @@
-# Copyright 2017 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-# Elementary building blocks:
-
-# Empty
-" "
-
-# Tokens
-"("
-")"
-"["
-"]"
-"{"
-"}"
-":"
-";"
-"."
-"..."
-"?"
-"++"
-"--"
-"=>"
-"!"
-"="
-"|="
-"^="
-"&="
-"<<="
-">>="
-">>>="
-"+="
-"-="
-"*="
-"/="
-"%="
-"**="
-","
-"||"
-"&&"
-"|"
-"^"
-"&"
-"<<"
-">>"
-">>>"
-"+"
-"-"
-"*"
-"/"
-"%"
-"**"
-"=="
-"!="
-"==="
-"!=="
-"<"
-">"
-"<="
-">="
-"!"
-"~"
-
-# Keywords, contextual keywords, literals, reserved words.
-"__proto__"
-"anonymous"
-"arguments"
-"as"
-"async"
-"await"
-"break"
-"case"
-"catch"
-"class"
-"const"
-"constructor"
-"continue"
-"debugger"
-"default"
-"delete"
-"do"
-"else"
-"enum"
-"eval"
-"export"
-"extends"
-"false"
-"finally"
-"for"
-"from"
-"function"
-"get"
-"if"
-"import"
-"in"
-"instanceof"
-"let"
-"name"
-"new"
-"null"
-"of"
-"prototype"
-"return"
-"sent"
-"set"
-"static"
-"super"
-"switch"
-"target"
-"this"
-"throw"
-"true"
-"try"
-"typeof"
-"undefined"
-"var"
-"void"
-"while"
-"with"
-
-# TODO(marja): Add names of known classes.
-
-# Separators
-"\n"
-"; "
-$0 "\n"
-$0 "; "
-
-$0 "," $1
-"(" $0 ")"
-
-# Identifiers
-"foo"
-"bar"
-"a"
-"b"
-"c"
-
-# Other literals
-"0"
-"0.0"
-
-# TODO(marja): Add strings and numbers! And quotes.
-
-# Other meaningful words from the spec
-"new.target"
-
-# More complicated building blocks
-
-# Block, object, or binding pattern
-"{" $0 "}"
-"{" $0 ": " $1 "}"
-
-# Array or array binding pattern
-"[" $0 "]"
-
-# Rest element or rest parameter
-"..."
-"..." $0
-
-# Variable declarations
-"let" $0 "=" $1 ";"
-"const " $0 "=" $1 ";"
-"var" $0 "=" $1 ";"
-
-# Return statements
-"return" $0
-"return" $0 ";"
-
-# If statements
-"if (" $0 ")" $1
-"if (" $0 ") {" $1 "}"
-"if (" $0 ") {" $1 "} else {" $2 "}"
-"if (" $0 ")" $1 "else" $2
-
-# Iteration statements
-"do" $0 "while (" $1 ");"
-"for (" $0 ")" $1
-"for (" $0 ") {" $1 " }"
-"for (" $0 "in" $1 ")" $2
-"for (" $0 "in" $1 ") {" $2 "}"
-"for (" $0 "of" $1 ")" $2
-"for (" $0 "of" $1 ") {" $2 "}"
-"for (" $0 ";" $1 ";" $2 ")" $3
-"for (" $0 ";" $1 ";" $2 ") {" $3 "}"
-"for await (" $0 ")" $1
-"for await (" $0 ") {" $1 " }"
-"for await (" $0 "in" $1 ")" $2
-"for await (" $0 "in" $1 ") {" $2 "}"
-"for await (" $0 "of" $1 ")" $2
-"for await (" $0 "of" $1 ") {" $2 "}"
-"for await (" $0 ";" $1 ";" $2 ")" $3
-"for await (" $0 ";" $1 ";" $2 ") {" $3 "}"
-"while (" $0 ")" $1
-"while (" $0 ") {" $1 "}"
-"continue"
-"continue;"
-"continue" $0
-"break"
-"break;"
-"break" $0
-
-# With statements
-"with (" $0 ")" $1
-"with (" $0 ") {" $1 "}"
-
-# Switch statements
-"switch (" $0 ")" $1
-"switch (" $0 ") {" $1 "}"
-"case" $0 ": " $1
-"case" $0 ": {" $1 "}"
-"default :" $0
-
-# Try-catch statements
-"try" $0 "catch (" $1 ")" $2
-"try {" $0 "} catch (" $1 ") {" $2 "}"
-"try" $0 "finally (" $1 ")" $2
-"try {" $0 "} finally (" $1 ") {" $2 "}"
-"try" $0 "catch (" $1 ")" $2 "finally" $3
-"try {" $0 "} catch (" $1 ") {" $2 "} finally {" $3 "}"
-
-# Functions and arrow functions
-"function" $0 "(" $1 ") {" $2 "}"
-"function" "(" $0 ") {" $1 "}"
-$0 "=>" $1
-$0 "=> {" $1 "}"
-"(" $0 ") => {" $1 "}"
-"(" $0 ") =>" $1
-
-# Strict functions and arrow functions
-"function" $0 "(" $1 ") { 'use strict';" $2 "}"
-"function" "(" $0 ") { 'use strict';" $1 "}"
-$0 "=> { 'use strict';" $1 "}"
-"(" $0 ") => { 'use strict'; " $1 "}"
-
-# Methods
-$0 "(" $1 ") {" $1 "}"
-"get" $0 "(" $1 ") {" $1 "}"
-"set" $0 "(" $1 ") {" $1 "}"
-"static" $0 "(" $1 ") {" $1 "}"
-"static get" $0 "(" $1 ") {" $1 "}"
-"static set" $0 "(" $1 ") {" $1 "}"
-
-# Generators
-"*" $0 "(" $1 ") {" $2 "}"
-"function *" $0 "(" $1 ") {" $2 "}"
-"function * (" $1 ") {" $2 "}"
-"yield" $0
-"yield *" $0
-
-# Strict generators
-"function *" $0 "(" $1 ") {'use strict'; " $2 "}"
-"function * (" $1 ") { 'use strict'; " $2 "}"
-
-# Classes
-"class" $0 "{" $1 "}"
-"class" $0 "extends" $1 "{" $2 "}"
-
-# Async functions, async methods, async arrow functions
-"async function" $0 "(" $1 ") {" $2 "}"
-"async function" "(" $0 ") {" $1 "}"
-"async" $0 "(" $1 ") {" $2 "}"
-"async" $0 "=>" $1
-"async" $0 "=> {" $1 "}"
-"async(" $0 ") => {" $1 "}"
-"async(" $0 ") =>" $1
-"await" $0
-
-# Strict async functions.
-"async function" $0 "(" $1 ") { 'use strict'; " $2 "}"
-"async function" "(" $0 ") { 'use strict'; " $1 "}"
-"async" $0 "(" $1 ") { 'use strict'; " $2 "}"
-"async" $0 "=> { 'use strict'; " $1 "}"
-"async(" $0 ") => { 'use strict';" $1 "}"
-
-# Call expressions
-$0 "[" $1 "]"
-$0 "(" $1 ")"
-
-# Template literals
-"`foo`"
-$0 "`foo`"
-# TODO(marja): add more
-
-# Strict directive
-"'use strict';"
-
-# Regexps
-"/foo/"
-# TODO(marja): add more
-
-# Conditional expression
-$0 "?" $1 ":" $2
-$0 "?" $1 ":" $2 ";"
-
-# Assignment expressions
-$0 "=" $1
-$0 "=" $1 ";"
-
-# Import / export (for modules)
-"import" $0 ";"
-"export" $0 ";"
-
-# Misc.
-"eval('');"
-
diff --git a/chromium/testing/libfuzzer/fuzzers/dicts/json.dict b/chromium/testing/libfuzzer/fuzzers/dicts/json.dict
deleted file mode 100644
index 18a83f4fa5f..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/dicts/json.dict
+++ /dev/null
@@ -1,33 +0,0 @@
-# Copyright 2016 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-"{"
-"}"
-"["
-"]"
-"\""
-"'"
-"\\"
-"//"
-":"
-","
-" "
-"\\n"
-"\\r"
-"/*"
-"*/"
-"true"
-"false"
-"null"
-"\\u"
-"\\b"
-"\\f"
-"\\t"
-"."
-"e"
-"e+"
-"e-"
-"E"
-"E+"
-"E-"
diff --git a/chromium/testing/libfuzzer/fuzzers/dicts/mhtml.dict b/chromium/testing/libfuzzer/fuzzers/dicts/mhtml.dict
deleted file mode 100644
index f3205f12901..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/dicts/mhtml.dict
+++ /dev/null
@@ -1,68 +0,0 @@
-# Copyright 2016 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-# This file contains several basic MHTML syntax elements based on
-# 1) rfc2557
-# 2) test files from chromium/third_party/WebKit/LayoutTests/mhtml
-# 3) suggestions from manual runs of libFuzzer
-
-line_ending_1="\x0D\x0A"
-line_ending_2="\x0D"
-line_ending_3="\x0A"
-backslash="\\"
-space=" "
-tab="\x08"
-open_paren="("
-close_paren=")"
-
-content_location1="Content-Location: CID: foo@bar.net"
-content_location2="Content-Location: http://www.ietf.cnri.reston.va.us/images/ietflogo.gif"
-content_location3="Content-Location: CID:foo@bar.net ; this header is disregarded"
-content_location4="Content-Location: CID:foo@bar.net"
-content_location5="Content-Location: CID:foo3@foo1@bar.net"
-
-content_type1_line1="Content-Type: multipart/related; boundary=\"boundary-example\";"
-content_type1_line2a="\x08type\"text/html\""
-content_type1_line2b="\x08type="text/html"
-content_type1_line2c="\x08type=\"text/html\"; start=\"<foo3@foo1@bar.net>\""
-content_type1_line2d="\x08type=\"text/html\"; start=\"<foo@bar.net>\""
-content_type2="Content-Type: text/html;charset=\"US-ASCII\""
-content_type3="Content-Type: text/html; charset=\"iso-8859-1\""
-content_type4="Content-Type: multipart/related;"
-content_type5="Content-Type: IMAGE/GIF"
-
-content_id1="Content-ID: <97116092511xyz@foo.bar.net>"
-content_id2="Content-ID: <foo@bar.net>"
-content_id3="Content-ID: <foo4@foo1@bar.net>"
-
-cid_uri_usage_1="<IMG SRC=\"cid:foo4@foo1@bar.net\">"
-cid_uri_usage_2="<IMG SRC=\"cid:foo@bar.net\">"
-
-boundary_prefix="--"
-boundary_1="--boundary-example"
-boundary_final1="--boundary-example--"
-boundary_3="\x08boundary=\"----=_NextPart_000_0000_87206557.D2C008B0\";"
-
-from="From: foo1@bar.net"
-to="To: foo2@bar.net"
-
-subject_1="Subject: A simple example"
-subject_2="Subject: =?iso-2022-jp?B?QSBzaW1wbGUgcGFnZQ==?="
-
-date_1="Date: Wed, May 11 2011 15:36:36 GMT-0700"
-
-mime_version="Mime-Version: 1.0"
-
-content_transfer_encoding1="Content-Transfer-Encoding: base64"
-content_transfer_encoding2="Content-Transfer-Encoding: quoted-printable"
-content_transfer_encoding3="Content-Transfer-Encoding: binary"
-content_transfer_encoding4="Content-Transfer-Encoding: 7bit"
-content_transfer_encoding5="Content-Transfer-Encoding: 8bit"
-
-libFuzzer_suggestion1="date"
-libFuzzer_suggestion2="Access-Control-Allow-Extern"
-libFuzzer_suggestion3="Link"
-libFuzzer_suggestion4="from"
-libFuzzer_suggestion5="boundary"
-libFuzzer_suggestion6="mime-version"
diff --git a/chromium/testing/libfuzzer/fuzzers/dicts/png.dict b/chromium/testing/libfuzzer/fuzzers/dicts/png.dict
deleted file mode 100644
index ea12d19e6ec..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/dicts/png.dict
+++ /dev/null
@@ -1,38 +0,0 @@
-#
-# AFL dictionary for PNG images
-# -----------------------------
-#
-# Just the basic, standard-originating sections; does not include vendor
-# extensions.
-#
-# Created by Michal Zalewski <lcamtuf@google.com>
-#
-
-header_png="\x89PNG\x0d\x0a\x1a\x0a"
-
-section_IDAT="IDAT"
-section_IEND="IEND"
-section_IHDR="IHDR"
-section_PLTE="PLTE"
-section_bKGD="bKGD"
-section_cHRM="cHRM"
-section_fRAc="fRAc"
-section_gAMA="gAMA"
-section_gIFg="gIFg"
-section_gIFt="gIFt"
-section_gIFx="gIFx"
-section_hIST="hIST"
-section_iCCP="iCCP"
-section_iTXt="iTXt"
-section_oFFs="oFFs"
-section_pCAL="pCAL"
-section_pHYs="pHYs"
-section_sBIT="sBIT"
-section_sCAL="sCAL"
-section_sPLT="sPLT"
-section_sRGB="sRGB"
-section_sTER="sTER"
-section_tEXt="tEXt"
-section_tIME="tIME"
-section_tRNS="tRNS"
-section_zTXt="zTXt"
diff --git a/chromium/testing/libfuzzer/fuzzers/dicts/prtime.dict b/chromium/testing/libfuzzer/fuzzers/dicts/prtime.dict
deleted file mode 100644
index 7b14a536cb6..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/dicts/prtime.dict
+++ /dev/null
@@ -1,62 +0,0 @@
-"0"
-"1"
-"2"
-"3"
-"4"
-"5"
-"6"
-"7"
-"8"
-"9"
-" "
-# <tab>
-"\x09"
-":"
-"."
-"/"
-"-"
-"+"
-";"
-"("
-")"
-"["
-"]"
-"T"
-"Z"
-"AM"
-"PM"
-"Mon"
-"Tue"
-"Wed"
-"Thu"
-"Fri"
-"Sat"
-"Sun"
-"Jan"
-"Feb"
-"Mar"
-"Apr"
-"May"
-"Jun"
-"Jul"
-"Aug"
-"Sep"
-"Oct"
-"Nov"
-"Dec"
-"AST"
-"BST"
-"CDT"
-"CST"
-"EDT"
-"EET"
-"EST"
-"GMT"
-"JST"
-"MDT"
-"MET"
-"MST"
-"NST"
-"PDT"
-"PST"
-"GMT"
diff --git a/chromium/testing/libfuzzer/fuzzers/dicts/regexp.dict b/chromium/testing/libfuzzer/fuzzers/dicts/regexp.dict
deleted file mode 100644
index f638a57102f..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/dicts/regexp.dict
+++ /dev/null
@@ -1,239 +0,0 @@
-#
-# AFL dictionary for JS regex
-# ---------------------------
-#
-# Contains various regular expressions.
-#
-# Created by Yang Guo <yangguo@chromium.org>
-#
-
-"?"
-"abc"
-"()"
-"[]"
-"abc|def"
-"abc|def|ghi"
-"^xxx$"
-"ab\\b\\d\\bcd"
-"\\w|\\d"
-"a*?"
-"abc+"
-"abc+?"
-"xyz?"
-"xyz??"
-"xyz{0,1}"
-"xyz{0,1}?"
-"xyz{93}"
-"xyz{1,32}"
-"xyz{1,32}?"
-"xyz{1,}"
-"xyz{1,}?"
-"a\\fb\\nc\\rd\\te\\vf"
-"a\\nb\\bc"
-"(?:foo)"
-"(?: foo )"
-"foo|(bar|baz)|quux"
-"foo(?=bar)baz"
-"foo(?!bar)baz"
-"foo(?<=bar)baz"
-"foo(?<!bar)baz"
-"()"
-"(?=)"
-"[]"
-"[x]"
-"[xyz]"
-"[a-zA-Z0-9]"
-"[-123]"
-"[^123]"
-"]"
-"}"
-"[a-b-c]"
-"[x\\dz]"
-"[\\d-z]"
-"[\\d-\\d]"
-"[z-\\d]"
-"\\cj\\cJ\\ci\\cI\\ck\\cK"
-"\\c!"
-"\\c_"
-"\\c~"
-"[\\c!]"
-"[\\c_]"
-"[\\c~]"
-"[\\ca]"
-"[\\cz]"
-"[\\cA]"
-"[\\cZ]"
-"[\\c1]"
-"\\[\\]\\{\\}\\(\\)\\%\\^\\#\\ "
-"[\\[\\]\\{\\}\\(\\)\\%\\^\\#\\ ]"
-"\\8"
-"\\9"
-"\\11"
-"\\11a"
-"\\011"
-"\\118"
-"\\111"
-"\\1111"
-"(x)(x)(x)\\1"
-"(x)(x)(x)\\2"
-"(x)(x)(x)\\3"
-"(x)(x)(x)\\4"
-"(x)(x)(x)\\1*"
-"(x)(x)(x)\\3*"
-"(x)(x)(x)\\4*"
-"(x)(x)(x)(x)(x)(x)(x)(x)(x)(x)\\10"
-"(x)(x)(x)(x)(x)(x)(x)(x)(x)(x)\\11"
-"(a)\\1"
-"(a\\1)"
-"(\\1a)"
-"(\\2)(\\1)"
-"(?=a){0,10}a"
-"(?=a){1,10}a"
-"(?=a){9,10}a"
-"(?!a)?a"
-"\\1(a)"
-"(?!(a))\\1"
-"(?!\\1(a\\1)\\1)\\1"
-"\\1\\2(a(?:\\1(b\\1\\2))\\2)\\1"
-"[\\0]"
-"[\\11]"
-"[\\11a]"
-"[\\011]"
-"[\\00011]"
-"[\\118]"
-"[\\111]"
-"[\\1111]"
-"\\x60"
-"\\x3z"
-"\\c"
-"\\u0034"
-"\\u003z"
-"foo[z]*"
-"\\u{12345}"
-"\\u{12345}\\u{23456}"
-"\\u{12345}{3}"
-"\\u{12345}*"
-"\\ud808\\udf45*"
-"[\\ud808\\udf45-\\ud809\\udccc]"
-"a"
-"a|b"
-"a\\n"
-"a$"
-"a\\b!"
-"a\\Bb"
-"a*?"
-"a?"
-"a??"
-"a{0,1}?"
-"a{1,2}?"
-"a+?"
-"(a)"
-"(a)\\1"
-"(\\1a)"
-"\\1(a)"
-"a\\s"
-"a\\S"
-"a\\D"
-"a\\w"
-"a\\W"
-"a."
-"a\\q"
-"a[a]"
-"a[^a]"
-"a[a-z]"
-"a(?:b)"
-"a(?=b)"
-"a(?!b)"
-"\\x60"
-"\\u0060"
-"\\cA"
-"\\q"
-"\\1112"
-"(a)\\1"
-"(?!a)?a\\1"
-"(?:(?=a))a\\1"
-"a{}"
-"a{,}"
-"a{"
-"a{z}"
-"a{12z}"
-"a{12,"
-"a{12,3b"
-"{}"
-"{,}"
-"{"
-"{z}"
-"{1z}"
-"{12,"
-"{12,3b"
-"a"
-"abc"
-"a[bc]d"
-"a|bc"
-"ab|c"
-"a||bc"
-"(?:ab)"
-"(?:ab|cde)"
-"(?:ab)|cde"
-"(ab)"
-"(ab|cde)"
-"(ab)\\1"
-"(ab|cde)\\1"
-"(?:ab)?"
-"(?:ab)+"
-"a?"
-"a+"
-"a??"
-"a*?"
-"a+?"
-"(?:a?)?"
-"(?:a+)?"
-"(?:a?)+"
-"(?:a*)+"
-"(?:a+)+"
-"(?:a?)*"
-"(?:a*)*"
-"(?:a+)*"
-"a{0}"
-"(?:a+){0,0}"
-"a*b"
-"a+b"
-"a*b|c"
-"a+b|c"
-"(?:a{5,1000000}){3,1000000}"
-"(?:ab){4,7}"
-"a\\bc"
-"a\\sc"
-"a\\Sc"
-"a(?=b)c"
-"a(?=bbb|bb)c"
-"a(?!bbb|bb)c"
-"\xe2\x81\xa3"
-"[\xe2\x81\xa3]"
-"\xed\xb0\x80"
-"\xed\xa0\x80"
-"(\xed\xb0\x80)\x01"
-"((\xed\xa0\x80))\x02"
-"\xf0\x9f\x92\xa9"
-"\x01"
-"\x0f"
-"[-\xf0\x9f\x92\xa9]+"
-"[\xf0\x9f\x92\xa9-\xf4\x8f\xbf\xbf]"
-"(?<=)"
-"(?<=a)"
-"(?<!)"
-"(?<!a)"
-"(?<a>)"
-"(?<a>.)"
-"(?<a>.)\\k<a>"
-"\\p{Script=Greek}"
-"\\P{sc=Greek}"
-"\\p{Script_Extensions=Greek}"
-"\\P{scx=Greek}"
-"\\p{General_Category=Decimal_Number}"
-"\\P{gc=Decimal_Number}"
-"\\p{gc=Nd}"
-"\\P{Decimal_Number}"
-"\\p{Nd}"
-"\\P{Any}"
-"\\p{Changes_When_NFKC_Casefolded}"
diff --git a/chromium/testing/libfuzzer/fuzzers/dicts/v8_wasm.dict b/chromium/testing/libfuzzer/fuzzers/dicts/v8_wasm.dict
deleted file mode 100644
index f86c76301c6..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/dicts/v8_wasm.dict
+++ /dev/null
@@ -1,2 +0,0 @@
-"name"
-
diff --git a/chromium/testing/libfuzzer/fuzzers/dicts/web_icon_sizes.dict b/chromium/testing/libfuzzer/fuzzers/dicts/web_icon_sizes.dict
deleted file mode 100644
index 3616c4f0969..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/dicts/web_icon_sizes.dict
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 2016 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-"x"
-"X"
-"0"
-"1"
-"2"
-"3"
-"4"
-"5"
-"6"
-"7"
-"8"
-"9"
-"any"
-"ANY"
-"\x00"
-"\x09"
-"\x0A"
-"\x0C"
-"\x0D"
diff --git a/chromium/testing/libfuzzer/fuzzers/dicts/webgl-glsl.dict b/chromium/testing/libfuzzer/fuzzers/dicts/webgl-glsl.dict
deleted file mode 100644
index 32002e9bbde..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/dicts/webgl-glsl.dict
+++ /dev/null
@@ -1,262 +0,0 @@
-# Tokens for WebGL 2.0 Shader Language.
-# TODO: Seperate tokens for vertex shaders into seperate file for use by
-# swiftshader_vertex_routine_fuzzer.
-
-# Preprocessor tokens
-"#"
-"#define"
-"#undef"
-"#if"
-"#ifdef"
-"#ifndef"
-"#else"
-"#elif"
-"#endif"
-"#error"
-"#pragma"
-"#extension"
-"#version"
-"#line"
-"defined"
-"#macros"
-"__LINE__"
-"__FILE__"
-"__VERSION__"
-"GL_ES"
-
- # Fragment shaders only
-"GL_FRAGMENT_PRECISION_HIGH"
-
-# Language tokens
-"("
-")"
-"+"
-"-"
-"~"
-"!"
-"*"
-"/"
-"%"
-"+"
-"-"
-"<<"
-">>"
-"<"
-">"
-"<="
-">="
-"=="
-"!="
-"+="
-"-="
-"*="
-"/="
-"%="
-"<<="
-">>="
-";"
-","
-"."
-"["
-"]"
-"++"
-"--"
-"&"
-"^"
-"|"
-"&&"
-"||"
-
-# Keywords
-" attribute "
-" const "
-" uniform "
-" varying "
-" break "
-" continue "
-" do "
-" for "
-" while "
-" if "
-" else "
-" in "
-" out "
-" inout "
-" float "
-" int "
-" void "
-" bool "
-" true "
-" false "
-" lowp "
-" mediump "
-" highp "
-" precision "
-" invariant "
-" discard "
-" return"
-
-# Types, include valid examples and partial ones (that are invalid on their own)
-" mat2("
-" mat2(1.0)"
-" mat2(1.0,2.0,3.0,4.0)"
-" mat3(vec2(1.0, 1.0),1.0,vec2(1.0, 1.0),1.0,vec2(1.0, 1.0),1.0)"
-" mat3(1.0)"
-" mat3("
-" mat4("
-" mat4(1.0)"
-" mat4(vec4(1.0),vec4(1.0,2.0,3.0,4.0),vec4(3.3),vec4(4.4))"
-"vec2"
-" vec2(1)"
-" vec3(1)"
-" vec3"
-" vec4(1)"
-" vec4"
-" ivec2(1) "
-" ivec2"
-" ivec3(1)"
-" ivec3"
-" ivec4(1)"
-" ivec4"
-" bvec2(true)"
-" bvec2"
-" bvec3(true)"
-" bvec3"
-" bvec4(true)"
-" bvec4"
-" sampler2D "
-" samplerCube "
-" struct "
-" sampler3D "
-" samplerCube "
-" sampler2DShadow "
-" sampler2DArray "
-" sampler2DArrayShadow "
-" sampler2DMS "
-" samplerCubeShadow "
-" isampler2D "
-" isampler3D "
-" isamplerCube "
-" isampler2DArray "
-" isampler2DMS "
-" usampler2D "
-" usampler3D "
-" usampler2DArray "
-" usampler2DMS "
-" usamplerCube "
-" image2D "
-" image3D "
-" imageCube "
-" image2DArray "
-" iimage2D "
-" iimage3D "
-" iimageCube "
-" iimage2DArray "
-" uimage2D "
-" uimage3D "
-" uimageCube "
-" uimage2DArray "
-" atomic_uint "
-
-# Builtin Variables
-"gl_Position"
-"gl_FragColor"
-"gl_FragData"
-"gl_FrontFacing"
-"gl_PointCoord"
-"gl_MaxDrawBuffers"
-"gl_MaxFragmentUniformVectors"
-"gl_MaxTextureImageUnits"
-"gl_MaxCombinedTextureImageUnits"
-"gl_MaxVertexTextureImageUnits"
-"gl_MaxVaryingVectors"
-"gl_MaxVertexUniformVectors"
-"gl_MaxVertexAttribs"
-"gl_FragCoord.x"
-"gl_FragCoord.y"
-"gl_FragCoord.z"
-"gl_FragData"
-"gl_FragDepth"
-"gl_InstanceID"
-"gl_NumWorkGroups"
-"gl_PointSize"
-"gl_VertexID"
-
-# misc.
-"void main(){"
-
-# Generated calls to builtin functions.
-" pow(1.0,1.0)"
-" fract(1.0)"
-" dFdx(1.0)"
-" step(1.0,1.0)"
-" min(1,1)"
-" min(1.0,1.0)"
-" dot(1.0,1.0)"
-" greaterThanEqual(uvec2(1,2),uvec2(1,2))"
-" asin(1.0)"
-" lessThanEqual(ivec2(1,-2),ivec2(1,-2))"
-" inversesqrt(1.0)"
-" length(1.0)"
-" acosh(1.0)"
-" roundEven(1.0)"
-" greaterThanEqual(ivec2(1,-2),ivec2(1,-2))"
-" greaterThan(uvec2(1,2),uvec2(1,2))"
-" radians(1.0)"
-" asinh(1.0)"
-" uintBitsToFloat(1)"
-" cos(1.0)"
-" ceil(1.0)"
-" equal(uvec2(1,2),uvec2(1,2))"
-" normalize(1.0)"
-" distance(1.0,1.0)"
-" abs(1)"
-" clamp(1.0,1.0,1.0)"
-" tan(1.0)"
-" smoothstep(1.0,1.0,1.0)"
-" isinf(1.0)"
-" not(bvec2(true,false))"
-" degrees(1.0)"
-" mix(1.0,1.0,true)"
-" max(1.0,1.0)"
-" lessThanEqual(uvec2(1,2),uvec2(1,2))"
-" round(1.0)"
-" atan(1.0,1.0)"
-" floatBitsToInt(1.0)"
-" abs(1.0)"
-" fwidth(1.0)"
-" lessThan(ivec2(1,-2),ivec2(1,-2))"
-" intBitsToFloat(1)"
-" mix(1.0,1.0,1.0)"
-" notEqual(uvec2(1,2),uvec2(1,2))"
-" floor(1.0)"
-" refract(1.0,1.0,1.0)"
-" equal(ivec2(1,-2),ivec2(1,-2))"
-" max(1,1)"
-" cosh(1.0)"
-" isnan(1.0)"
-" sign(1)"
-" mod(1.0,1.0)"
-" acos(1.0)"
-" sinh(1.0)"
-" greaterThan(ivec2(1,-2),ivec2(1,-2))"
-" exp2(1.0)"
-" notEqual(bvec2(true,false),bvec2(true,false))"
-" reflect(1.0,1.0)"
-" lessThan(uvec2(1,2),uvec2(1,2))"
-" sqrt(1.0)"
-" sign(1.0)"
-" clamp(1,1,1)"
-" sin(1.0)"
-" atan(1.0)"
-" tanh(1.0)"
-" dFdy(1.0)"
-" notEqual(ivec2(1,-2),ivec2(1,-2))"
-" trunc(1.0)"
-" log2(1.0)"
-" equal(bvec2(true,false),bvec2(true,false))"
-" atanh(1.0)"
-" exp(1.0)"
-" faceforward(1.0,1.0,1.0)"
-" floatBitsToUint(1.0)"
-" log(1.0)"
diff --git a/chromium/testing/libfuzzer/fuzzers/empty_fuzzer.cc b/chromium/testing/libfuzzer/fuzzers/empty_fuzzer.cc
deleted file mode 100644
index 228351812d3..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/empty_fuzzer.cc
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Empty fuzzer that doesn't do anything. Used as test and documentation.
-
-#include <stddef.h>
-#include <stdint.h>
-
-// Environment is optional.
-struct Environment {
- Environment() {
- // Initialize your environment.
- }
-};
-
-// Fuzzer entry point.
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
- // Initialize environment once.
- static Environment env;
- // Run your code on data.
- return 0;
-}
diff --git a/chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/1 b/chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/1
deleted file mode 100644
index fbbc34d02a5..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/1
+++ /dev/null
@@ -1 +0,0 @@
-badfeaturename
diff --git a/chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/10 b/chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/10
deleted file mode 100644
index e24e9938f6e..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/10
+++ /dev/null
@@ -1 +0,0 @@
-vibrate 'self' https://example.com/; vibrate 'self' https://example.net/
diff --git a/chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/11 b/chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/11
deleted file mode 100644
index 9dbfca656e5..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/11
+++ /dev/null
@@ -1 +0,0 @@
-vibrate 'self' https://example.org/
diff --git a/chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/12 b/chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/12
deleted file mode 100644
index 739ee648eb6..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/12
+++ /dev/null
@@ -1 +0,0 @@
-docwrite 'self' https://example.org/
diff --git a/chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/13 b/chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/13
deleted file mode 100644
index 8b124935dc2..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/13
+++ /dev/null
@@ -1 +0,0 @@
-vibrate 'self' https://example.net/; docwrite 'self'
diff --git a/chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/14 b/chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/14
deleted file mode 100644
index 20d73ea3a4c..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/14
+++ /dev/null
@@ -1 +0,0 @@
-vibrate *; docwrite *
diff --git a/chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/15 b/chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/15
deleted file mode 100644
index 3423647b2ae..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/15
+++ /dev/null
@@ -1 +0,0 @@
-vibrate; fullscreen; payment
diff --git a/chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/16 b/chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/16
deleted file mode 100644
index 933c321eaa5..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/16
+++ /dev/null
@@ -1 +0,0 @@
-vibrate 'src'
diff --git a/chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/2 b/chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/2
deleted file mode 100644
index 1d7a2af8c3d..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/2
+++ /dev/null
@@ -1 +0,0 @@
-badfeaturename 'self'
diff --git a/chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/3 b/chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/3
deleted file mode 100644
index f06841c490a..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/3
+++ /dev/null
@@ -1 +0,0 @@
-vibrate data://badorigin
diff --git a/chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/4 b/chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/4
deleted file mode 100644
index 9f8e9b69a33..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/4
+++ /dev/null
@@ -1 +0,0 @@
-1.0 \ No newline at end of file
diff --git a/chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/5 b/chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/5
deleted file mode 100644
index 4f477a9f9a6..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/5
+++ /dev/null
@@ -1 +0,0 @@
-vibrate 'self'
diff --git a/chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/6 b/chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/6
deleted file mode 100644
index 3f4c4617594..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/6
+++ /dev/null
@@ -1 +0,0 @@
-vibrate https://example.com/
diff --git a/chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/7 b/chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/7
deleted file mode 100644
index e02eab56634..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/7
+++ /dev/null
@@ -1 +0,0 @@
-docwrite 'none'
diff --git a/chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/8 b/chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/8
deleted file mode 100644
index 920f3a851f9..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/8
+++ /dev/null
@@ -1 +0,0 @@
-docwrite 'self'
diff --git a/chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/9 b/chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/9
deleted file mode 100644
index 33696f7cb37..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/feature_policy_corpus/9
+++ /dev/null
@@ -1 +0,0 @@
-vibrate *
diff --git a/chromium/testing/libfuzzer/fuzzers/flatbuffers_corpus/monsterdata_test.mon b/chromium/testing/libfuzzer/fuzzers/flatbuffers_corpus/monsterdata_test.mon
deleted file mode 100644
index 4c032bcfeae..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/flatbuffers_corpus/monsterdata_test.mon
+++ /dev/null
Binary files differ
diff --git a/chromium/testing/libfuzzer/fuzzers/flatbuffers_verifier_fuzzer.cc b/chromium/testing/libfuzzer/fuzzers/flatbuffers_verifier_fuzzer.cc
deleted file mode 100644
index 45fae7bfded..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/flatbuffers_verifier_fuzzer.cc
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include <stddef.h>
-#include <stdint.h>
-
-#include "third_party/flatbuffers/src/tests/monster_test_generated.h"
-
-// Entry point for LibFuzzer.
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
- flatbuffers::Verifier verifier(data, size);
- MyGame::Example::VerifyMonsterBuffer(verifier);
- return 0;
-}
-
diff --git a/chromium/testing/libfuzzer/fuzzers/generate_javascript_parser_proto.py b/chromium/testing/libfuzzer/fuzzers/generate_javascript_parser_proto.py
deleted file mode 100755
index a2bac4f550d..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/generate_javascript_parser_proto.py
+++ /dev/null
@@ -1,140 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright 2017 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-"""
-Script for generating .proto and a conversion .cc file for a templated library
-based JavaScript parser fuzzer.
-"""
-
-import sys
-
-def ParseWord(word_string):
- # Every part of the word is either a string surrounded by "" or a placeholder
- # $<int>.
-
- word_string = word_string.lstrip().rstrip()
-
- parts = []
- while len(word_string) > 0:
- if word_string[0] == '"':
- end_ix = 1 + word_string[1:].index('"')
- parts.append(word_string[1:end_ix])
- word_string = word_string[(end_ix + 1):]
- elif word_string[0] == '$':
- if ' ' in word_string:
- end_ix = word_string.index(' ')
- else:
- end_ix = len(word_string)
- parts.append(int(word_string[1:end_ix]))
- word_string = word_string[end_ix:]
- else:
- assert(False)
- word_string = word_string.lstrip()
- return parts
-
-def GenerateProtoContents(words):
- contents = ''
- for ix in range(len(words)):
- contents += ' token_value_' + str(ix) + ' = ' + str(ix) + ';\n'
- return contents
-
-def GenerateConversionContents(words):
- contents = ''
- ix = 0
- for word in words:
- contents += ' case ' + str(ix) + ':\n'
- max_part = -1
- first = True
- building_string = ''
- for part in word:
- if not first:
- building_string += ' + std::string(" ") + '
- if isinstance(part, str):
- building_string += 'std::string("' + part + '")'
- else:
- if (part > max_part):
- max_part = part
- building_string += ('token_to_string(token.inner_tokens(' + str(part) +
- '), depth)')
- first = False
- if max_part >= 0:
- contents += (' if (token.inner_tokens().size() < ' +
- str(max_part + 1) + ') return std::string("");\n')
- contents += ' return ' + building_string + ';\n'
- ix += 1
- return contents
-
-def ReadDictionary(filename):
- with open(filename) as input_file:
- lines = input_file.readlines()
- words = []
- for line in lines:
- if not line.startswith('#'):
- word = ParseWord(line)
- if len(word) > 0:
- words.append(word)
- return words
-
-def main(argv):
- output_proto_file = argv[1]
- output_cc_file = argv[2]
- input_dict_file = argv[3]
-
- words = ReadDictionary(input_dict_file)
-
- proto_header = ('// Generated by generate_javascript_parser_proto.py.\n'
- '\n'
- 'syntax = "proto2";\n'
- 'package javascript_parser_proto_fuzzer;\n'
- '\n'
- 'message Token {\n'
- ' enum Value {\n')
-
-
- proto_footer = (' }\n'
- ' required Value value = 1;\n'
- ' repeated Token inner_tokens = 2;\n'
- '}\n'
- '\n'
- 'message Source {\n'
- ' required bool is_module = 1;\n'
- ' repeated Token tokens = 2;\n'
- '}\n')
-
- proto_contents = proto_header + GenerateProtoContents(words) + proto_footer
-
- with open(output_proto_file, 'w') as f:
- f.write(proto_contents)
-
- conversion_header = (
- '// Generated by generate_javascript_parser_proto.py.\n'
- '\n'
- '#include "testing/libfuzzer/fuzzers/'
- 'javascript_parser_proto_to_string.h"\n'
- '\n'
- '// Bound calls to token_to_string to prevent memory usage from growing\n'
- '// too much.\n'
- 'const int kMaxRecursiveDepth = 9;\n'
- '\n'
- 'std::string token_to_string(\n'
- ' const javascript_parser_proto_fuzzer::Token& token, int depth)'
- ' {\n'
- ' if (++depth == kMaxRecursiveDepth) return std::string("");\n'
- ' switch(token.value()) {\n')
-
- conversion_footer = (' default: break;\n'
- ' }\n'
- ' return std::string("");\n'
- '}\n')
-
- conversion_contents = (conversion_header + GenerateConversionContents(words)
- + conversion_footer)
-
- with open(output_cc_file, 'w') as f:
- f.write(conversion_contents)
-
-if __name__ == "__main__":
- main(sys.argv)
diff --git a/chromium/testing/libfuzzer/fuzzers/gfx_png_image_fuzzer.cc b/chromium/testing/libfuzzer/fuzzers/gfx_png_image_fuzzer.cc
deleted file mode 100644
index ab1e9e674bd..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/gfx_png_image_fuzzer.cc
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include <stddef.h>
-#include <stdint.h>
-
-#include "base/logging.h"
-#include "ui/gfx/image/image.h"
-
-
-struct Environment {
- Environment() {
- // Disable noisy logging.
- logging::SetMinLogLevel(logging::LOG_FATAL);
- }
-};
-
-Environment* env = new Environment();
-
-
-// Entry point for LibFuzzer.
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
- gfx::Image image = gfx::Image::CreateFrom1xPNGBytes(data, size);
-
- if (image.IsEmpty())
- return 0;
-
- image.ToSkBitmap();
-
- return 0;
-}
diff --git a/chromium/testing/libfuzzer/fuzzers/hash_fuzzer.cc b/chromium/testing/libfuzzer/fuzzers/hash_fuzzer.cc
deleted file mode 100644
index eb84938ffb6..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/hash_fuzzer.cc
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include <stddef.h>
-#include <stdint.h>
-
-#include "base/hash.h"
-
-// Entry point for LibFuzzer.
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
- base::Hash(data, size);
- return 0;
-}
diff --git a/chromium/testing/libfuzzer/fuzzers/javascript_parser_proto_fuzzer.cc b/chromium/testing/libfuzzer/fuzzers/javascript_parser_proto_fuzzer.cc
deleted file mode 100644
index e38f88e752b..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/javascript_parser_proto_fuzzer.cc
+++ /dev/null
@@ -1,101 +0,0 @@
-// Copyright 2017 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include <stdlib.h>
-
-#include <iostream>
-
-#include "javascript_parser.pb.h" // from out/gen
-#include "testing/libfuzzer/fuzzers/javascript_parser_proto_to_string.h"
-#include "third_party/libprotobuf-mutator/src/src/libfuzzer/libfuzzer_macro.h"
-
-#include "v8/include/libplatform/libplatform.h"
-#include "v8/include/v8.h"
-
-// Silence logging from the protobuf library.
-protobuf_mutator::protobuf::LogSilencer log_silencer;
-
-v8::Isolate* isolate = nullptr;
-
-std::string protobuf_to_string(
- const javascript_parser_proto_fuzzer::Source& source_protobuf) {
- std::string source;
- for (const auto& token : source_protobuf.tokens()) {
- source += token_to_string(token, 0) + std::string(" ");
- }
- return source;
-}
-
-// Explicitly specify some attributes to avoid issues with the linker dead-
-// stripping the following function on macOS, as it is not called directly
-// by fuzz target. LibFuzzer runtime uses dlsym() to resolve that function.
-#if V8_OS_MACOSX
-__attribute__((used)) __attribute__((visibility("default")))
-#endif // V8_OS_MACOSX
-extern "C" int
-LLVMFuzzerInitialize(int* argc, char*** argv) {
- v8::V8::InitializeICUDefaultLocation((*argv)[0]);
- v8::V8::InitializeExternalStartupData((*argv)[0]);
- v8::V8::SetFlagsFromCommandLine(argc, *argv, true);
-
- // Intentionally leaked during fuzzing.
- v8::Platform* platform = v8::platform::NewDefaultPlatform().release();
- v8::V8::InitializePlatform(platform);
- v8::V8::Initialize();
-
- v8::Isolate::CreateParams create_params;
- create_params.array_buffer_allocator =
- v8::ArrayBuffer::Allocator::NewDefaultAllocator();
- isolate = v8::Isolate::New(create_params);
- return 0;
-}
-
-DEFINE_BINARY_PROTO_FUZZER(
- const javascript_parser_proto_fuzzer::Source& source_protobuf) {
- v8::Isolate::Scope isolate_scope(isolate);
- v8::HandleScope handle_scope(isolate);
- v8::Local<v8::Context> context = v8::Context::New(isolate);
- v8::Context::Scope context_scope(context);
-
- std::string source_string = protobuf_to_string(source_protobuf);
-
- if (getenv("LPM_DUMP_NATIVE_INPUT")) {
- std::cout << source_string << std::endl;
- std::cout << "module: " << source_protobuf.is_module() << std::endl;
- }
- v8::Local<v8::String> source_v8_string =
- v8::String::NewFromUtf8(isolate, source_string.c_str(),
- v8::NewStringType::kNormal)
- .ToLocalChecked();
-
- {
- v8::TryCatch try_catch(isolate);
-
- if (source_protobuf.is_module()) {
- v8::Local<v8::String> name =
- v8::String::NewFromUtf8(isolate, "module.js",
- v8::NewStringType::kNormal)
- .ToLocalChecked();
-
- v8::ScriptOrigin origin(
- name, v8::Local<v8::Integer>(), v8::Local<v8::Integer>(),
- v8::Local<v8::Boolean>(), v8::Local<v8::Integer>(),
- v8::Local<v8::Value>(), v8::Local<v8::Boolean>(),
- v8::Local<v8::Boolean>(), v8::True(isolate));
- v8::ScriptCompiler::Source source(source_v8_string, origin);
- v8::MaybeLocal<v8::Module> module =
- v8::ScriptCompiler::CompileModule(isolate, &source);
- // TODO(marja): Figure out a more elegant way to silence the warning.
- module.IsEmpty();
- } else {
- v8::MaybeLocal<v8::Script> script =
- v8::Script::Compile(context, source_v8_string);
- // TODO(marja): Figure out a more elegant way to silence the warning.
- script.IsEmpty();
- }
-
- // TODO(crbug.com/775796): run the code once we find a way to avoid endless
- // loops.
- }
-}
diff --git a/chromium/testing/libfuzzer/fuzzers/javascript_parser_proto_to_string.h b/chromium/testing/libfuzzer/fuzzers/javascript_parser_proto_to_string.h
deleted file mode 100644
index 285ed1a3341..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/javascript_parser_proto_to_string.h
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright 2017 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef TESTING_LIBFUZZER_FUZZERS_JAVASCRIPT_PARSER_PROTO_TO_STRING_H
-#define TESTING_LIBFUZZER_FUZZERS_JAVASCRIPT_PARSER_PROTO_TO_STRING_H
-
-#include "javascript_parser.pb.h" // from out/gen
-
-#include <string>
-
-std::string token_to_string(const javascript_parser_proto_fuzzer::Token& token,
- int depth);
-
-#endif // TESTING_LIBFUZZER_FUZZERS_JAVASCRIPT_PARSER_PROTO_TO_STRING_H
diff --git a/chromium/testing/libfuzzer/fuzzers/language_detection_fuzzer.cc b/chromium/testing/libfuzzer/fuzzers/language_detection_fuzzer.cc
deleted file mode 100644
index 1545f76aff9..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/language_detection_fuzzer.cc
+++ /dev/null
@@ -1,37 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include <stddef.h>
-#include <stdint.h>
-
-#include <string>
-
-#include "base/strings/string16.h"
-#include "base/strings/utf_string_conversions.h"
-#include "components/translate/core/language_detection/language_detection_util.h"
-
-// Entry point for LibFuzzer.
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
- if (size == 0) {
- return 0;
- }
- uint8_t ch = data[0];
- int lang_len = ch & 0xF;
- int html_lang_len = (ch >> 4) & 0xF;
- int text_len = static_cast<int>(size) - lang_len - html_lang_len;
- if ((text_len < 0) || (text_len % 2 != 0)) {
- return 0;
- }
- std::string lang(reinterpret_cast<const char*>(data), lang_len);
- std::string html_lang(reinterpret_cast<const char*>(data + lang_len),
- html_lang_len);
- base::string16 text(
- reinterpret_cast<const base::char16*>(data + lang_len + html_lang_len),
- text_len / 2);
- std::string cld_lang;
- bool is_cld_reliable;
- translate::DeterminePageLanguage(lang, html_lang, text, &cld_lang,
- &is_cld_reliable);
- return 0;
-}
diff --git a/chromium/testing/libfuzzer/fuzzers/libpng_read_fuzzer.cc b/chromium/testing/libfuzzer/fuzzers/libpng_read_fuzzer.cc
deleted file mode 100644
index 621e3f7f9c2..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/libpng_read_fuzzer.cc
+++ /dev/null
@@ -1,76 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include <stddef.h>
-#include <stdint.h>
-
-#include <vector>
-
-#include "base/bind.h"
-#include "base/callback_helpers.h"
-#define PNG_INTERNAL
-#include "third_party/libpng/png.h"
-
-void* limited_malloc(png_structp, png_alloc_size_t size) {
- // libpng may allocate large amounts of memory that the fuzzer reports as
- // an error. In order to silence these errors, make libpng fail when trying
- // to allocate a large amount.
- // This number is chosen to match the default png_user_chunk_malloc_max.
- if (size > 8000000)
- return nullptr;
-
- return malloc(size);
-}
-
-void default_free(png_structp, png_voidp ptr) {
- return free(ptr);
-}
-
-static const int kPngHeaderSize = 8;
-
-// Entry point for LibFuzzer.
-// Roughly follows the libpng book example:
-// http://www.libpng.org/pub/png/book/chapter13.html
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
- if (size < kPngHeaderSize) {
- return 0;
- }
-
- std::vector<unsigned char> v(data, data + size);
- if (png_sig_cmp(v.data(), 0, kPngHeaderSize)) {
- // not a PNG.
- return 0;
- }
-
- png_structp png_ptr = png_create_read_struct
- (PNG_LIBPNG_VER_STRING, nullptr, nullptr, nullptr);
- assert(png_ptr);
-
-#ifdef MEMORY_SANITIZER
- // To avoid OOM with MSan (crbug.com/648073). These values are recommended as
- // safe settings by https://github.com/glennrp/libpng/blob/libpng16/pngusr.dfa
- png_set_user_limits(png_ptr, 65535, 65535);
-#endif
-
- // Not all potential OOM are due to images with large widths and heights.
- // Use a custom allocator that fails for large allocations.
- png_set_mem_fn(png_ptr, nullptr, limited_malloc, default_free);
-
- png_set_crc_action(png_ptr, PNG_CRC_QUIET_USE, PNG_CRC_QUIET_USE);
-
- png_infop info_ptr = png_create_info_struct(png_ptr);
- assert(info_ptr);
-
- base::ScopedClosureRunner struct_deleter(base::Bind(
- &png_destroy_read_struct, &png_ptr, &info_ptr, nullptr));
-
- if (setjmp(png_jmpbuf(png_ptr))) {
- return 0;
- }
-
- png_set_progressive_read_fn(png_ptr, nullptr, nullptr, nullptr, nullptr);
- png_process_data(png_ptr, info_ptr, const_cast<uint8_t*>(data), size);
-
- return 0;
-}
diff --git a/chromium/testing/libfuzzer/fuzzers/libsrtp_fuzzer.cc b/chromium/testing/libfuzzer/fuzzers/libsrtp_fuzzer.cc
deleted file mode 100644
index e265386676e..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/libsrtp_fuzzer.cc
+++ /dev/null
@@ -1,196 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include <assert.h>
-#include <stddef.h>
-#include <stdint.h>
-
-#include <algorithm>
-#include <vector>
-
-#include "third_party/libsrtp/include/srtp.h"
-#include "third_party/libsrtp/include/srtp_priv.h"
-#include "third_party/libsrtp/test/rtp.h"
-
-// TODO(katrielc) Also test the authenticated path, which is what
-// WebRTC uses. This is nontrivial because you need to bypass the MAC
-// check. Two options: add a UNSAFE_FUZZER_MODE flag to libsrtp (or
-// the chromium fork of it), or compute the HMAC of whatever gibberish
-// the fuzzer produces and write it into the packet manually.
-
-namespace LibSrtpFuzzer {
-enum CryptoPolicy {
- NONE,
- LIKE_WEBRTC,
- LIKE_WEBRTC_SHORT_AUTH,
- LIKE_WEBRTC_WITHOUT_AUTH,
- AES_128_GCM,
- AES_256_GCM,
- NUMBER_OF_POLICIES,
-};
-}
-
-static size_t GetKeyLength(LibSrtpFuzzer::CryptoPolicy crypto_policy) {
- switch (crypto_policy) {
- case LibSrtpFuzzer::NUMBER_OF_POLICIES:
- case LibSrtpFuzzer::NONE:
- return 0;
- case LibSrtpFuzzer::LIKE_WEBRTC:
- case LibSrtpFuzzer::LIKE_WEBRTC_SHORT_AUTH:
- case LibSrtpFuzzer::LIKE_WEBRTC_WITHOUT_AUTH:
- return SRTP_AES_ICM_128_KEY_LEN_WSALT;
- case LibSrtpFuzzer::AES_128_GCM:
- return SRTP_AES_GCM_128_KEY_LEN_WSALT;
- case LibSrtpFuzzer::AES_256_GCM:
- return SRTP_AES_GCM_256_KEY_LEN_WSALT;
- }
-}
-
-struct Environment {
- srtp_policy_t GetCryptoPolicy(LibSrtpFuzzer::CryptoPolicy crypto_policy,
- const unsigned char* replacement_key,
- size_t key_length) {
- switch (crypto_policy) {
- case LibSrtpFuzzer::NUMBER_OF_POLICIES:
- case LibSrtpFuzzer::NONE:
- srtp_crypto_policy_set_null_cipher_null_auth(&policy.rtp);
- srtp_crypto_policy_set_null_cipher_null_auth(&policy.rtcp);
- break;
- case LibSrtpFuzzer::LIKE_WEBRTC:
- srtp_crypto_policy_set_aes_cm_128_hmac_sha1_80(&policy.rtp);
- srtp_crypto_policy_set_aes_cm_128_hmac_sha1_80(&policy.rtcp);
- break;
- case LibSrtpFuzzer::LIKE_WEBRTC_SHORT_AUTH:
- srtp_crypto_policy_set_aes_cm_128_hmac_sha1_32(&policy.rtp);
- srtp_crypto_policy_set_aes_cm_128_hmac_sha1_32(&policy.rtcp);
- break;
- case LibSrtpFuzzer::LIKE_WEBRTC_WITHOUT_AUTH:
- srtp_crypto_policy_set_aes_cm_128_null_auth(&policy.rtp);
- srtp_crypto_policy_set_aes_cm_128_null_auth(&policy.rtcp);
- break;
- case LibSrtpFuzzer::AES_128_GCM:
- // There was a security bug in the GCM mode in libsrtp 1.5.2.
- srtp_crypto_policy_set_aes_gcm_128_16_auth(&policy.rtp);
- srtp_crypto_policy_set_aes_gcm_128_16_auth(&policy.rtcp);
- break;
- case LibSrtpFuzzer::AES_256_GCM:
- // WebRTC uses AES-256-GCM by default if GCM ciphers are enabled.
- srtp_crypto_policy_set_aes_gcm_256_16_auth(&policy.rtp);
- srtp_crypto_policy_set_aes_gcm_256_16_auth(&policy.rtcp);
- break;
- }
-
- assert(static_cast<size_t>(policy.rtp.cipher_key_len) == key_length);
- assert(static_cast<size_t>(policy.rtcp.cipher_key_len) == key_length);
- memcpy(key, replacement_key, key_length);
- return policy;
- }
-
- Environment() {
- srtp_init();
-
- memset(&policy, 0, sizeof(policy));
- policy.allow_repeat_tx = 1;
- policy.ekt = nullptr;
- policy.key = key;
- policy.next = nullptr;
- policy.ssrc.type = ssrc_any_inbound;
- policy.ssrc.value = 0xdeadbeef;
- policy.window_size = 1024;
- }
-
- private:
- srtp_policy_t policy;
- unsigned char key[SRTP_MAX_KEY_LEN] = {0};
-
- static void srtp_crypto_policy_set_null_cipher_null_auth(
- srtp_crypto_policy_t* p) {
- p->cipher_type = SRTP_NULL_CIPHER;
- p->cipher_key_len = 0;
- p->auth_type = SRTP_NULL_AUTH;
- p->auth_key_len = 0;
- p->auth_tag_len = 0;
- p->sec_serv = sec_serv_none;
- }
-};
-
-size_t ReadLength(const uint8_t* data, size_t size) {
- // Read one byte of input and interpret it as a length to read from
- // data. Don't return more bytes than are available.
- size_t n = static_cast<size_t>(data[0]);
- return std::min(n, size - 1);
-}
-
-Environment* env = new Environment();
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
- // Read one byte and use it to choose a crypto policy.
- if (size <= 2 + SRTP_MAX_KEY_LEN)
- return 0;
- LibSrtpFuzzer::CryptoPolicy policy = static_cast<LibSrtpFuzzer::CryptoPolicy>(
- data[0] % LibSrtpFuzzer::NUMBER_OF_POLICIES);
- data += 1;
- size -= 1;
-
- // Read some more bytes to use as a key.
- size_t key_length = GetKeyLength(policy);
- srtp_policy_t srtp_policy = env->GetCryptoPolicy(policy, data, key_length);
- data += SRTP_MAX_KEY_LEN;
- size -= SRTP_MAX_KEY_LEN;
-
- // Read one byte and use as number of encrypted header extensions.
- uint8_t num_encrypted_headers = data[0];
- data += 1;
- size -= 1;
- if (num_encrypted_headers > 0) {
- // Use next bytes as extension ids.
- if (size <= num_encrypted_headers)
- return 0;
- srtp_policy.enc_xtn_hdr_count = static_cast<int>(num_encrypted_headers);
- srtp_policy.enc_xtn_hdr =
- static_cast<int*>(malloc(srtp_policy.enc_xtn_hdr_count * sizeof(int)));
- assert(srtp_policy.enc_xtn_hdr);
- for (int i = 0; i < srtp_policy.enc_xtn_hdr_count; ++i) {
- srtp_policy.enc_xtn_hdr[i] = static_cast<int>(data[i]);
- }
- data += srtp_policy.enc_xtn_hdr_count;
- size -= srtp_policy.enc_xtn_hdr_count;
- }
-
- srtp_t session;
- srtp_err_status_t error = srtp_create(&session, &srtp_policy);
- free(srtp_policy.enc_xtn_hdr);
- if (error != srtp_err_status_ok) {
- assert(false);
- return 0;
- }
-
- // Read one byte as a packet length N, then feed the next N bytes
- // into srtp_unprotect. Keep going until we run out of data.
- size_t packet_size;
- while (size > 0 && (packet_size = ReadLength(data, size)) > 0) {
- // One byte was used by ReadLength.
- data++;
- size--;
-
- size_t header_size = std::min(sizeof(srtp_hdr_t), packet_size);
- size_t body_size = packet_size - header_size;
-
- // We deliberately do not initialise this struct. MSAN will catch
- // usage of the uninitialised memory.
- rtp_msg_t message;
- memcpy(&message.header, data, header_size);
- memcpy(&message.body, data + header_size, body_size);
-
- int out_len = static_cast<int>(packet_size);
- srtp_unprotect(session, &message, &out_len);
-
- // |packet_size| bytes were used above.
- data += packet_size;
- size -= packet_size;
- }
-
- srtp_dealloc(session);
- return 0;
-}
diff --git a/chromium/testing/libfuzzer/fuzzers/libxml_xml_read_memory_fuzzer.cc b/chromium/testing/libfuzzer/fuzzers/libxml_xml_read_memory_fuzzer.cc
deleted file mode 100644
index b90fbb5195c..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/libxml_xml_read_memory_fuzzer.cc
+++ /dev/null
@@ -1,51 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include <cassert>
-#include <cstddef>
-#include <cstdint>
-
-#include <functional>
-#include <limits>
-#include <string>
-
-#include "libxml/parser.h"
-#include "libxml/xmlsave.h"
-
-void ignore (void* ctx, const char* msg, ...) {
- // Error handler to avoid spam of error messages from libxml parser.
-}
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
- xmlSetGenericErrorFunc(NULL, &ignore);
-
- // Test default empty options value and one random combination of flags.
- const std::string data_string(reinterpret_cast<const char*>(data), size);
- const std::size_t data_hash = std::hash<std::string>()(data_string);
- const int max_option_value = std::numeric_limits<int>::max();
- // Disable XML_PARSE_HUGE to avoid stack overflow. http://crbug.com/738947.
- // Disable XML_PARSE_NOENT, XML_PARSE_DTD[LOAD|ATTR|VALID] to avoid timeout
- // loading external entity from stdin. http://crbug.com/755142.
- const int random_option = data_hash & max_option_value & ~XML_PARSE_NOENT &
- ~XML_PARSE_DTDLOAD & ~XML_PARSE_DTDATTR &
- ~XML_PARSE_DTDVALID & ~XML_PARSE_HUGE;
- const int options[] = {0, random_option};
-
- for (const auto option_value : options) {
- // Intentionally pass raw data as the API does not require trailing \0.
- if (auto doc = xmlReadMemory(reinterpret_cast<const char*>(data), size,
- "noname.xml", NULL, option_value)) {
- auto buffer = xmlBufferCreate();
- assert(buffer);
-
- auto context = xmlSaveToBuffer(buffer, NULL, 0);
- xmlSaveDoc(context, doc);
- xmlSaveClose(context);
- xmlFreeDoc(doc);
- xmlBufferFree(buffer);
- }
- }
-
- return 0;
-}
diff --git a/chromium/testing/libfuzzer/fuzzers/mach/BUILD.gn b/chromium/testing/libfuzzer/fuzzers/mach/BUILD.gn
new file mode 100644
index 00000000000..238cf11539a
--- /dev/null
+++ b/chromium/testing/libfuzzer/fuzzers/mach/BUILD.gn
@@ -0,0 +1,24 @@
+# Copyright 2019 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//third_party/protobuf/proto_library.gni")
+
+proto_library("proto") {
+ sources = [
+ "mach_message.proto",
+ ]
+}
+
+source_set("converter") {
+ sources = [
+ "mach_message_converter.cc",
+ "mach_message_converter.h",
+ ]
+ public_deps = [
+ ":proto",
+ ]
+ deps = [
+ "//base",
+ ]
+}
diff --git a/chromium/testing/libfuzzer/fuzzers/prtime_fuzzer.cc b/chromium/testing/libfuzzer/fuzzers/prtime_fuzzer.cc
deleted file mode 100644
index c8aef215902..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/prtime_fuzzer.cc
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include <stddef.h>
-#include <stdint.h>
-
-#include <string>
-
-#include "base/third_party/nspr/prtime.h"
-
-PRTime parsed_time;
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
- if (size < 1)
- return 0;
-
- const uint8_t selector = data[0];
-
- // Using std::string instead of a (potentially faster) fixed buffer to catch
- // accesses beyond the end of the string.
- std::string str(reinterpret_cast<const char*>(data+1), size - 1);
- PR_ParseTimeString(str.c_str(), selector & 1, &parsed_time);
-
- return 0;
-}
diff --git a/chromium/testing/libfuzzer/fuzzers/sha1_fuzzer.cc b/chromium/testing/libfuzzer/fuzzers/sha1_fuzzer.cc
deleted file mode 100644
index 26224331af6..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/sha1_fuzzer.cc
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include <stddef.h>
-#include <stdint.h>
-
-#include "base/sha1.h"
-
-// Entry point for LibFuzzer.
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
- unsigned char sha1[base::kSHA1Length] = {};
- base::SHA1HashBytes(data, size, sha1);
- return 0;
-}
diff --git a/chromium/testing/libfuzzer/fuzzers/skia_image_filter_proto_fuzzer.cc b/chromium/testing/libfuzzer/fuzzers/skia_image_filter_proto_fuzzer.cc
deleted file mode 100644
index 62e10c08fbb..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/skia_image_filter_proto_fuzzer.cc
+++ /dev/null
@@ -1,71 +0,0 @@
-// Copyright 2018 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Takes an Input protobuf message from libprotobuf-mutator, converts it to an
-// actual skia image filter and then applies it to a canvas for the purpose of
-// fuzzing skia. This should uncover bugs that could be used by a compromised
-// renderer to exploit the browser process.
-
-#include <stdlib.h>
-
-#include <iostream>
-#include <string>
-
-#include "testing/libfuzzer/proto/skia_image_filter_proto_converter.h"
-
-#include "base/process/memory.h"
-#include "base/test/test_discardable_memory_allocator.h"
-#include "third_party/libprotobuf-mutator/src/src/libfuzzer/libfuzzer_macro.h"
-#include "third_party/skia/include/core/SkBitmap.h"
-#include "third_party/skia/include/core/SkCanvas.h"
-#include "third_party/skia/include/core/SkImageFilter.h"
-
-protobuf_mutator::protobuf::LogSilencer log_silencer;
-
-using skia_image_filter_proto_converter::Input;
-using skia_image_filter_proto_converter::Converter;
-
-static const int kBitmapSize = 24;
-
-struct Environment {
- base::TestDiscardableMemoryAllocator* discardable_memory_allocator;
- Environment() {
- base::EnableTerminationOnOutOfMemory();
- discardable_memory_allocator = new base::TestDiscardableMemoryAllocator();
- base::DiscardableMemoryAllocator::SetInstance(discardable_memory_allocator);
- }
-};
-
-DEFINE_PROTO_FUZZER(const Input& input) {
- static Environment environment = Environment();
- ALLOW_UNUSED_LOCAL(environment);
-
- static Converter converter = Converter();
- std::string ipc_filter_message = converter.Convert(input);
-
- // Allow the flattened skia filter to be retrieved easily.
- if (getenv("LPM_DUMP_NATIVE_INPUT")) {
- // Don't write a newline since it will make the output invalid (so that it
- // cannot be fed to filter_fuzz_stub) Flush instead.
- std::cout << ipc_filter_message << std::flush;
- }
-
- sk_sp<SkImageFilter> flattenable = SkImageFilter::Deserialize(
- ipc_filter_message.c_str(), ipc_filter_message.size());
-
- if (!flattenable)
- return;
-
- SkBitmap bitmap;
- bitmap.allocN32Pixels(kBitmapSize, kBitmapSize);
- SkCanvas canvas(bitmap);
- canvas.clear(0x00000000);
- SkPaint paint;
- paint.setImageFilter(flattenable);
- canvas.save();
- canvas.clipRect(SkRect::MakeXYWH(0, 0, SkIntToScalar(kBitmapSize),
- SkIntToScalar(kBitmapSize)));
- canvas.drawBitmap(bitmap, 0, 0, &paint);
- canvas.restore();
-}
diff --git a/chromium/testing/libfuzzer/fuzzers/skia_path_common.cc b/chromium/testing/libfuzzer/fuzzers/skia_path_common.cc
deleted file mode 100644
index 0c1c6024e73..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/skia_path_common.cc
+++ /dev/null
@@ -1,70 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "testing/libfuzzer/fuzzers/skia_path_common.h"
-
-#include "third_party/skia/include/core/SkPath.h"
-
-// This is needed because SkPath::readFromMemory does not seem to be able to
-// be able to handle arbitrary input.
-void BuildPath(const uint8_t** data,
- size_t* size,
- SkPath* path,
- int last_verb) {
- uint8_t operation;
- SkScalar a, b, c, d, e, f;
- while (read<uint8_t>(data, size, &operation)) {
- switch (operation % (last_verb + 1)) {
- case SkPath::Verb::kMove_Verb:
- if (!read<SkScalar>(data, size, &a) || !read<SkScalar>(data, size, &b))
- return;
- path->moveTo(a, b);
- break;
-
- case SkPath::Verb::kLine_Verb:
- if (!read<SkScalar>(data, size, &a) || !read<SkScalar>(data, size, &b))
- return;
- path->lineTo(a, b);
- break;
-
- case SkPath::Verb::kQuad_Verb:
- if (!read<SkScalar>(data, size, &a) ||
- !read<SkScalar>(data, size, &b) ||
- !read<SkScalar>(data, size, &c) ||
- !read<SkScalar>(data, size, &d))
- return;
- path->quadTo(a, b, c, d);
- break;
-
- case SkPath::Verb::kConic_Verb:
- if (!read<SkScalar>(data, size, &a) ||
- !read<SkScalar>(data, size, &b) ||
- !read<SkScalar>(data, size, &c) ||
- !read<SkScalar>(data, size, &d) ||
- !read<SkScalar>(data, size, &e))
- return;
- path->conicTo(a, b, c, d, e);
- break;
-
- case SkPath::Verb::kCubic_Verb:
- if (!read<SkScalar>(data, size, &a) ||
- !read<SkScalar>(data, size, &b) ||
- !read<SkScalar>(data, size, &c) ||
- !read<SkScalar>(data, size, &d) ||
- !read<SkScalar>(data, size, &e) ||
- !read<SkScalar>(data, size, &f))
- return;
- path->cubicTo(a, b, c, d, e, f);
- break;
-
- case SkPath::Verb::kClose_Verb:
- path->close();
- break;
-
- case SkPath::Verb::kDone_Verb:
- // In this case, simply exit.
- return;
- }
- }
-}
diff --git a/chromium/testing/libfuzzer/fuzzers/skia_path_common.h b/chromium/testing/libfuzzer/fuzzers/skia_path_common.h
deleted file mode 100644
index ddfab8361f7..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/skia_path_common.h
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef TESTING_LIBFUZZER_FUZZERS_SKIA_PATH_COMMON_H_
-#define TESTING_LIBFUZZER_FUZZERS_SKIA_PATH_COMMON_H_
-
-#include "third_party/skia/include/core/SkPath.h"
-
-template <typename T>
-static bool read(const uint8_t** data, size_t* size, T* value) {
- if (*size < sizeof(T))
- return false;
-
- *value = *reinterpret_cast<const T*>(*data);
- *data += sizeof(T);
- *size -= sizeof(T);
- return true;
-}
-
-void BuildPath(const uint8_t** data,
- size_t* size,
- SkPath* path,
- int last_verb);
-
-#endif // TESTING_LIBFUZZER_FUZZERS_SKIA_PATH_COMMON_H_
diff --git a/chromium/testing/libfuzzer/fuzzers/skia_path_fuzzer.cc b/chromium/testing/libfuzzer/fuzzers/skia_path_fuzzer.cc
deleted file mode 100644
index 5b8e6c7b824..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/skia_path_fuzzer.cc
+++ /dev/null
@@ -1,67 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include <stddef.h>
-#include <stdint.h>
-
-#include "testing/libfuzzer/fuzzers/skia_path_common.h"
-#include "third_party/skia/include/core/SkCanvas.h"
-#include "third_party/skia/include/core/SkPaint.h"
-#include "third_party/skia/include/core/SkPath.h"
-#include "third_party/skia/include/core/SkSurface.h"
-
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
- uint8_t w, h, anti_alias;
- if (!read<uint8_t>(&data, &size, &w))
- return 0;
- if (!read<uint8_t>(&data, &size, &h))
- return 0;
- if (!read<uint8_t>(&data, &size, &anti_alias))
- return 0;
-
- SkScalar a, b, c, d;
- if (!read<SkScalar>(&data, &size, &a))
- return 0;
- if (!read<SkScalar>(&data, &size, &b))
- return 0;
- if (!read<SkScalar>(&data, &size, &c))
- return 0;
- if (!read<SkScalar>(&data, &size, &d))
- return 0;
-
- // In this case, we specifically don't want to include kDone_Verb.
- SkPath path;
- BuildPath(&data, &size, &path, SkPath::Verb::kClose_Verb);
-
- // Try a few potentially interesting things with our path.
- path.contains(a, b);
- path.conservativelyContainsRect(SkRect::MakeLTRB(a, b, c, d));
-
- SkPaint paint_fill;
- paint_fill.setStyle(SkPaint::Style::kFill_Style);
- paint_fill.setAntiAlias(anti_alias & 1);
-
- SkPaint paint_stroke;
- paint_stroke.setStyle(SkPaint::Style::kStroke_Style);
- paint_stroke.setStrokeWidth(1);
- paint_stroke.setAntiAlias(anti_alias & 1);
-
- SkPaint paint_stroke_and_fill;
- paint_stroke_and_fill.setStyle(SkPaint::Style::kStrokeAndFill_Style);
- paint_stroke_and_fill.setStrokeWidth(1);
- paint_stroke_and_fill.setAntiAlias(anti_alias & 1);
-
- SkPath dst_path;
- paint_stroke.getFillPath(path, &dst_path, nullptr);
-
- // Width and height should never be 0.
- auto surface(SkSurface::MakeRasterN32Premul(w ? w : 1, h ? h : 1));
-
- surface->getCanvas()->drawPath(path, paint_fill);
- surface->getCanvas()->drawPath(path, paint_stroke);
- surface->getCanvas()->drawPath(path, paint_stroke_and_fill);
-
- return 0;
-}
diff --git a/chromium/testing/libfuzzer/fuzzers/skia_pathop_fuzzer.cc b/chromium/testing/libfuzzer/fuzzers/skia_pathop_fuzzer.cc
deleted file mode 100644
index bd43bf282da..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/skia_pathop_fuzzer.cc
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include <stddef.h>
-#include <stdint.h>
-
-#include "base/logging.h"
-#include "testing/libfuzzer/fuzzers/skia_path_common.h"
-#include "third_party/skia/include/core/SkPath.h"
-#include "third_party/skia/include/pathops/SkPathOps.h"
-
-struct Environment {
- Environment() {
- // Disable noisy logging as per "libFuzzer in Chrome" documentation:
- // testing/libfuzzer/getting_started.md#Disable-noisy-error-message-logging.
- logging::SetMinLogLevel(logging::LOG_FATAL);
- }
-};
-
-Environment* env = new Environment();
-
-const int kLastOp = SkPathOp::kReverseDifference_SkPathOp;
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
- SkOpBuilder builder;
- while (size > 0) {
- SkPath path;
- uint8_t op;
- if (!read<uint8_t>(&data, &size, &op))
- break;
-
- BuildPath(&data, &size, &path, SkPath::Verb::kDone_Verb);
- builder.add(path, static_cast<SkPathOp>(op % (kLastOp + 1)));
- }
-
- SkPath result;
- builder.resolve(&result);
- return 0;
-}
diff --git a/chromium/testing/libfuzzer/fuzzers/snappy_compress_fuzzer.cc b/chromium/testing/libfuzzer/fuzzers/snappy_compress_fuzzer.cc
deleted file mode 100644
index ad1ca9747f2..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/snappy_compress_fuzzer.cc
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright 2018 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "base/logging.h"
-#include "third_party/snappy/src/snappy.h"
-
-// Entry point for LibFuzzer.
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
- const char* uncompressed = reinterpret_cast<const char*>(data);
- std::string compressed;
- snappy::Compress(uncompressed, size, &compressed);
- CHECK(snappy::IsValidCompressedBuffer(compressed.data(), compressed.size()));
-
- std::string uncompressed_after_compress;
- CHECK(snappy::Uncompress(compressed.data(), compressed.size(),
- &uncompressed_after_compress));
- CHECK_EQ(uncompressed_after_compress, std::string(uncompressed, size));
-
- return 0;
-}
diff --git a/chromium/testing/libfuzzer/fuzzers/snappy_uncompress_fuzzer.cc b/chromium/testing/libfuzzer/fuzzers/snappy_uncompress_fuzzer.cc
deleted file mode 100644
index 3bb9b55d876..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/snappy_uncompress_fuzzer.cc
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include <stddef.h>
-#include <stdint.h>
-
-#include "third_party/snappy/src/snappy-sinksource.h"
-#include "third_party/snappy/src/snappy.h"
-
-// Entry point for LibFuzzer.
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
- snappy::ByteArraySource src(reinterpret_cast<const char*>(data), size);
- uint32_t len;
- // Note: src is invalid after GetUncompressedLength call.
- if (!snappy::GetUncompressedLength(&src, &len) || (len > 1E6)) {
- // We have to bail out, to avoid self-crafted decompression bombs.
- return 0;
- }
-
- std::string uncompressed_str;
- snappy::Uncompress(reinterpret_cast<const char*>(data), size,
- &uncompressed_str);
- return 0;
-}
diff --git a/chromium/testing/libfuzzer/fuzzers/template_url_parser_fuzzer.cc b/chromium/testing/libfuzzer/fuzzers/template_url_parser_fuzzer.cc
deleted file mode 100644
index 64e91223dd7..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/template_url_parser_fuzzer.cc
+++ /dev/null
@@ -1,70 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include <stddef.h>
-#include <stdint.h>
-
-#include <random>
-#include <string>
-
-#include "libxml/parser.h"
-
-#include "base/at_exit.h"
-#include "base/command_line.h"
-#include "base/i18n/icu_util.h"
-#include "components/search_engines/search_terms_data.h"
-#include "components/search_engines/template_url.h"
-#include "components/search_engines/template_url_parser.h"
-
-class PseudoRandomFilter : public TemplateURLParser::ParameterFilter {
- public:
- explicit PseudoRandomFilter(uint32_t seed) : generator_(seed), pool_(0, 1) {}
- ~PseudoRandomFilter() override = default;
-
- bool KeepParameter(const std::string&, const std::string&) override {
- // Return true 254/255 times, ie: as if pool_ only returned uint8_t.
- return pool_(generator_) % (UINT8_MAX + 1);
- }
-
- private:
- std::mt19937 generator_;
- // Use a uint16_t here instead of uint8_t because uniform_int_distribution
- // does not support 8 bit types on Windows.
- std::uniform_int_distribution<uint16_t> pool_;
-};
-
-struct FuzzerFixedParams {
- uint32_t seed_;
-};
-
-base::AtExitManager at_exit_manager; // used by ICU integration
-
-extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv) {
- CHECK(base::i18n::InitializeICU());
- CHECK(base::CommandLine::Init(*argc, *argv));
- return 0;
-}
-
-void ignore(void* ctx, const char* msg, ...) {
- // Error handler to avoid error message spam from libxml parser.
-}
-
-class Env {
- public:
- Env() { xmlSetGenericErrorFunc(NULL, &ignore); }
-};
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
- static Env env;
- if (size < sizeof(FuzzerFixedParams)) {
- return 0;
- }
- const FuzzerFixedParams* params =
- reinterpret_cast<const FuzzerFixedParams*>(data);
- size -= sizeof(FuzzerFixedParams);
- const char* char_data = reinterpret_cast<const char*>(params + 1);
- PseudoRandomFilter filter(params->seed_);
- TemplateURLParser::Parse(SearchTermsData(), char_data, size, &filter);
- return 0;
-}
diff --git a/chromium/testing/libfuzzer/fuzzers/url.proto b/chromium/testing/libfuzzer/fuzzers/url.proto
deleted file mode 100644
index 9148a0ddc2a..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/url.proto
+++ /dev/null
@@ -1,94 +0,0 @@
-// Copyright 2017 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// This file contains the definition of the Url protobuf used in the
-// url_parse_proto_fuzzer that is meant to serve as an example for future
-// Chromium fuzzers that use libprotobuf-mutator.
-// We will consider the format of a URL for this fuzzer, to be
-// [scheme:][//[user[:password]@]host[:port]][/path][?query][#value]
-// There may be some URLs Chromium treats as valid that this syntax does not
-// capture. However, we will ignore them for the sake of simplicity.
-// It is recommended to read this file in conjunction with
-// convert_protobuf_to_string() in url_parse_proto_fuzzer.cc as logic in this
-// function is sometimes used to ensure that the Url Protocol Buffer obeys the
-// syntax we have defined for URLs. Though reading it is completely unecessary
-// for understand this fuzzer, we have roughly followed RFC 3986
-// (https://tools.ietf.org/html/rfc3986) which defines the syntax of URIs (which
-// URLs are a subset of).
-
-syntax = "proto2";
-
-package url_parse_proto_fuzzer;
-
-// Here we define the format for a Url Protocol Buffer. This will be passed to
-// our fuzzer function.
-message Url {
- // If there is a scheme, then it must be followed by a colon. A scheme is in
- // practice not required in a URL. Therefore, we will define the scheme as
- // optional but ensure it is followed by a colon in our conversion code if it
- // is included.
- optional string scheme = 1;
-
- enum Slash {
- NONE = 0; // Seperate path segments using ""
- FORWARD = 1; // Seperate path segments using /
- BACKWARD = 2; // Seperate path segments using \
- }
- // The syntax rules of the two slashes that precede the host in a URL are
- // surprisingly complex. They are not required, even if a scheme is included
- // (http:example.com is treated as valid), and are valid even if a scheme is
- // not included (//example.com is treated as file:///example.com). They can
- // even be backslashes (http:\\example.com and http\/example.com are both
- // valid) and there can be any number of them (http:/example.com and
- // http://////example.com are both valid).
- // We will therefore define slashes as a list of enum values (repeated Slash).
- // In our conversion code, this will be read to append the appropriate kind and
- // appropriate number of slashes to the URL.
- repeated Slash slashes = 2 [packed=true];
-
-
- // The [user:password@] part of the URL shown above is called the userinfo.
- // Userinfo is not mandatory, but if it is included in a URL, then it must
- // contain a string called user. There is another optional field in userinfo
- // called the password. If a password is included, the user must be separated
- // from it by ":". In either case, the userinfo must be separated from the
- // host by "@". A URL must have a host if it has a userinfo.
- // These requirements will be ensured by the conversion code.
- message Userinfo {
- required string user = 1;
- optional string password = 2;
- }
- optional Userinfo userinfo = 3;
-
- // Hosts, like most else in our Url definition, are optional (there are
- // are URLs such as data URLs that do not have hosts).
- optional string host = 4;
-
- // ports are unsigned integers between 1-2^16. The closest type to this in the
- // proto2 format is uint32. Also if a port number is specified it must be
- // preceded by a colon (consider "google.com80" 80 will be interpreted as part
- // of the host). The conversion code will ensure this is the case.
- optional uint32 port = 5;
-
- // The rules for the path are somewhat complex. A path is not required,
- // however if it follows a port or host, it must start with "/" according
- // to the RFC, though Chromium accepts "\" as it converts all backslashes to
- // slashes. It does not need to start with "/" if there is no host (in data
- // URLs for example). Thus we will define path as a repeated string where each
- // member contains a segment of the path and will be preceded by the
- // path_separator. The one exception to this is for the first segment if
- // path_seperator == NONE and there is a non empty path and host, then the
- // first segment will be preceeded by "/".
- repeated string path = 6;
- required Slash path_separator = 7 [default = FORWARD];
-
- // A query must preceded by "?". This will be ensured in the conversion
- // code. Queries can have many components which the converter will separate
- // using "&", as is the convention.
- repeated string query = 8;
-
- // A fragment must preceded by "#". This will be ensured in the conversion
- // code.
- optional string fragment = 9;
-}
diff --git a/chromium/testing/libfuzzer/fuzzers/url_parse_proto_fuzzer.cc b/chromium/testing/libfuzzer/fuzzers/url_parse_proto_fuzzer.cc
deleted file mode 100644
index 67097b848d2..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/url_parse_proto_fuzzer.cc
+++ /dev/null
@@ -1,140 +0,0 @@
-// Copyright 2017 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include <assert.h>
-#include <stdlib.h>
-
-#include <iostream>
-
-// Includes copied from url_parse_fuzzer.cc
-#include "base/at_exit.h"
-#include "base/i18n/icu_util.h"
-#include "url/gurl.h"
-
-// Includes *not* copied from url_parse_fuzzer.cc
-// Contains DEFINE_BINARY_PROTO_FUZZER, a macro we use to define our target
-// function.
-#include "third_party/libprotobuf-mutator/src/src/libfuzzer/libfuzzer_macro.h"
-// Header information about the Protocol Buffer Url class.
-#include "testing/libfuzzer/fuzzers/url.pb.h"
-
-// The code using TestCase is copied from url_parse_fuzzer.cc
-struct TestCase {
- TestCase() {
- CHECK(base::i18n::InitializeICU());
- }
- // used by ICU integration.
- base::AtExitManager at_exit_manager;
-};
-
-TestCase* test_case = new TestCase();
-
-// Silence logging from the protobuf library.
-protobuf_mutator::protobuf::LogSilencer log_silencer;
-
-using namespace url_parse_proto_fuzzer;
-
-std::string Slash_to_string(int slash) {
- if (slash == Url::NONE)
- return "";
- if (slash == Url::FORWARD)
- return "/";
- if (slash == Url::BACKWARD) {
- return "\\";
- }
- assert(false && "Received unexpected value for slash");
- // Silence compiler warning about not returning in non-void function.
- return "";
-}
-
-// Converts a URL in Protocol Buffer format to a url in string format.
-// Since protobuf is a relatively simple format, fuzzing targets that do not
-// accept protobufs (such as this one) will require code to convert from
-// protobuf to the accepted format (string in this case).
-std::string protobuf_to_string(const Url& url) {
- // Build url_string piece by piece from url and then return it.
- std::string url_string = std::string("");
-
- if (url.has_scheme()) { // Get the scheme if Url has it.
- // Append the scheme to the url. This may be empty. Then append a colon
- // which is mandatory if there is a scheme.
- url_string += url.scheme() + ":";
- }
-
- // Just append the slashes without doing validation, since it would be too
- // complex. libFuzzer will hopefully figure out good values.
- for (const int slash : url.slashes())
- url_string += Slash_to_string(slash);
-
- // Get host. This is simple since hosts are simply strings according to our
- // definition.
- if (url.has_host()) {
- // Get userinfo if libFuzzer set it. Ensure that user is seperated
- // from the password by ":" (if a password is included) and that userinfo is
- // separated from the host by "@".
- if (url.has_userinfo()) {
- url_string += url.userinfo().user();
- if (url.userinfo().has_password()) {
- url_string += ":";
- url_string += url.userinfo().password();
- }
- url_string += "@";
- }
- url_string += url.host();
-
- // As explained in url.proto, if libFuzzer included a port in url ensure
- // that it is preceded by the host and then ":".
- if (url.has_port())
- // Convert url.port() from an unsigned 32 bit int before appending it.
- url_string += ":" + std::to_string(url.port());
- }
-
- // Append the path segments to the url, with each segment separated by
- // the path_separator.
- bool first_segment = true;
- std::string path_separator = Slash_to_string(url.path_separator());
- for (const std::string& path_segment : url.path()) {
- // There does not need to be a path, but if there is a path and a host,
- // ensure the path begins with "/".
- if (url.has_host() && first_segment) {
- url_string += "/" + path_segment;
- first_segment = false;
- } else
- url_string += path_separator + path_segment;
- }
-
- // Queries must be started by "?". If libFuzzer included a query in url,
- // ensure that it is preceded by "?". Also Seperate query components with
- // ampersands as is the convention.
- bool first_component = true;
- for (const std::string& query_component : url.query()) {
- if (first_component) {
- url_string += "?" + query_component;
- first_component = false;
- } else
- url_string += "&" + query_component;
- }
-
- // Fragments must be started by "#". If libFuzzer included a fragment
- // in url, ensure that it is preceded by "#".
- if (url.has_fragment())
- url_string += "#" + url.fragment();
-
- return url_string;
-}
-
-// The target function. This is the equivalent of LLVMFuzzerTestOneInput in
-// typical libFuzzer based fuzzers. It is passed our Url protobuf object that
-// was mutated by libFuzzer, converts it to a string and then feeds it to url()
-// for fuzzing.
-DEFINE_BINARY_PROTO_FUZZER(const Url& url_protobuf) {
- std::string url_string = protobuf_to_string(url_protobuf);
-
- // Allow native input to be retrieved easily.
- // Note that there will be a trailing newline that is not part of url_string.
- if (getenv("LPM_DUMP_NATIVE_INPUT"))
- std::cout << url_string << std::endl;
-
- GURL url(url_string);
-}
diff --git a/chromium/testing/libfuzzer/fuzzers/usrsctp_fuzzer.cc b/chromium/testing/libfuzzer/fuzzers/usrsctp_fuzzer.cc
deleted file mode 100644
index a6a8f4f410b..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/usrsctp_fuzzer.cc
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include <stddef.h>
-#include <stdint.h>
-
-#include "third_party/usrsctp/usrsctplib/usrsctplib/usrsctp.h"
-
-static int ignore1(void* addr,
- void* data,
- size_t length,
- uint8_t tos,
- uint8_t set_df) {
- return 0;
-}
-
-static void ignore2(const char* format, ...) {}
-
-struct Environment {
- Environment() {
- usrsctp_init(0, ignore1, ignore2);
- }
-};
-
-Environment* env = new Environment();
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
- usrsctp_conninput(nullptr, data, size, 0);
- return 0;
-}
diff --git a/chromium/testing/libfuzzer/fuzzers/v8_fuzzer.cc b/chromium/testing/libfuzzer/fuzzers/v8_fuzzer.cc
deleted file mode 100644
index d495d10818a..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/v8_fuzzer.cc
+++ /dev/null
@@ -1,166 +0,0 @@
-// Copyright 2017 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include <chrono>
-#include <functional>
-#include <iostream>
-#include <mutex>
-#include <thread>
-
-#include "base/logging.h"
-#include "v8/include/libplatform/libplatform.h"
-#include "v8/include/v8.h"
-
-using v8::MaybeLocal;
-using std::ref;
-using std::lock_guard;
-using std::mutex;
-using std::chrono::time_point;
-using std::chrono::steady_clock;
-using std::chrono::seconds;
-using std::chrono::duration_cast;
-
-static const seconds kSleepSeconds(1);
-
-// Because of the sleep we do, the actual max will be:
-// kSleepSeconds + kMaxExecutionSeconds.
-// TODO(metzman): Determine if having such a short timeout causes too much
-// indeterminism.
-static const seconds kMaxExecutionSeconds(7);
-
-// Inspired by/copied from d8 code, this allocator will return nullptr when
-// an allocation request is made that puts currently_allocated_ over
-// kAllocationLimit (1 GB). Should handle the current allocations done by V8.
-class MockArrayBufferAllocator : public v8::ArrayBuffer::Allocator {
- std::unique_ptr<Allocator> allocator_ =
- std::unique_ptr<Allocator>(NewDefaultAllocator());
-
- const size_t kAllocationLimit = 1000 * 1024 * 1024;
- // TODO(metzman): Determine if this approach where we keep track of state
- // between runs is a good idea. Maybe we should simply prevent allocations
- // over a certain size regardless of previous allocations.
- size_t currently_allocated_;
- mutex mtx_;
-
- public:
- MockArrayBufferAllocator()
- : v8::ArrayBuffer::Allocator(), currently_allocated_(0) {}
-
- void* Allocate(size_t length) override {
- void* data = AllocateUninitialized(length);
- return data == nullptr ? data : memset(data, 0, length);
- }
-
- void* AllocateUninitialized(size_t length) override {
- lock_guard<mutex> mtx_locker(mtx_);
- if (length + currently_allocated_ > kAllocationLimit) {
- return nullptr;
- }
- currently_allocated_ += length;
- return malloc(length);
- }
-
- void Free(void* ptr, size_t length) override {
- lock_guard<mutex> mtx_locker(mtx_);
- currently_allocated_ -= length;
- // We need to free before we unlock, otherwise currently_allocated_ will
- // be innacurate.
- free(ptr);
- }
-};
-
-void terminate_execution(v8::Isolate* isolate,
- mutex& mtx,
- bool& is_running,
- time_point<steady_clock>& start_time) {
- while (true) {
- std::this_thread::sleep_for(kSleepSeconds);
- mtx.lock();
- if (is_running) {
- if (duration_cast<seconds>(steady_clock::now() - start_time) >
- kMaxExecutionSeconds) {
- isolate->TerminateExecution();
- is_running = false;
- std::cout << "Terminated" << std::endl;
- fflush(0);
- }
- }
- mtx.unlock();
- }
-}
-
-struct Environment {
- Environment() {
- platform_ = v8::platform::NewDefaultPlatform(
- 0, v8::platform::IdleTaskSupport::kDisabled,
- v8::platform::InProcessStackDumping::kDisabled, nullptr);
-
- v8::V8::InitializePlatform(platform_.get());
- v8::V8::Initialize();
- v8::Isolate::CreateParams create_params;
-
- create_params.array_buffer_allocator = &mock_arraybuffer_allocator;
- isolate = v8::Isolate::New(create_params);
- terminator_thread = std::thread(terminate_execution, isolate, ref(mtx),
- ref(is_running), ref(start_time));
- }
- MockArrayBufferAllocator mock_arraybuffer_allocator;
- mutex mtx;
- std::thread terminator_thread;
- v8::Isolate* isolate;
- std::unique_ptr<v8::Platform> platform_;
- time_point<steady_clock> start_time;
- bool is_running;
-};
-
-// Explicitly specify some attributes to avoid issues with the linker dead-
-// stripping the following function on macOS, as it is not called directly
-// by fuzz target. LibFuzzer runtime uses dlsym() to resolve that function.
-extern "C" __attribute__((used)) __attribute__((visibility("default"))) int
-LLVMFuzzerInitialize(int* argc, char*** argv) {
- v8::V8::InitializeICUDefaultLocation((*argv)[0]);
- v8::V8::InitializeExternalStartupData((*argv)[0]);
- v8::V8::SetFlagsFromCommandLine(argc, *argv, true);
- return 0;
-}
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
- static Environment* env = new Environment();
-
- if (size < 1)
- return 0;
-
- v8::Isolate::Scope isolate_scope(env->isolate);
- v8::HandleScope handle_scope(env->isolate);
- v8::Local<v8::Context> context = v8::Context::New(env->isolate);
- v8::Context::Scope context_scope(context);
-
- std::string source_string =
- std::string(reinterpret_cast<const char*>(data), size);
-
- MaybeLocal<v8::String> source_v8_string = v8::String::NewFromUtf8(
- env->isolate, source_string.c_str(), v8::NewStringType::kNormal);
-
- if (source_v8_string.IsEmpty())
- return 0;
-
- v8::TryCatch try_catch(env->isolate);
- MaybeLocal<v8::Script> script =
- v8::Script::Compile(context, source_v8_string.ToLocalChecked());
-
- if (script.IsEmpty())
- return 0;
-
- auto local_script = script.ToLocalChecked();
- env->mtx.lock();
- env->start_time = steady_clock::now();
- env->is_running = true;
- env->mtx.unlock();
-
- ALLOW_UNUSED_LOCAL(local_script->Run(context));
-
- lock_guard<mutex> mtx_locker(env->mtx);
- env->is_running = false;
- return 0;
-}
diff --git a/chromium/testing/libfuzzer/fuzzers/woff2_corpus/Ahem.woff2 b/chromium/testing/libfuzzer/fuzzers/woff2_corpus/Ahem.woff2
deleted file mode 100644
index 772932491bb..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/woff2_corpus/Ahem.woff2
+++ /dev/null
Binary files differ
diff --git a/chromium/testing/libfuzzer/fuzzers/woff2_corpus/AhemSpaceLigature.woff2 b/chromium/testing/libfuzzer/fuzzers/woff2_corpus/AhemSpaceLigature.woff2
deleted file mode 100644
index dc15e79d28c..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/woff2_corpus/AhemSpaceLigature.woff2
+++ /dev/null
Binary files differ
diff --git a/chromium/testing/libfuzzer/fuzzers/woff2_corpus/DejaVuSerif-webfont.woff2 b/chromium/testing/libfuzzer/fuzzers/woff2_corpus/DejaVuSerif-webfont.woff2
deleted file mode 100644
index 953010af44e..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/woff2_corpus/DejaVuSerif-webfont.woff2
+++ /dev/null
Binary files differ
diff --git a/chromium/testing/libfuzzer/fuzzers/woff2_corpus/DejaVuSerif.woff2 b/chromium/testing/libfuzzer/fuzzers/woff2_corpus/DejaVuSerif.woff2
deleted file mode 100644
index b972c0877ac..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/woff2_corpus/DejaVuSerif.woff2
+++ /dev/null
Binary files differ
diff --git a/chromium/testing/libfuzzer/fuzzers/woff2_corpus/EzraSIL.woff2 b/chromium/testing/libfuzzer/fuzzers/woff2_corpus/EzraSIL.woff2
deleted file mode 100644
index e987c38c958..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/woff2_corpus/EzraSIL.woff2
+++ /dev/null
Binary files differ
diff --git a/chromium/testing/libfuzzer/fuzzers/woff2_corpus/LinLibertineO.woff2 b/chromium/testing/libfuzzer/fuzzers/woff2_corpus/LinLibertineO.woff2
deleted file mode 100644
index e843c8c188b..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/woff2_corpus/LinLibertineO.woff2
+++ /dev/null
Binary files differ
diff --git a/chromium/testing/libfuzzer/fuzzers/woff2_corpus/MEgalopolisExtra.woff2 b/chromium/testing/libfuzzer/fuzzers/woff2_corpus/MEgalopolisExtra.woff2
deleted file mode 100644
index 2d0def4be55..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/woff2_corpus/MEgalopolisExtra.woff2
+++ /dev/null
Binary files differ
diff --git a/chromium/testing/libfuzzer/fuzzers/woff2_corpus/OpenSans.woff2 b/chromium/testing/libfuzzer/fuzzers/woff2_corpus/OpenSans.woff2
deleted file mode 100644
index f898c34dacb..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/woff2_corpus/OpenSans.woff2
+++ /dev/null
Binary files differ
diff --git a/chromium/testing/libfuzzer/fuzzers/woff2_corpus/mplus-1p-regular.woff2 b/chromium/testing/libfuzzer/fuzzers/woff2_corpus/mplus-1p-regular.woff2
deleted file mode 100644
index 171e366c545..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/woff2_corpus/mplus-1p-regular.woff2
+++ /dev/null
Binary files differ
diff --git a/chromium/testing/libfuzzer/fuzzers/woff2_corpus/tcu-font.woff2 b/chromium/testing/libfuzzer/fuzzers/woff2_corpus/tcu-font.woff2
deleted file mode 100644
index df15e4cd1b0..00000000000
--- a/chromium/testing/libfuzzer/fuzzers/woff2_corpus/tcu-font.woff2
+++ /dev/null
Binary files differ
diff --git a/chromium/testing/libfuzzer/reproducing.md b/chromium/testing/libfuzzer/reproducing.md
index 10ad0f2b0dc..6bf24b62c37 100644
--- a/chromium/testing/libfuzzer/reproducing.md
+++ b/chromium/testing/libfuzzer/reproducing.md
@@ -9,7 +9,8 @@ manually using the steps below:
**Requirements:** For Windows, you must convert the forward slashes (/) to
backslashes (\\) in the commands below and use `set` command instead of `export`
to set the environment variable (step 4). Note that these commands are intended
-to be used with cmd.exe, not PowerShell.
+to be used with cmd.exe, not PowerShell. Also, you may find [these tips] on how
+to debug an ASAN instrumented binary helpful.
***
[TOC]
@@ -109,3 +110,4 @@ you will be able to test the fix locally and/or somehow debug the issue.
[ClusterFuzz Reproduce Tool]: https://github.com/google/clusterfuzz-tools
[File a bug]: https://bugs.chromium.org/p/chromium/issues/entry?component=Tools%3EStability%3ElibFuzzer&comment=What%20problem%20are%20you%20seeing
[here]: getting_started.md#symbolize-stacktrace
+[these tips]: https://github.com/google/sanitizers/wiki/AddressSanitizerWindowsPort#debugging
diff --git a/chromium/testing/merge_scripts/PRESUBMIT.py b/chromium/testing/merge_scripts/PRESUBMIT.py
index 22a57f28835..3ba0cf17fab 100644
--- a/chromium/testing/merge_scripts/PRESUBMIT.py
+++ b/chromium/testing/merge_scripts/PRESUBMIT.py
@@ -10,7 +10,7 @@ for more details about the presubmit API built into depot_tools.
def CommonChecks(input_api, output_api):
return input_api.canned_checks.RunUnitTestsInDirectory(
- input_api, output_api, '.', [ r'^.+_unittest\.py$'])
+ input_api, output_api, '.', [ r'^.+_test\.py$'])
def CheckChangeOnUpload(input_api, output_api):
return CommonChecks(input_api, output_api)
diff --git a/chromium/testing/merge_scripts/code_coverage/OWNERS b/chromium/testing/merge_scripts/code_coverage/OWNERS
new file mode 100644
index 00000000000..c3d0dbb291d
--- /dev/null
+++ b/chromium/testing/merge_scripts/code_coverage/OWNERS
@@ -0,0 +1,3 @@
+liaoyuke@chromium.org
+robertocn@chromium.org
+sajjadm@chromium.org
diff --git a/chromium/testing/merge_scripts/code_coverage/merge_lib.py b/chromium/testing/merge_scripts/code_coverage/merge_lib.py
new file mode 100644
index 00000000000..8e40f446ae7
--- /dev/null
+++ b/chromium/testing/merge_scripts/code_coverage/merge_lib.py
@@ -0,0 +1,199 @@
+# Copyright 2019 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Functions for interacting with llvm-profdata"""
+
+import logging
+import multiprocessing
+import os
+import subprocess
+
+logging.basicConfig(
+ format='[%(asctime)s %(levelname)s] %(message)s', level=logging.DEBUG)
+
+
+def _call_profdata_tool(profile_input_file_paths,
+ profile_output_file_path,
+ profdata_tool_path,
+ retries=3):
+ """Calls the llvm-profdata tool.
+
+ Args:
+ profile_input_file_paths: A list of relative paths to the files that
+ are to be merged.
+ profile_output_file_path: The path to the merged file to write.
+ profdata_tool_path: The path to the llvm-profdata executable.
+
+ Returns:
+ A list of paths to profiles that had to be excluded to get the merge to
+ succeed, suspected of being corrupted or malformed.
+
+ Raises:
+ CalledProcessError: An error occurred merging profiles.
+ """
+ logging.info('Merging profiles.')
+
+ try:
+ subprocess_cmd = [
+ profdata_tool_path, 'merge', '-o', profile_output_file_path,
+ '-sparse=true'
+ ]
+ subprocess_cmd.extend(profile_input_file_paths)
+
+ # Redirecting stderr is required because when error happens, llvm-profdata
+ # writes the error output to stderr and our error handling logic relies on
+ # that output.
+ output = subprocess.check_output(subprocess_cmd, stderr=subprocess.STDOUT)
+ logging.info('Merge succeeded with output: %r', output)
+ except subprocess.CalledProcessError as error:
+ if len(profile_input_file_paths) > 1 and retries >= 0:
+ logging.warning('Merge failed with error output: %r', error.output)
+
+ # The output of the llvm-profdata command will include the path of
+ # malformed files, such as
+ # `error: /.../default.profraw: Malformed instrumentation profile data`
+ invalid_profiles = [
+ f for f in profile_input_file_paths if f in error.output
+ ]
+
+ if not invalid_profiles:
+ logging.info(
+ 'Merge failed, but wasn\'t able to figure out the culprit invalid '
+ 'profiles from the output, so skip retry and bail out.')
+ raise error
+
+ valid_profiles = list(
+ set(profile_input_file_paths) - set(invalid_profiles))
+ if valid_profiles:
+ logging.warning(
+ 'Following invalid profiles are removed as they were mentioned in '
+ 'the merge error output: %r', invalid_profiles)
+ logging.info('Retry merging with the remaining profiles: %r',
+ valid_profiles)
+ return invalid_profiles + _call_profdata_tool(
+ valid_profiles, profile_output_file_path, profdata_tool_path,
+ retries - 1)
+
+ logging.error('Failed to merge profiles, return code (%d), output: %r' %
+ (error.returncode, error.output))
+ raise error
+
+ logging.info('Profile data is created as: "%r".', profile_output_file_path)
+ return []
+
+
+def _get_profile_paths(input_dir, input_extension):
+ """Finds all the profiles in the given directory (recursively)."""
+ paths = []
+ for dir_path, _sub_dirs, file_names in os.walk(input_dir):
+ paths.extend([
+ os.path.join(dir_path, fn)
+ for fn in file_names
+ if fn.endswith(input_extension)
+ ])
+ return paths
+
+
+def _validate_and_convert_profraws(profraw_files, profdata_tool_path):
+ """Validates and converts profraws to profdatas.
+
+ For each given .profraw file in the input, this method first validates it by
+ trying to convert it to an indexed .profdata file, and if the validation and
+ conversion succeeds, the generated .profdata file will be included in the
+ output, otherwise, won't.
+
+ This method is mainly used to filter out invalid profraw files.
+
+ Args:
+ profraw_files: A list of .profraw paths.
+ profdata_tool_path: The path to the llvm-profdata executable.
+
+ Returns:
+ A tulple:
+ A list of converted .profdata files of *valid* profraw files.
+ A list of *invalid* profraw files.
+ """
+ logging.info('Validating and converting .profraw files.')
+
+ for profraw_file in profraw_files:
+ if not profraw_file.endswith('.profraw'):
+ raise RuntimeError('%r is expected to be a .profraw file.' % profraw_file)
+
+ cpu_count = multiprocessing.cpu_count()
+ counts = max(10, cpu_count - 5) # Use 10+ processes, but leave 5 cpu cores.
+ pool = multiprocessing.Pool(counts)
+ output_profdata_files = multiprocessing.Manager().list()
+ invalid_profraw_files = multiprocessing.Manager().list()
+
+ for profraw_file in profraw_files:
+ pool.apply_async(_validate_and_convert_profraw,
+ (profraw_file, output_profdata_files,
+ invalid_profraw_files, profdata_tool_path))
+
+ pool.close()
+ pool.join()
+
+ # Remove inputs, as they won't be needed and they can be pretty large.
+ for input_file in profraw_files:
+ os.remove(input_file)
+
+ return list(output_profdata_files), list(invalid_profraw_files)
+
+
+def _validate_and_convert_profraw(profraw_file, output_profdata_files,
+ invalid_profraw_files, profdata_tool_path):
+ output_profdata_file = profraw_file.replace('.profraw', '.profdata')
+ subprocess_cmd = [
+ profdata_tool_path, 'merge', '-o', output_profdata_file, '-sparse=true',
+ profraw_file
+ ]
+
+ try:
+ # Redirecting stderr is required because when error happens, llvm-profdata
+ # writes the error output to stderr and our error handling logic relies on
+ # that output.
+ output = subprocess.check_output(subprocess_cmd, stderr=subprocess.STDOUT)
+ logging.info('Validating and converting %r to %r succeeded with output: %r',
+ profraw_file, output_profdata_file, output)
+ output_profdata_files.append(output_profdata_file)
+ except subprocess.CalledProcessError as error:
+ logging.warning('Validating and converting %r to %r failed with output: %r',
+ profraw_file, output_profdata_file, error.output)
+ invalid_profraw_files.append(profraw_file)
+
+
+def merge_profiles(input_dir, output_file, input_extension, profdata_tool_path):
+ """Merges the profiles produced by the shards using llvm-profdata.
+
+ Args:
+ input_dir (str): The path to traverse to find input profiles.
+ output_file (str): Where to write the merged profile.
+ input_extension (str): File extension to look for in the input_dir.
+ e.g. '.profdata' or '.profraw'
+ profdata_tool_path: The path to the llvm-profdata executable.
+ Returns:
+ The list of profiles that had to be excluded to get the merge to
+ succeed.
+ """
+ profile_input_file_paths = _get_profile_paths(input_dir, input_extension)
+ invalid_profraw_files = []
+ if input_extension == '.profraw':
+ profile_input_file_paths, invalid_profraw_files = (
+ _validate_and_convert_profraws(profile_input_file_paths,
+ profdata_tool_path))
+ logging.info('List of converted .profdata files: %r',
+ profile_input_file_paths)
+ logging.info((
+ 'List of invalid .profraw files that failed to validate and convert: %r'
+ ), invalid_profraw_files)
+
+ invalid_profdata_files = _call_profdata_tool(
+ profile_input_file_paths=profile_input_file_paths,
+ profile_output_file_path=output_file,
+ profdata_tool_path=profdata_tool_path)
+
+ # Remove inputs, as they won't be needed and they can be pretty large.
+ for input_file in profile_input_file_paths:
+ os.remove(input_file)
+
+ return invalid_profraw_files + invalid_profdata_files
diff --git a/chromium/testing/merge_scripts/code_coverage/merge_results.py b/chromium/testing/merge_scripts/code_coverage/merge_results.py
new file mode 100755
index 00000000000..06b570d5570
--- /dev/null
+++ b/chromium/testing/merge_scripts/code_coverage/merge_results.py
@@ -0,0 +1,93 @@
+#!/usr/bin/python
+# Copyright 2019 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Merge results from code coverage swarming runs.
+
+This script merges code coverage profiles from multiple shards. It also merges
+the test results of the shards.
+
+It is functionally similar to merge_steps.py but it accepts the parameters
+passed by swarming api.
+"""
+
+import argparse
+import json
+import logging
+import os
+import subprocess
+import sys
+
+import merge_lib as coverage_merger
+
+
+def _MergeAPIArgumentParser(*args, **kwargs):
+ """Parameters passed to this merge script, as per:
+ https://chromium.googlesource.com/chromium/tools/build/+/master/scripts/slave/recipe_modules/swarming/resources/merge_api.py
+ """
+ parser = argparse.ArgumentParser(*args, **kwargs)
+ parser.add_argument('--build-properties', help=argparse.SUPPRESS)
+ parser.add_argument('--summary-json', help=argparse.SUPPRESS)
+ parser.add_argument('--task-output-dir', help=argparse.SUPPRESS)
+ parser.add_argument(
+ '-o', '--output-json', required=True, help=argparse.SUPPRESS)
+ parser.add_argument('jsons_to_merge', nargs='*', help=argparse.SUPPRESS)
+
+ # Custom arguments for this merge script.
+ parser.add_argument(
+ '--additional-merge-script', help='additional merge script to run')
+ parser.add_argument(
+ '--additional-merge-script-args',
+ help='args for the additional merge script', action='append')
+ parser.add_argument(
+ '--profdata-dir', required=True, help='where to store the merged data')
+ parser.add_argument(
+ '--llvm-profdata', required=True, help='path to llvm-profdata executable')
+ return parser
+
+
+def main():
+ desc = "Merge profraw files in <--task-output-dir> into a single profdata."
+ parser = _MergeAPIArgumentParser(description=desc)
+ params = parser.parse_args()
+
+ logging.info('Merging %d test results', len(params.jsons_to_merge))
+
+ failed = False
+
+ if params.additional_merge_script:
+ new_args = [
+ '--build-properties', params.build_properties,
+ '--summary-json', params.summary_json,
+ '--task-output-dir', params.task_output_dir,
+ '--output-json', params.output_json,
+ ]
+ if params.additional_merge_script_args:
+ new_args += params.additional_merge_script_args
+
+ new_args += params.jsons_to_merge
+
+ rc = subprocess.call([
+ sys.executable, params.additional_merge_script] + new_args)
+ if rc != 0:
+ failed = True
+ logging.warning('Additional merge script %s exited with %s' % (
+ params.additional_merge_script, p.returncode
+ ))
+
+ invalid_profiles = coverage_merger.merge_profiles(
+ params.task_output_dir,
+ os.path.join(params.profdata_dir, 'default.profdata'), '.profraw',
+ params.llvm_profdata)
+ if invalid_profiles:
+ with open(os.path.join(params.profdata_dir, 'invalid_profiles.json'),
+ 'w') as f:
+ json.dump(invalid_profiles, f)
+
+ return 1 if (failed or bool(invalid_profiles)) else 0
+
+
+if __name__ == '__main__':
+ logging.basicConfig(
+ format='[%(asctime)s %(levelname)s] %(message)s', level=logging.INFO)
+ sys.exit(main())
diff --git a/chromium/testing/merge_scripts/code_coverage/merge_results_test.py b/chromium/testing/merge_scripts/code_coverage/merge_results_test.py
new file mode 100755
index 00000000000..5cbe5c229f8
--- /dev/null
+++ b/chromium/testing/merge_scripts/code_coverage/merge_results_test.py
@@ -0,0 +1,197 @@
+#!/usr/bin/env vpython
+# Copyright 2019 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import json
+import os
+import subprocess
+import sys
+import unittest
+
+THIS_DIR = os.path.dirname(os.path.abspath(__file__))
+sys.path.insert(
+ 0, os.path.abspath(os.path.join(THIS_DIR, os.pardir, os.pardir, os.pardir,
+ 'third_party', 'pymock')))
+
+import mock
+
+import merge_profiles
+import merge_steps
+import merge_lib as merger
+
+
+class MergeProfilesTest(unittest.TestCase):
+
+ def __init__(self, *args, **kwargs):
+ super(MergeProfilesTest, self).__init__(*args, **kwargs)
+ self.maxDiff = None
+
+ def test_merge_script_api_parameters(self):
+ """Test the step-level merge front-end."""
+ build_properties = json.dumps({
+ 'some': {
+ 'complicated': ['nested', {
+ 'json': None,
+ 'object': 'thing',
+ }]
+ }
+ })
+ task_output_dir = 'some/task/output/dir'
+ profdata_dir = '/some/different/path/to/profdata/default.profdata'
+ profdata_file = os.path.join(profdata_dir, 'default.profdata')
+ args = [
+ 'script_name', '--output-json', 'output.json', '--build-properties',
+ build_properties, '--summary-json', 'summary.json', '--task-output-dir',
+ task_output_dir, '--profdata-dir', profdata_dir, '--llvm-profdata',
+ 'llvm-profdata', 'a.json', 'b.json', 'c.json'
+ ]
+ with mock.patch.object(merger, 'merge_profiles') as mock_merge:
+ mock_merge.return_value = None
+ with mock.patch.object(sys, 'argv', args):
+ merge_profiles.main()
+ self.assertEqual(
+ mock_merge.call_args,
+ mock.call(task_output_dir, profdata_file, '.profraw',
+ 'llvm-profdata'))
+
+ def test_merge_steps_parameters(self):
+ """Test the build-level merge front-end."""
+ input_dir = 'some/task/output/dir'
+ output_file = '/some/different/path/to/profdata/merged.profdata'
+ args = [
+ 'script_name',
+ '--input-dir',
+ input_dir,
+ '--output-file',
+ output_file,
+ '--llvm-profdata',
+ 'llvm-profdata',
+ ]
+ with mock.patch.object(merger, 'merge_profiles') as mock_merge:
+ mock_merge.return_value = None
+ with mock.patch.object(sys, 'argv', args):
+ merge_steps.main()
+ self.assertEqual(
+ mock_merge.call_args,
+ mock.call(input_dir, output_file, '.profdata', 'llvm-profdata'))
+
+ @mock.patch.object(merger, '_validate_and_convert_profraws')
+ def test_merge_profraw(self, mock_validate_and_convert_profraws):
+ mock_input_dir_walk = [
+ ('/b/some/path', ['0', '1', '2', '3'], ['summary.json']),
+ ('/b/some/path/0', [],
+ ['output.json', 'default-1.profraw', 'default-2.profraw']),
+ ('/b/some/path/1', [],
+ ['output.json', 'default-1.profraw', 'default-2.profraw']),
+ ]
+
+ mock_validate_and_convert_profraws.return_value = [
+ '/b/some/path/0/default-1.profdata',
+ '/b/some/path/1/default-2.profdata',
+ ], [
+ '/b/some/path/0/default-2.profraw',
+ '/b/some/path/1/default-1.profraw',
+ ]
+
+ with mock.patch.object(os, 'walk') as mock_walk:
+ with mock.patch.object(os, 'remove'):
+ mock_walk.return_value = mock_input_dir_walk
+ with mock.patch.object(subprocess, 'check_output') as mock_exec_cmd:
+ merger.merge_profiles('/b/some/path', 'output/dir/default.profdata',
+ '.profraw', 'llvm-profdata')
+ self.assertEqual(
+ mock.call(
+ [
+ 'llvm-profdata',
+ 'merge',
+ '-o',
+ 'output/dir/default.profdata',
+ '-sparse=true',
+ '/b/some/path/0/default-1.profdata',
+ '/b/some/path/1/default-2.profdata',
+ ],
+ stderr=-2,
+ ), mock_exec_cmd.call_args)
+
+ self.assertTrue(mock_validate_and_convert_profraws.called)
+
+ @mock.patch.object(merger, '_validate_and_convert_profraws')
+ def test_merge_profdata(self, mock_validate_and_convert_profraws):
+ mock_input_dir_walk = [
+ ('/b/some/path', ['base_unittests', 'url_unittests'], ['summary.json']),
+ ('/b/some/path/base_unittests', [], ['output.json',
+ 'default.profdata']),
+ ('/b/some/path/url_unittests', [], ['output.json', 'default.profdata']),
+ ]
+ with mock.patch.object(os, 'walk') as mock_walk:
+ with mock.patch.object(os, 'remove'):
+ mock_walk.return_value = mock_input_dir_walk
+ with mock.patch.object(subprocess, 'check_output') as mock_exec_cmd:
+ merger.merge_profiles('/b/some/path', 'output/dir/default.profdata',
+ '.profdata', 'llvm-profdata')
+ self.assertEqual(
+ mock.call(
+ [
+ 'llvm-profdata',
+ 'merge',
+ '-o',
+ 'output/dir/default.profdata',
+ '-sparse=true',
+ '/b/some/path/base_unittests/default.profdata',
+ '/b/some/path/url_unittests/default.profdata',
+ ],
+ stderr=-2,
+ ), mock_exec_cmd.call_args)
+
+ # The mock method should only apply when merging .profraw files.
+ self.assertFalse(mock_validate_and_convert_profraws.called)
+
+ def test_retry_profdata_merge_failures(self):
+ mock_input_dir_walk = [
+ ('/b/some/path', ['0', '1'], ['summary.json']),
+ ('/b/some/path/0', [],
+ ['output.json', 'default-1.profdata', 'default-2.profdata']),
+ ('/b/some/path/1', [],
+ ['output.json', 'default-1.profdata', 'default-2.profdata']),
+ ]
+ with mock.patch.object(os, 'walk') as mock_walk:
+ with mock.patch.object(os, 'remove'):
+ mock_walk.return_value = mock_input_dir_walk
+ with mock.patch.object(subprocess, 'check_output') as mock_exec_cmd:
+ invalid_profiles_msg = (
+ 'error: /b/some/path/0/default-1.profdata: Malformed '
+ 'instrumentation profile data.')
+
+ # Failed on the first merge, but succeed on the second attempt.
+ mock_exec_cmd.side_effect = [
+ subprocess.CalledProcessError(
+ returncode=1, cmd='dummy cmd', output=invalid_profiles_msg),
+ None
+ ]
+
+ merger.merge_profiles('/b/some/path', 'output/dir/default.profdata',
+ '.profdata', 'llvm-profdata')
+
+ self.assertEqual(2, mock_exec_cmd.call_count)
+
+ # Note that in the second call, /b/some/path/0/default-1.profdata is
+ # excluded!
+ self.assertEqual(
+ mock.call(
+ [
+ 'llvm-profdata',
+ 'merge',
+ '-o',
+ 'output/dir/default.profdata',
+ '-sparse=true',
+ '/b/some/path/0/default-2.profdata',
+ '/b/some/path/1/default-1.profdata',
+ '/b/some/path/1/default-2.profdata',
+ ],
+ stderr=-2,
+ ), mock_exec_cmd.call_args)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/chromium/testing/merge_scripts/code_coverage/merge_steps.py b/chromium/testing/merge_scripts/code_coverage/merge_steps.py
new file mode 100755
index 00000000000..c0d5d4e00b0
--- /dev/null
+++ b/chromium/testing/merge_scripts/code_coverage/merge_steps.py
@@ -0,0 +1,33 @@
+#!/usr/bin/python
+# Copyright 2019 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""This script merges code coverage profiles from multiple steps."""
+
+import argparse
+import os
+import sys
+
+import merge_lib as merger
+
+
+def _merge_steps_argument_parser(*args, **kwargs):
+ parser = argparse.ArgumentParser(*args, **kwargs)
+ parser.add_argument('--input-dir', required=True, help=argparse.SUPPRESS)
+ parser.add_argument(
+ '--output-file', required=True, help='where to store the merged data')
+ parser.add_argument(
+ '--llvm-profdata', required=True, help='path to llvm-profdata executable')
+ return parser
+
+
+def main():
+ desc = "Merge profdata files in <--input-dir> into a single profdata."
+ parser = _merge_steps_argument_parser(description=desc)
+ params = parser.parse_args()
+ merger.merge_profiles(params.input_dir, params.output_file, '.profdata',
+ params.llvm_profdata)
+
+
+if __name__ == '__main__':
+ sys.exit(main())
diff --git a/chromium/testing/merge_scripts/results_merger.py b/chromium/testing/merge_scripts/results_merger.py
index d7dcaaccb7e..92f7d1269b7 100755
--- a/chromium/testing/merge_scripts/results_merger.py
+++ b/chromium/testing/merge_scripts/results_merger.py
@@ -25,6 +25,7 @@ OPTIONAL_MATCHING = (
'path_delimiter',
'pixel_tests_enabled',
'random_order_seed',
+ 'metadata'
)
OPTIONAL_IGNORED = (
diff --git a/chromium/testing/merge_scripts/results_merger_unittest.py b/chromium/testing/merge_scripts/results_merger_test.py
index 360384d145e..fbf79421143 100755
--- a/chromium/testing/merge_scripts/results_merger_unittest.py
+++ b/chromium/testing/merge_scripts/results_merger_test.py
@@ -172,6 +172,20 @@ class MergingTest(unittest.TestCase): # pragma: no cover
results_merger.merge_tries(
{'a': {'b': 'A'}}, {'a': {'b': 'C'}})
+ def test_merge_metadata(self):
+ metadata = {'metadata': {'tags': ['foo', 'bar']}}
+ results_merger.merge_test_results(
+ [extend(GOOD_JSON_TEST_RESULT_0, metadata),
+ extend(GOOD_JSON_TEST_RESULT_1, metadata)])
+
+ def test_merge_metadata_raises_exception(self):
+ metadata1 = {'metadata': {'tags': ['foo', 'bar']}}
+ metadata2 = {'metadata': {'tags': ['foo', 'bat']}}
+ with self.assertRaises(results_merger.MergeException):
+ results_merger.merge_test_results(
+ [extend(GOOD_JSON_TEST_RESULT_0, metadata1),
+ extend(GOOD_JSON_TEST_RESULT_1, metadata2)])
+
def test_merge_json_test_results_nop(self):
good_json_results = (
GOOD_JSON_TEST_RESULT_0,
diff --git a/chromium/testing/merge_scripts/standard_isolated_script_merge_test.py b/chromium/testing/merge_scripts/standard_isolated_script_merge_test.py
index 89ec9001eb7..7cd14360039 100755
--- a/chromium/testing/merge_scripts/standard_isolated_script_merge_test.py
+++ b/chromium/testing/merge_scripts/standard_isolated_script_merge_test.py
@@ -17,12 +17,6 @@ import common_merge_script_tests
THIS_DIR = os.path.dirname(__file__)
-sys.path.insert(
- 0, os.path.abspath(os.path.join(THIS_DIR, '..', '..', '..', 'unittests')))
-import test_env
-
-sys.path.insert(
- 0, os.path.abspath(os.path.join(THIS_DIR, '..', 'resources')))
import standard_isolated_script_merge
diff --git a/chromium/testing/scripts/cronet_sizes.py b/chromium/testing/scripts/cronet_sizes.py
new file mode 100755
index 00000000000..47180c25776
--- /dev/null
+++ b/chromium/testing/scripts/cronet_sizes.py
@@ -0,0 +1,22 @@
+#!/usr/bin/env vpython
+# Copyright 2019 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import json
+import sys
+
+import common
+import sizes_common
+
+
+def main_compile_targets(args):
+ json.dump(['cronet'], args.output)
+
+
+if __name__ == '__main__':
+ funcs = {
+ 'run': sizes_common.main_run,
+ 'compile_targets': main_compile_targets
+ }
+ sys.exit(common.run_script(sys.argv[1:], funcs))
diff --git a/chromium/testing/scripts/get_compile_targets.py b/chromium/testing/scripts/get_compile_targets.py
index 16cff951648..aed1c569e8a 100755
--- a/chromium/testing/scripts/get_compile_targets.py
+++ b/chromium/testing/scripts/get_compile_targets.py
@@ -27,7 +27,10 @@ def main(argv):
for filename in os.listdir(common.SCRIPT_DIR):
if not filename.endswith('.py'):
continue
- if filename in ('common.py', 'get_compile_targets.py'):
+ if filename in ('common.py',
+ 'get_compile_targets.py',
+ 'gpu_integration_test_adapter.py',
+ 'sizes_common.py'):
continue
with common.temporary_file() as tempfile_path:
diff --git a/chromium/testing/scripts/gpu_integration_test_adapter.py b/chromium/testing/scripts/gpu_integration_test_adapter.py
new file mode 100644
index 00000000000..e62c501df23
--- /dev/null
+++ b/chromium/testing/scripts/gpu_integration_test_adapter.py
@@ -0,0 +1,34 @@
+# Copyright 2019 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import common
+
+class GpuIntegrationTestAdapater(common.BaseIsolatedScriptArgsAdapter):
+
+ def generate_test_output_args(self, output):
+ return ['--write-full-results-to', output]
+
+ def generate_test_also_run_disabled_tests_args(self):
+ return ['--also-run-disabled-tests']
+
+ def generate_test_filter_args(self, test_filter_str):
+ filter_list = common.extract_filter_list(test_filter_str)
+ # isolated_script_test_filter comes in like:
+ # gpu_tests.webgl_conformance_integration_test.WebGLConformanceIntegrationTest.WebglExtension_WEBGL_depth_texture # pylint: disable=line-too-long
+ # but we need to pass it to --test-filter like this:
+ # WebglExtension_WEBGL_depth_texture
+ filter_list = [f.split('.')[-1] for f in filter_list]
+ # Need to convert this to a valid regex.
+ filter_regex = '(' + '|'.join(filter_list) + ')'
+ return ['--test-filter=%s' % filter_regex]
+
+ def generate_sharding_args(self, total_shards, shard_index):
+ return ['--total-shards=%d' % total_shards,
+ '--shard-index=%d' % shard_index]
+
+ def generate_test_launcher_retry_limit_args(self, retry_limit):
+ return ['--retry-limit=%d' % retry_limit]
+
+ def generate_test_repeat_args(self, repeat_count):
+ return ['--repeat=%d' % repeat_count]
diff --git a/chromium/testing/scripts/run_gpu_integration_test_as_googletest.py b/chromium/testing/scripts/run_gpu_integration_test_as_googletest.py
index 6a65ee471d7..fd48ec4d880 100755
--- a/chromium/testing/scripts/run_gpu_integration_test_as_googletest.py
+++ b/chromium/testing/scripts/run_gpu_integration_test_as_googletest.py
@@ -28,45 +28,14 @@ invoke an arbitrary executable.
"""
import json
-import os
-import shutil
import sys
-import tempfile
-import traceback
import common
+import gpu_integration_test_adapter
-class GpuIntegrationTestAdapater(common.BaseIsolatedScriptArgsAdapter):
-
- def generate_test_output_args(self, output):
- return ['--write-full-results-to', output]
-
- def generate_test_also_run_disabled_tests_args(self):
- return ['--also-run-disabled-tests']
-
- def generate_test_filter_args(self, test_filter_str):
- filter_list = common.extract_filter_list(test_filter_str)
- # isolated_script_test_filter comes in like:
- # gpu_tests.webgl_conformance_integration_test.WebGLConformanceIntegrationTest.WebglExtension_WEBGL_depth_texture # pylint: disable=line-too-long
- # but we need to pass it to --test-filter like this:
- # WebglExtension_WEBGL_depth_texture
- filter_list = [f.split('.')[-1] for f in filter_list]
- # Need to convert this to a valid regex.
- filter_regex = '(' + '|'.join(filter_list) + ')'
- return ['--test-filter=%s' % filter_regex]
-
- def generate_sharding_args(self, total_shards, shard_index):
- return ['--total-shards=%d' % total_shards,
- '--shard-index=%d' % shard_index]
-
- def generate_test_launcher_retry_limit_args(self, retry_limit):
- return ['--retry-limit=%d' % retry_limit]
-
- def generate_test_repeat_args(self, repeat_count):
- return ['--repeat=%d' % repeat_count]
def main():
- adapter = GpuIntegrationTestAdapater()
+ adapter = gpu_integration_test_adapter.GpuIntegrationTestAdapater()
return adapter.run_test()
diff --git a/chromium/testing/scripts/run_isolated_script_test.py b/chromium/testing/scripts/run_isolated_script_test.py
index 733de14b22f..f0d3e5e8631 100755
--- a/chromium/testing/scripts/run_isolated_script_test.py
+++ b/chromium/testing/scripts/run_isolated_script_test.py
@@ -54,7 +54,11 @@ KNOWN_ISOLATED_SCRIPT_TEST_RUNNERS = {'run_web_tests.py'}
# Known typ test runners this script wraps. They need a different argument name
# when selecting which tests to run.
# TODO(dpranke): Detect if the wrapped test suite uses typ better.
-KNOWN_TYP_TEST_RUNNERS = {'run_blinkpy_tests.py', 'metrics_python_tests.py'}
+KNOWN_TYP_TEST_RUNNERS = {
+ 'run_blinkpy_tests.py',
+ 'metrics_python_tests.py',
+ 'run_mac_signing_tests.py',
+}
class IsolatedScriptTestAdapter(common.BaseIsolatedScriptArgsAdapter):
diff --git a/chromium/testing/scripts/sizes.py b/chromium/testing/scripts/sizes_common.py
index 7e81602613c..6b1d22cc026 100755..100644
--- a/chromium/testing/scripts/sizes.py
+++ b/chromium/testing/scripts/sizes_common.py
@@ -1,4 +1,3 @@
-#!/usr/bin/env python
# Copyright 2015 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
@@ -15,7 +14,6 @@ PERF_DASHBOARD_URL = 'https://chromeperf.appspot.com'
def create_argparser():
parser = argparse.ArgumentParser()
- parser.add_argument('--platform')
parser.add_argument('--perf-id')
parser.add_argument('--results-url', default=PERF_DASHBOARD_URL)
return parser
@@ -23,8 +21,7 @@ def create_argparser():
def main_run(script_args):
parser = create_argparser()
- parser.add_argument('prefix')
- args = parser.parse_args(script_args.args)
+ args, sizes_args = parser.parse_known_args(script_args.args)
runtest_args = [
'--test-type',
@@ -43,8 +40,7 @@ def main_run(script_args):
os.path.join(common.SRC_DIR, 'infra', 'scripts', 'legacy', 'scripts',
'slave', 'chromium', 'sizes.py')
]
- if args.platform:
- sizes_cmd.extend(['--platform', args.platform])
+ sizes_cmd.extend(sizes_args)
rc = common.run_runtest(script_args, runtest_args + sizes_cmd)
json.dump({
@@ -53,23 +49,3 @@ def main_run(script_args):
}, script_args.output)
return rc
-
-
-def main_compile_targets(script_args):
- parser = create_argparser()
- args = parser.parse_args(script_args.args)
-
- _COMPILE_TARGETS = {
- 'android-cronet': ['cronet'],
- 'android-webview': ['libwebviewchromium'],
- }
-
- json.dump(_COMPILE_TARGETS.get(args.platform, ['chrome']), script_args.output)
-
-
-if __name__ == '__main__':
- funcs = {
- 'run': main_run,
- 'compile_targets': main_compile_targets,
- }
- sys.exit(common.run_script(sys.argv[1:], funcs))
diff --git a/chromium/testing/scripts/test_buildbucket_api_gpu_use_cases.py b/chromium/testing/scripts/test_buildbucket_api_gpu_use_cases.py
new file mode 100755
index 00000000000..7d1a1507b9f
--- /dev/null
+++ b/chromium/testing/scripts/test_buildbucket_api_gpu_use_cases.py
@@ -0,0 +1,98 @@
+#!/usr/bin/env python
+# Copyright 2019 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import argparse
+import json
+import os
+import sys
+
+import common
+
+# Add src/content/test/gpu into sys.path for importing common.
+sys.path.append(os.path.join(os.path.dirname(__file__),
+ '..', '..', 'content', 'test', 'gpu'))
+
+import gather_swarming_json_results
+
+
+class BuildBucketApiGpuUseCaseTests:
+
+ @classmethod
+ def GenerateTests(cls):
+ return ['TestGatherWebGL2TestTimesFromLatestGreenBuild']
+
+ @staticmethod
+ def TestGatherWebGL2TestTimesFromLatestGreenBuild():
+ # Verify we can get more than 2000 WebGL2 tests running time from the
+ # latest successful build.
+ extracted_times, _ = gather_swarming_json_results.GatherResults(
+ bot='Linux FYI Release (NVIDIA)',
+ build=None, # Use the latest green build
+ step='webgl2_conformance_tests')
+
+ if 'times' not in extracted_times:
+ return '"times" is missing from the extracted dict'
+ num_of_tests = len(extracted_times['times'])
+ # From local run, there are 2700+ tests. This is sanity check that we
+ # get reasonable data.
+ if num_of_tests < 2000:
+ return 'expected 2000+ tests, got %d tests' % num_of_tests
+ return None
+
+
+def main(argv):
+ parser = argparse.ArgumentParser()
+ parser.add_argument(
+ '--isolated-script-test-output', type=str,
+ required=True)
+ parser.add_argument(
+ '--isolated-script-test-chartjson-output', type=str,
+ required=False)
+ parser.add_argument(
+ '--isolated-script-test-perf-output', type=str,
+ required=False)
+ parser.add_argument(
+ '--isolated-script-test-filter', type=str,
+ required=False)
+
+ args = parser.parse_args(argv)
+
+ # Run actual tests
+ failures = []
+ for test_name in BuildBucketApiGpuUseCaseTests.GenerateTests():
+ test = getattr(BuildBucketApiGpuUseCaseTests, test_name)
+ error_msg = test()
+ if error_msg is not None:
+ result = '%s: %s' % (test_name, error_msg)
+ print 'FAIL: %s' % result
+ failures.append(result)
+
+ if not failures:
+ print 'PASS: test_buildbucket_api_gpu_use_cases ran successfully.'
+
+ with open(args.isolated_script_test_output, 'w') as json_file:
+ json.dump({
+ 'valid': True,
+ 'failures': failures,
+ }, json_file)
+
+ return 0
+
+
+# This is not really a "script test" so does not need to manually add
+# any additional compile targets.
+def main_compile_targets(args):
+ json.dump([], args.output)
+
+
+if __name__ == '__main__':
+ # Conform minimally to the protocol defined by ScriptTest.
+ if 'compile_targets' in sys.argv:
+ funcs = {
+ 'run': None,
+ 'compile_targets': main_compile_targets,
+ }
+ sys.exit(common.run_script(sys.argv[1:], funcs))
+ sys.exit(main(sys.argv[1:]))
diff --git a/chromium/testing/scripts/test_traffic_annotation_auditor.py b/chromium/testing/scripts/test_traffic_annotation_auditor.py
index 279d020d628..f5b17c18caf 100755
--- a/chromium/testing/scripts/test_traffic_annotation_auditor.py
+++ b/chromium/testing/scripts/test_traffic_annotation_auditor.py
@@ -11,21 +11,66 @@ help it run fast and spam free on trybots are disabled."""
import json
import os
import sys
+import tempfile
import common
+SHEET_CONFIG = {
+ "spreadsheet_id": "1TmBr9jnf1-hrjntiVBzT9EtkINGrtoBYFMWad2MBeaY",
+ "annotations_sheet_name": "Annotations",
+ "changes_sheet_name": "Changes Stats",
+ "silent_change_columns": [],
+ "last_update_column_name": "Last Update",
+}
+
+def is_linux():
+ return sys.platform.startswith('linux')
def main_run(args):
+ annotations_file = tempfile.NamedTemporaryFile()
+ annotations_filename = annotations_file.name
+ annotations_file.close()
+
command_line = [
sys.executable,
os.path.join(common.SRC_DIR, 'tools', 'traffic_annotation', 'scripts',
'traffic_annotation_auditor_tests.py'),
'--build-path',
os.path.join(args.paths['checkout'], 'out', args.build_config_fs),
+ '--annotations-file',
+ annotations_filename,
]
rc = common.run_command(command_line)
+ # Update the Google Sheets on success, but only on the Linux trybot.
+ if rc == 0 and is_linux():
+ config_file = tempfile.NamedTemporaryFile(delete=False)
+ json.dump(SHEET_CONFIG, config_file, indent=4)
+ config_filename = config_file.name
+ config_file.close()
+
+ command_line = [
+ os.path.join(common.SRC_DIR, 'tools', 'traffic_annotation', 'scripts',
+ 'update_annotations_sheet.py'),
+ '--force',
+ '--config-file',
+ config_filename,
+ '--annotations-file',
+ annotations_filename,
+ ]
+ rc = common.run_command(command_line)
+
+ try:
+ os.remove(config_filename)
+ except OSError:
+ pass
+
+ try:
+ os.remove(annotations_filename)
+ except OSError:
+ pass
+
json.dump({
'valid': True,
'failures': ['Please refer to stdout for errors.'] if rc else [],
diff --git a/chromium/testing/test.gni b/chromium/testing/test.gni
index eac0fdd8107..929418c4e84 100644
--- a/chromium/testing/test.gni
+++ b/chromium/testing/test.gni
@@ -369,6 +369,12 @@ template("test") {
deps = []
}
+ if (is_win) {
+ # Initializing CFG data during process creation is a significant
+ # bottleneck for large test binaries, and CFG is not needed for tests,
+ # so disable it. See https://crbug.com/950923 for details.
+ configs -= [ "//build/config/win:cfi_linker" ]
+ }
testonly = true
deps += [
# Give tests the default manifest on Windows (a no-op elsewhere).
diff --git a/chromium/testing/test_env.py b/chromium/testing/test_env.py
index 95fefcce56d..053fbc02a26 100755
--- a/chromium/testing/test_env.py
+++ b/chromium/testing/test_env.py
@@ -86,6 +86,9 @@ def get_sanitizer_env(cmd, asan, lsan, msan, tsan, cfi_diag):
else:
symbolization_options = []
+ # Leverage sanitizer to print stack trace on abort (e.g. assertion failure).
+ symbolization_options.append('handle_abort=1')
+
if asan:
asan_options = symbolization_options[:]
if lsan:
@@ -311,10 +314,17 @@ def run_executable(cmd, env, stdoutfile=None):
cmd[0] = cmd[0].replace('/', os.path.sep)
cmd = fix_python_path(cmd)
+ # We also want to print the GTEST env vars that were set by the caller,
+ # because you need them to reproduce the task properly.
+ env_to_print = extra_env.copy()
+ for env_var_name in ('GTEST_SHARD_INDEX', 'GTEST_TOTAL_SHARDS'):
+ if env_var_name in env:
+ env_to_print[env_var_name] = env[env_var_name]
+
print('Additional test environment:\n%s\n'
'Command: %s\n' % (
'\n'.join(' %s=%s' %
- (k, v) for k, v in sorted(extra_env.iteritems())),
+ (k, v) for k, v in sorted(env_to_print.iteritems())),
' '.join(cmd)))
sys.stdout.flush()
env.update(extra_env or {})
diff --git a/chromium/testing/variations/fieldtrial_testing_config.json b/chromium/testing/variations/fieldtrial_testing_config.json
index f84acc84e17..5124bf1901b 100644
--- a/chromium/testing/variations/fieldtrial_testing_config.json
+++ b/chromium/testing/variations/fieldtrial_testing_config.json
@@ -35,6 +35,24 @@
]
}
],
+ "AccessibilityImageDescriptions": [
+ {
+ "platforms": [
+ "windows",
+ "mac",
+ "chromeos",
+ "linux"
+ ],
+ "experiments": [
+ {
+ "name": "AccessibilityImageDescriptions",
+ "enable_features": [
+ "ExperimentalAccessibilityLabels"
+ ]
+ }
+ ]
+ }
+ ],
"AccountConsistencyVariations": [
{
"platforms": [
@@ -471,6 +489,21 @@
]
}
],
+ "AndroidSurfaceControl": [
+ {
+ "platforms": [
+ "android"
+ ],
+ "experiments": [
+ {
+ "name": "EnableAndroidSurfaceControl",
+ "enable_features": [
+ "AndroidSurfaceControl"
+ ]
+ }
+ ]
+ }
+ ],
"AppLauncherRefresh": [
{
"platforms": [
@@ -525,10 +558,12 @@
],
"experiments": [
{
- "name": "AudioProcess_Sandboxed_APM_v9",
+ "name": "AudioProcess_APM",
+ "params": {
+ "teardown_timeout_s": "900"
+ },
"enable_features": [
"AudioServiceAudioStreams",
- "AudioServiceLaunchOnStartup",
"AudioServiceOutOfProcess",
"AudioServiceSandbox",
"WebRtcApmInAudioService"
@@ -581,28 +616,7 @@
],
"experiments": [
{
- "name": "Enabled_LeadingIcon",
- "params": {
- "variant": "leading-icon"
- },
- "enable_features": [
- "AutofillDropdownLayout"
- ]
- },
- {
- "name": "Enabled_TrailingIcon",
- "params": {
- "variant": "trailing-icon"
- },
- "enable_features": [
- "AutofillDropdownLayout"
- ]
- },
- {
- "name": "Enabled_TwoLinesLeadingIcon",
- "params": {
- "variant": "two-lines-leading-icon"
- },
+ "name": "Enabled",
"enable_features": [
"AutofillDropdownLayout"
]
@@ -650,6 +664,24 @@
]
}
],
+ "AutofillEnableLocalCardMigrationForNonSyncUser": [
+ {
+ "platforms": [
+ "chromeos",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "AutofillEnableLocalCardMigrationForNonSyncUser"
+ ]
+ }
+ ]
+ }
+ ],
"AutofillFieldMetadata": [
{
"platforms": [
@@ -667,6 +699,46 @@
]
}
],
+ "AutofillImportDynamicForms": [
+ {
+ "platforms": [
+ "android",
+ "chromeos",
+ "ios",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "AutofillImportDynamicForms"
+ ]
+ }
+ ]
+ }
+ ],
+ "AutofillImportNonFocusableCreditCardForms": [
+ {
+ "platforms": [
+ "android",
+ "chromeos",
+ "ios",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "AutofillImportNonFocusableCreditCardForms"
+ ]
+ }
+ ]
+ }
+ ],
"AutofillLocalCardMigration": [
{
"platforms": [
@@ -703,6 +775,24 @@
]
}
],
+ "AutofillLocalCardMigrationUsesStrikeSystemV2": [
+ {
+ "platforms": [
+ "chromeos",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "AutofillLocalCardMigrationUsesStrikeSystemV2"
+ ]
+ }
+ ]
+ }
+ ],
"AutofillMetadataUploads": [
{
"platforms": [
@@ -723,6 +813,27 @@
]
}
],
+ "AutofillOffNoServerData": [
+ {
+ "platforms": [
+ "android",
+ "android_webview",
+ "chromeos",
+ "ios",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "AutofillOffNoServerData"
+ ]
+ }
+ ]
+ }
+ ],
"AutofillPreviewStyleExperiment": [
{
"platforms": [
@@ -756,6 +867,45 @@
]
}
],
+ "AutofillProfileValidation": [
+ {
+ "platforms": [
+ "android",
+ "chromeos",
+ "ios",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "EnabledClient_20190211",
+ "enable_features": [
+ "AutofillProfileClientValidation"
+ ],
+ "disable_features": [
+ "AutofillProfileServerValidation"
+ ]
+ },
+ {
+ "name": "EnabledClientServer_20190211",
+ "enable_features": [
+ "AutofillProfileClientValidation",
+ "AutofillProfileServerValidation"
+ ]
+ },
+ {
+ "name": "EnabledServer_20190211",
+ "enable_features": [
+ "AutofillProfileServerValidation"
+ ],
+ "disable_features": [
+ "AutofillProfileClientValidation "
+ ]
+ }
+ ]
+ }
+ ],
"AutofillRefreshStyleAndroid": [
{
"platforms": [
@@ -898,6 +1048,7 @@
"AutofillUpstreamEditableExpirationDate": [
{
"platforms": [
+ "android",
"chromeos",
"linux",
"mac",
@@ -913,6 +1064,24 @@
]
}
],
+ "AutofillUseImprovedLabelDisambiguation": [
+ {
+ "platforms": [
+ "chromeos",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "AutofillUseImprovedLabelDisambiguation"
+ ]
+ }
+ ]
+ }
+ ],
"AutomaticTabDiscarding": [
{
"platforms": [
@@ -1177,6 +1346,22 @@
]
}
],
+ "CertDualVerificationTrial": [
+ {
+ "platforms": [
+ "linux",
+ "mac"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "CertDualVerificationTrial"
+ ]
+ }
+ ]
+ }
+ ],
"CertificateTransparencyLogAuditing": [
{
"platforms": [
@@ -1281,28 +1466,6 @@
]
}
],
- "CompressParkableStringsInForeground": [
- {
- "platforms": [
- "android",
- "chromeos",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "CompressParkableStringsInForeground"
- ],
- "disable_features": [
- "CompressParkableStringsInBackground"
- ]
- }
- ]
- }
- ],
"ContentCapture": [
{
"platforms": [
@@ -1345,6 +1508,21 @@
]
}
],
+ "ContextualSearchDefinitions": [
+ {
+ "platforms": [
+ "android"
+ ],
+ "experiments": [
+ {
+ "name": "ContextualSearchDefinitions",
+ "enable_features": [
+ "ContextualSearchDefinitions"
+ ]
+ }
+ ]
+ }
+ ],
"CopylessPaste": [
{
"platforms": [
@@ -1456,40 +1634,6 @@
]
}
],
- "DataReductionProxyServerExperiments": [
- {
- "platforms": [
- "android"
- ],
- "experiments": [
- {
- "name": "OnDeviceSafeBrowsingFieldTrialEnabled",
- "params": {
- "exp": "disable_server_safebrowsing"
- }
- }
- ]
- }
- ],
- "DataSaverSiteBreakdownUsingPageLoadMetrics": [
- {
- "platforms": [
- "android",
- "windows",
- "mac",
- "chromeos",
- "linux"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "DataSaverSiteBreakdownUsingPageLoadMetrics"
- ]
- }
- ]
- }
- ],
"DecoupleTranslateLanguage": [
{
"platforms": [
@@ -1521,24 +1665,6 @@
]
}
],
- "DefaultEnableGpuRasterization": [
- {
- "platforms": [
- "mac",
- "windows",
- "chromeos",
- "android"
- ],
- "experiments": [
- {
- "name": "DefaultEnableGpuRasterization",
- "enable_features": [
- "DefaultEnableGpuRasterization"
- ]
- }
- ]
- }
- ],
"DefaultEnableOopRasterization": [
{
"platforms": [
@@ -1930,18 +2056,6 @@
]
}
],
- "ExtensionDeveloperModeWarning": [
- {
- "platforms": [
- "mac"
- ],
- "experiments": [
- {
- "name": "Enabled"
- }
- ]
- }
- ],
"ExtensionInstallVerification": [
{
"platforms": [
@@ -1958,9 +2072,13 @@
"FCMInvalidationsExperiment": [
{
"platforms": [
+ "android",
"windows",
"mac",
- "chromeos"
+ "chromeos",
+ "ios",
+ "linux",
+ "android_webview"
],
"experiments": [
{
@@ -2108,7 +2226,10 @@
],
"experiments": [
{
- "name": "branded"
+ "name": "Enabled",
+ "enable_features": [
+ "GoogleBrandedContextMenu"
+ ]
}
]
}
@@ -2125,6 +2246,22 @@
]
}
],
+ "GpuRasterizationViewportRestriction": [
+ {
+ "platforms": [
+ "android",
+ "android_webview"
+ ],
+ "experiments": [
+ {
+ "name": "Disabled",
+ "disable_features": [
+ "EnableGpuRasterizationViewportRestriction"
+ ]
+ }
+ ]
+ }
+ ],
"GpuScheduler": [
{
"platforms": [
@@ -2158,21 +2295,12 @@
"//4": "captured from the experiment. The perf results",
"//5": "from the default value are sufficient.",
"name": "Enabled",
- "enable_features": [
- "GwpAsanMalloc"
- ]
- }
- ]
- }
- ],
- "GwpAsanMallocWindowsLaunch": [
- {
- "platforms": [
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled",
+ "params": {
+ "MaxAllocations": "30",
+ "MaxMetadata": "100",
+ "ProcessSamplingProbability": "0.2",
+ "TotalPages": "100"
+ },
"enable_features": [
"GwpAsanMalloc"
]
@@ -2234,24 +2362,6 @@
]
}
],
- "Html5ByDefault": [
- {
- "platforms": [
- "chromeos",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "enable_features": [
- "PreferHtmlOverPlugins"
- ]
- }
- ]
- }
- ],
"IDBTombstoneSweeper": [
{
"platforms": [
@@ -2454,6 +2564,12 @@
],
"experiments": [
{
+ "name": "Control",
+ "disable_features": [
+ "InterestFeedContentSuggestions"
+ ]
+ },
+ {
"name": "Enabled",
"enable_features": [
"InterestFeedContentSuggestions"
@@ -2499,7 +2615,7 @@
]
}
],
- "LegacySymantecPKI": [
+ "LazyLoad": [
{
"platforms": [
"android",
@@ -2510,15 +2626,20 @@
],
"experiments": [
{
- "name": "Enabled_20181012",
+ "name": "Enabled",
+ "params": {
+ "restrict-lazy-load-frames-to-data-saver-only": "true",
+ "restrict-lazy-load-images-to-data-saver-only": "true"
+ },
"enable_features": [
- "LegacySymantecPKI"
+ "LazyFrameLoading",
+ "LazyImageLoading"
]
}
]
}
],
- "LevelDBPerformRewrite": [
+ "LegacySymantecPKI": [
{
"platforms": [
"android",
@@ -2529,27 +2650,28 @@
],
"experiments": [
{
- "name": "Enabled",
+ "name": "Enabled_20181012",
"enable_features": [
- "LevelDBPerformRewrite"
+ "LegacySymantecPKI"
]
}
]
}
],
- "LocalScreenCasting": [
+ "LevelDBPerformRewrite": [
{
"platforms": [
+ "android",
+ "chromeos",
"linux",
"mac",
- "windows",
- "chromeos"
+ "windows"
],
"experiments": [
{
"name": "Enabled",
"enable_features": [
- "LocalScreenCasting"
+ "LevelDBPerformRewrite"
]
}
]
@@ -2772,20 +2894,16 @@
]
}
],
- "MseBufferByPts": [
+ "MojoChannelMac": [
{
"platforms": [
- "android",
- "chromeos",
- "linux",
- "mac",
- "windows"
+ "mac"
],
"experiments": [
{
"name": "Enabled",
"enable_features": [
- "MseBufferByPts"
+ "MojoChannelMac"
]
}
]
@@ -2862,34 +2980,31 @@
]
}
],
- "NativeCrxBindings": [
+ "NativeNotifications": [
{
"platforms": [
- "chromeos",
- "linux",
- "mac",
"windows"
],
"experiments": [
{
"name": "Enabled",
"enable_features": [
- "NativeCrxBindings"
+ "NativeNotifications"
]
}
]
}
],
- "NativeNotifications": [
+ "NativeWindowOcclusionTrackerWin": [
{
"platforms": [
"windows"
],
"experiments": [
{
- "name": "Enabled",
+ "name": "NativeWindowOcclusionTrackerWin",
"enable_features": [
- "NativeNotifications"
+ "CalculateNativeWinOcclusion"
]
}
]
@@ -2902,12 +3017,11 @@
],
"experiments": [
{
- "name": "AppsEmailThenNTPLaunched-002",
+ "name": "AppsBackground-007",
"params": {
- "new-user-modules": "nux-google-apps,nux-email,nux-set-as-default,signin-view",
- "onboarding-group": "AppsEmailThenNTPLaunchedSynthetic-002",
- "returning-user-modules": "nux-set-as-default",
- "show-email-interstitial": "false"
+ "new-user-modules": "nux-google-apps,nux-ntp-background,nux-set-as-default,signin-view",
+ "onboarding-group": "AppsBackgroundSynthetic-007",
+ "returning-user-modules": "nux-set-as-default"
},
"enable_features": [
"NuxOnboarding"
@@ -2931,6 +3045,7 @@
"is_same_host_scale": "0",
"is_url_incremented_scale": "100",
"ratio_area_scale": "100",
+ "retry_preconnect_wait_time_ms": "50",
"same_origin_preconnecting_allowed": "true",
"source_engagement_score_scale": "100",
"target_engagement_score_scale": "100"
@@ -2942,7 +3057,7 @@
]
}
],
- "NetworkQualityEstimator": [
+ "NetUnusedIdleSocketTimeout": [
{
"platforms": [
"android",
@@ -2953,10 +3068,13 @@
],
"experiments": [
{
- "name": "Enabled9",
+ "name": "Enabled_60_seconds_20190408",
"params": {
- "cap_ect_based_on_signal_strength": "true"
- }
+ "unused_idle_socket_timeout_seconds": "60"
+ },
+ "enable_features": [
+ "NetUnusedIdleSocketTimeout"
+ ]
}
]
}
@@ -3247,6 +3365,7 @@
"OmniboxRichEntitySuggestions",
"OmniboxTailSuggestions",
"OmniboxUIExperimentMaxAutocompleteMatches",
+ "QueryInOmnibox",
"ZeroSuggestRedirectToChrome",
"ZeroSuggestSwapTitleAndUrl"
]
@@ -3342,6 +3461,27 @@
]
}
],
+ "OutOfBlinkCors": [
+ {
+ "platforms": [
+ "android",
+ "android_webview",
+ "chromeos",
+ "ios",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "OutOfBlinkCors"
+ ]
+ }
+ ]
+ }
+ ],
"OverflowIconsForMediaControls": [
{
"platforms": [
@@ -3470,7 +3610,7 @@
],
"experiments": [
{
- "name": "Enabled",
+ "name": "Enabled_20190328",
"enable_features": [
"FillOnAccountSelectHttp"
]
@@ -3478,30 +3618,6 @@
]
}
],
- "PasswordGenerationRequirements": [
- {
- "platforms": [
- "android",
- "chromeos",
- "linux",
- "mac",
- "windows"
- ],
- "experiments": [
- {
- "name": "Enabled",
- "params": {
- "prefix_length": "0",
- "timeout": "5000",
- "version": "1"
- },
- "enable_features": [
- "PasswordGenerationRequirementsDomainOverrides"
- ]
- }
- ]
- }
- ],
"PasswordProtectionForEnterprise": [
{
"platforms": [
@@ -3776,6 +3892,25 @@
]
}
],
+ "PrerenderFallbackToPreconnect": [
+ {
+ "platforms": [
+ "android",
+ "chromeos",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled_20190410",
+ "enable_features": [
+ "PrerenderFallbackToPreconnect"
+ ]
+ }
+ ]
+ }
+ ],
"PreviewsClientLoFi": [
{
"platforms": [
@@ -3838,6 +3973,21 @@
]
}
],
+ "PreviewsReloadsAreSoftOptOuts": [
+ {
+ "platforms": [
+ "android"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "PreviewsReloadsAreSoftOptOuts"
+ ]
+ }
+ ]
+ }
+ ],
"PreviewsSlowPageTriggering": [
{
"platforms": [
@@ -3845,9 +3995,9 @@
],
"experiments": [
{
- "name": "SlowPageTriggeringFor3G_20181204",
+ "name": "SlowPageTriggeringFor4G_20190312",
"params": {
- "session_max_ect_trigger": "3G"
+ "session_max_ect_trigger": "4G"
},
"enable_features": [
"PreviewsSlowPageTriggering"
@@ -3989,21 +4139,6 @@
]
}
],
- "RemoveGpuRasterizationViewportRestriction": [
- {
- "platforms": [
- "android"
- ],
- "experiments": [
- {
- "name": "RemoveRestriction",
- "disable_features": [
- "EnableGpuRasterizationViewportRestriction"
- ]
- }
- ]
- }
- ],
"RemoveNTPFakebox": [
{
"platforms": [
@@ -4427,7 +4562,10 @@
],
"experiments": [
{
- "name": "Enabled",
+ "name": "EnabledCopyIcon",
+ "params": {
+ "variation": "copy_icon"
+ },
"enable_features": [
"SearchReadyOmnibox"
]
@@ -4447,7 +4585,7 @@
],
"experiments": [
{
- "name": "Enabled_20190212",
+ "name": "Enabled_20190318",
"enable_features": [
"ServiceWorkerAggressiveCodeCache"
]
@@ -4489,11 +4627,9 @@
]
}
],
- "ServiceWorkerServicification": [
+ "ServiceWorkerIsolateInForeground": [
{
"platforms": [
- "android",
- "android_webview",
"chromeos",
"linux",
"mac",
@@ -4501,9 +4637,25 @@
],
"experiments": [
{
- "name": "Enabled2",
+ "name": "Enabled",
"enable_features": [
- "ServiceWorkerServicification"
+ "ServiceWorkerIsolateInForeground"
+ ]
+ }
+ ]
+ }
+ ],
+ "ServiceWorkerIsolateInForegroundAndroid": [
+ {
+ "platforms": [
+ "android",
+ "android_webview"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "ServiceWorkerIsolateInForeground"
]
}
]
@@ -4765,6 +4917,48 @@
]
}
],
+ "SyncButterWallet": [
+ {
+ "platforms": [
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled_DownstreamBehindButton",
+ "enable_features": [
+ "AutofillEnableAccountWalletStorage",
+ "AutofillSaveCardImprovedUserConsent",
+ "SyncSupportSecondaryAccount"
+ ],
+ "disable_features": [
+ "AlwaysShowServerCardsInSyncTransport"
+ ]
+ }
+ ]
+ }
+ ],
+ "SyncE2ELatency": [
+ {
+ "platforms": [
+ "android",
+ "windows",
+ "mac",
+ "chromeos",
+ "ios",
+ "linux"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "SyncE2ELatencyMeasurement"
+ ]
+ }
+ ]
+ }
+ ],
"SyncPseudoUss'": [
{
"platforms": [
@@ -4815,6 +5009,26 @@
]
}
],
+ "SyncUSSAutofillProfile": [
+ {
+ "platforms": [
+ "android",
+ "chromeos",
+ "ios",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "SyncUSSAutofillProfile"
+ ]
+ }
+ ]
+ }
+ ],
"SyncUssBookmarks'": [
{
"platforms": [
@@ -4835,6 +5049,25 @@
]
}
],
+ "SyncUssPasswords'": [
+ {
+ "platforms": [
+ "android",
+ "chromeos",
+ "ios",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "SyncUSSPasswords"
+ ]
+ }
+ ]
+ }
+ ],
"TabRanker": [
{
"platforms": [
@@ -5076,39 +5309,37 @@
]
}
],
- "UnifiedConsent": [
+ "UnifiedAutoplay": [
{
"platforms": [
- "android",
"linux",
"mac",
+ "chromeos",
"windows"
],
"experiments": [
{
- "name": "Enabled3",
- "enable_features": [
- "UnifiedConsent"
+ "name": "PreseedDisabled",
+ "disable_features": [
+ "PreloadMediaEngagementData"
]
}
]
}
],
- "UpdateClientUseJSON": [
+ "UnifiedConsent": [
{
"platforms": [
"android",
- "chromeos",
"linux",
"mac",
- "windows",
- "ios"
+ "windows"
],
"experiments": [
{
- "name": "UpdateClientUseJSON",
+ "name": "Enabled3",
"enable_features": [
- "UpdateClientUseJSON"
+ "UnifiedConsent"
]
}
]
@@ -5129,7 +5360,7 @@
]
}
],
- "UseGoogleLocalNtp": [
+ "UseAlternateFakeboxOnNtp": [
{
"platforms": [
"chromeos",
@@ -5139,12 +5370,10 @@
],
"experiments": [
{
- "name": "UseGoogleLocalNtp",
+ "name": "UseAlternateFakeboxOnNtp",
"enable_features": [
- "DoodlesOnLocalNtp",
- "PromosOnLocalNtp",
- "SearchSuggestionsOnLocalNtp",
- "UseGoogleLocalNtp"
+ "FakeboxSearchIconOnNtp",
+ "UseAlternateFakeboxOnNtp"
]
}
]
@@ -5183,6 +5412,24 @@
]
}
],
+ "UserActivityPredictionMlService": [
+ {
+ "platforms": [
+ "chromeos"
+ ],
+ "experiments": [
+ {
+ "name": "UserActivityPredictionMlService",
+ "params": {
+ "dim_threshold": "-1.0"
+ },
+ "enable_features": [
+ "UserActivityPredictionMlService"
+ ]
+ }
+ ]
+ }
+ ],
"V8AsmJSToWasm": [
{
"platforms": [
@@ -5532,6 +5779,21 @@
]
}
],
+ "WebContentsOcclusionWin": [
+ {
+ "platforms": [
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "WebContentsOcclusionWin",
+ "enable_features": [
+ "WebContentsOcclusion"
+ ]
+ }
+ ]
+ }
+ ],
"WebPaymentsPerMethodCanMakePaymentQuota": [
{
"platforms": [
@@ -5552,6 +5814,24 @@
]
}
],
+ "WebRTC-AdaptiveLossThresholds": [
+ {
+ "platforms": [
+ "windows",
+ "mac",
+ "chromeos",
+ "linux",
+ "ios",
+ "android",
+ "android_webview"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled,balance_incr:5kbps,balance_decr:24kbps,exponent:0.7,resets:true"
+ }
+ ]
+ }
+ ],
"WebRTC-Aec3AgcGainChangeResponseKillSwitch": [
{
"platforms": [
@@ -5570,6 +5850,37 @@
]
}
],
+ "WebRTC-Aec3FilterAnalyzerIncrementalAnalysisKillSwitch": [
+ {
+ "platforms": [
+ "android",
+ "chromeos",
+ "linux",
+ "mac",
+ "windows"
+ ],
+ "experiments": [
+ {
+ "name": "SwitchEnabled"
+ }
+ ]
+ }
+ ],
+ "WebRTC-Audio-NetEqDelayHistogram": [
+ {
+ "platforms": [
+ "windows",
+ "mac",
+ "chromeos",
+ "linux"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled-95-0.9993"
+ }
+ ]
+ }
+ ],
"WebRTC-Audio-NetEqForceTargetDelayPercentile": [
{
"platforms": [
@@ -5617,6 +5928,24 @@
]
}
],
+ "WebRTC-Bwe-LossBasedControl": [
+ {
+ "platforms": [
+ "windows",
+ "mac",
+ "chromeos",
+ "linux",
+ "ios",
+ "android",
+ "android_webview"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled,balance_incr:5kbps,balance_decr:24kbps,exponent:0.7,resets:true"
+ }
+ ]
+ }
+ ],
"WebRTC-EnableWebRtcEcdsa": [
{
"platforms": [
@@ -5654,6 +5983,24 @@
]
}
],
+ "WebRTC-ICE-mDNS": [
+ {
+ "platforms": [
+ "chromeos",
+ "windows",
+ "mac",
+ "linux"
+ ],
+ "experiments": [
+ {
+ "name": "Enabled",
+ "enable_features": [
+ "WebRtcHideLocalIpsWithMdns"
+ ]
+ }
+ ]
+ }
+ ],
"WebRTC-KeepAbsSendTimeExtension": [
{
"platforms": [
@@ -5751,6 +6098,23 @@
]
}
],
+ "WebRTC-VideoRateControl": [
+ {
+ "platforms": [
+ "windows",
+ "mac",
+ "chromeos",
+ "linux",
+ "ios",
+ "android"
+ ],
+ "experiments": [
+ {
+ "name": "pacing_factor:1.0,trust_vp8:true,trust_vp9:true,video_hysteresis:1.2,bitrate_adjuster:true,vp8_s0_boost:false"
+ }
+ ]
+ }
+ ],
"WebRtcHybridAgc": [
{
"platforms": [