| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 #include "chrome/browser/safe_browsing/download_protection_service.h" | 5 #include "chrome/browser/safe_browsing/download_protection_service.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/compiler_specific.h" | 8 #include "base/compiler_specific.h" |
| 9 #include "base/format_macros.h" | 9 #include "base/format_macros.h" |
| 10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
| (...skipping 626 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 637 BrowserThread::UI, | 637 BrowserThread::UI, |
| 638 FROM_HERE, | 638 FROM_HERE, |
| 639 base::Bind(&CheckClientDownloadRequest::GetTabRedirects, this)); | 639 base::Bind(&CheckClientDownloadRequest::GetTabRedirects, this)); |
| 640 #else | 640 #else |
| 641 PostFinishTask(UNKNOWN, REASON_OS_NOT_SUPPORTED); | 641 PostFinishTask(UNKNOWN, REASON_OS_NOT_SUPPORTED); |
| 642 #endif | 642 #endif |
| 643 } | 643 } |
| 644 | 644 |
| 645 void GetTabRedirects() { | 645 void GetTabRedirects() { |
| 646 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 646 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 647 if (!service_) |
| 648 return; |
| 649 |
| 647 if (!tab_url_.is_valid()) { | 650 if (!tab_url_.is_valid()) { |
| 648 SendRequest(); | 651 SendRequest(); |
| 649 return; | 652 return; |
| 650 } | 653 } |
| 651 | 654 |
| 652 Profile* profile = Profile::FromBrowserContext(item_->GetBrowserContext()); | 655 Profile* profile = Profile::FromBrowserContext(item_->GetBrowserContext()); |
| 653 HistoryService* history = | 656 HistoryService* history = |
| 654 HistoryServiceFactory::GetForProfile(profile, Profile::EXPLICIT_ACCESS); | 657 HistoryServiceFactory::GetForProfile(profile, Profile::EXPLICIT_ACCESS); |
| 655 if (!history) { | 658 if (!history) { |
| 656 SendRequest(); | 659 SendRequest(); |
| 657 return; | 660 return; |
| 658 } | 661 } |
| 659 | 662 |
| 660 history->QueryRedirectsTo( | 663 history->QueryRedirectsTo( |
| 661 tab_url_, | 664 tab_url_, |
| 662 base::Bind(&CheckClientDownloadRequest::OnGotTabRedirects, | 665 base::Bind(&CheckClientDownloadRequest::OnGotTabRedirects, |
| 663 base::Unretained(this), | 666 base::Unretained(this), |
| 664 tab_url_), | 667 tab_url_), |
| 665 &request_tracker_); | 668 &request_tracker_); |
| 666 } | 669 } |
| 667 | 670 |
| 668 void OnGotTabRedirects(const GURL& url, | 671 void OnGotTabRedirects(const GURL& url, |
| 669 const history::RedirectList* redirect_list) { | 672 const history::RedirectList* redirect_list) { |
| 670 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 673 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 671 DCHECK_EQ(url, tab_url_); | 674 DCHECK_EQ(url, tab_url_); |
| 675 if (!service_) |
| 676 return; |
| 672 | 677 |
| 673 if (!redirect_list->empty()) { | 678 if (!redirect_list->empty()) { |
| 674 tab_redirects_.insert( | 679 tab_redirects_.insert( |
| 675 tab_redirects_.end(), redirect_list->rbegin(), redirect_list->rend()); | 680 tab_redirects_.end(), redirect_list->rbegin(), redirect_list->rend()); |
| 676 } | 681 } |
| 677 | 682 |
| 678 SendRequest(); | 683 SendRequest(); |
| 679 } | 684 } |
| 680 | 685 |
| 681 void SendRequest() { | 686 void SendRequest() { |
| (...skipping 418 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1100 GURL DownloadProtectionService::GetDownloadRequestUrl() { | 1105 GURL DownloadProtectionService::GetDownloadRequestUrl() { |
| 1101 GURL url(kDownloadRequestUrl); | 1106 GURL url(kDownloadRequestUrl); |
| 1102 std::string api_key = google_apis::GetAPIKey(); | 1107 std::string api_key = google_apis::GetAPIKey(); |
| 1103 if (!api_key.empty()) | 1108 if (!api_key.empty()) |
| 1104 url = url.Resolve("?key=" + net::EscapeQueryParamValue(api_key, true)); | 1109 url = url.Resolve("?key=" + net::EscapeQueryParamValue(api_key, true)); |
| 1105 | 1110 |
| 1106 return url; | 1111 return url; |
| 1107 } | 1112 } |
| 1108 | 1113 |
| 1109 } // namespace safe_browsing | 1114 } // namespace safe_browsing |
| OLD | NEW |