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

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: addressed sky's nit Created 9 years, 5 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 92179)
+++ chrome/browser/safe_browsing/safe_browsing_service.cc (working copy)
@@ -14,7 +14,7 @@
#include "chrome/browser/browser_process.h"
#include "chrome/browser/metrics/metrics_service.h"
#include "chrome/browser/prefs/pref_service.h"
-#include "chrome/browser/profiles/profile_manager.h"
+#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/safe_browsing/malware_details.h"
#include "chrome/browser/safe_browsing/protocol_manager.h"
#include "chrome/browser/safe_browsing/safe_browsing_blocking_page.h"
@@ -54,14 +54,6 @@
// Similar to kDownloadUrlCheckTimeoutMs, but for download hash checks.
const int64 kDownloadHashCheckTimeoutMs = 10000;
-// TODO(lzheng): Replace this with Profile* ProfileManager::GetDefaultProfile().
-Profile* GetDefaultProfile() {
- FilePath user_data_dir;
- PathService::Get(chrome::DIR_USER_DATA, &user_data_dir);
- ProfileManager* profile_manager = g_browser_process->profile_manager();
- return profile_manager->GetDefaultProfile(user_data_dir);
-}
-
// Records disposition information about the check. |hit| should be
// |true| if there were any prefix hits in |full_hashes|.
void RecordGetHashCheckStatus(
@@ -172,10 +164,11 @@
}
void SafeBrowsingService::Initialize() {
- // Get the profile's preference for SafeBrowsing.
- PrefService* pref_service = GetDefaultProfile()->GetPrefs();
- if (pref_service->GetBoolean(prefs::kSafeBrowsingEnabled))
- Start();
+ // Always initialize the safe browsing service. Each profile will decide
+ // whether to use it based on per-user preferences. TODO(mirandac): in
+ // follow-up CL, only initialize if a profile is launched for which safe
+ // browsing is enabled. see http://crbug.com/88661
+ Start();
}
void SafeBrowsingService::ShutDown() {
@@ -190,13 +183,11 @@
url.SchemeIs(chrome::kHttpsScheme);
}
-// Only report SafeBrowsing related stats when UMA is enabled and
-// safe browsing is enabled.
+// Only report SafeBrowsing related stats when UMA is enabled. User must also
+// ensure that safe browsing is enabled from the calling profile.
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.
@@ -861,9 +852,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_ =
@@ -988,13 +979,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(
@@ -1004,10 +995,11 @@
return;
}
- if (resource.threat_type != SafeBrowsingService::SAFE && CanReportStats()) {
- GURL page_url = wc->GetURL();
+ if (resource.threat_type != SafeBrowsingService::SAFE &&
+ CanReportStats()) {
+ 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();

Powered by Google App Engine
This is Rietveld 408576698