summaryrefslogtreecommitdiffstats
path: root/chrome/browser/net/chrome_url_request_context.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/net/chrome_url_request_context.cc')
-rw-r--r--chrome/browser/net/chrome_url_request_context.cc85
1 files changed, 51 insertions, 34 deletions
diff --git a/chrome/browser/net/chrome_url_request_context.cc b/chrome/browser/net/chrome_url_request_context.cc
index 906b9dc..6dedd4c 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(