summaryrefslogtreecommitdiffstats
path: root/chromium/ios/chrome/browser/web/BUILD.gn
blob: be3db6d7b1529f07994e06c9c26144c8e8ce5d01 (plain)
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
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
# Copyright 2016 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//base/allocator/allocator.gni")
import("//ios/web/public/js_messaging/optimize_js.gni")
import("//rlz/buildflags/buildflags.gni")

source_set("web") {
  sources = [
    "blocked_popup_tab_helper.h",
    "blocked_popup_tab_helper.mm",
    "certificate_policy_app_agent.h",
    "certificate_policy_app_agent.mm",
    "error_page_util.h",
    "error_page_util.mm",
    "invalid_url_tab_helper.h",
    "invalid_url_tab_helper.mm",
    "load_timing_tab_helper.h",
    "load_timing_tab_helper.mm",
    "repost_form_tab_helper.h",
    "repost_form_tab_helper.mm",
    "sad_tab_tab_helper.h",
    "sad_tab_tab_helper.mm",
    "web_navigation_browser_agent.h",
    "web_navigation_browser_agent.mm",
    "web_navigation_ntp_delegate.h",
    "web_navigation_util.h",
    "web_navigation_util.mm",
  ]
  deps = [
    ":feature_flags",
    ":page_placeholder",
    ":tab_helper_delegates",
    "//base",
    "//components/content_settings/core/browser",
    "//components/error_page/common",
    "//components/feature_engagement/public",
    "//components/pref_registry",
    "//components/resources:components_resources_grit",
    "//components/resources:dev_ui_components_resources_grit",
    "//components/search_engines",
    "//components/strings",
    "//components/ukm/ios:ukm_url_recorder",
    "//components/variations/net",
    "//ios/chrome/app/application_delegate:observing_app_state_agent",
    "//ios/chrome/app/strings",
    "//ios/chrome/browser/content_settings",
    "//ios/chrome/browser/feature_engagement",
    "//ios/chrome/browser/infobars",
    "//ios/chrome/browser/infobars:public",
    "//ios/chrome/browser/lens",
    "//ios/chrome/browser/ntp",
    "//ios/chrome/browser/shared/model/application_context",
    "//ios/chrome/browser/shared/model/browser",
    "//ios/chrome/browser/shared/model/browser_state",
    "//ios/chrome/browser/shared/model/url:constants",
    "//ios/chrome/browser/shared/model/utils",
    "//ios/chrome/browser/shared/model/web_state_list",
    "//ios/chrome/browser/shared/public/commands",
    "//ios/chrome/browser/shared/ui/elements",
    "//ios/chrome/browser/shared/ui/util",
    "//ios/chrome/browser/ui/fullscreen",
    "//ios/chrome/common/ui/util",
    "//ios/components/ui_util",
    "//ios/components/webui:url_constants",
    "//ios/net",
    "//ios/web",
    "//ios/web/common",
    "//ios/web/common:user_agent",
    "//ios/web/public/js_messaging",
    "//ios/web/public/security",
    "//ios/web/public/session",
    "//services/metrics/public/cpp:ukm_builders",
    "//ui/base",
    "//url",
  ]
  public_deps = [ "//components/infobars/core" ]
}

source_set("delegate") {
  sources = [
    "web_state_delegate_browser_agent.h",
    "web_state_delegate_browser_agent.mm",
    "web_state_update_browser_agent.h",
    "web_state_update_browser_agent.mm",
  ]
  deps = [
    ":tab_helper_delegates",
    ":web",
    "//base",
    "//components/content_settings/core/browser",
    "//components/supervised_user/core/common",
    "//ios/chrome/browser/content_settings",
    "//ios/chrome/browser/overlays",
    "//ios/chrome/browser/overlays/public/web_content_area",
    "//ios/chrome/browser/permissions:tab_helper",
    "//ios/chrome/browser/shared/model/browser",
    "//ios/chrome/browser/shared/model/browser_state",
    "//ios/chrome/browser/shared/model/web_state_list",
    "//ios/chrome/browser/snapshots",
    "//ios/chrome/browser/ui/context_menu",
    "//ios/chrome/browser/ui/dialogs:dialogs_internal",
    "//ios/chrome/browser/url_loading",
    "//ios/chrome/browser/url_loading:url_loading_params_header",
    "//ios/chrome/browser/web_state_list:agents",
    "//ios/components/security_interstitials",
    "//ios/web/public",
    "//url",
  ]

  frameworks = [
    "UIKit.framework",
    "Foundation.framework",
  ]
}

