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/ui.gni") 7import("//components/vector_icons/vector_icons.gni") 8import("//device/vr/buildflags/buildflags.gni") 9import("//testing/libfuzzer/fuzzer_test.gni") 10import("//third_party/protobuf/proto_library.gni") 11 12if (is_android) { 13 import("//build/config/android/rules.gni") 14} 15 16buildflag_header("buildflags") { 17 header = "buildflags.h" 18 flags = [ "ENABLE_VR=$enable_vr" ] 19} 20 21aggregate_vector_icons("omnibox_vector_icons") { 22 icon_directory = "vector_icons" 23 24 sources = [ 25 "answer_calculator.icon", 26 "answer_currency.icon", 27 "answer_default.icon", 28 "answer_dictionary.icon", 29 "answer_finance.icon", 30 "answer_sunrise.icon", 31 "answer_translation.icon", 32 "answer_when_is.icon", 33 "blank.icon", 34 "bookmark.icon", 35 "calculator.icon", 36 "chevron.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 "install_desktop.icon", 54 "install_download.icon", 55 "keyword_search.icon", 56 "not_secure_warning.icon", 57 "offline_pin.icon", 58 "page.icon", 59 "pedal.icon", 60 "plus.icon", 61 "product.icon", 62 "star.icon", 63 "star_active.icon", 64 "switch.icon", 65 "tab.icon", 66 "trending_up.icon", 67 ] 68} 69 70static_library("vector_icons") { 71 sources = get_target_outputs(":omnibox_vector_icons") 72 deps = [ 73 ":omnibox_vector_icons", 74 "//components/vector_icons", 75 "//skia", 76 "//ui/gfx", 77 ] 78} 79 80static_library("browser") { 81 sources = [ 82 "answers_cache.cc", 83 "answers_cache.h", 84 "autocomplete_classifier.cc", 85 "autocomplete_classifier.h", 86 "autocomplete_controller.cc", 87 "autocomplete_controller.h", 88 "autocomplete_match.cc", 89 "autocomplete_match.h", 90 "autocomplete_match_classification.cc", 91 "autocomplete_match_classification.h", 92 "autocomplete_match_type.cc", 93 "autocomplete_match_type.h", 94 "autocomplete_provider.cc", 95 "autocomplete_provider.h", 96 "autocomplete_provider_client.cc", 97 "autocomplete_provider_client.h", 98 "autocomplete_provider_debouncer.cc", 99 "autocomplete_provider_debouncer.h", 100 "autocomplete_result.cc", 101 "autocomplete_result.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 "inline_autocompletion_util.cc", 129 "inline_autocompletion_util.h", 130 "intranet_redirector_state.cc", 131 "intranet_redirector_state.h", 132 "keyword_extensions_delegate.cc", 133 "keyword_extensions_delegate.h", 134 "keyword_provider.cc", 135 "keyword_provider.h", 136 "local_history_zero_suggest_provider.cc", 137 "local_history_zero_suggest_provider.h", 138 "match_compare.h", 139 "most_visited_sites_provider.cc", 140 "most_visited_sites_provider.h", 141 "omnibox_client.cc", 142 "omnibox_client.h", 143 "omnibox_controller.cc", 144 "omnibox_controller.h", 145 "omnibox_controller_emitter.cc", 146 "omnibox_controller_emitter.h", 147 "omnibox_edit_controller.cc", 148 "omnibox_edit_controller.h", 149 "omnibox_edit_model.cc", 150 "omnibox_edit_model.h", 151 "omnibox_event_global_tracker.cc", 152 "omnibox_event_global_tracker.h", 153 "omnibox_field_trial.cc", 154 "omnibox_field_trial.h", 155 "omnibox_log.cc", 156 "omnibox_log.h", 157 "omnibox_metrics_provider.cc", 158 "omnibox_metrics_provider.h", 159 "omnibox_navigation_observer.h", 160 "omnibox_pedal.cc", 161 "omnibox_pedal.h", 162 "omnibox_pedal_concepts.h", 163 "omnibox_pedal_implementations.cc", 164 "omnibox_pedal_implementations.h", 165 "omnibox_pedal_provider.cc", 166 "omnibox_pedal_provider.h", 167 "omnibox_popup_model.cc", 168 "omnibox_popup_model.h", 169 "omnibox_popup_view.h", 170 "omnibox_prefs.cc", 171 "omnibox_prefs.h", 172 "omnibox_triggered_feature_service.cc", 173 "omnibox_triggered_feature_service.h", 174 "omnibox_view.cc", 175 "omnibox_view.h", 176 "on_device_head_model.cc", 177 "on_device_head_model.h", 178 "on_device_head_provider.cc", 179 "on_device_head_provider.h", 180 "on_device_model_update_listener.cc", 181 "on_device_model_update_listener.h", 182 "query_tile_provider.cc", 183 "query_tile_provider.h", 184 "remote_suggestions_service.cc", 185 "remote_suggestions_service.h", 186 "scored_history_match.cc", 187 "scored_history_match.h", 188 "search_provider.cc", 189 "search_provider.h", 190 "search_suggestion_parser.cc", 191 "search_suggestion_parser.h", 192 "shortcuts_backend.cc", 193 "shortcuts_backend.h", 194 "shortcuts_constants.cc", 195 "shortcuts_constants.h", 196 "shortcuts_database.cc", 197 "shortcuts_database.h", 198 "shortcuts_provider.cc", 199 "shortcuts_provider.h", 200 "suggestion_answer.cc", 201 "suggestion_answer.h", 202 "tailored_word_break_iterator.cc", 203 "tailored_word_break_iterator.h", 204 "titled_url_match_utils.cc", 205 "titled_url_match_utils.h", 206 "url_index_private_data.cc", 207 "url_index_private_data.h", 208 "url_prefix.cc", 209 "url_prefix.h", 210 "verbatim_match.cc", 211 "verbatim_match.h", 212 "zero_suggest_provider.cc", 213 "zero_suggest_provider.h", 214 "zero_suggest_verbatim_match_provider.cc", 215 "zero_suggest_verbatim_match_provider.h", 216 ] 217 218 public_deps = [ 219 ":buildflags", 220 ":location_bar", 221 "//base", 222 "//base:i18n", 223 "//components/history/core/browser", 224 "//components/omnibox/common", 225 "//components/omnibox/resources:omnibox_resources", 226 "//components/security_state/core", 227 "//third_party/metrics_proto", 228 "//url", 229 ] 230 deps = [ 231 ":in_memory_url_index_cache_proto", 232 "//components/bookmarks/browser", 233 "//components/component_updater", 234 "//components/dom_distiller/core:core", 235 "//components/favicon/core", 236 "//components/favicon_base", 237 "//components/keyed_service/core", 238 "//components/metrics", 239 "//components/navigation_metrics", 240 "//components/open_from_clipboard", 241 "//components/pref_registry", 242 "//components/prefs", 243 "//components/query_parser", 244 "//components/query_tiles", 245 "//components/resources", 246 "//components/search", 247 "//components/search_engines", 248 "//components/sessions", 249 "//components/signin/public/identity_manager", 250 "//components/strings", 251 "//components/sync", 252 "//components/url_formatter", 253 "//components/variations", 254 "//components/variations/net", 255 "//extensions/common:common_constants", 256 "//net", 257 "//skia", 258 "//sql", 259 "//third_party/protobuf:protobuf_lite", 260 "//third_party/re2", 261 "//ui/base", 262 "//ui/gfx", 263 ] 264 265 if ((!is_android || enable_vr) && !is_ios) { 266 deps += [ ":vector_icons" ] 267 } 268 269 if (!is_ios) { 270 deps += [ "//components/keyed_service/content" ] 271 } 272 273 if (is_android) { 274 deps += [ ":jni_headers" ] 275 } 276} 277 278# A target that contains the minimal amount of code necessary for displaying a 279# smart location bar. This code provides special processing of URLs without 280# bringing in many extra dependencies. 281static_library("location_bar") { 282 sources = [ 283 "autocomplete_input.cc", 284 "autocomplete_input.h", 285 "autocomplete_scheme_classifier.h", 286 "location_bar_model.h", 287 "location_bar_model_delegate.cc", 288 "location_bar_model_delegate.h", 289 "location_bar_model_impl.cc", 290 "location_bar_model_impl.h", 291 "location_bar_model_util.cc", 292 "location_bar_model_util.h", 293 ] 294 295 public_deps = [ 296 "//base", 297 "//components/omnibox/common", 298 "//components/security_state/core", 299 "//third_party/metrics_proto", 300 "//url", 301 ] 302 deps = [ 303 ":buildflags", 304 "//components/dom_distiller/core:core", 305 "//components/search_engines", 306 "//components/strings", 307 "//components/url_formatter", 308 "//net", 309 "//third_party/protobuf:protobuf_lite", 310 "//third_party/re2", 311 "//ui/base", 312 "//ui/gfx", 313 ] 314 315 if ((!is_android || enable_vr) && !is_ios) { 316 deps += [ ":vector_icons" ] 317 } 318 319 if (is_android) { 320 sources += [ 321 "autocomplete_scheme_classifier_android.cc", 322 "autocomplete_scheme_classifier_android.h", 323 "omnibox_url_emphasizer.cc", 324 ] 325 deps += [ ":jni_headers" ] 326 } 327} 328 329if (is_android) { 330 android_resources("java_resources") { 331 sources = [ 332 "android/java/res/drawable-hdpi/omnibox_https_valid.png", 333 "android/java/res/drawable-hdpi/omnibox_info.png", 334 "android/java/res/drawable-hdpi/omnibox_not_secure_warning.png", 335 "android/java/res/drawable-mdpi/omnibox_https_valid.png", 336 "android/java/res/drawable-mdpi/omnibox_info.png", 337 "android/java/res/drawable-mdpi/omnibox_not_secure_warning.png", 338 "android/java/res/drawable-xhdpi/omnibox_https_valid.png", 339 "android/java/res/drawable-xhdpi/omnibox_info.png", 340 "android/java/res/drawable-xhdpi/omnibox_not_secure_warning.png", 341 "android/java/res/drawable-xxhdpi/omnibox_https_valid.png", 342 "android/java/res/drawable-xxhdpi/omnibox_info.png", 343 "android/java/res/drawable-xxhdpi/omnibox_not_secure_warning.png", 344 "android/java/res/drawable-xxxhdpi/omnibox_https_valid.png", 345 "android/java/res/drawable-xxxhdpi/omnibox_info.png", 346 "android/java/res/drawable-xxxhdpi/omnibox_not_secure_warning.png", 347 "android/java/res/values/colors.xml", 348 ] 349 deps = [ 350 "//components/browser_ui/strings/android:browser_ui_strings_grd", 351 "//ui/android:ui_java_resources", 352 ] 353 } 354 355 android_library("browser_java") { 356 sources = [ 357 "android/java/src/org/chromium/components/omnibox/AutocompleteSchemeClassifier.java", 358 "android/java/src/org/chromium/components/omnibox/OmniboxUrlEmphasizer.java", 359 "android/java/src/org/chromium/components/omnibox/SecurityButtonAnimationDelegate.java", 360 "android/java/src/org/chromium/components/omnibox/SecurityStatusIcon.java", 361 "android/java/src/org/chromium/components/omnibox/SuggestionAnswer.java", 362 ] 363 364 resources_package = "org.chromium.components.omnibox" 365 deps = [ 366 ":java_resources", 367 "//base:base_java", 368 "//base:jni_java", 369 "//components/browser_ui/widget/android:java", 370 "//components/embedder_support/android:util_java", 371 "//components/security_state/core:security_state_enums_java", 372 "//content/public/android:content_java", 373 "//third_party/android_deps:androidx_annotation_annotation_java", 374 "//third_party/android_deps:androidx_core_core_java", 375 "//ui/android:ui_full_java", 376 ] 377 378 srcjar_deps = [ ":browser_java_enums_srcjar" ] 379 annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ] 380 } 381 382 java_cpp_enum("browser_java_enums_srcjar") { 383 sources = [ 384 "autocomplete_match.h", 385 "autocomplete_match_type.h", 386 "suggestion_answer.h", 387 ] 388 } 389 390 generate_jni("jni_headers") { 391 sources = [ 392 "android/java/src/org/chromium/components/omnibox/AutocompleteSchemeClassifier.java", 393 "android/java/src/org/chromium/components/omnibox/OmniboxUrlEmphasizer.java", 394 "android/java/src/org/chromium/components/omnibox/SuggestionAnswer.java", 395 ] 396 } 397} 398 399proto_library("in_memory_url_index_cache_proto") { 400 sources = [ "in_memory_url_index_cache.proto" ] 401} 402 403static_library("test_support") { 404 testonly = true 405 sources = [ 406 "fake_autocomplete_provider_client.cc", 407 "fake_autocomplete_provider_client.h", 408 "history_index_restore_observer.cc", 409 "history_index_restore_observer.h", 410 "history_test_util.cc", 411 "history_test_util.h", 412 "in_memory_url_index_test_util.cc", 413 "in_memory_url_index_test_util.h", 414 "mock_autocomplete_provider_client.cc", 415 "mock_autocomplete_provider_client.h", 416 "shortcuts_provider_test_util.cc", 417 "shortcuts_provider_test_util.h", 418 "test_location_bar_model.cc", 419 "test_location_bar_model.h", 420 "test_omnibox_client.cc", 421 "test_omnibox_client.h", 422 "test_omnibox_edit_controller.cc", 423 "test_omnibox_edit_controller.h", 424 "test_omnibox_edit_model.cc", 425 "test_omnibox_edit_model.h", 426 "test_omnibox_view.cc", 427 "test_omnibox_view.h", 428 "test_scheme_classifier.cc", 429 "test_scheme_classifier.h", 430 ] 431 432 public_deps = [ 433 ":browser", 434 "//base", 435 ] 436 437 deps = [ 438 "//base/test:test_support", 439 "//components/bookmarks/browser", 440 "//components/bookmarks/test", 441 "//components/history/core/browser", 442 "//components/history/core/test", 443 "//components/prefs:test_support", 444 "//components/query_tiles/test:test_support", 445 "//components/resources", 446 "//components/search_engines", 447 "//components/sessions", 448 "//net", 449 "//services/network:test_support", 450 "//testing/gmock", 451 "//testing/gtest", 452 "//third_party/metrics_proto", 453 "//ui/base", 454 "//ui/gfx", 455 ] 456 457 if (toolkit_views) { 458 # Needed to get the TOOLKIT_VIEWS define. 459 deps += [ "//ui/views" ] 460 } 461} 462 463bundle_data("unit_tests_bundle_data") { 464 visibility = [ ":unit_tests" ] 465 testonly = true 466 sources = [ 467 "//components/test/data/omnibox/Shortcuts.no_fill_into_edit.sql", 468 "//components/test/data/omnibox/Shortcuts.v0.sql", 469 "//components/test/data/omnibox/Shortcuts.v1.sql", 470 "//components/test/data/omnibox/in_memory_url_index_test.sql", 471 "//components/test/data/omnibox/in_memory_url_index_test_limited.sql", 472 "//components/test/data/omnibox/on_device_head_test_model_index.bin", 473 ] 474 outputs = [ "{{bundle_resources_dir}}/" + 475 "{{source_root_relative_dir}}/{{source_file_part}}" ] 476} 477 478source_set("unit_tests") { 479 testonly = true 480 sources = [ 481 "answers_cache_unittest.cc", 482 "autocomplete_input_unittest.cc", 483 "autocomplete_match_type_unittest.cc", 484 "autocomplete_match_unittest.cc", 485 "autocomplete_provider_unittest.cc", 486 "autocomplete_result_unittest.cc", 487 "base_search_provider_unittest.cc", 488 "bookmark_provider_unittest.cc", 489 "builtin_provider_unittest.cc", 490 "clipboard_provider_unittest.cc", 491 "document_provider_unittest.cc", 492 "document_suggestions_service_unittest.cc", 493 "favicon_cache_unittest.cc", 494 "history_provider_unittest.cc", 495 "history_quick_provider_unittest.cc", 496 "history_url_provider_unittest.cc", 497 "in_memory_url_index_types_unittest.cc", 498 "in_memory_url_index_unittest.cc", 499 "inline_autocompletion_util_unittest.cc", 500 "keyword_provider_unittest.cc", 501 "local_history_zero_suggest_provider_unittest.cc", 502 "location_bar_model_impl_unittest.cc", 503 "most_visited_sites_provider_unittest.cc", 504 "omnibox_controller_unittest.cc", 505 "omnibox_edit_model_unittest.cc", 506 "omnibox_field_trial_unittest.cc", 507 "omnibox_pedal_implementations_unittest.cc", 508 "omnibox_pedal_provider_unittest.cc", 509 "omnibox_pedal_unittest.cc", 510 "omnibox_popup_model_unittest.cc", 511 "omnibox_prefs_unittest.cc", 512 "omnibox_view_unittest.cc", 513 "on_device_head_model_unittest.cc", 514 "on_device_head_provider_unittest.cc", 515 "query_tile_provider_unittest.cc", 516 "remote_suggestions_service_unittest.cc", 517 "scored_history_match_unittest.cc", 518 "search_suggestion_parser_unittest.cc", 519 "shortcuts_backend_unittest.cc", 520 "shortcuts_database_unittest.cc", 521 "shortcuts_provider_unittest.cc", 522 "suggestion_answer_unittest.cc", 523 "tailored_word_break_iterator_unittest.cc", 524 "titled_url_match_utils_unittest.cc", 525 "url_prefix_unittest.cc", 526 "zero_suggest_provider_unittest.cc", 527 "zero_suggest_verbatim_match_provider_unittest.cc", 528 ] 529 530 if ((!is_android || enable_vr) && !is_ios) { 531 sources += [ "location_bar_model_util_unittest.cc" ] 532 } 533 534 deps = [ 535 ":browser", 536 ":test_support", 537 ":unit_tests_bundle_data", 538 "//base", 539 "//base/test:test_support", 540 "//components/bookmarks/browser", 541 "//components/bookmarks/test", 542 "//components/dom_distiller/core:core", 543 "//components/favicon/core/test:test_support", 544 "//components/history/core/test", 545 "//components/omnibox/common", 546 "//components/open_from_clipboard:test_support", 547 "//components/prefs:test_support", 548 "//components/search", 549 "//components/search_engines", 550 "//components/search_engines:test_support", 551 "//components/sessions", 552 "//components/signin/public/identity_manager:test_support", 553 "//components/strings", 554 "//components/sync_preferences:test_support", 555 "//components/url_formatter", 556 "//components/variations", 557 "//components/variations/net:net", 558 "//services/network:test_support", 559 "//sql", 560 "//sql:test_support", 561 "//testing/gmock", 562 "//testing/gtest", 563 "//ui/base:test_support", 564 "//ui/gfx:test_support", 565 "//url", 566 ] 567 568 if ((!is_android || enable_vr) && !is_ios) { 569 deps += [ 570 ":buildflags", 571 "//components/omnibox/browser:vector_icons", 572 "//components/vector_icons:vector_icons", 573 ] 574 } 575} 576 577fuzzer_test("autocomplete_input_fuzzer") { 578 sources = [ "autocomplete_input_fuzzer.cc" ] 579 deps = [ 580 ":browser", 581 ":test_support", 582 "//base", 583 "//base:i18n", 584 "//third_party/metrics_proto:metrics_proto", 585 ] 586} 587 588fuzzer_test("omnibox_view_fuzzer") { 589 sources = [ "omnibox_view_fuzzer.cc" ] 590 deps = [ 591 ":browser", 592 "//base", 593 ] 594} 595 596fuzzer_test("search_suggestion_parser_fuzzer") { 597 sources = [ "search_suggestion_parser_fuzzer.cc" ] 598 deps = [ 599 ":browser", 600 ":test_support", 601 "//base", 602 "//base:i18n", 603 "//third_party/icu:icui18n", 604 "//third_party/metrics_proto:metrics_proto", 605 ] 606 seed_corpus = "fuzz_corpus_suggest" 607} 608