1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309
|
# 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.
assert(is_win || is_mac || is_linux || is_chromeos || is_android)
import("//build/config/ozone.gni")
import("//build/config/ui.gni")
import("//chrome/common/features.gni")
import("//content/public/common/features.gni")
import("//third_party/webrtc/webrtc.gni")
source_set("webrtc") {
sources = [
"audio_debug_recordings_handler.cc",
"audio_debug_recordings_handler.h",
"capture_policy_utils.cc",
"capture_policy_utils.h",
"chrome_camera_pan_tilt_zoom_permission_context_delegate.cc",
"chrome_camera_pan_tilt_zoom_permission_context_delegate.h",
"chrome_screen_enumerator.cc",
"chrome_screen_enumerator.h",
"delegated_source_list_capturer.cc",
"delegated_source_list_capturer.h",
"desktop_capturer_wrapper.cc",
"desktop_capturer_wrapper.h",
"desktop_media_list.cc",
"desktop_media_list.h",
"desktop_media_list_base.cc",
"desktop_media_list_base.h",
"desktop_media_list_layout_config.h",
"desktop_media_list_observer.h",
"desktop_media_picker.cc",
"desktop_media_picker.h",
"desktop_media_picker_factory.cc",
"desktop_media_picker_factory.h",
"desktop_media_picker_manager.cc",
"desktop_media_picker_manager.h",
"media_capture_devices_dispatcher.cc",
"media_capture_devices_dispatcher.h",
"media_device_salt_service_factory.cc",
"media_device_salt_service_factory.h",
"media_stream_capture_indicator.cc",
"media_stream_capture_indicator.h",
"media_stream_device_permission_context.cc",
"media_stream_device_permission_context.h",
"media_stream_device_permissions.cc",
"media_stream_device_permissions.h",
"native_desktop_media_list.cc",
"native_desktop_media_list.h",
"permission_bubble_media_access_handler.cc",
"permission_bubble_media_access_handler.h",
"rtp_dump_type.h",
"same_origin_observer.cc",
"same_origin_observer.h",
"select_audio_output_picker.h",
"thumbnail_capturer.cc",
"thumbnail_capturer.h",
"webrtc_event_log_history.cc",
"webrtc_event_log_history.h",
"webrtc_event_log_manager.cc",
"webrtc_event_log_manager.h",
"webrtc_event_log_manager_common.cc",
"webrtc_event_log_manager_common.h",
"webrtc_event_log_manager_keyed_service.cc",
"webrtc_event_log_manager_keyed_service.h",
"webrtc_event_log_manager_keyed_service_factory.cc",
"webrtc_event_log_manager_keyed_service_factory.h",
"webrtc_event_log_manager_local.cc",
"webrtc_event_log_manager_local.h",
"webrtc_event_log_manager_remote.cc",
"webrtc_event_log_manager_remote.h",
"webrtc_event_log_uploader.cc",
"webrtc_event_log_uploader.h",
"webrtc_log_buffer.cc",
"webrtc_log_buffer.h",
"webrtc_log_uploader.cc",
"webrtc_log_uploader.h",
"webrtc_log_util.cc",
"webrtc_log_util.h",
"webrtc_logging_controller.cc",
"webrtc_logging_controller.h",
"webrtc_rtp_dump_handler.cc",
"webrtc_rtp_dump_handler.h",
"webrtc_rtp_dump_writer.cc",
"webrtc_rtp_dump_writer.h",
"webrtc_text_log_handler.cc",
"webrtc_text_log_handler.h",
"window_icon_util.h",
]
public_deps = [
"//base",
"//build:android_buildflags",
"//build:buildflag_header_h",
"//chrome/browser:browser_public_dependencies",
"//chrome/browser/profiles:profile",
"//chrome/common:mojo_bindings",
"//components/content_settings/core/common",
"//components/keyed_service/core",
"//components/permissions",
"//components/prefs",
"//components/upload_list",
"//components/webrtc:media_stream_device_enumerator",
"//components/webrtc_logging/common",
"//content/public/browser",
"//ipc:message_support",
"//mojo/public/cpp/bindings",
"//net",
"//services/network/public/cpp",
"//services/network/public/mojom",
"//third_party/blink/public/common",
"//ui/base:types",
"//ui/gfx",
"//ui/gfx/geometry",
"//url",
]
deps = [
"//base:i18n",
"//chrome/app:branded_strings",
"//chrome/app:branded_strings_grit",
"//chrome/app:command_ids",
"//chrome/app:generated_resources",
"//chrome/app:generated_resources_grit",
"//chrome/browser:browser_process",
"//chrome/browser/content_settings:content_settings_factory",
"//chrome/browser/content_settings:content_settings_util",
"//chrome/browser/media/prefs",
"//chrome/browser/permissions/system",
"//chrome/browser/picture_in_picture",
"//chrome/browser/policy:policy_util",
"//chrome/browser/profiles:profile_util",
"//chrome/browser/safe_browsing",
"//chrome/browser/status_icons:status_icons",
"//chrome/browser/ui:ui_features",
"//chrome/common",
"//chrome/common:channel_info",
"//chrome/common:chrome_features",
"//chrome/common:constants",
"//chrome/common:non_code_constants",
"//components/content_settings/browser",
"//components/content_settings/core/browser",
"//components/favicon/content",
"//components/media_device_salt",
"//components/pref_registry",
"//components/url_formatter",
"//components/user_manager:common",
"//components/user_prefs",
"//components/vector_icons",
"//components/version_info",
"//components/webrtc",
"//components/webrtc_logging/browser",
"//content/public/common",
"//content/public/common:buildflags",
"//media",
"//media/webrtc",
"//net/traffic_annotation",
"//services/audio/public/cpp",
"//services/network/public/mojom:url_loader_base",
"//skia",
"//storage/browser",
"//third_party/abseil-cpp:absl",
"//third_party/blink/public:runtime_features_for_public",
"//third_party/libyuv",
"//third_party/zlib",
"//ui/base",
"//ui/base:features",
"//ui/display",
"//ui/gfx:color_utils",
"//ui/snapshot",
]
if (!is_android) {
sources += [
"current_tab_desktop_media_list.cc",
"current_tab_desktop_media_list.h",
"desktop_capture_access_handler.cc",
"desktop_capture_access_handler.h",
"desktop_media_picker_controller.cc",
"desktop_media_picker_controller.h",
"desktop_media_picker_utils.cc",
"desktop_media_picker_utils.h",
"media_stream_focus_delegate.cc",
"media_stream_focus_delegate.h",
"tab_capture_access_handler.cc",
"tab_capture_access_handler.h",
"tab_desktop_media_list.cc",
"tab_desktop_media_list.h",
]
public_deps += [
"//chrome/browser/ui/tabs:tab_strip_model_observer",
"//extensions/buildflags",
]
deps += [
"//chrome/browser/ui:browser_list",
"//chrome/browser/ui/tabs:tab_strip",
"//chrome/browser/ui/web_applications",
"//extensions/browser",
"//extensions/browser/kiosk",
"//extensions/common",
]
}
if (enable_screen_capture) {
sources += [
"desktop_capture_devices_util.cc",
"desktop_capture_devices_util.h",
"desktop_media_picker_factory_impl.cc",
"desktop_media_picker_factory_impl.h",
"display_media_access_handler.cc",
"display_media_access_handler.h",
]
deps += [ "//chrome/browser/ui:url_identity" ]
if (enable_glic) {
deps += [ "//chrome/browser/glic" ]
}
}
if (is_mac) {
sources += [
"system_media_capture_permissions_mac.h",
"system_media_capture_permissions_mac.mm",
"system_media_capture_permissions_stats_mac.h",
"system_media_capture_permissions_stats_mac.mm",
"thumbnail_capturer_mac.h",
"thumbnail_capturer_mac.mm",
"window_icon_util_mac.mm",
]
deps += [ "//components/remote_cocoa/browser" ]
}
if (is_linux && use_ozone) {
sources += [ "window_icon_util_ozone.cc" ]
deps += [ "//ui/ozone" ]
}
if (is_chromeos) {
sources += [
"desktop_media_list_ash.cc",
"desktop_media_list_ash.h",
"multi_capture/multi_capture_usage_indicator_service.cc",
"multi_capture/multi_capture_usage_indicator_service.h",
"multi_capture/multi_capture_usage_indicator_service_factory.cc",
"multi_capture/multi_capture_usage_indicator_service_factory.h",
"window_icon_util_chromeos.cc",
]
deps += [
"//ash",
"//ash/public/cpp",
"//chrome/browser/ash/arc/screen_capture",
"//chrome/browser/ash/notifications",
"//chrome/browser/ash/policy/handlers",
"//chrome/browser/ash/policy/multi_screen_capture",
"//chrome/browser/ash/policy/uploading",
"//chrome/browser/ash/profiles",
"//chrome/browser/ash/system_web_apps/apps/camera_app",
"//chrome/browser/ash/system_web_apps/apps/recorder_app",
"//chrome/browser/chromeos/policy/dlp",
"//chrome/browser/ui/ash/keyboard",
"//chrome/browser/ui/ash/media_client",
"//chrome/browser/web_applications:web_applications",
"//chromeos/ash/components/browser_context_helper",
"//chromeos/ash/components/system",
"//components/user_manager",
"//components/webapps/isolated_web_apps",
]
allow_circular_includes_from = [
"//chrome/browser/ash/policy/handlers",
"//chrome/browser/ash/profiles",
"//chrome/browser/ash/notifications",
"//chrome/browser/ash/arc/screen_capture",
"//chrome/browser/ash/policy/multi_screen_capture",
"//chrome/browser/ash/policy/uploading",
"//chrome/browser/ui/ash/keyboard",
"//chrome/browser/ui/ash/media_client",
"//chrome/browser/ash/system_web_apps/apps/camera_app",
"//chrome/browser/ash/system_web_apps/apps/recorder_app",
]
}
if (is_win) {
sources += [ "window_icon_util_win.cc" ]
deps += [ "//ui/views" ]
}
if (use_aura) {
deps += [ "//ui/aura" ]
}
if (rtc_use_pipewire) {
configs +=
[ "//third_party/webrtc/modules/desktop_capture:pipewire_config" ]
}
defines = [ "ZLIB_CONST" ]
}
source_set("test_support") {
testonly = true
sources = [
"tab_desktop_media_list_mock_observer.cc",
"tab_desktop_media_list_mock_observer.h",
]
deps = [
":webrtc",
"//testing/gmock",
]
}
|