Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(570)

Side by Side Diff: chrome/browser/safe_browsing/safe_browsing_service_browsertest.cc

Issue 6334131: Turn off safebrowsing for PREFETCH requests (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: clean up unit test, per pending fix to 75507 Created 9 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 // 4 //
5 // This test creates a safebrowsing service using test safebrowsing database 5 // This test creates a safebrowsing service using test safebrowsing database
6 // and a test protocol manager. It is used to test logics in safebrowsing 6 // and a test protocol manager. It is used to test logics in safebrowsing
7 // service. 7 // service.
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/metrics/histogram.h" 10 #include "base/metrics/histogram.h"
(...skipping 361 matching lines...) Expand 10 before | Expand all | Expand 10 after
372 // we should see the interstitial page. 372 // we should see the interstitial page.
373 SBFullHashResult malware_full_hash; 373 SBFullHashResult malware_full_hash;
374 int chunk_id = 0; 374 int chunk_id = 0;
375 GenUrlFullhashResult(url, safe_browsing_util::kMalwareList, chunk_id, 375 GenUrlFullhashResult(url, safe_browsing_util::kMalwareList, chunk_id,
376 &malware_full_hash); 376 &malware_full_hash);
377 SetupResponseForUrl(url, malware_full_hash); 377 SetupResponseForUrl(url, malware_full_hash);
378 ui_test_utils::NavigateToURL(browser(), url); 378 ui_test_utils::NavigateToURL(browser(), url);
379 EXPECT_TRUE(ShowingInterstitialPage()); 379 EXPECT_TRUE(ShowingInterstitialPage());
380 } 380 }
381 381
382 const char kPrefetchMalwarePage[] = "files/safe_browsing/prefetch_malware.html";
383
384 // This test confirms that prefetches don't themselves get the
385 // interstitial treatment.
386 IN_PROC_BROWSER_TEST_F(SafeBrowsingServiceTest, Prefetch) {
387 GURL url = test_server()->GetURL(kPrefetchMalwarePage);
388 GURL malware_url = test_server()->GetURL(kMalwarePage);
389
390 class SetPrefetchForTest {
391 public:
392 explicit SetPrefetchForTest(bool prefetch)
393 : old_prefetch_state_(ResourceDispatcherHost::is_prefetch_enabled()) {
394 ResourceDispatcherHost::set_is_prefetch_enabled(prefetch);
395 }
396
397 ~SetPrefetchForTest() {
398 ResourceDispatcherHost::set_is_prefetch_enabled(old_prefetch_state_);
399 }
400 private:
401 bool old_prefetch_state_;
402 } set_prefetch_for_test(true);
403
404 // Even though we have added this uri to the safebrowsing database and
405 // getfullhash result, we should not see the interstitial page since the
406 // only malware was a prefetch target.
407 SBFullHashResult malware_full_hash;
408 int chunk_id = 0;
409 GenUrlFullhashResult(malware_url, safe_browsing_util::kMalwareList,
410 chunk_id, &malware_full_hash);
411 SetupResponseForUrl(malware_url, malware_full_hash);
412 ui_test_utils::NavigateToURL(browser(), url);
413 EXPECT_FALSE(ShowingInterstitialPage());
414
415 // However, when we navigate to the malware page, we should still get
416 // the interstitial.
417 ui_test_utils::NavigateToURL(browser(), malware_url);
418 EXPECT_TRUE(ShowingInterstitialPage());
419 }
420
382 } // namespace 421 } // namespace
383 422
384 class TestSBClient 423 class TestSBClient
385 : public base::RefCountedThreadSafe<TestSBClient>, 424 : public base::RefCountedThreadSafe<TestSBClient>,
386 public SafeBrowsingService::Client { 425 public SafeBrowsingService::Client {
387 public: 426 public:
388 TestSBClient() : result_(SafeBrowsingService::SAFE), 427 TestSBClient() : result_(SafeBrowsingService::SAFE),
389 safe_browsing_service_(g_browser_process-> 428 safe_browsing_service_(g_browser_process->
390 resource_dispatcher_host()-> 429 resource_dispatcher_host()->
391 safe_browsing_service()) { 430 safe_browsing_service()) {
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
554 client->CheckDownloadHash(full_hash); 593 client->CheckDownloadHash(full_hash);
555 594
556 // There should be a timeout and the hash would be considered as safe. 595 // There should be a timeout and the hash would be considered as safe.
557 EXPECT_EQ(SafeBrowsingService::SAFE, client->GetResult()); 596 EXPECT_EQ(SafeBrowsingService::SAFE, client->GetResult());
558 597
559 // Need to set the timeout back to the default value. 598 // Need to set the timeout back to the default value.
560 SetDownloadHashCheckTimeout(sb_service, default_hashcheck_timeout); 599 SetDownloadHashCheckTimeout(sb_service, default_hashcheck_timeout);
561 } 600 }
562 601
563 } // namespace 602 } // namespace
OLDNEW
« no previous file with comments | « chrome/browser/renderer_host/safe_browsing_resource_handler.cc ('k') | chrome/test/data/safe_browsing/prefetch_malware.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698