source_set("page_placeholder") {
  sources = [
    "page_placeholder_browser_agent.h",
    "page_placeholder_browser_agent.mm",
    "page_placeholder_tab_helper.h",
    "page_placeholder_tab_helper.mm",
  ]
  deps = [
    "//base",
    "//ios/chrome/browser/shared/model/browser",
    "//ios/chrome/browser/shared/model/web_state_list",
    "//ios/chrome/browser/shared/ui/elements",
    "//ios/chrome/browser/shared/ui/util",
    "//ios/chrome/browser/snapshots",
    "//ios/chrome/common/ui/util",
    "//ios/net",
    "//ios/web",
  ]
}

source_set("tab_helper_delegates") {
  sources = [
    "repost_form_tab_helper_delegate.h",
    "sad_tab_tab_helper_delegate.h",
    "web_state_container_view_provider.h",
  ]
  deps = [ "//ios/web/public" ]
}

source_set("unit_tests") {
  testonly = true
  sources = [
    "certificate_policy_app_agent_unittest.mm",
    "error_page_util_unittest.mm",
    "invalid_url_tab_helper_unittest.mm",
    "load_timing_tab_helper_unittest.mm",
    "page_placeholder_tab_helper_unittest.mm",
    "repost_form_tab_helper_unittest.mm",
    "sad_tab_tab_helper_unittest.mm",
    "web_navigation_browser_agent_unittest.mm",
    "web_navigation_util_unittest.mm",
    "web_state_delegate_browser_agent_unittest.mm",
  ]
  deps = [
    ":delegate",
    ":page_placeholder",
    ":tab_helper_delegates",
    ":web",
    "//base",
    "//base/test:test_support",
    "//components/search_engines",
    "//components/strings",
    "//components/sync_preferences:sync_preferences",
    "//components/sync_preferences:test_support",
    "//ios/chrome/app:app_internal",
    "//ios/chrome/app/application_delegate:application_delegate_internal",
    "//ios/chrome/browser/lens",
    "//ios/chrome/browser/main",
    "//ios/chrome/browser/ntp",
    "//ios/chrome/browser/overlays",
    "//ios/chrome/browser/overlays/public/web_content_area",
    "//ios/chrome/browser/shared/model/browser/test:test_support",
    "//ios/chrome/browser/shared/model/browser_state",
    "//ios/chrome/browser/shared/model/browser_state:test_support",
    "//ios/chrome/browser/shared/model/prefs:browser_prefs",
    "//ios/chrome/browser/shared/model/url:constants",
    "//ios/chrome/browser/shared/model/web_state_list",
    "//ios/chrome/browser/shared/ui/util",
    "//ios/chrome/browser/snapshots",
    "//ios/chrome/browser/web",
    "//ios/chrome/browser/web:feature_flags",
    "//ios/chrome/browser/web_state_list:agents",
    "//ios/chrome/test:test_support",
    "//ios/net",
    "//ios/net:test_support",
    "//ios/web",
    "//ios/web/public/security",
    "//ios/web/public/session",
    "//ios/web/public/test",
    "//ios/web/public/test/fakes",
    "//ios/web/public/test/http_server",
    "//net:test_support",
    "//services/network:test_support",
    "//testing/gmock",
    "//testing/gtest",
    "//third_party/ocmock",
    "//ui/base",
    "//url:url",
  ]
}

