Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 | 5 |
| 6 #include "chrome/browser/safe_browsing/safe_browsing_service.h" | 6 #include "chrome/browser/safe_browsing/safe_browsing_service.h" |
| 7 | 7 |
| 8 #include "base/callback.h" | 8 #include "base/callback.h" |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/path_service.h" | 10 #include "base/path_service.h" |
| (...skipping 328 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 339 | 339 |
| 340 SafeBrowsingService::~SafeBrowsingService() { | 340 SafeBrowsingService::~SafeBrowsingService() { |
| 341 // We should have already been shut down. If we're still enabled, then the | 341 // We should have already been shut down. If we're still enabled, then the |
| 342 // database isn't going to be closed properly, which could lead to corruption. | 342 // database isn't going to be closed properly, which could lead to corruption. |
| 343 DCHECK(!enabled_); | 343 DCHECK(!enabled_); |
| 344 } | 344 } |
| 345 | 345 |
| 346 void SafeBrowsingService::OnIOInitialize( | 346 void SafeBrowsingService::OnIOInitialize( |
| 347 const std::string& client_key, | 347 const std::string& client_key, |
| 348 const std::string& wrapped_key, | 348 const std::string& wrapped_key, |
| 349 URLRequestContextGetter* request_context_getter) { | 349 URLRequestContextGetter* request_context_getter) { |
|
lzheng
2010/10/20 18:03:55
Should this become scoped_refptr<URLRequestContext
willchan no longer on Chromium
2010/10/20 18:06:49
Not necessary, and there was a chromium-dev discus
| |
| 350 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 350 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| 351 enabled_ = true; | 351 enabled_ = true; |
| 352 MakeDatabaseAvailable(); | 352 MakeDatabaseAvailable(); |
| 353 | 353 |
| 354 // On Windows, get the safe browsing client name from the browser | 354 // On Windows, get the safe browsing client name from the browser |
| 355 // distribution classes in installer util. These classes don't yet have | 355 // distribution classes in installer util. These classes don't yet have |
| 356 // an analog on non-Windows builds so just keep the name specified here. | 356 // an analog on non-Windows builds so just keep the name specified here. |
| 357 #if defined(OS_WIN) | 357 #if defined(OS_WIN) |
| 358 BrowserDistribution* dist = BrowserDistribution::GetDistribution(); | 358 BrowserDistribution* dist = BrowserDistribution::GetDistribution(); |
| 359 std::string client_name(dist->GetSafeBrowsingName()); | 359 std::string client_name(dist->GetSafeBrowsingName()); |
| (...skipping 19 matching lines...) Expand all Loading... | |
| 379 | 379 |
| 380 protocol_manager_ = new SafeBrowsingProtocolManager(this, | 380 protocol_manager_ = new SafeBrowsingProtocolManager(this, |
| 381 client_name, | 381 client_name, |
| 382 client_key, | 382 client_key, |
| 383 wrapped_key, | 383 wrapped_key, |
| 384 request_context_getter, | 384 request_context_getter, |
| 385 info_url_prefix, | 385 info_url_prefix, |
| 386 mackey_url_prefix, | 386 mackey_url_prefix, |
| 387 disable_auto_update); | 387 disable_auto_update); |
| 388 | 388 |
| 389 // Balance the reference added by Start(). | |
| 390 request_context_getter->Release(); | |
| 391 | |
| 392 protocol_manager_->Initialize(); | 389 protocol_manager_->Initialize(); |
| 393 } | 390 } |
| 394 | 391 |
| 395 void SafeBrowsingService::OnIOShutdown() { | 392 void SafeBrowsingService::OnIOShutdown() { |
| 396 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 393 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| 397 if (!enabled_) | 394 if (!enabled_) |
| 398 return; | 395 return; |
| 399 | 396 |
| 400 enabled_ = false; | 397 enabled_ = false; |
| 401 | 398 |
| (...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 641 PrefService* local_state = g_browser_process->local_state(); | 638 PrefService* local_state = g_browser_process->local_state(); |
| 642 std::string client_key, wrapped_key; | 639 std::string client_key, wrapped_key; |
| 643 if (local_state) { | 640 if (local_state) { |
| 644 client_key = | 641 client_key = |
| 645 local_state->GetString(prefs::kSafeBrowsingClientKey); | 642 local_state->GetString(prefs::kSafeBrowsingClientKey); |
| 646 wrapped_key = | 643 wrapped_key = |
| 647 local_state->GetString(prefs::kSafeBrowsingWrappedKey); | 644 local_state->GetString(prefs::kSafeBrowsingWrappedKey); |
| 648 } | 645 } |
| 649 | 646 |
| 650 // We will issue network fetches using the default profile's request context. | 647 // We will issue network fetches using the default profile's request context. |
| 651 URLRequestContextGetter* request_context_getter = | 648 scoped_refptr<URLRequestContextGetter> request_context_getter = |
| 652 GetDefaultProfile()->GetRequestContext(); | 649 GetDefaultProfile()->GetRequestContext(); |
| 653 request_context_getter->AddRef(); // Balanced in OnIOInitialize. | |
| 654 | 650 |
| 655 BrowserThread::PostTask( | 651 BrowserThread::PostTask( |
| 656 BrowserThread::IO, FROM_HERE, | 652 BrowserThread::IO, FROM_HERE, |
| 657 NewRunnableMethod( | 653 NewRunnableMethod( |
| 658 this, &SafeBrowsingService::OnIOInitialize, client_key, wrapped_key, | 654 this, &SafeBrowsingService::OnIOInitialize, client_key, wrapped_key, |
| 659 request_context_getter)); | 655 request_context_getter)); |
| 660 } | 656 } |
| 661 | 657 |
| 662 void SafeBrowsingService::OnCloseDatabase() { | 658 void SafeBrowsingService::OnCloseDatabase() { |
| 663 DCHECK_EQ(MessageLoop::current(), safe_browsing_thread_->message_loop()); | 659 DCHECK_EQ(MessageLoop::current(), safe_browsing_thread_->message_loop()); |
| (...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 805 if (!enabled_) | 801 if (!enabled_) |
| 806 return; | 802 return; |
| 807 | 803 |
| 808 DLOG(INFO) << "ReportSafeBrowsingHit: " << malicious_url << " " << page_url | 804 DLOG(INFO) << "ReportSafeBrowsingHit: " << malicious_url << " " << page_url |
| 809 << " " << referrer_url << " " << is_subresource | 805 << " " << referrer_url << " " << is_subresource |
| 810 << " " << threat_type; | 806 << " " << threat_type; |
| 811 protocol_manager_->ReportSafeBrowsingHit(malicious_url, page_url, | 807 protocol_manager_->ReportSafeBrowsingHit(malicious_url, page_url, |
| 812 referrer_url, is_subresource, | 808 referrer_url, is_subresource, |
| 813 threat_type); | 809 threat_type); |
| 814 } | 810 } |
| OLD | NEW |