mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-12-01 01:36:09 +03:00
227 lines
4.7 KiB
Plaintext
227 lines
4.7 KiB
Plaintext
# Copyright (c) 2013 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("//build/config/features.gni")
|
|
import("//testing/libfuzzer/fuzzer_test.gni")
|
|
|
|
assert(!is_ios)
|
|
|
|
if (is_android) {
|
|
import("//build/config/android/rules.gni") # For generate_jni().
|
|
}
|
|
|
|
source_ids = "//third_party/usb_ids/usb.ids"
|
|
generated_ids = "$target_gen_dir/usb_ids_gen.cc"
|
|
|
|
static_library("usb") {
|
|
sources = [
|
|
"usb_configuration_android.cc",
|
|
"usb_configuration_android.h",
|
|
"usb_descriptors.cc",
|
|
"usb_descriptors.h",
|
|
"usb_device.cc",
|
|
"usb_device.h",
|
|
"usb_device_android.cc",
|
|
"usb_device_android.h",
|
|
"usb_device_handle.cc",
|
|
"usb_device_handle.h",
|
|
"usb_device_handle_android.cc",
|
|
"usb_device_handle_android.h",
|
|
"usb_device_handle_win.cc",
|
|
"usb_device_handle_win.h",
|
|
"usb_device_linux.cc",
|
|
"usb_device_linux.h",
|
|
"usb_device_win.cc",
|
|
"usb_device_win.h",
|
|
"usb_endpoint_android.cc",
|
|
"usb_endpoint_android.h",
|
|
"usb_interface_android.cc",
|
|
"usb_interface_android.h",
|
|
"usb_service.cc",
|
|
"usb_service.h",
|
|
"usb_service_android.cc",
|
|
"usb_service_android.h",
|
|
"usb_service_win.cc",
|
|
"usb_service_win.h",
|
|
"webusb_descriptors.cc",
|
|
"webusb_descriptors.h",
|
|
]
|
|
|
|
deps = [
|
|
"//base/third_party/dynamic_annotations",
|
|
"//components/device_event_log",
|
|
"//device/base",
|
|
"//device/usb/public/interfaces",
|
|
"//net",
|
|
]
|
|
|
|
public_deps = [
|
|
"//base",
|
|
"//url",
|
|
]
|
|
|
|
if (use_udev) {
|
|
sources += [
|
|
"usb_service_linux.cc",
|
|
"usb_service_linux.h",
|
|
]
|
|
deps += [ "//device/udev_linux" ]
|
|
}
|
|
|
|
if (is_android) {
|
|
deps += [ ":jni_headers" ]
|
|
} else {
|
|
deps += [ ":usb_device_ids" ]
|
|
sources += [
|
|
"usb_ids.cc",
|
|
"usb_ids.h",
|
|
generated_ids,
|
|
]
|
|
}
|
|
|
|
if (is_win || is_mac) {
|
|
sources += [
|
|
"usb_context.cc",
|
|
"usb_context.h",
|
|
"usb_device_handle_impl.cc",
|
|
"usb_device_handle_impl.h",
|
|
"usb_device_impl.cc",
|
|
"usb_device_impl.h",
|
|
"usb_error.cc",
|
|
"usb_error.h",
|
|
"usb_service_impl.cc",
|
|
"usb_service_impl.h",
|
|
]
|
|
|
|
deps += [ "//third_party/libusb" ]
|
|
}
|
|
|
|
if (is_win) {
|
|
libs = [ "setupapi.lib" ]
|
|
}
|
|
|
|
if (is_android || is_chromeos || is_linux) {
|
|
sources += [
|
|
"usb_device_handle_usbfs.cc",
|
|
"usb_device_handle_usbfs.h",
|
|
]
|
|
}
|
|
|
|
if (is_chromeos) {
|
|
deps += [
|
|
"//chromeos",
|
|
"//dbus",
|
|
]
|
|
}
|
|
}
|
|
|
|
static_library("test_support") {
|
|
testonly = true
|
|
|
|
sources = [
|
|
"fake_usb_device_handle.cc",
|
|
"fake_usb_device_handle.h",
|
|
"mock_usb_device.cc",
|
|
"mock_usb_device.h",
|
|
"mock_usb_device_handle.cc",
|
|
"mock_usb_device_handle.h",
|
|
"mock_usb_service.cc",
|
|
"mock_usb_service.h",
|
|
]
|
|
|
|
deps = [
|
|
":usb",
|
|
"//base",
|
|
"//net",
|
|
"//testing/gtest",
|
|
]
|
|
|
|
public_deps = [
|
|
"//testing/gmock",
|
|
]
|
|
}
|
|
|
|
action("usb_device_ids") {
|
|
script = "//device/usb/tools/usb_ids.py"
|
|
inputs = [
|
|
source_ids,
|
|
]
|
|
outputs = [
|
|
generated_ids,
|
|
]
|
|
args = [
|
|
"-i",
|
|
rebase_path(source_ids, root_build_dir),
|
|
"-o",
|
|
rebase_path(generated_ids, root_build_dir),
|
|
]
|
|
|
|
# Only the device_usb target can depend on us.
|
|
visibility = [ ":usb" ]
|
|
}
|
|
|
|
fuzzer_test("webusb_descriptors_fuzzer") {
|
|
sources = [
|
|
"webusb_descriptors_fuzzer.cc",
|
|
]
|
|
deps = [
|
|
":test_support",
|
|
":usb",
|
|
"//base",
|
|
"//base:i18n",
|
|
]
|
|
seed_corpus = "fuzz_corpus"
|
|
libfuzzer_options = [ "max_len=2048" ]
|
|
}
|
|
|
|
fuzzer_test("usb_descriptors_fuzzer") {
|
|
sources = [
|
|
"usb_descriptors_fuzzer.cc",
|
|
]
|
|
deps = [
|
|
":usb",
|
|
"//device/usb/mojo",
|
|
"//device/usb/public/interfaces",
|
|
"//mojo/public/cpp/bindings",
|
|
]
|
|
seed_corpus = "fuzz_corpus"
|
|
libfuzzer_options = [ "max_len=2048" ]
|
|
}
|
|
|
|
fuzzer_test("usb_string_read_fuzzer") {
|
|
sources = [
|
|
"usb_string_read_fuzzer.cc",
|
|
]
|
|
deps = [
|
|
":test_support",
|
|
":usb",
|
|
"//base",
|
|
]
|
|
seed_corpus = "fuzz_corpus"
|
|
libfuzzer_options = [ "max_len=2048" ]
|
|
}
|
|
|
|
if (is_android) {
|
|
java_sources_needing_jni = [
|
|
"android/java/src/org/chromium/device/usb/ChromeUsbConfiguration.java",
|
|
"android/java/src/org/chromium/device/usb/ChromeUsbConnection.java",
|
|
"android/java/src/org/chromium/device/usb/ChromeUsbDevice.java",
|
|
"android/java/src/org/chromium/device/usb/ChromeUsbEndpoint.java",
|
|
"android/java/src/org/chromium/device/usb/ChromeUsbInterface.java",
|
|
"android/java/src/org/chromium/device/usb/ChromeUsbService.java",
|
|
]
|
|
|
|
generate_jni("jni_headers") {
|
|
sources = java_sources_needing_jni
|
|
jni_package = "device"
|
|
}
|
|
|
|
android_library("java") {
|
|
java_files = java_sources_needing_jni
|
|
deps = [
|
|
"//base:base_java",
|
|
]
|
|
}
|
|
}
|