Import cobalt 25.master.0.1034729
diff --git a/url/BUILD.gn b/url/BUILD.gn
index a09bbe6..3d27a69 100644
--- a/url/BUILD.gn
+++ b/url/BUILD.gn
@@ -1,18 +1,20 @@
-# Copyright (c) 2013 The Chromium Authors. All rights reserved.
+# Copyright 2013 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/buildflag_header.gni")
-import("//testing/test.gni")
import("//testing/libfuzzer/fuzzer_test.gni")
+import("//testing/test.gni")
import("features.gni")
-if (is_android) {
+import("//build/config/cronet/config.gni")
+
+if (is_android || is_robolectric) {
import("//build/config/android/rules.gni")
}
-buildflag_header("url_features") {
- header = "url_features.h"
+buildflag_header("buildflags") {
+ header = "buildflags.h"
flags = [ "USE_PLATFORM_ICU_ALTERNATIVES=$use_platform_icu_alternatives" ]
}
@@ -47,7 +49,8 @@
"url_canon_stdurl.cc",
"url_constants.cc",
"url_constants.h",
- "url_export.h",
+ "url_features.cc",
+ "url_features.h",
"url_file.h",
"url_parse_file.cc",
"url_parse_internal.h",
@@ -56,25 +59,11 @@
"url_util_internal.h",
]
- defines = [ "URL_IMPLEMENTATION" ]
+ defines = [ "IS_URL_IMPL" ]
- configs += [
- # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
- "//build/config/compiler:no_size_t_to_int_warning",
- ]
+ public_deps = [ "//base" ]
- if (is_starboard) {
- configs += [ "//build/config/compiler:chromium_code" ]
- }
-
- deps = [
- "//base",
- "//base/third_party/dynamic_annotations",
- ]
-
- if (is_starboard) {
- deps += [ "//starboard/common" ]
- }
+ deps = [ "//base/third_party/dynamic_annotations" ]
if (is_win) {
# Don't conflict with Windows' "url.dll".
@@ -86,7 +75,7 @@
if (is_android) {
sources += [ "url_idna_icu_alternatives_android.cc" ]
deps += [
- ":url_features",
+ ":buildflags",
":url_java",
":url_jni_headers",
"//base",
@@ -105,30 +94,118 @@
"url_canon_icu.h",
"url_idna_icu.cc",
]
- deps += [ "//third_party/icu" ]
+ deps += [
+ "//base:i18n",
+ "//third_party/icu",
+ ]
}
}
-if (is_android && !is_starboard) {
- android_library("url_java") {
- java_files = [ "android/java/src/org/chromium/url/IDNStringUtil.java" ]
- deps = [
- "//base:base_java",
- ]
- }
-
+if ((is_android || is_robolectric) && !use_cobalt_customizations) {
generate_jni("url_jni_headers") {
sources = [
"android/java/src/org/chromium/url/IDNStringUtil.java",
+ "android/java/src/org/chromium/url/Origin.java",
]
- jni_package = "url"
+ }
+
+ generate_jni("gurl_jni_headers") {
+ sources = [
+ "android/java/src/org/chromium/url/GURL.java",
+ "android/java/src/org/chromium/url/Parsed.java",
+ ]
+ }
+
+ source_set("gurl_android") {
+ sources = [
+ "android/gurl_android.cc",
+ "android/gurl_android.h",
+ "android/parsed_android.cc",
+ "android/parsed_android.h",
+ ]
+
+ deps = [
+ ":gurl_jni_headers",
+ ":url",
+ "//base:base",
+ ]
+
+ if (is_robolectric) {
+ # Make jni.h available.
+ configs += [ "//third_party/jdk" ]
+ }
+ }
+
+ static_library("origin_android") {
+ sources = [ "android/origin_android.cc" ]
+
+ deps = [
+ ":gurl_android",
+ ":url",
+ ":url_jni_headers",
+ "//base",
+ ]
}
}
-if (!is_starboard || !is_win) {
- target(gtest_target_type, "url_unittests") {
- testonly = true
+if (is_android && !use_cobalt_customizations) {
+ android_library("url_java") {
+ sources = [ "android/java/src/org/chromium/url/IDNStringUtil.java" ]
+ deps = [ "//base:jni_java" ]
+ }
+}
+if (is_android && !is_cronet_build && !use_cobalt_customizations) {
+ android_library("gurl_java") {
+ sources = [
+ "android/java/src/org/chromium/url/GURL.java",
+ "android/java/src/org/chromium/url/Parsed.java",
+ "android/java/src/org/chromium/url/URI.java",
+ ]
+ deps = [
+ "//base:base_java",
+ "//base:jni_java",
+ "//build/android:build_java",
+ "//third_party/android_deps:com_google_errorprone_error_prone_annotations_java",
+ "//third_party/androidx:androidx_annotation_annotation_java",
+ "//url/mojom:url_mojom_gurl_java",
+ ]
+ annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ]
+ }
+
+ android_library("origin_java") {
+ sources = [ "android/java/src/org/chromium/url/Origin.java" ]
+ deps = [
+ ":gurl_java",
+ "//base:jni_java",
+ "//build/android:build_java",
+ "//mojo/public/java:bindings_java",
+ "//mojo/public/mojom/base:base_java",
+ "//url/mojom:url_mojom_origin_java",
+ ]
+ annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ]
+ }
+}
+
+source_set("url_test_support") {
+ testonly = true
+
+ sources = [
+ "gurl_abstract_tests.h",
+ "origin_abstract_tests.cc",
+ "origin_abstract_tests.h",
+ ]
+
+ public_deps = [
+ ":url",
+ "//base",
+ "//base/test:test_support",
+ "//testing/gmock",
+ "//testing/gtest",
+ ]
+}
+
+test("url_unittests") {
sources = [
"gurl_unittest.cc",
"origin_unittest.cc",
@@ -143,18 +220,16 @@
deps = [
":url",
+ ":url_test_support",
"//base",
"//base/test:test_support",
+ "//testing/gmock",
"//testing/gtest",
]
- if (!is_ios && !is_starboard) {
- sources += [ "mojom/url_gurl_mojom_traits_unittest.cc" ]
- }
-
if (use_platform_icu_alternatives) {
# Unit tests that are not supported by the current ICU alternatives on Android.
- if (is_android) {
+ if (is_android && !use_cobalt_customizations) {
sources -= [
"url_canon_icu_unittest.cc",
"url_canon_unittest.cc",
@@ -175,23 +250,39 @@
deps += [ "//third_party/icu:icuuc" ]
}
- # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
- configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
-
- if (!is_ios && !is_starboard) {
+ if (!is_ios && !is_cronet_build && !is_starboard) {
+ sources += [
+ "mojom/scheme_host_port_mojom_traits_unittest.cc",
+ "mojom/url_gurl_mojom_traits_unittest.cc",
+ ]
deps += [
"//mojo/core/embedder",
+ "//mojo/public/cpp/test_support:test_utils",
+ "//url/ipc:url_ipc_unittests",
+ "//url/mojom:mojom_traits",
"//url/mojom:test_url_mojom_gurl",
]
- }
}
}
-if (!is_starboard) {
-fuzzer_test("gurl_fuzzer") {
+if (!use_cobalt_customizations) {
+test("url_perftests") {
sources = [
- "gurl_fuzzer.cc",
+ "run_all_perftests.cc",
+ "url_parse_perftest.cc",
]
+
+ deps = [
+ ":url",
+ "//base",
+ "//base/test:test_support",
+ "//testing/gtest",
+ ]
+}
+}
+
+fuzzer_test("gurl_fuzzer") {
+ sources = [ "gurl_fuzzer.cc" ]
deps = [
":url",
"//base",
@@ -199,4 +290,118 @@
]
dict = "gurl_fuzzer.dict"
}
+
+if (is_android && !is_cronet_build && !use_cobalt_customizations) {
+ source_set("android_test_helper") {
+ testonly = true
+ sources = [
+ "android/gurl_java_test_helper.cc",
+ "android/origin_java_test_helper.cc",
+ ]
+ deps = [
+ ":gurl_android",
+ ":j_test_jni_headers",
+ ":origin_android",
+ ":url",
+ "//base/test:test_support",
+ ]
+ }
+
+ android_library("android_test_helper_java") {
+ testonly = true
+ annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ]
+ sources = [
+ "android/javatests/src/org/chromium/url/GURLJavaTestHelper.java",
+ "android/javatests/src/org/chromium/url/OriginJavaTestHelper.java",
+ ]
+ deps = [
+ ":gurl_java",
+ ":origin_java",
+ "//base:base_java_test_support",
+ "//base:jni_java",
+ ]
+ }
+
+ # Targets depending on gurl_junit_test_support do not need to bypass platform
+ # checks.
+ android_library("gurl_junit_test_support") {
+ testonly = true
+ sources = [ "android/test/java/src/org/chromium/url/JUnitTestGURLs.java" ]
+ deps = [ ":gurl_java" ]
+ }
+
+ # Unlike gurl_junit_test_support targets depending on gurl_junit_shadows must
+ # bypass platform checks.
+ robolectric_library("gurl_junit_shadows") {
+ sources = [ "android/test/java/src/org/chromium/url/ShadowGURL.java" ]
+ deps = [
+ ":gurl_java",
+ ":gurl_junit_test_support",
+ ]
+ }
+
+ android_library("url_java_unit_tests") {
+ testonly = true
+ sources = [
+ "android/javatests/src/org/chromium/url/GURLJavaTest.java",
+ "android/javatests/src/org/chromium/url/JUnitTestGURLsTest.java",
+ "android/javatests/src/org/chromium/url/OriginJavaTest.java",
+ ]
+ deps = [
+ ":android_test_helper_java",
+ ":gurl_java",
+ ":gurl_junit_test_support",
+ ":origin_java",
+ "//base:base_java",
+ "//base:base_java_test_support",
+ "//base:jni_java",
+ "//content/public/test/android:content_java_test_support",
+ "//mojo/public/mojom/base:base_java",
+ "//third_party/androidx:androidx_core_core_java",
+ "//third_party/androidx:androidx_test_runner_java",
+ "//third_party/junit",
+ "//third_party/mockito:mockito_java",
+ "//url/mojom:url_mojom_gurl_java",
+ "//url/mojom:url_mojom_origin_java",
+ ]
+ annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ]
+ }
+
+ # See https://bugs.chromium.org/p/chromium/issues/detail?id=908819 for why we
+ # can't put 'java' in the name here.
+ generate_jni("j_test_jni_headers") {
+ testonly = true
+ sources = [
+ "android/javatests/src/org/chromium/url/GURLJavaTestHelper.java",
+ "android/javatests/src/org/chromium/url/OriginJavaTestHelper.java",
+ ]
+ }
+
+ robolectric_library("gurl_junit_tests") {
+ sources = [ "android/junit/src/org/chromium/url/ShadowGURLTest.java" ]
+ deps = [
+ ":gurl_java",
+ ":gurl_junit_shadows",
+ ":gurl_junit_test_support",
+ "//base:base_java_test_support",
+ "//base:base_junit_test_support",
+ "//base/test:test_support_java",
+ "//third_party/junit",
+ ]
+ }
+}
+
+if (is_robolectric) {
+ # Use this in robolectric_binary() targets if you just need GURL and //base
+ # functionality. Otherwise, define a custom shared_library().
+ shared_library("libgurl_robolectric") {
+ sources = [ "android/robolectric_test_main.cc" ]
+ deps = [
+ "//base",
+ "//url:gurl_android",
+ ]
+
+ # Make jni.h available.
+ configs += [ "//third_party/jdk" ]
+ }
}