Index: chrome/browser/safe_browsing/safe_browsing_service_browsertest.cc |
diff --git a/chrome/browser/safe_browsing/safe_browsing_service_browsertest.cc b/chrome/browser/safe_browsing/safe_browsing_service_browsertest.cc |
index 44c4be84b596733cabe7ab3e764bc85e5a78c109..3ab58448a088aef55eb1c01bd2ea8ffc6dc15a1e 100644 |
--- a/chrome/browser/safe_browsing/safe_browsing_service_browsertest.cc |
+++ b/chrome/browser/safe_browsing/safe_browsing_service_browsertest.cc |
@@ -381,6 +381,39 @@ IN_PROC_BROWSER_TEST_F(SafeBrowsingServiceTest, Malware) { |
EXPECT_TRUE(ShowingInterstitialPage()); |
} |
+const char kPrefetchMalwarePage[] = "files/safe_browsing/prefetch_malware.html"; |
+ |
+// This test confirms that prefetches don't themselves get the |
+// interstitial treatment. |
+IN_PROC_BROWSER_TEST_F(SafeBrowsingServiceTest, Prefetch) { |
+ GURL url = test_server()->GetURL(kPrefetchMalwarePage); |
+ GURL malware_url = test_server()->GetURL(kMalwarePage); |
+ |
+ class SetPrefetchForTest { |
+ public: |
+ explicit SetPrefetchForTest(bool prefetch) |
+ : old_prefetch_state_(ResourceDispatcherHost::is_prefetch_enabled()) { |
+ ResourceDispatcherHost::set_is_prefetch_enabled(prefetch); |
+ } |
+ |
+ ~SetPrefetchForTest() { |
+ ResourceDispatcherHost::set_is_prefetch_enabled(old_prefetch_state_); |
+ } |
+ private: |
+ bool old_prefetch_state_; |
+ } set_prefetch_for_test(true); |
+ |
+ // After adding the url to safebrowsing database and getfullhash result, |
lzheng
2011/03/08 18:01:34
nit: We may want to update this comment.
Should w
gavinp
2011/03/08 22:33:04
I fixed the comment.
With regard to testing, we'd
|
+ // we should see the interstitial page. |
+ SBFullHashResult malware_full_hash; |
+ int chunk_id = 0; |
+ GenUrlFullhashResult(malware_url, safe_browsing_util::kMalwareList, |
+ chunk_id, &malware_full_hash); |
+ SetupResponseForUrl(malware_url, malware_full_hash); |
+ ui_test_utils::NavigateToURL(browser(), url); |
+ EXPECT_FALSE(ShowingInterstitialPage()); |
+} |
+ |
} // namespace |
class TestSBClient |