| OLD | NEW |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 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/command_line.h" | 8 #include "base/command_line.h" |
| 9 #include "base/histogram.h" | 9 #include "base/histogram.h" |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 251 // The tab might have been closed. | 251 // The tab might have been closed. |
| 252 TabContents* wc = | 252 TabContents* wc = |
| 253 tab_util::GetTabContentsByID(resource.render_process_host_id, | 253 tab_util::GetTabContentsByID(resource.render_process_host_id, |
| 254 resource.render_view_id); | 254 resource.render_view_id); |
| 255 | 255 |
| 256 if (!wc) { | 256 if (!wc) { |
| 257 // The tab is gone and we did not have a chance at showing the interstitial. | 257 // The tab is gone and we did not have a chance at showing the interstitial. |
| 258 // Just act as "Don't Proceed" was chosen. | 258 // Just act as "Don't Proceed" was chosen. |
| 259 std::vector<UnsafeResource> resources; | 259 std::vector<UnsafeResource> resources; |
| 260 resources.push_back(resource); | 260 resources.push_back(resource); |
| 261 MessageLoop* message_loop; | 261 ChromeThread::PostTask( |
| 262 if (g_browser_process->io_thread()) | 262 ChromeThread::IO, FROM_HERE, |
| 263 message_loop = g_browser_process->io_thread()->message_loop(); | 263 NewRunnableMethod( |
| 264 else // For unit-tests, just post on the current thread. | 264 this, &SafeBrowsingService::OnBlockingPageDone, resources, false)); |
| 265 message_loop = MessageLoop::current(); | |
| 266 message_loop->PostTask(FROM_HERE, NewRunnableMethod( | |
| 267 this, &SafeBrowsingService::OnBlockingPageDone, resources, false)); | |
| 268 return; | 265 return; |
| 269 } | 266 } |
| 270 | 267 |
| 271 // Report the malware sub-resource to the SafeBrowsing servers if we have a | 268 // Report the malware sub-resource to the SafeBrowsing servers if we have a |
| 272 // malware sub-resource on a safe page and only if the user has opted in to | 269 // malware sub-resource on a safe page and only if the user has opted in to |
| 273 // reporting statistics. | 270 // reporting statistics. |
| 274 PrefService* prefs = g_browser_process->local_state(); | 271 PrefService* prefs = g_browser_process->local_state(); |
| 275 DCHECK(prefs); | 272 DCHECK(prefs); |
| 276 if (prefs && prefs->GetBoolean(prefs::kMetricsReportingEnabled) && | 273 if (prefs && prefs->GetBoolean(prefs::kMetricsReportingEnabled) && |
| 277 resource.resource_type != ResourceType::MAIN_FRAME && | 274 resource.resource_type != ResourceType::MAIN_FRAME && |
| (...skipping 394 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 672 // report if it's not there. | 669 // report if it's not there. |
| 673 std::string list; | 670 std::string list; |
| 674 std::vector<SBPrefix> prefix_hits; | 671 std::vector<SBPrefix> prefix_hits; |
| 675 std::vector<SBFullHashResult> full_hits; | 672 std::vector<SBFullHashResult> full_hits; |
| 676 database_->ContainsUrl(page_url, &list, &prefix_hits, &full_hits, | 673 database_->ContainsUrl(page_url, &list, &prefix_hits, &full_hits, |
| 677 protocol_manager_->last_update()); | 674 protocol_manager_->last_update()); |
| 678 | 675 |
| 679 if (full_hits.empty()) | 676 if (full_hits.empty()) |
| 680 protocol_manager_->ReportMalware(malware_url, page_url, referrer_url); | 677 protocol_manager_->ReportMalware(malware_url, page_url, referrer_url); |
| 681 } | 678 } |
| OLD | NEW |