| # Copyright 2024 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/config/chromeos/ui_mode.gni") | 
 | import("//testing/libfuzzer/fuzzer_test.gni") | 
 |  | 
 | assert(is_chromeos) | 
 |  | 
 | static_library("file_manager") { | 
 |   sources = [ | 
 |     "device_event_router.cc", | 
 |     "device_event_router.h", | 
 |     "drivefs_event_router.cc", | 
 |     "drivefs_event_router.h", | 
 |     "event_router.cc", | 
 |     "event_router.h", | 
 |     "event_router_factory.cc", | 
 |     "event_router_factory.h", | 
 |     "file_manager_private_api_functions.h", | 
 |     "file_system_provider_metrics_util.cc", | 
 |     "file_system_provider_metrics_util.h", | 
 |     "fmpi_get_volume_root_function.cc", | 
 |     "fmpi_get_volume_root_function.h", | 
 |     "image_loader_private_api.cc", | 
 |     "image_loader_private_api.h", | 
 |     "logged_extension_function.cc", | 
 |     "logged_extension_function.h", | 
 |     "office_tasks.cc", | 
 |     "office_tasks.h", | 
 |     "private_api_dialog.cc", | 
 |     "private_api_dialog.h", | 
 |     "private_api_drive.cc", | 
 |     "private_api_drive.h", | 
 |     "private_api_file_system.cc", | 
 |     "private_api_file_system.h", | 
 |     "private_api_guest_os.cc", | 
 |     "private_api_guest_os.h", | 
 |     "private_api_holding_space.cc", | 
 |     "private_api_holding_space.h", | 
 |     "private_api_media_parser.cc", | 
 |     "private_api_media_parser.h", | 
 |     "private_api_media_parser_util.cc", | 
 |     "private_api_media_parser_util.h", | 
 |     "private_api_misc.cc", | 
 |     "private_api_misc.h", | 
 |     "private_api_mount.cc", | 
 |     "private_api_mount.h", | 
 |     "private_api_sharesheet.cc", | 
 |     "private_api_sharesheet.h", | 
 |     "private_api_strings.cc", | 
 |     "private_api_strings.h", | 
 |     "private_api_tasks.cc", | 
 |     "private_api_tasks.h", | 
 |     "private_api_util.cc", | 
 |     "private_api_util.h", | 
 |     "scoped_suppress_drive_notifications_for_path.cc", | 
 |     "scoped_suppress_drive_notifications_for_path.h", | 
 |     "search_by_pattern.cc", | 
 |     "search_by_pattern.h", | 
 |     "select_file_dialog_extension_user_data.cc", | 
 |     "select_file_dialog_extension_user_data.h", | 
 |     "system_notification_manager.cc", | 
 |     "system_notification_manager.h", | 
 |   ] | 
 |  | 
 |   public_deps = [ | 
 |     "//chrome/browser:browser_public_dependencies", | 
 |     "//chrome/browser/notifications", | 
 |     "//chrome/browser/sharesheet", | 
 |     "//third_party/ced", | 
 |   ] | 
 |  | 
 |   deps = [ | 
 |     "//ash", | 
 |     "//ash/constants", | 
 |     "//ash/webui/settings/public/constants", | 
 |     "//base", | 
 |     "//chrome/app/vector_icons", | 
 |     "//chrome/browser:browser_process", | 
 |     "//chrome/browser/app_mode", | 
 |     "//chrome/browser/ash/app_list/search", | 
 |     "//chrome/browser/ash/app_list/search/local_image_search", | 
 |     "//chrome/browser/ash/arc", | 
 |     "//chrome/browser/ash/arc:arc_util", | 
 |     "//chrome/browser/ash/arc/fileapi", | 
 |     "//chrome/browser/ash/browser_delegate", | 
 |     "//chrome/browser/ash/crostini", | 
 |     "//chrome/browser/ash/drive", | 
 |     "//chrome/browser/ash/exo", | 
 |     "//chrome/browser/ash/file_manager", | 
 |     "//chrome/browser/ash/file_system_provider", | 
 |     "//chrome/browser/ash/fileapi", | 
 |     "//chrome/browser/ash/fusebox", | 
 |     "//chrome/browser/ash/guest_os", | 
 |     "//chrome/browser/ash/guest_os/public", | 
 |     "//chrome/browser/ash/plugin_vm", | 
 |     "//chrome/browser/ash/policy/dlp", | 
 |     "//chrome/browser/ash/policy/dlp/dialogs", | 
 |     "//chrome/browser/ash/policy/skyvault", | 
 |     "//chrome/browser/ash/profiles", | 
 |     "//chrome/browser/ash/smb_client", | 
 |     "//chrome/browser/ash/system_web_apps/apps", | 
 |     "//chrome/browser/chromeos/drivefs", | 
 |     "//chrome/browser/chromeos/drivefs:native_message_host_origins", | 
 |     "//chrome/browser/chromeos/policy/dlp", | 
 |     "//chrome/browser/chromeos/upload_office_to_cloud", | 
 |     "//chrome/browser/devtools", | 
 |     "//chrome/browser/feedback", | 
 |     "//chrome/browser/pdf", | 
 |     "//chrome/browser/pdf:pdf_pref_names", | 
 |     "//chrome/browser/pdf:pdf_service", | 
 |     "//chrome/browser/profiles", | 
 |     "//chrome/browser/profiles:profile", | 
 |     "//chrome/browser/signin", | 
 |     "//chrome/browser/ui/ash/login", | 
 |     "//chrome/browser/ui/ash/multi_user", | 
 |     "//chrome/browser/ui/webui/ash/manage_mirrorsync", | 
 |     "//chrome/common", | 
 |     "//chrome/services/media_gallery_util/public/cpp", | 
 |     "//chrome/services/media_gallery_util/public/mojom", | 
 |     "//chrome/services/pdf/public/mojom", | 
 |     "//chromeos/ash/components/browser_context_helper", | 
 |     "//chromeos/ash/components/dbus/cros_disks", | 
 |     "//chromeos/ash/components/disks", | 
 |     "//chromeos/ash/components/drivefs", | 
 |     "//chromeos/ash/components/file_manager", | 
 |     "//chromeos/ash/components/login/login_state", | 
 |     "//chromeos/ash/components/network", | 
 |     "//chromeos/ash/components/settings", | 
 |     "//chromeos/ash/experiences/arc", | 
 |     "//chromeos/ash/experiences/arc/intent_helper", | 
 |     "//chromeos/ash/experiences/arc/mojom", | 
 |     "//chromeos/components/disks:prefs", | 
 |     "//chromeos/components/sharesheet:constants", | 
 |     "//chromeos/dbus/dlp", | 
 |     "//chromeos/dbus/power", | 
 |     "//components/account_id", | 
 |     "//components/drive", | 
 |     "//components/drive:drive_chromeos", | 
 |     "//components/enterprise/data_controls/core/browser", | 
 |     "//components/prefs", | 
 |     "//components/services/unzip/content", | 
 |     "//components/services/unzip/public/cpp", | 
 |     "//components/storage_monitor", | 
 |     "//components/user_manager", | 
 |     "//components/zoom", | 
 |     "//content/public/browser", | 
 |     "//content/public/common", | 
 |     "//extensions/browser", | 
 |     "//google_apis/drive", | 
 |     "//mojo/public/cpp/bindings", | 
 |     "//net", | 
 |     "//skia", | 
 |     "//storage/browser", | 
 |     "//storage/common", | 
 |     "//third_party/nearby:presence_types", | 
 |     "//third_party/private_membership", | 
 |     "//ui/chromeos/strings", | 
 |     "//ui/display", | 
 |     "//ui/gfx", | 
 |     "//ui/message_center/public/cpp", | 
 |     "//ui/shell_dialogs", | 
 |     "//url", | 
 |   ] | 
 |  | 
 |   allow_circular_includes_from = [ | 
 |     "//chrome/browser/ash/drive", | 
 |     "//chrome/browser/ash/exo", | 
 |     "//chrome/browser/ash/policy/dlp", | 
 |     "//chrome/browser/ash/system_web_apps/apps", | 
 |   ] | 
 | } | 
 |  | 
 | source_set("unit_tests") { | 
 |   testonly = true | 
 |  | 
 |   sources = [ | 
 |     "device_event_router_unittest.cc", | 
 |     "drivefs_event_router_unittest.cc", | 
 |     "event_router_unittest.cc", | 
 |     "search_by_pattern_unittest.cc", | 
 |     "system_notification_manager_unittest.cc", | 
 |   ] | 
 |  | 
 |   deps = [ | 
 |     ":file_manager", | 
 |     "//ash/webui/file_manager:constants", | 
 |     "//base", | 
 |     "//chrome/browser", | 
 |     "//chrome/browser/ash/fileapi", | 
 |     "//chrome/browser/ash/policy/dlp", | 
 |     "//chrome/browser/ash/policy/dlp/dialogs", | 
 |     "//chrome/browser/ash/policy/dlp/test:test_support", | 
 |     "//chrome/common", | 
 |     "//chrome/test:test_support", | 
 |     "//chromeos/ash/components/dbus/cros_disks", | 
 |     "//chromeos/ash/components/disks", | 
 |     "//chromeos/ash/components/disks:test_support", | 
 |     "//chromeos/ash/experiences/arc", | 
 |     "//components/services/unzip/content", | 
 |     "//components/services/unzip/public/cpp", | 
 |     "//storage/browser", | 
 |     "//storage/browser:test_support", | 
 |     "//testing/gmock", | 
 |     "//testing/gtest", | 
 |     "//ui/chromeos/strings", | 
 |     "//ui/display:test_support", | 
 |   ] | 
 |  | 
 |   # TODO(crbug.com/40031409): Fix code that adds exit-time destructors and | 
 |   # enable the diagnostic by removing this line. | 
 |   configs += [ "//build/config/compiler:no_exit_time_destructors" ] | 
 | } | 
 |  | 
 | source_set("browser_tests") { | 
 |   testonly = true | 
 |  | 
 |   defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ] | 
 |  | 
 |   sources = [ "file_manager_private_apitest.cc" ] | 
 |  | 
 |   deps = [ | 
 |     ":file_manager", | 
 |     "//ash/constants", | 
 |     "//base", | 
 |     "//chrome/browser", | 
 |     "//chrome/browser:browser_process", | 
 |     "//chrome/browser/ash/crostini:test_support", | 
 |     "//chrome/browser/ash/file_manager", | 
 |     "//chrome/browser/ash/file_manager:test_support", | 
 |     "//chrome/browser/ash/fileapi", | 
 |     "//chrome/browser/ash/guest_os", | 
 |     "//chrome/browser/ash/policy/dlp", | 
 |     "//chrome/browser/ash/policy/dlp/dialogs", | 
 |     "//chrome/browser/ash/policy/dlp/test:test_support", | 
 |     "//chrome/browser/chromeos/policy/dlp", | 
 |     "//chrome/browser/chromeos/policy/dlp/test:test_support", | 
 |     "//chrome/browser/signin", | 
 |     "//chrome/browser/ui", | 
 |     "//chrome/common", | 
 |     "//chrome/common:constants", | 
 |     "//chrome/test:test_support", | 
 |     "//chromeos/ash/components/dbus/cros_disks", | 
 |     "//chromeos/ash/components/disks", | 
 |     "//chromeos/ash/components/disks:test_support", | 
 |     "//chromeos/dbus/dlp", | 
 |     "//components/drive", | 
 |     "//components/prefs", | 
 |     "//components/signin/public/identity_manager:test_support", | 
 |     "//content/test:test_support", | 
 |     "//extensions/common", | 
 |     "//google_apis/common:test_support", | 
 |     "//storage/browser", | 
 |   ] | 
 | } | 
 |  | 
 | fuzzer_test("create_fnmatch_query_fuzzer") { | 
 |   sources = [ "create_fnmatch_query_fuzzer.cc" ] | 
 |   deps = [ | 
 |     ":file_manager", | 
 |     "//base", | 
 |     "//chrome/browser", | 
 |     "//components/exo/wayland:ui_controls_protocol", | 
 |   ] | 
 | } | 
 |  | 
 | fuzzer_test("search_by_pattern_fuzzer") { | 
 |   sources = [ "search_by_pattern_fuzzer.cc" ] | 
 |   deps = [ | 
 |     ":file_manager", | 
 |     "//base", | 
 |     "//chrome/browser", | 
 |     "//chrome/browser/ash/fileapi", | 
 |     "//components/exo/wayland:ui_controls_protocol", | 
 |   ] | 
 | } |