source_set("web_internal") {
  sources = [
    "browser_about_rewriter.cc",
    "browser_about_rewriter.h",
    "chrome_main_parts.h",
    "chrome_main_parts.mm",
    "chrome_web_client.h",
    "chrome_web_client.mm",
    "ios_thread_profiler.cc",
    "ios_thread_profiler.h",
  ]
  deps = [
    ":web",
    "//base",
    "//base/allocator:buildflags",
    "//build:blink_buildflags",
    "//components/autofill/core/common:features",
    "//components/autofill/ios/browser",
    "//components/autofill/ios/form_util:form_handler_feature",
    "//components/content_settings/core/browser",
    "//components/crash/core/common:crash_key",
    "//components/crash/core/common:reporter_running_ios",
    "//components/dom_distiller/core",
    "//components/flags_ui",
    "//components/google/core/common",
    "//components/language/core/browser",
    "//components/language/ios/browser",
    "//components/memory_system",
    "//components/metrics",
    "//components/metrics:call_stack_profile_params",
    "//components/metrics:child_call_stack_profile_builder",
    "//components/metrics/public/mojom:call_stack_mojo_bindings",
    "//components/metrics_services_manager",
    "//components/open_from_clipboard",
    "//components/password_manager/core/common:features",
    "//components/password_manager/ios:password_manager_feature_header",
    "//components/payments/core",
    "//components/prefs",
    "//components/previous_session_info",
    "//components/resources",
    "//components/signin/public/identity_manager",
    "//components/strings",
    "//components/supervised_user/core/browser",
    "//components/supervised_user/core/common:buildflags",
    "//components/translate/core/browser",
    "//components/translate/ios/browser",
    "//components/url_formatter",
    "//components/variations",
    "//components/variations/field_trial_config",
    "//components/variations/service",
    "//components/version_info",
    "//ios/chrome/app/resources:ios_resources",
    "//ios/chrome/browser/application_context/model",
    "//ios/chrome/browser/autofill/bottom_sheet",
    "//ios/chrome/browser/browser_state",
    "//ios/chrome/browser/content_settings",
    "//ios/chrome/browser/crash_report",
    "//ios/chrome/browser/first_run",
    "//ios/chrome/browser/flags",
    "//ios/chrome/browser/flags:client_side",
    "//ios/chrome/browser/flags:system_flags",
    "//ios/chrome/browser/follow:javascript_feature",
    "//ios/chrome/browser/https_upgrades",
    "//ios/chrome/browser/link_to_text",
    "//ios/chrome/browser/metrics:accessor",
    "//ios/chrome/browser/metrics:expired_histograms_array",
    "//ios/chrome/browser/ntp",
    "//ios/chrome/browser/open_from_clipboard",
    "//ios/chrome/browser/optimization_guide",
    "//ios/chrome/browser/passwords",
    "//ios/chrome/browser/policy",
    "//ios/chrome/browser/prerender",
    "//ios/chrome/browser/promos_manager",
    "//ios/chrome/browser/reading_list",
    "//ios/chrome/browser/safe_browsing",
    "//ios/chrome/browser/search_engines",
    "//ios/chrome/browser/shared/model/application_context",
    "//ios/chrome/browser/shared/model/browser_state",
    "//ios/chrome/browser/shared/model/paths",
    "//ios/chrome/browser/shared/model/prefs:pref_names",
    "//ios/chrome/browser/shared/model/url",
    "//ios/chrome/browser/shared/model/url:constants",
    "//ios/chrome/browser/shared/public/features",
    "//ios/chrome/browser/shared/ui/elements",
    "//ios/chrome/browser/shared/ui/util",
    "//ios/chrome/browser/signin:signin_util",
    "//ios/chrome/browser/ssl",
    "//ios/chrome/browser/supervised_user",
    "//ios/chrome/browser/translate",
    "//ios/chrome/browser/ui/infobars/coordinators",
    "//ios/chrome/browser/web:feature_flags",
    "//ios/chrome/browser/web/font_size",
    "//ios/chrome/browser/web/image_fetch",
    "//ios/chrome/browser/web/java_script_console",
    "//ios/chrome/browser/web/print",
    "//ios/chrome/browser/web/session_state",
    "//ios/chrome/browser/web/web_performance_metrics",
    "//ios/chrome/browser/web_selection",
    "//ios/chrome/common",
    "//ios/components/security_interstitials",
    "//ios/components/security_interstitials/https_only_mode",
    "//ios/components/security_interstitials/https_only_mode:feature",
    "//ios/components/security_interstitials/lookalikes",
    "//ios/components/security_interstitials/safe_browsing",
    "//ios/components/webui:url_constants",
    "//ios/net",
    "//ios/public/provider/chrome/browser/url_rewriters:url_rewriters_api",
    "//ios/web",
    "//ios/web/common",
    "//ios/web/common:user_agent",
    "//ios/web/public",
    "//ios/web/public/find_in_page",
    "//ios/web/public/js_messaging",
    "//net",
    "//rlz/buildflags",
    "//services/metrics/public/cpp:metrics_cpp",
    "//ui/base",
    "//ui/display",
    "//ui/gfx",
    "//url",
  ]
  frameworks = [
    "UIKit.framework",
    "Foundation.framework",
  ]

  if (enable_rlz) {
    deps += [ "//ios/chrome/browser/rlz" ]
  }
}

source_set("unit_tests_internal") {
  testonly = true
  sources = [
    "blocked_popup_tab_helper_unittest.mm",
    "browser_about_rewriter_unittest.cc",
    "chrome_web_client_unittest.mm",
  ]
  deps = [
    ":feature_flags",
    ":web_internal",
    "//base",
    "//base/test:test_support",
    "//components/captive_portal/core",
    "//components/content_settings/core/browser",
    "//components/infobars/core",
    "//components/lookalikes/core",
    "//components/payments/core",
    "//components/safe_browsing/ios/browser:allow_list",
    "//components/security_interstitials/core:unsafe_resource",
    "//components/strings",
    "//components/version_info",
    "//ios/chrome/browser/content_settings:content_settings",
    "//ios/chrome/browser/find_in_page",
    "//ios/chrome/browser/infobars",
    "//ios/chrome/browser/infobars:public",
    "//ios/chrome/browser/passwords",
    "//ios/chrome/browser/reading_list",
    "//ios/chrome/browser/safe_browsing",
    "//ios/chrome/browser/shared/model/browser_state:test_support",
    "//ios/chrome/browser/shared/model/url:constants",
    "//ios/chrome/browser/ssl",
    "//ios/chrome/browser/web",
    "//ios/chrome/test/fakes",
    "//ios/components/security_interstitials",
    "//ios/components/security_interstitials/https_only_mode",
    "//ios/components/security_interstitials/lookalikes",
    "//ios/components/security_interstitials/safe_browsing",
    "//ios/net",
    "//ios/web/common:features",
    "//ios/web/common:web_view_creation_util",
    "//ios/web/public/test",
    "//ios/web/public/test/fakes",
    "//net",
    "//net:test_support",
    "//services/network:test_support",
    "//services/network/public/mojom",
    "//testing/gtest",
    "//third_party/ocmock",
    "//ui/base",
    "//url",
  ]
}

