Commit ace61dab authored by Ali Juma's avatar Ali Juma Committed by Commit Bot

[iOS] Build and run unit tests in components/safe_browsing/core

This CL builds PingManager and VerdictCacheManager on iOS, and makes the
corresponding unit tests run as part of components_unittests on iOS.

To make the VerdictCacheManagerTests pass on iOS, this CL also modifies
WebsiteSettingsRegistry so that ContentSettingsType::PASSWORD_PROTECTION and
ContentSettingsType::SAFE_BROWSING_URL_CHECK_DATA are registered as
settings on iOS.

Bug: 1028755
Change-Id: Ia364f1c782b6612c7f41f73f87f3f2493ed6ac33
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2020551
Commit-Queue: Ali Juma <ajuma@chromium.org>
Reviewed-by: default avatarVarun Khaneja <vakh@chromium.org>
Reviewed-by: default avatarBalazs Engedy <engedy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#735407}
parent 00d728d8
......@@ -157,11 +157,11 @@ void WebsiteSettingsRegistry::Init() {
WebsiteSettingsInfo::SINGLE_ORIGIN_WITH_EMBEDDED_EXCEPTIONS_SCOPE,
DESKTOP | PLATFORM_ANDROID,
WebsiteSettingsInfo::INHERIT_IN_INCOGNITO);
Register(
ContentSettingsType::PASSWORD_PROTECTION, "password-protection", nullptr,
WebsiteSettingsInfo::UNSYNCABLE, WebsiteSettingsInfo::NOT_LOSSY,
WebsiteSettingsInfo::SINGLE_ORIGIN_WITH_EMBEDDED_EXCEPTIONS_SCOPE,
DESKTOP | PLATFORM_ANDROID, WebsiteSettingsInfo::INHERIT_IN_INCOGNITO);
Register(ContentSettingsType::PASSWORD_PROTECTION, "password-protection",
nullptr, WebsiteSettingsInfo::UNSYNCABLE,
WebsiteSettingsInfo::NOT_LOSSY,
WebsiteSettingsInfo::SINGLE_ORIGIN_WITH_EMBEDDED_EXCEPTIONS_SCOPE,
ALL_PLATFORMS, WebsiteSettingsInfo::INHERIT_IN_INCOGNITO);
// Set when an origin is activated for subresource filtering and the
// associated UI is shown to the user. Cleared when a site is de-activated or
// the first URL matching the origin is removed from history.
......@@ -218,8 +218,7 @@ void WebsiteSettingsRegistry::Init() {
Register(ContentSettingsType::SAFE_BROWSING_URL_CHECK_DATA,
"safe-browsing-url-check-data", nullptr,
WebsiteSettingsInfo::UNSYNCABLE, WebsiteSettingsInfo::NOT_LOSSY,
WebsiteSettingsInfo::SINGLE_ORIGIN_ONLY_SCOPE,
DESKTOP | PLATFORM_ANDROID,
WebsiteSettingsInfo::SINGLE_ORIGIN_ONLY_SCOPE, ALL_PLATFORMS,
WebsiteSettingsInfo::INHERIT_IN_INCOGNITO);
}
......
......@@ -34,6 +34,72 @@ proto_library("webprotect_proto") {
sources = [ "proto/webprotect.proto" ]
}
static_library("ping_manager") {
sources = [
"ping_manager.cc",
"ping_manager.h",
]
public_deps = [ "//google_apis:google_apis" ]
deps = [
"//base:base",
"//components/safe_browsing/core/db:hit_report",
"//components/safe_browsing/core/db:util",
"//net:net",
"//services/network/public/cpp",
]
}
source_set("ping_manager_unittest") {
testonly = true
sources = [ "ping_manager_unittest.cc" ]
deps = [
":ping_manager",
"//base:base",
"//components/safe_browsing/core/db:v4_test_util",
"//net:net",
"//net:test_support",
"//testing/gtest",
]
}
source_set("verdict_cache_manager") {
sources = [
"verdict_cache_manager.cc",
"verdict_cache_manager.h",
]
deps = [
":csd_proto",
":realtimeapi_proto",
"//base",
"//components/content_settings/core/browser",
"//components/history/core/browser",
"//components/password_manager/core/browser:browser",
"//components/safe_browsing/core/common:thread_utils",
"//components/safe_browsing/core/db:v4_protocol_manager_util",
"//url",
]
}
source_set("verdict_cache_manager_unittest") {
testonly = true
sources = [ "verdict_cache_manager_unittest.cc" ]
deps = [
":csd_proto",
":realtimeapi_proto",
":verdict_cache_manager",
"//base",
"//components/content_settings/core/browser",
"//components/safe_browsing/core/common:test_support",
"//components/sync_preferences:test_support",
"//testing/gtest",
]
}
# safe_browsing/ pulls in content/, which doesn't work on iOS.
# TODO(thakis): This should be `safe_browsing_mode != 0`, but chromecast builds
# set safe_browsing_mode to 0 and build chrome/, and chrome/ currently
......@@ -42,37 +108,6 @@ proto_library("webprotect_proto") {
if (!is_ios) {
assert(!is_ios, "safe_browsing/ pulls in content/ which doesn't work on iOS")
static_library("ping_manager") {
sources = [
"ping_manager.cc",
"ping_manager.h",
]
public_deps = [ "//google_apis:google_apis" ]
deps = [
"//base:base",
"//components/safe_browsing/core/db:hit_report",
"//components/safe_browsing/core/db:util",
"//content/public/browser:browser",
"//net:net",
]
}
source_set("ping_manager_unittest") {
testonly = true
sources = [ "ping_manager_unittest.cc" ]
deps = [
":ping_manager",
"//base:base",
"//components/safe_browsing/core/db:v4_test_util",
"//net:net",
"//net:test_support",
"//testing/gtest",
]
}
source_set("public") {
sources = [
"safe_browsing_service_interface.cc",
......@@ -84,39 +119,4 @@ if (!is_ios) {
"//content/public/browser",
]
}
source_set("verdict_cache_manager") {
sources = [
"verdict_cache_manager.cc",
"verdict_cache_manager.h",
]
deps = [
":csd_proto",
":realtimeapi_proto",
"//base",
"//components/content_settings/core/browser",
"//components/history/core/browser",
"//components/password_manager/core/browser:browser",
"//components/safe_browsing/core/common:thread_utils",
"//components/safe_browsing/core/db:v4_protocol_manager_util",
"//url",
]
}
source_set("verdict_cache_manager_unittest") {
testonly = true
sources = [ "verdict_cache_manager_unittest.cc" ]
deps = [
":csd_proto",
":realtimeapi_proto",
":verdict_cache_manager",
"//base",
"//components/content_settings/core/browser",
"//components/safe_browsing/core/common:test_support",
"//components/sync_preferences:test_support",
"//testing/gtest",
]
}
}
......@@ -18,7 +18,6 @@
#include "base/memory/ref_counted.h"
#include "components/safe_browsing/core/db/hit_report.h"
#include "components/safe_browsing/core/db/util.h"
#include "content/public/browser/permission_type.h"
#include "services/network/public/cpp/shared_url_loader_factory.h"
#include "url/gurl.h"
......
......@@ -7,6 +7,8 @@
source_set("unit_tests") {
testonly = true
deps = [
"//components/safe_browsing/core:ping_manager_unittest",
"//components/safe_browsing/core:verdict_cache_manager_unittest",
"//components/safe_browsing/core/common:unit_tests",
"//components/safe_browsing/core/db:unit_tests_local_db",
]
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment