1# Copyright 2014 The Chromium Authors. All rights reserved. 2# Use of this source code is governed by a BSD-style license that can be 3# found in the LICENSE file. 4 5import("//build/buildflag_header.gni") 6import("//build/config/jumbo.gni") 7import("//build/config/ui.gni") 8import("//components/vector_icons/vector_icons.gni") 9import("//device/vr/buildflags/buildflags.gni") 10import("//testing/libfuzzer/fuzzer_test.gni") 11import("//third_party/protobuf/proto_library.gni") 12 13if (is_android) { 14 import("//build/config/android/rules.gni") 15} 16 17buildflag_header("buildflags") { 18 header = "buildflags.h" 19 flags = [ "ENABLE_VR=$enable_vr" ] 20} 21 22aggregate_vector_icons("omnibox_vector_icons") { 23 icon_directory = "vector_icons" 24 25 icons = [ 26 "answer_calculator.icon", 27 "answer_currency.icon", 28 "answer_default.icon", 29 "answer_dictionary.icon", 30 "answer_finance.icon", 31 "answer_sunrise.icon", 32 "answer_translation.icon", 33 "answer_when_is.icon", 34 "blank.icon", 35 "bookmark.icon", 36 "calculator.icon", 37 "clear.icon", 38 "clock.icon", 39 "drive_docs.icon", 40 "drive_folder.icon", 41 "drive_forms.icon", 42 "drive_image.icon", 43 "drive_logo.icon", 44 "drive_pdf.icon", 45 "drive_sheets.icon", 46 "drive_slides.icon", 47 "drive_video.icon", 48 "extension_app.icon", 49 "find_in_page.icon", 50 "http.icon", 51 "https_valid.icon", 52 "https_valid_in_chip.icon", 53 "keyword_search.icon", 54 "not_secure_warning.icon", 55 "offline_pin.icon", 56 "page.icon", 57 "pedal.icon", 58 "plus.icon", 59 "product.icon", 60 "star_active.icon", 61 "star.icon", 62 "switch.icon", 63 "tab.icon", 64 ] 65} 66 67static_library("vector_icons") { 68 sources = get_target_outputs(":omnibox_vector_icons") 69 deps = [ 70 ":omnibox_vector_icons", 71 "//components/vector_icons", 72 "//skia", 73 "//ui/gfx", 74 ] 75} 76 77jumbo_static_library("browser") { 78 sources = [ 79 "answers_cache.cc", 80 "answers_cache.h", 81 "autocomplete_classifier.cc", 82 "autocomplete_classifier.h", 83 "autocomplete_controller.cc", 84 "autocomplete_controller.h", 85 "autocomplete_input.cc", 86 "autocomplete_input.h", 87 "autocomplete_match.cc", 88 "autocomplete_match.h", 89 "autocomplete_match_classification.cc", 90 "autocomplete_match_classification.h", 91 "autocomplete_match_type.cc", 92 "autocomplete_match_type.h", 93 "autocomplete_provider.cc", 94 "autocomplete_provider.h", 95 "autocomplete_provider_client.cc", 96 "autocomplete_provider_client.h", 97 "autocomplete_provider_debouncer.cc", 98 "autocomplete_provider_debouncer.h", 99 "autocomplete_result.cc", 100 "autocomplete_result.h", 101 "autocomplete_scheme_classifier.h", 102 "base_search_provider.cc", 103 "base_search_provider.h", 104 "bookmark_provider.cc", 105 "bookmark_provider.h", 106 "builtin_provider.cc", 107 "builtin_provider.h", 108 "clipboard_provider.cc", 109 "clipboard_provider.h", 110 "document_provider.cc", 111 "document_provider.h", 112 "document_suggestions_service.cc", 113 "document_suggestions_service.h", 114 "favicon_cache.cc", 115 "favicon_cache.h", 116 "history_match.cc", 117 "history_match.h", 118 "history_provider.cc", 119 "history_provider.h", 120 "history_quick_provider.cc", 121 "history_quick_provider.h", 122 "history_url_provider.cc", 123 "history_url_provider.h", 124 "in_memory_url_index.cc", 125 "in_memory_url_index.h", 126 "in_memory_url_index_types.cc", 127 "in_memory_url_index_types.h", 128 "keyword_extensions_delegate.cc", 129 "keyword_extensions_delegate.h", 130 "keyword_provider.cc", 131 "keyword_provider.h", 132 "local_history_zero_suggest_provider.cc", 133 "local_history_zero_suggest_provider.h", 134 "location_bar_model.h", 135 "location_bar_model_delegate.cc", 136 "location_bar_model_delegate.h", 137 "location_bar_model_impl.cc", 138 "location_bar_model_impl.h", 139 "match_compare.h", 140 "omnibox_client.cc", 141 "omnibox_client.h", 142 "omnibox_controller.cc", 143 "omnibox_controller.h", 144 "omnibox_controller_emitter.cc", 145 "omnibox_controller_emitter.h", 146 "omnibox_edit_controller.cc", 147 "omnibox_edit_controller.h", 148 "omnibox_edit_model.cc", 149 "omnibox_edit_model.h", 150 "omnibox_event_global_tracker.cc", 151 "omnibox_event_global_tracker.h", 152 "omnibox_field_trial.cc", 153 "omnibox_field_trial.h", 154 "omnibox_log.cc", 155 "omnibox_log.h", 156 "omnibox_metrics_provider.cc", 157 "omnibox_metrics_provider.h", 158 "omnibox_navigation_observer.h", 159 "omnibox_pedal.cc", 160 "omnibox_pedal.h", 161 "omnibox_pedal_concepts.h", 162 "omnibox_pedal_implementations.cc", 163 "omnibox_pedal_implementations.h", 164 "omnibox_pedal_provider.cc", 165 "omnibox_pedal_provider.h", 166 "omnibox_popup_model.cc", 167 "omnibox_popup_model.h", 168 "omnibox_popup_view.h", 169 "omnibox_pref_names.cc", 170 "omnibox_pref_names.h", 171 "omnibox_view.cc", 172 "omnibox_view.h", 173 "on_device_head_model.cc", 174 "on_device_head_model.h", 175 "on_device_head_provider.cc", 176 "on_device_head_provider.h", 177 "on_device_model_update_listener.cc", 178 "on_device_model_update_listener.h", 179 "remote_suggestions_service.cc", 180 "remote_suggestions_service.h", 181 "scored_history_match.cc", 182 "scored_history_match.h", 183 "search_provider.cc", 184 "search_provider.h", 185 "search_suggestion_parser.cc", 186 "search_suggestion_parser.h", 187 "shortcuts_backend.cc", 188 "shortcuts_backend.h", 189 "shortcuts_constants.cc", 190 "shortcuts_constants.h", 191 "shortcuts_database.cc", 192 "shortcuts_database.h", 193 "shortcuts_provider.cc", 194 "shortcuts_provider.h", 195 "suggestion_answer.cc", 196 "suggestion_answer.h", 197 "tailored_word_break_iterator.cc", 198 "tailored_word_break_iterator.h", 199 "titled_url_match_utils.cc", 200 "titled_url_match_utils.h", 201 "url_index_private_data.cc", 202 "url_index_private_data.h", 203 "url_prefix.cc", 204 "url_prefix.h", 205 "verbatim_match.cc", 206 "verbatim_match.h", 207 "zero_suggest_provider.cc", 208 "zero_suggest_provider.h", 209 ] 210 211 defines = [ "OMNIBOX_BROWSER_IMPLEMENTATION" ] 212 213 public_deps = [ 214 "//base", 215 "//base:i18n", 216 "//components/history/core/browser", 217 "//components/omnibox/common", 218 "//components/omnibox/resources:omnibox_resources", 219 "//components/security_state/core", 220 "//third_party/metrics_proto", 221 "//url", 222 ] 223 deps = [ 224 ":buildflags", 225 ":in_memory_url_index_cache_proto", 226 "//components/bookmarks/browser", 227 "//components/component_updater", 228 "//components/dom_distiller/core:core", 229 "//components/favicon/core", 230 "//components/favicon_base", 231 "//components/keyed_service/core", 232 "//components/metrics", 233 "//components/navigation_metrics", 234 "//components/open_from_clipboard", 235 "//components/pref_registry", 236 "//components/prefs", 237 "//components/query_parser", 238 "//components/resources", 239 "//components/search", 240 "//components/search_engines", 241 "//components/sessions", 242 "//components/signin/public/identity_manager", 243 "//components/strings", 244 "//components/sync", 245 "//components/url_formatter", 246 "//components/variations", 247 "//components/variations/net", 248 "//extensions/common:common_constants", 249 "//net", 250 "//skia", 251 "//sql", 252 "//third_party/protobuf:protobuf_lite", 253 "//third_party/re2", 254 "//ui/base", 255 "//ui/gfx", 256 ] 257 258 if ((!is_android || enable_vr) && !is_ios) { 259 deps += [ ":vector_icons" ] 260 } 261 262 if (is_android) { 263 sources += [ 264 "autocomplete_scheme_classifier_android.cc", 265 "autocomplete_scheme_classifier_android.h", 266 "omnibox_url_emphasizer.cc", 267 ] 268 deps += [ ":jni_headers" ] 269 } 270 271 if (!is_ios) { 272 deps += [ "//components/keyed_service/content" ] 273 } 274} 275 276if (is_android) { 277 android_resources("java_resources") { 278 sources = [ 279 "android/java/res/drawable-hdpi/omnibox_https_valid.png", 280 "android/java/res/drawable-hdpi/omnibox_info.png", 281 "android/java/res/drawable-hdpi/omnibox_not_secure_warning.png", 282 "android/java/res/drawable-mdpi/omnibox_https_valid.png", 283 "android/java/res/drawable-mdpi/omnibox_info.png", 284 "android/java/res/drawable-mdpi/omnibox_not_secure_warning.png", 285 "android/java/res/drawable-xhdpi/omnibox_https_valid.png", 286 "android/java/res/drawable-xhdpi/omnibox_info.png", 287 "android/java/res/drawable-xhdpi/omnibox_not_secure_warning.png", 288 "android/java/res/drawable-xxhdpi/omnibox_https_valid.png", 289 "android/java/res/drawable-xxhdpi/omnibox_info.png", 290 "android/java/res/drawable-xxhdpi/omnibox_not_secure_warning.png", 291 "android/java/res/drawable-xxxhdpi/omnibox_https_valid.png", 292 "android/java/res/drawable-xxxhdpi/omnibox_info.png", 293 "android/java/res/drawable-xxxhdpi/omnibox_not_secure_warning.png", 294 "android/java/res/values/colors.xml", 295 ] 296 deps = [ 297 "//components/browser_ui/strings/android:browser_ui_strings_grd", 298 "//ui/android:ui_java_resources", 299 ] 300 custom_package = "org.chromium.components.omnibox" 301 } 302 303 android_library("browser_java") { 304 sources = [ 305 "android/java/src/org/chromium/components/omnibox/AutocompleteSchemeClassifier.java", 306 "android/java/src/org/chromium/components/omnibox/OmniboxUrlEmphasizer.java", 307 "android/java/src/org/chromium/components/omnibox/SecurityStatusIcon.java", 308 "android/java/src/org/chromium/components/omnibox/SuggestionAnswer.java", 309 ] 310 311 deps = [ 312 ":java_resources", 313 "//base:base_java", 314 "//base:jni_java", 315 "//components/embedder_support/android:util_java", 316 "//components/security_state/core:security_state_enums_java", 317 "//content/public/android:content_java", 318 "//third_party/android_deps:androidx_core_core_java", 319 ] 320 321 srcjar_deps = [ ":browser_java_enums_srcjar" ] 322 annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ] 323 } 324 325 java_cpp_enum("browser_java_enums_srcjar") { 326 sources = [ 327 "autocomplete_match.h", 328 "autocomplete_match_type.h", 329 "suggestion_answer.h", 330 ] 331 } 332 333 generate_jni("jni_headers") { 334 sources = [ 335 "android/java/src/org/chromium/components/omnibox/AutocompleteSchemeClassifier.java", 336 "android/java/src/org/chromium/components/omnibox/OmniboxUrlEmphasizer.java", 337 "android/java/src/org/chromium/components/omnibox/SuggestionAnswer.java", 338 ] 339 } 340} 341 342proto_library("in_memory_url_index_cache_proto") { 343 sources = [ "in_memory_url_index_cache.proto" ] 344} 345 346jumbo_static_library("test_support") { 347 testonly = true 348 sources = [ 349 "fake_autocomplete_provider_client.cc", 350 "fake_autocomplete_provider_client.h", 351 "history_index_restore_observer.cc", 352 "history_index_restore_observer.h", 353 "history_test_util.cc", 354 "history_test_util.h", 355 "in_memory_url_index_test_util.cc", 356 "in_memory_url_index_test_util.h", 357 "mock_autocomplete_provider_client.cc", 358 "mock_autocomplete_provider_client.h", 359 "shortcuts_provider_test_util.cc", 360 "shortcuts_provider_test_util.h", 361 "test_location_bar_model.cc", 362 "test_location_bar_model.h", 363 "test_omnibox_client.cc", 364 "test_omnibox_client.h", 365 "test_omnibox_edit_controller.cc", 366 "test_omnibox_edit_controller.h", 367 "test_omnibox_edit_model.cc", 368 "test_omnibox_edit_model.h", 369 "test_omnibox_view.cc", 370 "test_omnibox_view.h", 371 "test_scheme_classifier.cc", 372 "test_scheme_classifier.h", 373 ] 374 375 public_deps = [ 376 ":browser", 377 "//base", 378 ] 379 380 deps = [ 381 "//base/test:test_support", 382 "//components/bookmarks/browser", 383 "//components/bookmarks/test", 384 "//components/history/core/browser", 385 "//components/history/core/test", 386 "//components/resources", 387 "//components/search_engines", 388 "//components/sessions", 389 "//net", 390 "//services/network:test_support", 391 "//testing/gmock", 392 "//testing/gtest", 393 "//third_party/metrics_proto", 394 "//ui/base", 395 "//ui/gfx", 396 ] 397 398 if (toolkit_views) { 399 # Needed to get the TOOLKIT_VIEWS define. 400 deps += [ "//ui/views" ] 401 } 402} 403 404bundle_data("unit_tests_bundle_data") { 405 visibility = [ ":unit_tests" ] 406 testonly = true 407 sources = [ 408 "//components/test/data/omnibox/Shortcuts.no_fill_into_edit.sql", 409 "//components/test/data/omnibox/Shortcuts.v0.sql", 410 "//components/test/data/omnibox/Shortcuts.v1.sql", 411 "//components/test/data/omnibox/in_memory_url_index_test.sql", 412 "//components/test/data/omnibox/in_memory_url_index_test_limited.sql", 413 "//components/test/data/omnibox/on_device_head_test_model_index.bin", 414 ] 415 outputs = [ "{{bundle_resources_dir}}/" + 416 "{{source_root_relative_dir}}/{{source_file_part}}" ] 417} 418 419source_set("unit_tests") { 420 testonly = true 421 sources = [ 422 "answers_cache_unittest.cc", 423 "autocomplete_input_unittest.cc", 424 "autocomplete_match_type_unittest.cc", 425 "autocomplete_match_unittest.cc", 426 "autocomplete_provider_unittest.cc", 427 "autocomplete_result_unittest.cc", 428 "base_search_provider_unittest.cc", 429 "bookmark_provider_unittest.cc", 430 "builtin_provider_unittest.cc", 431 "clipboard_provider_unittest.cc", 432 "document_provider_unittest.cc", 433 "document_suggestions_service_unittest.cc", 434 "favicon_cache_unittest.cc", 435 "history_provider_unittest.cc", 436 "history_quick_provider_unittest.cc", 437 "history_url_provider_unittest.cc", 438 "in_memory_url_index_types_unittest.cc", 439 "in_memory_url_index_unittest.cc", 440 "keyword_provider_unittest.cc", 441 "local_history_zero_suggest_provider_unittest.cc", 442 "location_bar_model_impl_unittest.cc", 443 "omnibox_controller_unittest.cc", 444 "omnibox_edit_model_unittest.cc", 445 "omnibox_field_trial_unittest.cc", 446 "omnibox_pedal_implementations_unittest.cc", 447 "omnibox_pedal_provider_unittest.cc", 448 "omnibox_pedal_unittest.cc", 449 "omnibox_popup_model_unittest.cc", 450 "omnibox_view_unittest.cc", 451 "on_device_head_model_unittest.cc", 452 "on_device_head_provider_unittest.cc", 453 "remote_suggestions_service_unittest.cc", 454 "scored_history_match_unittest.cc", 455 "search_suggestion_parser_unittest.cc", 456 "shortcuts_backend_unittest.cc", 457 "shortcuts_database_unittest.cc", 458 "shortcuts_provider_unittest.cc", 459 "suggestion_answer_unittest.cc", 460 "tailored_word_break_iterator_unittest.cc", 461 "titled_url_match_utils_unittest.cc", 462 "url_prefix_unittest.cc", 463 "zero_suggest_provider_unittest.cc", 464 ] 465 466 deps = [ 467 ":browser", 468 ":test_support", 469 ":unit_tests_bundle_data", 470 "//base", 471 "//base/test:test_support", 472 "//components/bookmarks/browser", 473 "//components/bookmarks/test", 474 "//components/dom_distiller/core:core", 475 "//components/favicon/core/test:test_support", 476 "//components/history/core/test", 477 "//components/open_from_clipboard:test_support", 478 "//components/prefs:test_support", 479 "//components/search", 480 "//components/search_engines", 481 "//components/search_engines:test_support", 482 "//components/sessions", 483 "//components/signin/public/identity_manager:test_support", 484 "//components/strings", 485 "//components/sync_preferences:test_support", 486 "//components/url_formatter", 487 "//components/variations", 488 "//components/variations/net:net", 489 "//services/network:test_support", 490 "//sql", 491 "//sql:test_support", 492 "//testing/gmock", 493 "//testing/gtest", 494 "//ui/base:test_support", 495 "//ui/gfx:test_support", 496 "//url", 497 ] 498} 499 500fuzzer_test("autocomplete_input_fuzzer") { 501 sources = [ "autocomplete_input_fuzzer.cc" ] 502 deps = [ 503 ":browser", 504 ":test_support", 505 "//base", 506 "//base:i18n", 507 "//third_party/metrics_proto:metrics_proto", 508 ] 509} 510 511fuzzer_test("omnibox_view_fuzzer") { 512 sources = [ "omnibox_view_fuzzer.cc" ] 513 deps = [ 514 ":browser", 515 "//base", 516 ] 517} 518 519fuzzer_test("search_suggestion_parser_fuzzer") { 520 sources = [ "search_suggestion_parser_fuzzer.cc" ] 521 deps = [ 522 ":browser", 523 ":test_support", 524 "//base", 525 "//base:i18n", 526 "//third_party/icu:icui18n", 527 "//third_party/metrics_proto:metrics_proto", 528 ] 529} 530