source_set("constants") {
  sources = [
    "lookalike_url_constants.h",
    "lookalike_url_constants.mm",
  ]
}

source_set("eg_test_support+eg2") {
  configs += [ "//build/config/ios:xctest_config" ]
  testonly = true

  sources = [
    "lookalike_url_app_interface.h",
    "lookalike_url_app_interface_stub.mm",
    "progress_indicator_app_interface.h",
    "progress_indicator_app_interface_stub.mm",
  ]

  deps = [
    "//ios/chrome/test/earl_grey:eg_test_support+eg2",
    "//ios/testing/earl_grey:eg_test_support+eg2",
  ]
}

source_set("eg_app_support+eg2") {
  configs += [ "//build/config/ios:xctest_config" ]
  testonly = true

  sources = [
    "lookalike_url_app_interface.h",
    "lookalike_url_app_interface.mm",
    "progress_indicator_app_interface.h",
    "progress_indicator_app_interface.mm",
  ]

  deps = [
    ":constants",
    "//base",
    "//components/content_settings/core/browser",
    "//components/lookalikes/core",
    "//ios/chrome/browser/shared/model/browser_state",
    "//ios/chrome/test/app:test_support",
    "//ios/components/security_interstitials/lookalikes",
    "//ios/testing/earl_grey:eg_app_support+eg2",
    "//ios/third_party/earl_grey2:app_framework+link",
    "//ios/third_party/material_components_ios",
    "//ios/web/public",
    "//net",
  ]
}

source_set("eg2_tests") {
  configs += [ "//build/config/ios:xctest_config" ]
  testonly = true

  sources = [
    "browsing_egtest.mm",
    "browsing_prevent_default_egtest.mm",
    "cache_egtest.mm",
    "child_window_open_by_dom_egtest.mm",
    "content_mode_egtest.mm",
    "error_page_egtest.mm",
    "forms_egtest.mm",
    "http_auth_egtest.mm",
    "js_print_egtest.mm",
    "lookalike_url_egtest.mm",
    "navigation_egtest.mm",
    "progress_indicator_egtest.mm",
    "push_and_replace_state_navigation_egtest.mm",
    "restore_egtest.mm",
    "ssl_egtest.mm",
    "stop_loading_egtest.mm",
    "tab_order_egtest.mm",
    "visible_url_egtest.mm",
    "web_share_egtest.mm",
    "window_open_by_dom_egtest.mm",
  ]

  deps = [
    ":constants",
    ":eg_test_support+eg2",
    "//components/content_settings/core/common",
    "//components/omnibox/common",
    "//components/security_interstitials/core",
    "//components/strings",
    "//components/url_formatter",
    "//components/version_info:version_info",
    "//ios/chrome/app/strings",
    "//ios/chrome/browser/metrics:eg_test_support+eg2",
    "//ios/chrome/browser/shared/model/prefs:pref_names",
    "//ios/chrome/browser/shared/model/url:constants",
    "//ios/chrome/browser/shared/public/features",
    "//ios/chrome/browser/ui/infobars/banners:public",
    "//ios/chrome/browser/ui/popup_menu:constants",
    "//ios/chrome/browser/ui/start_surface:feature_flags",
    "//ios/chrome/browser/web:feature_flags",
    "//ios/chrome/test:eg_test_support+eg2",
    "//ios/chrome/test/earl_grey:eg_test_support+eg2",
    "//ios/net:test_support",
    "//ios/testing:embedded_test_server_support",
    "//ios/testing/earl_grey:eg_test_support+eg2",
    "//ios/web/common:features",
    "//ios/web/public/test:element_selector",
    "//ios/web/public/test/http_server",
    "//net:test_support",
    "//ui/base",
    "//url",
  ]

  frameworks = [ "UIKit.framework" ]
}

source_set("feature_flags") {
  sources = [
    "features.cc",
    "features.h",
  ]
  deps = [
    "//base",
    "//ios/web/common:features",
  ]
}