summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbryner@chromium.org <bryner@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-10-29 08:00:45 +0000
committerbryner@chromium.org <bryner@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-10-29 08:00:45 +0000
commitda549b9a25b326c0ddc8e43365b2f6a66de750a1 (patch)
tree04a30e2ca657e7a922eb0481890a0f3bc9a9cf47
parent089e30358bb6378ddd6b1edaa64c1049c4c21392 (diff)
downloadchromium_src-da549b9a25b326c0ddc8e43365b2f6a66de750a1.zip
chromium_src-da549b9a25b326c0ddc8e43365b2f6a66de750a1.tar.gz
chromium_src-da549b9a25b326c0ddc8e43365b2f6a66de750a1.tar.bz2
Include the HTTP status code as a feature in the ClientPhishingRequest.
BUG=none TEST=BrowserFeatureExtractorTest Review URL: http://codereview.chromium.org/8400050 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@107867 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/safe_browsing/browser_feature_extractor.cc6
-rw-r--r--chrome/browser/safe_browsing/browser_feature_extractor.h3
-rw-r--r--chrome/browser/safe_browsing/browser_feature_extractor_unittest.cc4
-rw-r--r--chrome/browser/safe_browsing/browser_features.cc1
-rw-r--r--chrome/browser/safe_browsing/browser_features.h3
-rw-r--r--chrome/browser/safe_browsing/client_side_detection_host.cc1
6 files changed, 16 insertions, 2 deletions
diff --git a/chrome/browser/safe_browsing/browser_feature_extractor.cc b/chrome/browser/safe_browsing/browser_feature_extractor.cc
index a5e2e6b..5dd4186 100644
--- a/chrome/browser/safe_browsing/browser_feature_extractor.cc
+++ b/chrome/browser/safe_browsing/browser_feature_extractor.cc
@@ -28,7 +28,7 @@
namespace safe_browsing {
-BrowseInfo::BrowseInfo() {}
+BrowseInfo::BrowseInfo() : http_status_code(0) {}
BrowseInfo::~BrowseInfo() {}
@@ -232,7 +232,9 @@ void BrowserFeatureExtractor::ExtractBrowseInfoFeatures(
static_cast<double>(info.unsafe_resource->threat_type),
request);
}
-
+ if (info.http_status_code != 0) {
+ AddFeature(features::kHttpStatusCode, info.http_status_code, request);
+ }
}
void BrowserFeatureExtractor::StartExtractFeatures(
diff --git a/chrome/browser/safe_browsing/browser_feature_extractor.h b/chrome/browser/safe_browsing/browser_feature_extractor.h
index d227407..f7b8dab 100644
--- a/chrome/browser/safe_browsing/browser_feature_extractor.h
+++ b/chrome/browser/safe_browsing/browser_feature_extractor.h
@@ -49,6 +49,9 @@ struct BrowseInfo {
std::vector<GURL> host_redirects;
std::vector<GURL> url_redirects;
+ // The HTTP status code from this navigation.
+ int http_status_code;
+
BrowseInfo();
~BrowseInfo();
};
diff --git a/chrome/browser/safe_browsing/browser_feature_extractor_unittest.cc b/chrome/browser/safe_browsing/browser_feature_extractor_unittest.cc
index 8e0309e..28c86a4 100644
--- a/chrome/browser/safe_browsing/browser_feature_extractor_unittest.cc
+++ b/chrome/browser/safe_browsing/browser_feature_extractor_unittest.cc
@@ -272,6 +272,7 @@ TEST_F(BrowserFeatureExtractorTest, BrowseFeatures) {
redirect_chain.push_back(GURL("http://somerandomwebsite.com/"));
redirect_chain.push_back(GURL("http://www.foo.com/"));
SetRedirectChain(redirect_chain, true);
+ browse_info_->http_status_code = 200;
NavigateAndCommit(GURL("http://www.foo.com/"),
GURL("http://google.com/"),
content::PageTransitionFromInt(
@@ -299,6 +300,7 @@ TEST_F(BrowserFeatureExtractorTest, BrowseFeatures) {
EXPECT_EQ(0.0, features[features::kHasSSLReferrer]);
EXPECT_EQ(2.0, features[features::kPageTransitionType]);
EXPECT_EQ(1.0, features[features::kIsFirstNavigation]);
+ EXPECT_EQ(200.0, features[features::kHttpStatusCode]);
request.Clear();
request.set_url("http://www.foo.com/page.html");
@@ -308,6 +310,7 @@ TEST_F(BrowserFeatureExtractorTest, BrowseFeatures) {
redirect_chain.push_back(GURL("http://www.foo.com/second_redirect"));
redirect_chain.push_back(GURL("http://www.foo.com/page.html"));
SetRedirectChain(redirect_chain, false);
+ browse_info_->http_status_code = 404;
NavigateAndCommit(GURL("http://www.foo.com/page.html"),
GURL("http://www.foo.com"),
content::PageTransitionFromInt(
@@ -352,6 +355,7 @@ TEST_F(BrowserFeatureExtractorTest, BrowseFeatures) {
features[StringPrintf("%s%s",
features::kHostPrefix,
features::kIsFirstNavigation)]);
+ EXPECT_EQ(404.0, features[features::kHttpStatusCode]);
request.Clear();
request.set_url("http://www.bar.com/");
diff --git a/chrome/browser/safe_browsing/browser_features.cc b/chrome/browser/safe_browsing/browser_features.cc
index cff098d..e43cd5e 100644
--- a/chrome/browser/safe_browsing/browser_features.cc
+++ b/chrome/browser/safe_browsing/browser_features.cc
@@ -27,6 +27,7 @@ const char kRedirectUrlMismatch[] = "RedirectUrlMismatch";
const char kRedirect[] = "Redirect";
const char kSecureRedirectValue[] = "SecureRedirect";
const char kBadIpFetch[] = "BadIpFetch=";
+const char kHttpStatusCode[] = "HttpStatusCode";
const char kSafeBrowsingMaliciousUrl[] = "SafeBrowsingMaliciousUrl=";
const char kSafeBrowsingOriginalUrl[] = "SafeBrowsingOriginalUrl=";
const char kSafeBrowsingIsSubresource[] = "SafeBrowsingIsSubresource";
diff --git a/chrome/browser/safe_browsing/browser_features.h b/chrome/browser/safe_browsing/browser_features.h
index c8ad4c2..0f3f033 100644
--- a/chrome/browser/safe_browsing/browser_features.h
+++ b/chrome/browser/safe_browsing/browser_features.h
@@ -71,6 +71,9 @@ extern const char kSecureRedirectValue[];
// Resource was fetched from a known bad IP address.
extern const char kBadIpFetch[];
+// The HTTP status code for the main document.
+extern const char kHttpStatusCode[];
+
// SafeBrowsing related featues. Fields from the UnsafeResource if there is
// any.
extern const char kSafeBrowsingMaliciousUrl[];
diff --git a/chrome/browser/safe_browsing/client_side_detection_host.cc b/chrome/browser/safe_browsing/client_side_detection_host.cc
index dfcce12..06c315a7 100644
--- a/chrome/browser/safe_browsing/client_side_detection_host.cc
+++ b/chrome/browser/safe_browsing/client_side_detection_host.cc
@@ -324,6 +324,7 @@ void ClientSideDetectionHost::DidNavigateMainFramePostCommit(
}
browse_info_->host_redirects = cur_host_redirects_;
browse_info_->url_redirects = params.redirects;
+ browse_info_->http_status_code = details.http_status_code;
// Notify the renderer if it should classify this URL.
classification_request_ = new ShouldClassifyUrlRequest(params,