Index: chrome/browser/safe_browsing/client_side_detection_host.cc |
diff --git a/chrome/browser/safe_browsing/client_side_detection_host.cc b/chrome/browser/safe_browsing/client_side_detection_host.cc |
index d88f8abcf44848673f89098dfcab05ac1224cefb..c3e85ca81713527a68549604bbc27e65f40ee025 100644 |
--- a/chrome/browser/safe_browsing/client_side_detection_host.cc |
+++ b/chrome/browser/safe_browsing/client_side_detection_host.cc |
@@ -352,6 +352,10 @@ void ClientSideDetectionHost::OnSafeBrowsingHit( |
tab_contents()->controller().GetActiveEntry()) { |
unsafe_unique_page_id_ = |
tab_contents()->controller().GetActiveEntry()->unique_id(); |
+ // We also keep the resource around in order to be able to send the |
+ // malicious URL to the server. |
+ unsafe_resource_.reset(new SafeBrowsingService::UnsafeResource(resource)); |
+ unsafe_resource_->client = NULL; // Make sure we don't do anything stupid. |
} |
} |
@@ -390,6 +394,9 @@ void ClientSideDetectionHost::OnPhishingDetectionDone( |
// malware or phishing interstitial was shown but the user clicked |
// through. |
(verdict->is_phishing() || DidShowSBInterstitial())) { |
+ if (DidShowSBInterstitial()) { |
+ browse_info_->unsafe_resource.reset(unsafe_resource_.release()); |
+ } |
// Start browser-side feature extraction. Once we're done it will send |
// the client verdict request. |
feature_extractor_->ExtractFeatures( |