diff options
author | bryner@chromium.org <bryner@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-10-29 08:00:45 +0000 |
---|---|---|
committer | bryner@chromium.org <bryner@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-10-29 08:00:45 +0000 |
commit | da549b9a25b326c0ddc8e43365b2f6a66de750a1 (patch) | |
tree | 04a30e2ca657e7a922eb0481890a0f3bc9a9cf47 | |
parent | 089e30358bb6378ddd6b1edaa64c1049c4c21392 (diff) | |
download | chromium_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
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, |