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

Unified Diff: chrome/browser/safe_browsing/safe_browsing_service.cc

Issue 7134017: Make safe browsing work in a multi-profile environment. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 6 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/safe_browsing/safe_browsing_service.cc
===================================================================
--- chrome/browser/safe_browsing/safe_browsing_service.cc (revision 89656)
+++ chrome/browser/safe_browsing/safe_browsing_service.cc (working copy)
@@ -53,7 +53,7 @@
// Similar to kDownloadUrlCheckTimeoutMs, but for download hash checks.
const int64 kDownloadHashCheckTimeoutMs = 10000;
-// TODO(lzheng): Replace this with Profile* ProfileManager::GetDefaultProfile().
+// TODO(mirandac): remove GetDefaultProfile altogether.
Profile* GetDefaultProfile() {
FilePath user_data_dir;
PathService::Get(chrome::DIR_USER_DATA, &user_data_dir);
@@ -190,17 +190,18 @@
}
// Only report SafeBrowsing related stats when UMA is enabled and
-// safe browsing is enabled.
+// safe browsing is enabled. Do we really ever get here without
+// profile's kSafeBrowsingEnabled being true??
bool SafeBrowsingService::CanReportStats() const {
const MetricsService* metrics = g_browser_process->metrics_service();
- const PrefService* pref_service = GetDefaultProfile()->GetPrefs();
- return metrics && metrics->reporting_active() &&
- pref_service && pref_service->GetBoolean(prefs::kSafeBrowsingEnabled);
+ return metrics && metrics->reporting_active(); // &&
}
// Binhash verification is only enabled for UMA users for now.
-bool SafeBrowsingService::DownloadBinHashNeeded() const {
- return enable_download_protection_ && CanReportStats();
+bool SafeBrowsingService::DownloadBinHashNeeded(
+ bool safe_browsing_enabled) const {
+ return enable_download_protection_ && safe_browsing_enabled &&
+ CanReportStats();
}
bool SafeBrowsingService::CheckDownloadUrl(const std::vector<GURL>& url_chain,
@@ -855,9 +856,9 @@
local_state->GetString(prefs::kSafeBrowsingWrappedKey);
}
- // We will issue network fetches using the default profile's request context.
+ // We will issue network fetches using the system request context.
scoped_refptr<net::URLRequestContextGetter> request_context_getter(
- GetDefaultProfile()->GetRequestContext());
+ g_browser_process->system_request_context());
CommandLine* cmdline = CommandLine::ForCurrentProcess();
enable_download_protection_ =
@@ -982,13 +983,13 @@
}
// The tab might have been closed.
- TabContents* wc =
+ TabContents* tab_contents =
tab_util::GetTabContentsByID(resource.render_process_host_id,
resource.render_view_id);
- if (!wc) {
+ if (!tab_contents) {
// The tab is gone and we did not have a chance at showing the interstitial.
- // Just act as "Don't Proceed" was chosen.
+ // Just act as if "Don't Proceed" were chosen.
std::vector<UnsafeResource> resources;
resources.push_back(resource);
BrowserThread::PostTask(
@@ -998,10 +999,14 @@
return;
}
- if (resource.threat_type != SafeBrowsingService::SAFE && CanReportStats()) {
- GURL page_url = wc->GetURL();
+ const PrefService* pref_service = tab_contents->profile()->GetPrefs();
+ if (resource.threat_type != SafeBrowsingService::SAFE &&
+ CanReportStats() &&
+ pref_service &&
+ pref_service->GetBoolean(prefs::kSafeBrowsingEnabled)) {
+ GURL page_url = tab_contents->GetURL();
GURL referrer_url;
- NavigationEntry* entry = wc->controller().GetActiveEntry();
+ NavigationEntry* entry = tab_contents->controller().GetActiveEntry();
if (entry)
referrer_url = entry->referrer();
@@ -1019,7 +1024,8 @@
}
ReportSafeBrowsingHit(resource.url, page_url, referrer_url,
resource.is_subresource, resource.threat_type,
- std::string() /* post_data */);
+ std::string() /* post_data */,
+ true /* safe browsing enabled */ );
}
SafeBrowsingBlockingPage::ShowBlockingPage(this, resource);
@@ -1027,15 +1033,17 @@
// A safebrowsing hit is sent after a blocking page for malware/phishing
// or after the warning dialog for download urls, only for UMA users.
+// pass in knowledge of can we report stats...
void SafeBrowsingService::ReportSafeBrowsingHit(
const GURL& malicious_url,
const GURL& page_url,
const GURL& referrer_url,
bool is_subresource,
SafeBrowsingService::UrlCheckResult threat_type,
- const std::string& post_data) {
+ const std::string& post_data,
+ bool safe_browsing_enabled) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
- if (!CanReportStats())
+ if (!(CanReportStats() && safe_browsing_enabled))
return;
BrowserThread::PostTask(

Powered by Google App Engine
This is Rietveld 408576698