summaryrefslogtreecommitdiffstats
path: root/content
diff options
context:
space:
mode:
authorbrettw <brettw@chromium.org>2016-03-25 14:02:51 -0700
committerCommit bot <commit-bot@chromium.org>2016-03-25 21:04:24 +0000
commitb78fc9e5f3b3cb1fc96c50b89a3a6c7f23accee7 (patch)
tree5a9c99986042d88c330752666b4da4bf74ac8aac /content
parent247ad02364179cbc1b117bfcb67d086a5456235a (diff)
downloadchromium_src-b78fc9e5f3b3cb1fc96c50b89a3a6c7f23accee7.zip
chromium_src-b78fc9e5f3b3cb1fc96c50b89a3a6c7f23accee7.tar.gz
chromium_src-b78fc9e5f3b3cb1fc96c50b89a3a6c7f23accee7.tar.bz2
Content "gn check" work.
Make content/gpu and content/plugin pass GN check. Significant work for most of content/test Makes most of content/shell and content/test pass check. These are not all enabled yet pending a few remaining issues that are more difficult to solve. The private content targets now allow content/test to include headers from them for non-component builds. Checking is disabled for content/test in component builds as described in the comment at the top of //content/BUILD.gn Renames the ui/events/ipc according to GN style. Annotates all content and gpu visibility declarations with why the're there, and fixes some incorrect ones that people added without understanding. Reland of https://codereview.chromium.org/1828483002/ with significant changes. TBR=jschuh (non-security-sensitive ipc build changes) Review URL: https://codereview.chromium.org/1833193002 Cr-Commit-Position: refs/heads/master@{#383358}
Diffstat (limited to 'content')
-rw-r--r--content/BUILD.gn18
-rw-r--r--content/app/BUILD.gn15
-rw-r--r--content/browser/BUILD.gn17
-rw-r--r--content/browser/tracing/BUILD.gn2
-rw-r--r--content/child/BUILD.gn17
-rw-r--r--content/common/BUILD.gn26
-rw-r--r--content/gpu/BUILD.gn19
-rw-r--r--content/plugin/BUILD.gn7
-rw-r--r--content/ppapi_plugin/BUILD.gn8
-rw-r--r--content/public/browser/BUILD.gn3
-rw-r--r--content/public/child/BUILD.gn1
-rw-r--r--content/public/common/BUILD.gn1
-rw-r--r--content/public/gpu/BUILD.gn4
-rw-r--r--content/public/plugin/BUILD.gn9
-rw-r--r--content/public/renderer/BUILD.gn1
-rw-r--r--content/public/utility/BUILD.gn1
-rw-r--r--content/renderer/BUILD.gn20
-rw-r--r--content/renderer/mus/BUILD.gn5
-rw-r--r--content/shell/BUILD.gn15
-rw-r--r--content/test/BUILD.gn135
-rw-r--r--content/utility/BUILD.gn19
21 files changed, 305 insertions, 38 deletions
diff --git a/content/BUILD.gn b/content/BUILD.gn
index 1d32ad2..1ece4f9 100644
--- a/content/BUILD.gn
+++ b/content/BUILD.gn
@@ -37,6 +37,23 @@ config("content_implementation") {
# //content/public/browser and similar targets to avoid double-linking (these
# targets make sure the dependency goes through the content shared library
# when doing a component build).
+#
+# TESTS
+# -----
+# Tests are a challenge. The content tests need to access internals of
+# content/browser, for example, but the tests themselves are outside of the
+# content component (which is a shared library in the component build). To
+# prevent external-to-content targets from depending on private headers,
+# the non-public content/browser target is not a public dep of the content
+# component. But this means there is also no public path for the content
+# tests and no way to restrict that just to //content/test/* if we added one.
+#
+# As a result, we check deps for //content/test/* only in non-component builds
+# (which should verify the dependencies are correct for both component and
+# non-component cases equally). There are targets like
+# //content/browser:for_content_tests that allow content/test to depend on the
+# //content/browser target only in non-component builds (when there are no
+# linking problems) for when check is enabled.
if (!is_nacl_nonsfi) {
content_shared_components = [
@@ -99,6 +116,7 @@ grit("resources") {
# This target exists to "hold" the content_export header so we can do proper
# inclusion testing of it.
source_set("export") {
+ # Must only be used inside of content.
visibility = [ "//content/*" ]
sources = [
"common/content_export.h",
diff --git a/content/app/BUILD.gn b/content/app/BUILD.gn
index abe8a75..1491439 100644
--- a/content/app/BUILD.gn
+++ b/content/app/BUILD.gn
@@ -67,13 +67,26 @@ if (!is_multi_dll_chrome) {
source_set("both") {
# Only the public target should depend on this. All other targets (even
# internal content ones) should depend on the public one.
- visibility = [ "//content/public/app:*" ]
+ visibility = [
+ ":both_for_content_tests", # See top of //content/BUILD.gn for why.
+ "//content/public/app:*",
+ ]
sources = content_app_sources
configs += content_app_extra_configs
deps = content_app_deps
}
+# See comment at the top of //content/BUILD.gn for how this works.
+group("both_for_content_tests") {
+ visibility = [ "//content/test/*" ]
+ if (!is_component_build) {
+ public_deps = [
+ ":both",
+ ]
+ }
+}
+
if (is_multi_dll_chrome) {
# It doesn't make sense to do the browser/child dll split in component mode.
assert(!is_component_build)
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
index 9245309..fb8d3a9 100644
--- a/content/browser/BUILD.gn
+++ b/content/browser/BUILD.gn
@@ -11,7 +11,10 @@ import("//mojo/public/mojo_application_manifest.gni")
source_set("browser") {
# Only the public target should depend on this. All other targets (even
# internal content ones) should depend on the public one.
- visibility = [ "//content/public/browser:browser_sources" ]
+ visibility = [
+ ":for_content_tests", # See top of //content/BUILD.gn for why.
+ "//content/public/browser:browser_sources",
+ ]
configs += [
"//build/config:precompiled_headers",
@@ -48,7 +51,7 @@ source_set("browser") {
"//content/browser/notifications:notification_proto",
"//content/browser/service_worker:service_worker_proto",
"//content/browser/speech/proto",
- "//content/common:mojo_bindings",
+ "//content/common",
"//content/public/common:common_sources",
"//content/public/common:mojo_bindings",
"//crypto",
@@ -526,6 +529,16 @@ source_set("browser") {
}
}
+# See comment at the top of //content/BUILD.gn for how this works.
+group("for_content_tests") {
+ visibility = [ "//content/test/*" ]
+ if (!is_component_build) {
+ public_deps = [
+ ":browser",
+ ]
+ }
+}
+
mojo_application_manifest("chrome_manifest") {
type = "exe"
application_name = "chrome"
diff --git a/content/browser/tracing/BUILD.gn b/content/browser/tracing/BUILD.gn
index 2122c79..b71bf1b 100644
--- a/content/browser/tracing/BUILD.gn
+++ b/content/browser/tracing/BUILD.gn
@@ -12,7 +12,7 @@ tracing_gen_dir = "$root_gen_dir/content/browser/tracing"
tracing_grd = "$tracing_gen_dir/tracing_resources.grd"
action("generate_tracing_grd") {
- visibility = [ ":*" ]
+ visibility = [ ":*" ] # Depend on ":resources" to get this.
script = "generate_trace_viewer_grd.py"
input_pages = [
diff --git a/content/child/BUILD.gn b/content/child/BUILD.gn
index ee79f18..910ba0e 100644
--- a/content/child/BUILD.gn
+++ b/content/child/BUILD.gn
@@ -7,9 +7,18 @@ import("//build/config/ui.gni")
import("//content/child/child.gni")
source_set("child") {
- # Only the public target should depend on this. All other targets (even
- # internal content ones) should depend on the public one.
- visibility = [ "//content/public/child:child_sources" ]
+ # Targets external to content should always link to the public API.
+ # Internal targets can link to this but only if they're child processes
+ # (i.e. not content/browser or content/common) and only if they're inside the
+ # content component (i.e. not content/test or content/shell).
+ visibility = [
+ "//content/gpu/*",
+ "//content/plugin/*",
+ "//content/ppapi_plugin/*",
+ "//content/public/child:child_sources",
+ "//content/renderer/*",
+ "//content/utility/*",
+ ]
sources = rebase_path(content_child_gypi_values.private_child_sources,
".",
@@ -33,7 +42,7 @@ source_set("child") {
"//components/webcrypto",
"//content/app/resources",
"//content/app/strings",
- "//content/common:mojo_bindings",
+ "//content/common",
"//crypto:platform",
"//mojo/common",
"//mojo/message_pump",
diff --git a/content/common/BUILD.gn b/content/common/BUILD.gn
index 36c5057..9a0ed5d 100644
--- a/content/common/BUILD.gn
+++ b/content/common/BUILD.gn
@@ -126,9 +126,11 @@ if (is_mac) {
}
source_set("common") {
- # Only the public target should depend on this. All other targets (even
- # internal content ones) should depend on the public one.
- visibility = [ "//content/public/common:common_sources" ]
+ # Targets external to content should always link to the public API.
+ # In addition, targets outside of the content component (shell and tests)
+ # must not link to this because it will duplicate the code in the component
+ # build.
+ visibility = [ "//content/*" ]
sources = rebase_path(content_common_gypi_values.private_common_sources,
".",
@@ -195,7 +197,7 @@ source_set("common") {
"//ui/accessibility",
"//ui/base",
"//ui/base/ime",
- "//ui/events/ipc:events_ipc",
+ "//ui/events/ipc",
"//ui/gfx",
"//ui/gfx/geometry",
"//ui/gfx/ipc",
@@ -519,7 +521,23 @@ source_set("common") {
}
}
+# See comment at the top of //content/BUILD.gn for how this works.
+group("for_content_tests") {
+ visibility = [ "//content/test/*" ]
+ if (!is_component_build) {
+ public_deps = [
+ ":common",
+ ]
+ }
+}
+
mojom("mojo_bindings") {
+ # This interface is internal to content. However, this is not exported from
+ # the content component shared library. Code in content but outside of the
+ # content component (content/test or content/shell) should link to this
+ # directly.
+ visibility = [ "//content/*" ]
+
sources = [
"application_setup.mojom",
"background_sync_service.mojom",
diff --git a/content/gpu/BUILD.gn b/content/gpu/BUILD.gn
index 7736a55..a31e94f 100644
--- a/content/gpu/BUILD.gn
+++ b/content/gpu/BUILD.gn
@@ -8,7 +8,7 @@ import("//media/media_options.gni")
# See //content/BUILD.gn for how this works.
group("gpu") {
- visibility = [ "//content/*" ]
+ visibility = [ "//content/*" ] # This is an internal content API.
if (is_component_build) {
public_deps = [
@@ -22,6 +22,8 @@ group("gpu") {
}
source_set("gpu_sources") {
+ # This is an internal content API. Code outside of the content "component"
+ # (like content/test and content/shell) should depend on ":gpu" above.
visibility = [ "//content/*" ]
sources = [
@@ -42,21 +44,23 @@ source_set("gpu_sources") {
deps = [
"//base",
+ "//base/third_party/dynamic_annotations",
+ "//components/tracing",
"//content:export",
+ "//content/common",
"//content/public/child:child_sources",
"//content/public/common:common_sources",
"//gpu:gpu",
"//gpu/ipc/common:command_buffer_traits",
"//ipc",
+ "//media/mojo/services:application_factory",
"//mojo/shell/public/interfaces",
"//skia",
+ "//ui/events/ipc",
+ "//ui/gfx/ipc",
"//ui/gl",
]
- public_deps = [
- "//content/common:mojo_bindings",
- ]
-
if (mojo_media_host == "gpu") {
deps += [ "//media/mojo/services:application_factory" ]
}
@@ -68,6 +72,7 @@ source_set("gpu_sources") {
]
libs = [ "setupapi.lib" ]
deps += [
+ "//sandbox",
"//third_party/angle:libEGL",
"//third_party/angle:libGLESv2",
]
@@ -81,6 +86,10 @@ source_set("gpu_sources") {
deps += [ "//ui/events/platform/x11" ]
}
+ if (use_ozone) {
+ deps += [ "//ui/ozone" ]
+ }
+
if (enable_vulkan) {
deps += [ "//gpu/vulkan" ]
}
diff --git a/content/plugin/BUILD.gn b/content/plugin/BUILD.gn
index 6e87a12..94dc6d8 100644
--- a/content/plugin/BUILD.gn
+++ b/content/plugin/BUILD.gn
@@ -32,12 +32,19 @@ if (enable_plugins && !is_linux) {
deps = [
"//content:export",
+ "//content/child",
"//content/public/common:common_sources",
"//mojo/shell/public/interfaces",
"//skia",
"//third_party/WebKit/public:blink",
"//third_party/npapi",
+ "//ui/gfx",
+ "//ui/surface",
]
+
+ if (is_win) {
+ deps += [ "//sandbox" ]
+ }
}
} else {
# This way it can be unconditionally depended on.
diff --git a/content/ppapi_plugin/BUILD.gn b/content/ppapi_plugin/BUILD.gn
index e127a3d..eb608e7 100644
--- a/content/ppapi_plugin/BUILD.gn
+++ b/content/ppapi_plugin/BUILD.gn
@@ -3,7 +3,7 @@
# found in the LICENSE file.
group("ppapi_plugin") {
- visibility = [ "//content/*" ]
+ visibility = [ "//content/*" ] # This is an internal content API.
if (is_component_build) {
public_deps = [
@@ -17,7 +17,11 @@ group("ppapi_plugin") {
}
source_set("ppapi_plugin_sources") {
- visibility = [ "//content/*" ]
+ # Depend on via ":ppapi_plugin above.
+ visibility = [
+ ":ppapi_plugin",
+ "//content", # For the component build.
+ ]
sources = [
"broker_process_dispatcher.cc",
diff --git a/content/public/browser/BUILD.gn b/content/public/browser/BUILD.gn
index 643cb8f..5b04b1e 100644
--- a/content/public/browser/BUILD.gn
+++ b/content/public/browser/BUILD.gn
@@ -19,6 +19,7 @@ group("browser") {
}
source_set("browser_sources") {
+ # External code should depend on via ":browser" above.
visibility = [ "//content/*" ]
sources = rebase_path(content_browser_gypi_values.public_browser_sources,
@@ -40,7 +41,7 @@ source_set("browser_sources") {
]
deps = [
"//cc",
- "//content/browser",
+ "//content/browser", # Must not be public_deps!
"//content/public/common:common_sources",
"//gpu",
"//media",
diff --git a/content/public/child/BUILD.gn b/content/public/child/BUILD.gn
index 6573af8..68c9986 100644
--- a/content/public/child/BUILD.gn
+++ b/content/public/child/BUILD.gn
@@ -24,6 +24,7 @@ group("child") {
}
source_set("child_sources") {
+ # External code should depend in via ":child" above.
visibility = [ "//content/*" ]
sources = rebase_path(content_child_gypi_values.public_child_sources,
diff --git a/content/public/common/BUILD.gn b/content/public/common/BUILD.gn
index 39a95fd..02712fe 100644
--- a/content/public/common/BUILD.gn
+++ b/content/public/common/BUILD.gn
@@ -78,6 +78,7 @@ source_set("static_switches") {
}
source_set("common_sources") {
+ # External code should depend on via ":common" above.
visibility = [ "//content/*" ]
sources = rebase_path(content_common_gypi_values.public_common_sources,
diff --git a/content/public/gpu/BUILD.gn b/content/public/gpu/BUILD.gn
index 63550aa..fa0be53 100644
--- a/content/public/gpu/BUILD.gn
+++ b/content/public/gpu/BUILD.gn
@@ -16,6 +16,8 @@ group("gpu") {
}
source_set("gpu_sources") {
+ # You must depend on this via //content/public/gpu above for the component
+ # build to work properly.
visibility = [ "//content/*" ]
configs += [ "//content:content_implementation" ]
@@ -30,4 +32,6 @@ source_set("gpu_sources") {
"//content/gpu:gpu_sources",
"//content/public/common:common_sources",
]
+
+ allow_circular_includes_from = [ "//content/gpu:gpu_sources" ]
}
diff --git a/content/public/plugin/BUILD.gn b/content/public/plugin/BUILD.gn
index e4c4d36..1693b4e 100644
--- a/content/public/plugin/BUILD.gn
+++ b/content/public/plugin/BUILD.gn
@@ -16,6 +16,7 @@ group("plugin") {
}
source_set("plugin_sources") {
+ # External code should depend on via ":plugin" above.
visibility = [ "//content/*" ]
sources = [
@@ -24,7 +25,13 @@ source_set("plugin_sources") {
deps = [
"//base",
- "//content/plugin",
+ "//content/plugin", # Must not be a public dep.
"//content/public/common:common_sources",
]
+
+ allow_circular_includes_from = [
+ # This target is a pair with content/plugin. They always go together and
+ # include headers from each other.
+ "//content/plugin",
+ ]
}
diff --git a/content/public/renderer/BUILD.gn b/content/public/renderer/BUILD.gn
index c31a7bb..c0eaab1 100644
--- a/content/public/renderer/BUILD.gn
+++ b/content/public/renderer/BUILD.gn
@@ -19,6 +19,7 @@ group("renderer") {
}
source_set("renderer_sources") {
+ # External code should depend on via ":renderer" above.
visibility = [ "//content/*" ]
sources = rebase_path(content_renderer_gypi_values.public_renderer_sources,
diff --git a/content/public/utility/BUILD.gn b/content/public/utility/BUILD.gn
index c9fce03..c0e514c 100644
--- a/content/public/utility/BUILD.gn
+++ b/content/public/utility/BUILD.gn
@@ -18,6 +18,7 @@ group("utility") {
}
source_set("utility_sources") {
+ # External code should depend on via ":utility" above.
visibility = [ "//content/*" ]
sources = rebase_path(content_utility_gypi_values.public_utility_sources,
diff --git a/content/renderer/BUILD.gn b/content/renderer/BUILD.gn
index bf45546..f9a554d0 100644
--- a/content/renderer/BUILD.gn
+++ b/content/renderer/BUILD.gn
@@ -10,7 +10,10 @@ import("//media/media_options.gni")
source_set("renderer") {
# Only the public target should depend on this. All other targets (even
# internal content ones) should depend on the public one.
- visibility = [ "//content/public/renderer:renderer_sources" ]
+ visibility = [
+ ":for_content_tests",
+ "//content/public/renderer:renderer_sources",
+ ]
sources = rebase_path(content_renderer_gypi_values.private_renderer_sources,
".",
@@ -23,6 +26,7 @@ source_set("renderer") {
]
defines = []
+ public_deps = []
deps = [
"//base:i18n",
"//cc",
@@ -33,7 +37,7 @@ source_set("renderer") {
"//components/scheduler:scheduler",
"//components/url_formatter",
"//content:resources",
- "//content/common:mojo_bindings",
+ "//content/common",
"//content/gpu:gpu_sources",
"//content/public/child:child_sources",
"//content/public/common:common_sources",
@@ -87,7 +91,7 @@ source_set("renderer") {
allow_circular_includes_from = []
if (use_aura) {
- deps += [ "//content/renderer/mus" ]
+ public_deps += [ "//content/renderer/mus" ]
allow_circular_includes_from += [ "//content/renderer/mus" ]
}
@@ -247,3 +251,13 @@ source_set("renderer") {
deps += [ "//ui/ozone" ]
}
}
+
+# See comment at the top of //content/BUILD.gn for how this works.
+group("for_content_tests") {
+ visibility = [ "//content/test/*" ]
+ if (!is_component_build) {
+ public_deps = [
+ ":renderer",
+ ]
+ }
+}
diff --git a/content/renderer/mus/BUILD.gn b/content/renderer/mus/BUILD.gn
index dc471fc..6155680 100644
--- a/content/renderer/mus/BUILD.gn
+++ b/content/renderer/mus/BUILD.gn
@@ -3,6 +3,9 @@
# found in the LICENSE file.
source_set("mus") {
+ # Depend on this only via //content/renderer.
+ visibility = [ "//content/renderer/*" ]
+
sources = [
"compositor_mus_connection.cc",
"compositor_mus_connection.h",
@@ -19,7 +22,7 @@ source_set("mus") {
"//cc",
"//components/mus/public/cpp",
"//components/mus/public/interfaces",
- "//content/common:mojo_bindings",
+ "//content/common",
"//content/public/common:common_sources",
"//mojo/common",
"//mojo/converters/blink",
diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn
index 6ce50f8..4fd4c91 100644
--- a/content/shell/BUILD.gn
+++ b/content/shell/BUILD.gn
@@ -221,12 +221,14 @@ static_library("content_shell_lib") {
"//content/app/strings",
"//content/gpu",
"//content/test:layouttest_support",
+ "//content/test:test_support",
"//device/bluetooth",
"//device/bluetooth:mocks",
"//gin",
"//gpu",
"//ipc",
"//media",
+ "//media/mojo/services:application_factory",
"//net",
"//net:net_resources",
"//skia",
@@ -255,6 +257,7 @@ static_library("content_shell_lib") {
"//content/ppapi_plugin",
"//ppapi:blink_deprecated_test_plugin",
"//ppapi:blink_test_plugin",
+ "//ppapi/shared_impl",
]
}
if (mojo_media_host == "browser") {
@@ -270,7 +273,10 @@ static_library("content_shell_lib") {
}
if (is_linux) {
- deps += [ "//build/linux:fontconfig" ]
+ deps += [
+ "//build/linux:fontconfig",
+ "//ui/gfx:test_support",
+ ]
}
if (use_x11) {
@@ -289,7 +295,10 @@ static_library("content_shell_lib") {
}
if (is_posix && !is_mac) {
- deps += [ "//components/crash/content/browser" ]
+ deps += [
+ "//components/crash/content/app",
+ "//components/crash/content/browser",
+ ]
}
if (use_aura) {
@@ -308,6 +317,7 @@ static_library("content_shell_lib") {
"//ui/views",
"//ui/views:test_support",
"//ui/views/controls/webview",
+ "//ui/wm:test_support",
]
} else {
sources += [ "browser/shell_aura.cc" ]
@@ -344,6 +354,7 @@ static_library("content_shell_lib") {
}
grit("content_shell_resources_grit") {
+ # External code should depend on ":resources" instead.
visibility = [ ":*" ]
source = "shell_resources.grd"
outputs = [
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn
index acb1539..8c5b725 100644
--- a/content/test/BUILD.gn
+++ b/content/test/BUILD.gn
@@ -24,6 +24,12 @@ content_tests_gypi_values =
source_set("test_support") {
testonly = true
+ # See comment at the top of //content/BUILD.gn for why this is disabled in
+ # component builds.
+ if (is_component_build) {
+ check_includes = false
+ }
+
configs += [
"//build/config:precompiled_headers",
"//v8:external_startup_data",
@@ -36,19 +42,26 @@ source_set("test_support") {
"//third_party/WebKit/public:blink",
]
deps = [
+ ":browsertest_base",
":content_test_mojo_bindings",
+ "//base/third_party/dynamic_annotations",
"//cc",
"//cc:test_support",
"//cc/blink",
+ "//cc/surfaces",
"//components/scheduler:scheduler",
"//components/scheduler:test_support",
+ "//content/app:both_for_content_tests",
"//content/browser/speech/proto",
"//content/gpu",
+ "//content/public/browser",
"//content/public/child",
"//content/public/plugin",
"//content/public/renderer",
"//content/public/utility",
+ "//content/renderer:for_content_tests",
"//content/shell:pak",
+ "//content/utility:for_content_tests",
"//ipc:test_support",
"//ipc/mojo",
"//media",
@@ -120,6 +133,7 @@ source_set("test_support") {
deps += [
"//third_party/libjingle:libjingle_webrtc",
"//third_party/libjingle:libpeerconnection",
+ "//third_party/webrtc/base:rtc_base",
"//third_party/webrtc/modules/video_capture",
]
}
@@ -180,6 +194,12 @@ source_set("test_support") {
source_set("browsertest_support") {
testonly = true
+ # See comment at the top of //content/BUILD.gn for why this is disabled in
+ # component builds.
+ if (is_component_build) {
+ check_includes = false
+ }
+
sources = [
"../public/test/content_browser_test.cc",
"../public/test/content_browser_test.h",
@@ -192,10 +212,24 @@ source_set("browsertest_support") {
]
deps = [
+ ":browsertest_base",
+ ":test_support",
+ "//base",
+ "//base:i18n",
+ "//base/test:test_config",
+ "//base/test:test_support",
+ "//cc/surfaces",
+ "//content/app:both_for_content_tests",
+ "//content/browser:for_content_tests",
"//content/shell:content_shell_lib",
+ "//gin",
+ "//media",
+ "//net",
"//skia",
"//testing/gtest",
"//ui/accessibility:ax_gen",
+ "//ui/base",
+ "//ui/base/ime",
]
if (is_android) {
@@ -220,12 +254,14 @@ source_set("browsertest_base") {
]
public_deps = [
+ "//content/browser:for_content_tests",
"//content/public/browser",
"//content/public/common",
"//third_party/WebKit/public:blink",
]
deps = [
"//base:base",
+ "//content/public/app:both",
"//net:test_support",
"//testing/gtest",
"//ui/base",
@@ -253,6 +289,13 @@ mojom("web_ui_test_mojo_bindings") {
# GYP version //content/content_tests.gypi:layouttest_support_content
static_library("layouttest_support") {
testonly = true
+
+ # See comment at the top of //content/BUILD.gn for why this is disabled in
+ # component builds.
+ if (is_component_build) {
+ check_includes = false
+ }
+
sources =
rebase_path(content_tests_gypi_values.layouttest_support_content_sources,
".",
@@ -263,7 +306,11 @@ static_library("layouttest_support") {
"//cc",
"//cc/blink",
"//components/test_runner:test_runner",
+ "//content/browser:for_content_tests",
"//content/public/common",
+
+ #"//content/shell:content_shell_lib",
+ "//content/renderer:for_content_tests",
"//mojo/edk/test:test_support",
"//skia",
"//ui/accessibility:ax_gen",
@@ -339,6 +386,12 @@ group("content_site_isolation_browsertests") {
}
test("content_browsertests") {
+ # See comment at the top of //content/BUILD.gn for why this is disabled in
+ # component builds.
+ if (is_component_build) {
+ check_includes = false
+ }
+
sources = rebase_path(content_tests_gypi_values.content_browsertests_sources,
".",
"//content")
@@ -389,15 +442,22 @@ test("content_browsertests") {
deps = [
":browsertest_base",
":browsertest_support",
+ ":content_test_mojo_bindings",
":web_ui_test_mojo_bindings",
"//base/test:test_support",
+ "//components/scheduler",
"//content:resources",
+ "//content/app:both_for_content_tests",
+ "//content/browser:for_content_tests",
"//content/browser/background_sync:background_sync_proto",
"//content/common:mojo_bindings",
"//content/gpu",
+ "//content/public/browser",
+ "//content/public/child",
"//content/public/common",
"//content/public/plugin",
"//content/public/renderer",
+ "//content/renderer:for_content_tests",
"//content/shell:content_shell_lib",
"//content/shell:pak",
"//content/test:test_support",
@@ -406,9 +466,9 @@ test("content_browsertests") {
"//device/vibration:mojo_bindings",
"//gin",
"//gpu",
+ "//gpu/blink",
"//ipc:test_support",
- "//media:media_features",
- "//media:shared_memory_support",
+ "//media",
"//media:test_support",
"//media/audio:test_support",
"//media/base:test_support",
@@ -419,6 +479,7 @@ test("content_browsertests") {
"//mojo/shell/public/cpp:cpp_for_chromium",
"//mojo/test:test_support",
"//net:test_support",
+ "//storage/browser",
"//testing/gmock",
"//testing/gtest",
"//third_party/WebKit/public:blink",
@@ -427,8 +488,9 @@ test("content_browsertests") {
"//third_party/zlib",
"//ui/accessibility",
"//ui/accessibility:ax_gen",
- "//ui/base",
+ "//ui/base:test_support",
"//ui/base/ime",
+ "//ui/compositor",
"//ui/gfx",
"//ui/gfx/geometry",
"//ui/gl",
@@ -447,7 +509,7 @@ test("content_browsertests") {
"//ppapi/host",
"//ppapi/proxy",
"//ppapi/proxy:ipc",
- "//ppapi/shared_impl",
+ "//ppapi/shared_impl:test_support",
]
data_deps += [ "//ppapi:ppapi_tests" ]
}
@@ -524,6 +586,7 @@ test("content_browsertests") {
content_tests_gypi_values.content_browsertests_plugins_sources,
".",
"//content")
+ deps += [ "//ppapi/proxy:test_support" ]
data_deps += [ "//ppapi:ppapi_tests" ]
}
@@ -543,6 +606,7 @@ test("content_browsertests") {
if (use_aura) {
deps += [
+ "//ui/aura",
"//ui/touch_selection:test_support",
"//ui/touch_selection:touch_selection",
]
@@ -556,6 +620,12 @@ test("content_browsertests") {
}
test("content_unittests") {
+ # See comment at the top of //content/BUILD.gn for why this is disabled in
+ # component builds.
+ if (is_component_build) {
+ check_includes = false
+ }
+
defines = []
sources = rebase_path(content_tests_gypi_values.content_unittests_sources,
".",
@@ -573,14 +643,17 @@ test("content_unittests") {
configs += [ "//build/config:precompiled_headers" ]
deps = [
+ ":content_test_mojo_bindings",
":test_support",
"//base/test:test_support",
"//base/third_party/dynamic_annotations",
"//cc",
"//cc:test_support",
"//cc/surfaces",
+ "//components/scheduler",
"//content:resources",
- "//content/browser/background_sync:background_sync_proto",
+ "//content/app:both_for_content_tests",
+ "//content/browser:for_content_tests",
"//content/browser/cache_storage:cache_storage_proto",
"//content/browser/notifications:notification_proto",
"//content/browser/service_worker:service_worker_proto",
@@ -593,6 +666,7 @@ test("content_unittests") {
"//content/public/common:mojo_bindings",
"//content/public/plugin",
"//content/public/renderer",
+ "//content/renderer:for_content_tests",
"//crypto",
"//device/battery",
"//device/battery:mojo_bindings",
@@ -610,6 +684,8 @@ test("content_unittests") {
"//mojo/public/cpp/bindings",
"//net:extras",
"//net:test_support",
+ "//ppapi/c",
+ "//printing",
"//skia",
"//sql",
"//sql:test_support",
@@ -622,11 +698,12 @@ test("content_unittests") {
"//third_party/leveldatabase",
"//third_party/libjingle",
"//third_party/re2",
+ "//third_party/widevine/cdm:version_h",
"//ui/accessibility",
- "//ui/base",
+ "//ui/base:test_support",
"//ui/compositor:test_support",
"//ui/events/blink",
- "//ui/gfx",
+ "//ui/gfx:test_support",
"//ui/gfx/geometry",
"//ui/gfx/ipc",
"//ui/gl",
@@ -646,6 +723,11 @@ test("content_unittests") {
rebase_path(content_tests_gypi_values.content_unittests_plugins_sources,
".",
"//content")
+ deps += [
+ "//ppapi/host",
+ "//ppapi/proxy:test_support",
+ "//ppapi/shared_impl:test_support",
+ ]
}
if (enable_webrtc) {
@@ -656,6 +738,8 @@ test("content_unittests") {
deps += [
"//third_party/libjingle:libjingle_webrtc",
"//third_party/libjingle:libpeerconnection",
+ "//third_party/webrtc/base:rtc_base",
+ "//third_party/webrtc/modules/desktop_capture:primitives",
"//third_party/webrtc/modules/video_capture",
"//ui/shell_dialogs:shell_dialogs",
]
@@ -703,7 +787,10 @@ test("content_unittests") {
# Search for comments about "xcode_settings" in chrome_tests.gypi.
ldflags = [ "-Wl,-ObjC" ]
- deps += [ "//third_party/ocmock" ]
+ deps += [
+ "//third_party/mozilla",
+ "//third_party/ocmock",
+ ]
}
if (is_chromeos) {
sources -= [ "../browser/geolocation/wifi_data_provider_linux_unittest.cc" ]
@@ -738,7 +825,7 @@ test("content_unittests") {
if (use_aura) {
deps += [
"//components/mus/public/cpp/tests:unittest_support",
- "//ui/aura",
+ "//ui/aura:test_support",
"//ui/aura_extra",
"//ui/wm",
]
@@ -783,9 +870,19 @@ test("content_unittests") {
if (is_mac && use_openssl) {
deps += [ "//third_party/boringssl" ]
}
+
+ if (use_x11) {
+ deps += [ "//ui/gfx/x" ]
+ }
}
test("content_perftests") {
+ # See comment at the top of //content/BUILD.gn for why this is disabled in
+ # component builds.
+ if (is_component_build) {
+ check_includes = false
+ }
+
sources = [
"../browser/renderer_host/input/input_router_impl_perftest.cc",
"../common/cc_messages_perftest.cc",
@@ -794,6 +891,7 @@ test("content_perftests") {
deps = [
"//base/test:test_support",
"//cc",
+ "//content/browser:for_content_tests",
"//content/public/browser",
"//content/public/common",
"//content/test:test_support",
@@ -810,6 +908,12 @@ test("content_perftests") {
}
test("content_gl_tests") {
+ # See comment at the top of //content/BUILD.gn for why this is disabled in
+ # component builds.
+ if (is_component_build) {
+ check_includes = false
+ }
+
sources = [
"../browser/compositor/gl_helper_unittest.cc",
"../common/gpu/client/gpu_in_process_context_tests.cc",
@@ -819,9 +923,13 @@ test("content_gl_tests") {
deps = [
":test_support",
"//base/test:test_support",
+ "//content/browser:for_content_tests",
"//content/public/common",
"//gpu/blink",
+ "//gpu/command_buffer/client:gl_in_process_context",
+ "//gpu/command_buffer/client:gles2_implementation",
"//gpu/command_buffer/common",
+ "//media",
"//testing/gtest",
"//third_party/WebKit/public:blink",
"//ui/base",
@@ -847,6 +955,12 @@ test("content_gl_tests") {
}
test("content_gl_benchmark") {
+ # See comment at the top of //content/BUILD.gn for why this is disabled in
+ # component builds.
+ if (is_component_build) {
+ check_includes = false
+ }
+
sources = [
"../browser/compositor/gl_helper_benchmark.cc",
"run_gl_benchmark.cc",
@@ -855,8 +969,11 @@ test("content_gl_benchmark") {
deps = [
":test_support",
"//base/test:test_support",
+ "//content/browser:for_content_tests",
"//content/public/common",
"//gpu/blink",
+ "//gpu/command_buffer/client:gl_in_process_context",
+ "//gpu/command_buffer/client:gles2_implementation",
"//testing/gtest",
"//third_party/WebKit/public:blink",
"//ui/base",
diff --git a/content/utility/BUILD.gn b/content/utility/BUILD.gn
index 9aea9db..0ef4261 100644
--- a/content/utility/BUILD.gn
+++ b/content/utility/BUILD.gn
@@ -7,8 +7,11 @@ import("//media/media_options.gni")
source_set("utility") {
# Only the public target should depend on this. All other targets (even
- # internal content ones) should depend on the public one.
- visibility = [ "//content/public/utility:utility_sources" ]
+ # internal content ones other than test) should depend on the public one.
+ visibility = [
+ ":for_content_tests",
+ "//content/public/utility:utility_sources",
+ ]
sources =
rebase_path(content_utility_gypi_values.utility_sources, ".", "//content")
@@ -17,11 +20,13 @@ source_set("utility") {
deps = [
"//base",
+ "//components/scheduler",
"//content:export",
"//content/public/child:child_sources",
"//content/public/common:common_sources",
"//content/public/common:mojo_bindings",
"//courgette:courgette_lib",
+ "//media/mojo/services:application_factory",
"//mojo/common",
"//mojo/public/cpp/bindings",
"//mojo/shell",
@@ -35,3 +40,13 @@ source_set("utility") {
deps += [ "//media/mojo/services:application_factory" ]
}
}
+
+# See comment at the top of //content/BUILD.gn for how this works.
+group("for_content_tests") {
+ visibility = [ "//content/test/*" ]
+ if (!is_component_build) {
+ public_deps = [
+ ":utility",
+ ]
+ }
+}