PageRenderTime 51ms CodeModel.GetById 22ms RepoModel.GetById 0ms app.codeStats 0ms

/third_party/blink/public/common/BUILD.gn

https://github.com/chromium/chromium
GN | 394 lines | 357 code | 28 blank | 9 comment | 9 complexity | 7d3ced3b0e988cc9f88233eea9188da5 MD5 | raw file
Possible License(s): MPL-2.0-no-copyleft-exception, Apache-2.0, BSD-3-Clause
  1. # Copyright 2018 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. import("//build/buildflag_header.gni")
  5. import("//build/config/compiler/compiler.gni")
  6. import("//build/config/features.gni")
  7. import("//testing/test.gni")
  8. import("//third_party/blink/public/public_features.gni")
  9. import("//third_party/blink/renderer/build/scripts/scripts.gni")
  10. import("//third_party/protobuf/proto_library.gni")
  11. import("//third_party/webrtc/webrtc.gni")
  12. if (is_android) {
  13. import("//build/config/android/rules.gni")
  14. }
  15. blink_python_runner("make_generated_origin_trial_feature") {
  16. script = "../../renderer/build/scripts/make_origin_trial_feature.py"
  17. inputs =
  18. scripts_for_json5_files + [
  19. "../../renderer/build/scripts/make_origin_trial_feature.py",
  20. "../../renderer/platform/runtime_enabled_features.json5",
  21. "../../renderer/build/scripts/templates/origin_trial_feature.h.tmpl",
  22. ]
  23. outputs = [ "$root_gen_dir/third_party/blink/public/common/origin_trials/origin_trial_feature.h" ]
  24. args = [
  25. rebase_path("../../renderer/platform/runtime_enabled_features.json5",
  26. root_build_dir),
  27. "--output_dir",
  28. rebase_path("$root_gen_dir/third_party/blink/public/common/origin_trials",
  29. root_build_dir),
  30. ]
  31. }
  32. blink_python_runner("make_generated_permissions_policy_helper") {
  33. script = "../../renderer/build/scripts/make_policy_helper_public.py"
  34. inputs = scripts_for_json5_files + [
  35. "../../renderer/build/scripts/make_policy_helper_public.py",
  36. "../../renderer/core/permissions_policy/permissions_policy_features.json5",
  37. "../../renderer/build/scripts/templates/policy_helper_public.cc.tmpl",
  38. ]
  39. outputs = [ "$root_gen_dir/third_party/blink/public/common/permissions_policy/policy_helper_public.cc" ]
  40. args = [
  41. rebase_path(
  42. "../../renderer/core/permissions_policy/permissions_policy_features.json5",
  43. root_build_dir),
  44. "--output_dir",
  45. rebase_path(
  46. "$root_gen_dir/third_party/blink/public/common/permissions_policy",
  47. root_build_dir),
  48. ]
  49. }
  50. # Public common API headers, mojom and libraries that can be linked and
  51. # referenced both by browser-side and renderer-side components.
  52. component("common") {
  53. output_name = "blink_common"
  54. public_deps = [
  55. "//third_party/blink/common/privacy_budget:privacy_budget",
  56. "//third_party/blink/public/common:headers",
  57. "//third_party/blink/public/mojom:mojom_modules",
  58. "//third_party/blink/public/mojom:web_bluetooth_mojo_bindings",
  59. ]
  60. deps = [
  61. "//cc/ipc",
  62. "//third_party/blink/common",
  63. "//ui/events/ipc",
  64. ]
  65. }
  66. buildflag_header("buildflags") {
  67. header = "buildflags.h"
  68. flags = [
  69. "RTC_USE_H264=$rtc_use_h264",
  70. "ENABLE_JXL_DECODER=$enable_jxl_decoder",
  71. ]
  72. }
  73. source_set("common_export") {
  74. visibility = [
  75. "//third_party/blink/common/*",
  76. "//third_party/blink/public/common/*",
  77. ]
  78. sources = [ "common_export.h" ]
  79. }
  80. source_set("headers") {
  81. visibility = [
  82. ":*",
  83. "//android_webview/*",
  84. "//chrome/*",
  85. "//chromecast/*",
  86. "//components/*",
  87. "//content/*",
  88. "//fuchsia/*",
  89. "//pdf/*",
  90. "//services/*",
  91. "//storage/*",
  92. "//third_party/blink/*",
  93. ]
  94. sources = [
  95. "action_after_pagehide.h",
  96. "associated_interfaces/associated_interface_provider.h",
  97. "associated_interfaces/associated_interface_registry.h",
  98. "attribution_reporting/constants.h",
  99. "blob/blob_utils.h",
  100. "bluetooth/web_bluetooth_device_id.h",
  101. "bluetooth/web_bluetooth_device_id_mojom_traits.h",
  102. "browser_interface_broker_proxy.h",
  103. "cache_storage/cache_storage_utils.h",
  104. "chrome_debug_urls.h",
  105. "client_hints/client_hints.h",
  106. "client_hints/enabled_client_hints.h",
  107. "context_menu_data/context_menu_data.h",
  108. "context_menu_data/context_menu_params_builder.h",
  109. "context_menu_data/edit_flags.h",
  110. "context_menu_data/menu_item_info.h",
  111. "context_menu_data/untrustworthy_context_menu_params.h",
  112. "css/forced_colors.h",
  113. "css/navigation_controls.h",
  114. "css/page_orientation.h",
  115. "css/page_size_type.h",
  116. "custom_handlers/protocol_handler_utils.h",
  117. "device_memory/approximated_device_memory.h",
  118. "dom_storage/session_storage_namespace_id.h",
  119. "features.h",
  120. "fenced_frame/fenced_frame_utils.h",
  121. "fetch/fetch_api_request_headers_map.h",
  122. "fetch/fetch_api_request_headers_mojom_traits.h",
  123. "forcedark/forcedark_switches.h",
  124. "frame/event_page_show_persisted.h",
  125. "frame/fenced_frame_sandbox_flags.h",
  126. "frame/frame_ad_evidence.h",
  127. "frame/frame_owner_element_type.h",
  128. "frame/frame_policy.h",
  129. "frame/frame_visual_properties.h",
  130. "frame/from_ad_state.h",
  131. "frame/fullscreen_request_token.h",
  132. "frame/payment_request_token.h",
  133. "frame/transient_allow_fullscreen.h",
  134. "frame/user_activation_state.h",
  135. "frame/user_activation_update_source.h",
  136. "history/session_history_constants.h",
  137. "indexeddb/indexed_db_default_mojom_traits.h",
  138. "indexeddb/indexeddb_key.h",
  139. "indexeddb/indexeddb_key_path.h",
  140. "indexeddb/indexeddb_key_range.h",
  141. "indexeddb/indexeddb_metadata.h",
  142. "indexeddb/web_idb_types.h",
  143. "input/pointer_id.h",
  144. "input/synthetic_web_input_event_builders.h",
  145. "input/web_coalesced_input_event.h",
  146. "input/web_coalesced_input_event_mojom_traits.h",
  147. "input/web_gesture_device.h",
  148. "input/web_gesture_event.h",
  149. "input/web_input_event.h",
  150. "input/web_input_event_attribution.h",
  151. "input/web_keyboard_event.h",
  152. "input/web_menu_source_type.h",
  153. "input/web_mouse_event.h",
  154. "input/web_mouse_wheel_event.h",
  155. "input/web_pointer_event.h",
  156. "input/web_pointer_properties.h",
  157. "input/web_touch_event.h",
  158. "input/web_touch_point.h",
  159. "interest_group/ad_auction_constants.h",
  160. "interest_group/auction_config.h",
  161. "interest_group/auction_config_mojom_traits.h",
  162. "interest_group/interest_group.h",
  163. "interest_group/interest_group_mojom_traits.h",
  164. "link_to_text/link_to_text_mojom_traits.h",
  165. "loader/http_body_element_type.h",
  166. "loader/inter_process_time_ticks_converter.h",
  167. "loader/loader_constants.h",
  168. "loader/loading_behavior_flag.h",
  169. "loader/mime_sniffing_throttle.h",
  170. "loader/mime_sniffing_url_loader.h",
  171. "loader/network_utils.h",
  172. "loader/record_load_histograms.h",
  173. "loader/referrer_utils.h",
  174. "loader/resource_type_util.h",
  175. "loader/url_loader_factory_bundle.h",
  176. "loader/url_loader_factory_bundle_mojom_traits.h",
  177. "loader/url_loader_throttle.h",
  178. "loader/worker_main_script_load_parameters.h",
  179. "logging/logging_utils.h",
  180. "manifest/manifest.h",
  181. "manifest/manifest_icon_selector.h",
  182. "manifest/manifest_util.h",
  183. "media/display_type.h",
  184. "media/video_capture.h",
  185. "media/watch_time_component.h",
  186. "media/watch_time_reporter.h",
  187. "mediastream/media_devices.h",
  188. "mediastream/media_devices_mojom_traits.h",
  189. "mediastream/media_stream_controls.h",
  190. "mediastream/media_stream_mojom_traits.h",
  191. "mediastream/media_stream_request.h",
  192. "messaging/cloneable_message.h",
  193. "messaging/cloneable_message_mojom_traits.h",
  194. "messaging/message_port_channel.h",
  195. "messaging/message_port_descriptor.h",
  196. "messaging/message_port_descriptor_mojom_traits.h",
  197. "messaging/string_message_codec.h",
  198. "messaging/transferable_message.h",
  199. "messaging/transferable_message_mojom_traits.h",
  200. "messaging/web_message_port.h",
  201. "metrics/accept_language_and_content_language_usage.h",
  202. "metrics/document_update_reason.h",
  203. "metrics/form_element_pii_type.h",
  204. "metrics/post_message_counter.h",
  205. "mime_util/mime_util.h",
  206. "mobile_metrics/mobile_friendliness.h",
  207. "native_io/native_io_utils.h",
  208. "navigation/impression.h",
  209. "navigation/navigation_params.h",
  210. "navigation/navigation_params_mojom_traits.h",
  211. "navigation/navigation_policy.h",
  212. "navigation/resource_intercept_policy.h",
  213. "notifications/notification_constants.h",
  214. "notifications/notification_mojom_traits.h",
  215. "notifications/notification_resources.h",
  216. "notifications/platform_notification_data.h",
  217. "oom_intervention/oom_intervention_types.h",
  218. "origin_trials/origin_trial_policy.h",
  219. "origin_trials/origin_trial_public_key.h",
  220. "origin_trials/origin_trials.h",
  221. "origin_trials/trial_token.h",
  222. "origin_trials/trial_token_result.h",
  223. "origin_trials/trial_token_validator.h",
  224. "page/content_to_visible_time_reporter.h",
  225. "page/drag_mojom_traits.h",
  226. "page/drag_operation.h",
  227. "page/launching_process_state.h",
  228. "page/page_lifecycle_state_updater.h",
  229. "page/page_zoom.h",
  230. "page_state/page_state.h",
  231. "page_state/page_state_serialization.h",
  232. "peerconnection/webrtc_ip_handling_policy.h",
  233. "performance/largest_contentful_paint_type.h",
  234. "permissions/permission_utils.h",
  235. "permissions_policy/document_policy.h",
  236. "permissions_policy/document_policy_features.h",
  237. "permissions_policy/permissions_policy.h",
  238. "permissions_policy/permissions_policy_features.h",
  239. "permissions_policy/permissions_policy_forward.h",
  240. "permissions_policy/policy_helper_public.h",
  241. "permissions_policy/policy_value.h",
  242. "renderer_preferences/renderer_preferences.h",
  243. "responsiveness_metrics/user_interaction_latency.h",
  244. "scheduler/web_scheduler_tracked_feature.h",
  245. "scheme_registry.h",
  246. "security/address_space_feature.h",
  247. "security/protocol_handler_security_level.h",
  248. "security/security_style.h",
  249. "security_context/insecure_request_policy.h",
  250. "service_worker/service_worker_loader_helpers.h",
  251. "service_worker/service_worker_scope_match.h",
  252. "service_worker/service_worker_status_code.h",
  253. "service_worker/service_worker_type_converters.h",
  254. "service_worker/service_worker_types.h",
  255. "shared_storage/shared_storage_mojom_traits.h",
  256. "shared_storage/shared_storage_utils.h",
  257. "sms/webotp_constants.h",
  258. "sms/webotp_service_outcome.h",
  259. "storage_key/storage_key.h",
  260. "switches.h",
  261. "thread_safe_browser_interface_broker_proxy.h",
  262. "unique_name/unique_name_helper.h",
  263. "use_counter/use_counter_feature.h",
  264. "use_counter/use_counter_feature_tracker.h",
  265. "user_agent/user_agent_brand_version_type.h",
  266. "user_agent/user_agent_metadata.h",
  267. "web_cache/web_cache_resource_type_stats.h",
  268. "web_package/signed_exchange_consts.h",
  269. "web_package/web_package_request_matcher.h",
  270. "web_preferences/web_preferences.h",
  271. "widget/constants.h",
  272. "widget/device_emulation_params.h",
  273. "widget/visual_properties.h",
  274. ]
  275. sources += get_target_outputs(":make_generated_origin_trial_feature")
  276. sources += get_target_outputs(":make_generated_permissions_policy_helper")
  277. public_deps = [
  278. ":make_generated_origin_trial_feature",
  279. ":make_generated_permissions_policy_helper",
  280. "//base",
  281. "//mojo/public/cpp/bindings",
  282. "//services/metrics/public/cpp:metrics_cpp",
  283. "//services/network/public/cpp:cpp",
  284. "//skia",
  285. "//skia/public/mojom:shared_typemap_traits",
  286. "//third_party/blink/public/common/privacy_budget",
  287. "//third_party/blink/public/common/tokens:tokens_headers",
  288. "//third_party/blink/public/mojom:mobile_metrics_shared_cpp_sources",
  289. "//third_party/blink/public/mojom:mojom_modules_headers",
  290. "//third_party/blink/public/mojom:mojom_platform_shared",
  291. "//third_party/blink/public/mojom:web_bluetooth_mojo_bindings_headers",
  292. "//ui/display/mojom",
  293. "//ui/events:event_constants",
  294. "//ui/events/types:headers",
  295. "//ui/latency",
  296. ]
  297. deps = [
  298. ":buildflags",
  299. ":common_export",
  300. "//base",
  301. "//cc",
  302. "//components/shared_highlighting/core/common",
  303. "//components/viz/common",
  304. "//mojo/public/cpp/bindings",
  305. "//mojo/public/cpp/system",
  306. "//mojo/public/mojom/base",
  307. "//net",
  308. "//ui/base:base",
  309. ]
  310. # iOS doesn't use and must not depend on //media
  311. if (!is_ios) {
  312. deps += [
  313. "//media",
  314. "//media/capture:capture_base",
  315. "//media/capture:capture_lib",
  316. ]
  317. public_deps += [ "//media/mojo/mojom" ]
  318. }
  319. if (is_android || is_win) {
  320. sources += [
  321. "font_unique_name_lookup/font_table_matcher.h",
  322. "font_unique_name_lookup/font_table_persistence.h",
  323. "font_unique_name_lookup/icu_fold_case_util.h",
  324. ]
  325. deps += [ ":font_unique_name_table_proto" ]
  326. }
  327. if (is_mac) {
  328. sources += [ "sandbox_support/sandbox_support_mac.h" ]
  329. }
  330. if (is_win) {
  331. sources += [ "dwrite_rasterizer_support/dwrite_rasterizer_support.h" ]
  332. }
  333. }
  334. if (is_android || is_win) {
  335. proto_library("font_unique_name_table_proto") {
  336. sources = [ "font_unique_name_lookup/font_unique_name_table.proto" ]
  337. }
  338. }
  339. proto_library("font_enumeration_table_proto") {
  340. sources = [ "font_access/font_enumeration_table.proto" ]
  341. }
  342. if (is_android) {
  343. java_cpp_features("java_features_srcjar") {
  344. # External code should depend on ":common_java" instead.
  345. visibility = [ ":*" ]
  346. sources = [ "//third_party/blink/common/features.cc" ]
  347. template = "//third_party/blink/public/common/android/java_templates/BlinkFeatures.java.tmpl"
  348. }
  349. android_library("common_java") {
  350. # Right now, this only includes the Java features. But if we need more Java
  351. # files, they should be added here as necessary.
  352. srcjar_deps = [ ":java_features_srcjar" ]
  353. }
  354. }
  355. proto_library("storage_key_proto") {
  356. proto_in_dir = "//"
  357. sources = [ "storage_key/proto/storage_key.proto" ]
  358. }
  359. source_set("storage_key_proto_converter") {
  360. sources = [
  361. "storage_key/storage_key_proto_converter.cc",
  362. "storage_key/storage_key_proto_converter.h",
  363. ]
  364. deps = [ ":common" ]
  365. public_deps = [ ":storage_key_proto" ]
  366. }