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

Unified Diff: chrome/browser/net/chrome_url_request_context.cc

Issue 501082: Implement delaying resource requests until privacy blacklists are ready. (Closed)
Patch Set: don't get stuck on errors Created 10 years, 12 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
« no previous file with comments | « chrome/browser/net/chrome_url_request_context.h ('k') | chrome/browser/privacy_blacklist/blacklist.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/net/chrome_url_request_context.cc
diff --git a/chrome/browser/net/chrome_url_request_context.cc b/chrome/browser/net/chrome_url_request_context.cc
index 906b9dc3b620d5da4b55267ac7c9f9e06f5ab496..6dedd4cf528ecb19a636eb62cc2300c53d50d83d 100644
--- a/chrome/browser/net/chrome_url_request_context.cc
+++ b/chrome/browser/net/chrome_url_request_context.cc
@@ -7,13 +7,13 @@
#include "base/command_line.h"
#include "base/string_util.h"
#include "chrome/browser/browser_process.h"
-#include "chrome/browser/privacy_blacklist/blacklist.h"
#include "chrome/browser/chrome_thread.h"
#include "chrome/browser/extensions/extensions_service.h"
#include "chrome/browser/extensions/user_script_master.h"
#include "chrome/browser/net/sqlite_persistent_cookie_store.h"
#include "chrome/browser/net/dns_global.h"
#include "chrome/browser/privacy_blacklist/blacklist_manager.h"
+#include "chrome/browser/privacy_blacklist/blacklist_request_info.h"
#include "chrome/browser/profile.h"
#include "chrome/common/chrome_constants.h"
#include "chrome/common/chrome_switches.h"
@@ -676,49 +676,66 @@ const std::string& ChromeURLRequestContext::GetUserAgent(
bool ChromeURLRequestContext::InterceptCookie(const URLRequest* request,
std::string* cookie) {
- const URLRequest::UserData* d =
- request->GetUserData(&Blacklist::kRequestDataKey);
- if (d) {
- const Blacklist::Match* match = static_cast<const Blacklist::Match*>(d);
- if (match->attributes() & Blacklist::kDontStoreCookies) {
- NotificationService::current()->Notify(
- NotificationType::BLACKLIST_NONVISUAL_RESOURCE_BLOCKED,
- Source<const ChromeURLRequestContext>(this),
- Details<const URLRequest>(request));
-
- cookie->clear();
- return false;
- }
- if (match->attributes() & Blacklist::kDontPersistCookies) {
- *cookie = Blacklist::StripCookieExpiry(*cookie);
- }
+ BlacklistRequestInfo* request_info =
+ BlacklistRequestInfo::FromURLRequest(request);
+ // Requests which don't go through ResourceDispatcherHost don't have privacy
+ // blacklist request data.
+ if (!request_info)
+ return true;
+ const BlacklistManager* blacklist_manager =
+ request_info->GetBlacklistManager();
+ // TODO(phajdan.jr): remove the NULL check when blacklists are stable.
+ if (!blacklist_manager)
+ return NULL;
+ const Blacklist* blacklist = blacklist_manager->GetCompiledBlacklist();
+ scoped_ptr<Blacklist::Match> match(blacklist->findMatch(request->url()));
+ if (!match.get())
+ return true;
+ if (match->attributes() & Blacklist::kDontStoreCookies) {
+ NotificationService::current()->Notify(
+ NotificationType::BLACKLIST_NONVISUAL_RESOURCE_BLOCKED,
+ Source<const ChromeURLRequestContext>(this),
+ Details<const URLRequest>(request));
+
+ cookie->clear();
+ return false;
+ }
+ if (match->attributes() & Blacklist::kDontPersistCookies) {
+ *cookie = Blacklist::StripCookieExpiry(*cookie);
}
return true;
}
bool ChromeURLRequestContext::AllowSendingCookies(const URLRequest* request)
const {
- const URLRequest::UserData* d =
- request->GetUserData(&Blacklist::kRequestDataKey);
- if (d) {
- const Blacklist::Match* match = static_cast<const Blacklist::Match*>(d);
- if (match->attributes() & Blacklist::kDontSendCookies) {
- NotificationService::current()->Notify(
- NotificationType::BLACKLIST_NONVISUAL_RESOURCE_BLOCKED,
- Source<const ChromeURLRequestContext>(this),
- Details<const URLRequest>(request));
-
- return false;
- }
+ BlacklistRequestInfo* request_info =
+ BlacklistRequestInfo::FromURLRequest(request);
+ // Requests which don't go through ResourceDispatcherHost don't have privacy
+ // blacklist request data.
+ if (!request_info)
+ return true;
+ const BlacklistManager* blacklist_manager =
+ request_info->GetBlacklistManager();
+ // TODO(phajdan.jr): remove the NULL check when blacklists are stable.
+ if (!blacklist_manager)
+ return NULL;
+ const Blacklist* blacklist = blacklist_manager->GetCompiledBlacklist();
+ scoped_ptr<Blacklist::Match> match(blacklist->findMatch(request->url()));
+ if (!match.get())
+ return true;
+ if (match->attributes() & Blacklist::kDontSendCookies) {
+ NotificationService::current()->Notify(
+ NotificationType::BLACKLIST_NONVISUAL_RESOURCE_BLOCKED,
+ Source<const ChromeURLRequestContext>(this),
+ Details<const URLRequest>(request));
+
+ return false;
}
return true;
}
-const Blacklist* ChromeURLRequestContext::GetBlacklist() const {
- // TODO(phajdan.jr): Remove the check when Privacy Blacklists become stable.
- if (!blacklist_manager_)
- return NULL;
- return blacklist_manager_->GetCompiledBlacklist();
+BlacklistManager* ChromeURLRequestContext::GetBlacklistManager() const {
+ return blacklist_manager_.get();
}
void ChromeURLRequestContext::OnNewExtensions(
« no previous file with comments | « chrome/browser/net/chrome_url_request_context.h ('k') | chrome/browser/privacy_blacklist/blacklist.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698