Index: chrome/browser/extensions/extension_webrequest_api.cc |
=================================================================== |
--- chrome/browser/extensions/extension_webrequest_api.cc (revision 92309) |
+++ chrome/browser/extensions/extension_webrequest_api.cc (working copy) |
@@ -336,13 +336,13 @@ |
} |
int ExtensionWebRequestEventRouter::OnBeforeRequest( |
- ProfileId profile_id, |
+ void* profile, |
ExtensionInfoMap* extension_info_map, |
net::URLRequest* request, |
net::CompletionCallback* callback, |
GURL* new_url) { |
// TODO(jochen): Figure out what to do with events from the system context. |
- if (profile_id == Profile::kInvalidProfileId) |
+ if (!profile) |
return net::OK; |
if (!HasWebRequestScheme(request->url())) |
@@ -365,9 +365,9 @@ |
int extra_info_spec = 0; |
std::vector<const EventListener*> listeners = |
- GetMatchingListeners(profile_id, extension_info_map, |
- keys::kOnBeforeRequest, request->url(), |
- tab_id, window_id, resource_type, &extra_info_spec); |
+ GetMatchingListeners(profile, extension_info_map, keys::kOnBeforeRequest, |
+ request->url(), tab_id, window_id, resource_type, |
+ &extra_info_spec); |
if (listeners.empty()) |
return net::OK; |
@@ -385,7 +385,7 @@ |
dict->SetDouble(keys::kTimeStampKey, base::Time::Now().ToDoubleT() * 1000); |
args.Append(dict); |
- if (DispatchEvent(profile_id, request, listeners, args)) { |
+ if (DispatchEvent(profile, request, listeners, args)) { |
blocked_requests_[request->identifier()].event = kOnBeforeRequest; |
blocked_requests_[request->identifier()].callback = callback; |
blocked_requests_[request->identifier()].new_url = new_url; |
@@ -395,13 +395,13 @@ |
} |
int ExtensionWebRequestEventRouter::OnBeforeSendHeaders( |
- ProfileId profile_id, |
+ void* profile, |
ExtensionInfoMap* extension_info_map, |
net::URLRequest* request, |
net::CompletionCallback* callback, |
net::HttpRequestHeaders* headers) { |
// TODO(jochen): Figure out what to do with events from the system context. |
- if (profile_id == Profile::kInvalidProfileId) |
+ if (!profile) |
return net::OK; |
if (!HasWebRequestScheme(request->url())) |
@@ -412,7 +412,7 @@ |
int extra_info_spec = 0; |
std::vector<const EventListener*> listeners = |
- GetMatchingListeners(profile_id, extension_info_map, |
+ GetMatchingListeners(profile, extension_info_map, |
keys::kOnBeforeSendHeaders, request, |
&extra_info_spec); |
if (listeners.empty()) |
@@ -431,7 +431,7 @@ |
args.Append(dict); |
- if (DispatchEvent(profile_id, request, listeners, args)) { |
+ if (DispatchEvent(profile, request, listeners, args)) { |
blocked_requests_[request->identifier()].event = kOnBeforeSendHeaders; |
blocked_requests_[request->identifier()].callback = callback; |
blocked_requests_[request->identifier()].request_headers = headers; |
@@ -441,12 +441,12 @@ |
} |
void ExtensionWebRequestEventRouter::OnRequestSent( |
- ProfileId profile_id, |
+ void* profile, |
ExtensionInfoMap* extension_info_map, |
uint64 request_id, |
const net::HostPortPair& socket_address, |
const net::HttpRequestHeaders& headers) { |
- if (profile_id == Profile::kInvalidProfileId) |
+ if (!profile) |
return; |
base::Time time(base::Time::Now()); |
@@ -467,7 +467,7 @@ |
int extra_info_spec = 0; |
std::vector<const EventListener*> listeners = |
- GetMatchingListeners(profile_id, extension_info_map, |
+ GetMatchingListeners(profile, extension_info_map, |
keys::kOnRequestSent, request, &extra_info_spec); |
if (listeners.empty()) |
return; |
@@ -484,15 +484,15 @@ |
// TODO(battre): support "request line". |
args.Append(dict); |
- DispatchEvent(profile_id, request, listeners, args); |
+ DispatchEvent(profile, request, listeners, args); |
} |
void ExtensionWebRequestEventRouter::OnBeforeRedirect( |
- ProfileId profile_id, |
+ void* profile, |
ExtensionInfoMap* extension_info_map, |
net::URLRequest* request, |
const GURL& new_location) { |
- if (profile_id == Profile::kInvalidProfileId) |
+ if (!profile) |
return; |
if (!HasWebRequestScheme(request->url())) |
@@ -509,7 +509,7 @@ |
int extra_info_spec = 0; |
std::vector<const EventListener*> listeners = |
- GetMatchingListeners(profile_id, extension_info_map, |
+ GetMatchingListeners(profile, extension_info_map, |
keys::kOnBeforeRedirect, request, &extra_info_spec); |
if (listeners.empty()) |
return; |
@@ -532,14 +532,14 @@ |
dict->Set(keys::kStatusLineKey, GetStatusLine(request->response_headers())); |
args.Append(dict); |
- DispatchEvent(profile_id, request, listeners, args); |
+ DispatchEvent(profile, request, listeners, args); |
} |
void ExtensionWebRequestEventRouter::OnResponseStarted( |
- ProfileId profile_id, |
+ void* profile, |
ExtensionInfoMap* extension_info_map, |
net::URLRequest* request) { |
- if (profile_id == Profile::kInvalidProfileId) |
+ if (!profile) |
return; |
if (!HasWebRequestScheme(request->url())) |
@@ -553,7 +553,7 @@ |
int extra_info_spec = 0; |
std::vector<const EventListener*> listeners = |
- GetMatchingListeners(profile_id, extension_info_map, |
+ GetMatchingListeners(profile, extension_info_map, |
keys::kOnResponseStarted, request, &extra_info_spec); |
if (listeners.empty()) |
return; |
@@ -578,14 +578,14 @@ |
dict->Set(keys::kStatusLineKey, GetStatusLine(request->response_headers())); |
args.Append(dict); |
- DispatchEvent(profile_id, request, listeners, args); |
+ DispatchEvent(profile, request, listeners, args); |
} |
void ExtensionWebRequestEventRouter::OnCompleted( |
- ProfileId profile_id, |
+ void* profile, |
ExtensionInfoMap* extension_info_map, |
net::URLRequest* request) { |
- if (profile_id == Profile::kInvalidProfileId) |
+ if (!profile) |
return; |
if (!HasWebRequestScheme(request->url())) |
@@ -599,7 +599,7 @@ |
int extra_info_spec = 0; |
std::vector<const EventListener*> listeners = |
- GetMatchingListeners(profile_id, extension_info_map, |
+ GetMatchingListeners(profile, extension_info_map, |
keys::kOnCompleted, request, &extra_info_spec); |
if (listeners.empty()) |
return; |
@@ -624,14 +624,14 @@ |
dict->Set(keys::kStatusLineKey, GetStatusLine(request->response_headers())); |
args.Append(dict); |
- DispatchEvent(profile_id, request, listeners, args); |
+ DispatchEvent(profile, request, listeners, args); |
} |
void ExtensionWebRequestEventRouter::OnErrorOccurred( |
- ProfileId profile_id, |
+ void* profile, |
ExtensionInfoMap* extension_info_map, |
net::URLRequest* request) { |
- if (profile_id == Profile::kInvalidProfileId) |
+ if (!profile) |
return; |
if (!HasWebRequestScheme(request->url())) |
@@ -645,7 +645,7 @@ |
int extra_info_spec = 0; |
std::vector<const EventListener*> listeners = |
- GetMatchingListeners(profile_id, extension_info_map, |
+ GetMatchingListeners(profile, extension_info_map, |
keys::kOnErrorOccurred, request, &extra_info_spec); |
if (listeners.empty()) |
return; |
@@ -660,18 +660,18 @@ |
dict->SetDouble(keys::kTimeStampKey, time.ToDoubleT() * 1000); |
args.Append(dict); |
- DispatchEvent(profile_id, request, listeners, args); |
+ DispatchEvent(profile, request, listeners, args); |
} |
void ExtensionWebRequestEventRouter::OnURLRequestDestroyed( |
- ProfileId profile_id, net::URLRequest* request) { |
+ void* profile, net::URLRequest* request) { |
blocked_requests_.erase(request->identifier()); |
signaled_requests_.erase(request->identifier()); |
http_requests_.erase(request->identifier()); |
} |
void ExtensionWebRequestEventRouter::OnHttpTransactionDestroyed( |
- ProfileId profile_id, uint64 request_id) { |
+ void* profile, uint64 request_id) { |
if (blocked_requests_.find(request_id) != blocked_requests_.end() && |
blocked_requests_[request_id].event == kOnBeforeSendHeaders) { |
// Ensure we don't call into the deleted HttpTransaction. |
@@ -681,7 +681,7 @@ |
} |
bool ExtensionWebRequestEventRouter::DispatchEvent( |
- ProfileId profile_id, |
+ void* profile, |
net::URLRequest* request, |
const std::vector<const EventListener*>& listeners, |
const ListValue& args) { |
@@ -728,7 +728,7 @@ |
} |
void ExtensionWebRequestEventRouter::OnEventHandled( |
- ProfileId profile_id, |
+ void* profile, |
const std::string& extension_id, |
const std::string& event_name, |
const std::string& sub_event_name, |
@@ -741,15 +741,15 @@ |
// The listener may have been removed (e.g. due to the process going away) |
// before we got here. |
std::set<EventListener>::iterator found = |
- listeners_[profile_id][event_name].find(listener); |
- if (found != listeners_[profile_id][event_name].end()) |
+ listeners_[profile][event_name].find(listener); |
+ if (found != listeners_[profile][event_name].end()) |
found->blocked_requests.erase(request_id); |
DecrementBlockCount(request_id, response); |
} |
void ExtensionWebRequestEventRouter::AddEventListener( |
- ProfileId profile_id, |
+ void* profile, |
const std::string& extension_id, |
const std::string& event_name, |
const std::string& sub_event_name, |
@@ -766,13 +766,13 @@ |
listener.extra_info_spec = extra_info_spec; |
listener.ipc_sender = ipc_sender; |
- CHECK_EQ(listeners_[profile_id][event_name].count(listener), 0u) << |
+ CHECK_EQ(listeners_[profile][event_name].count(listener), 0u) << |
"extension=" << extension_id << " event=" << event_name; |
- listeners_[profile_id][event_name].insert(listener); |
+ listeners_[profile][event_name].insert(listener); |
} |
void ExtensionWebRequestEventRouter::RemoveEventListener( |
- ProfileId profile_id, |
+ void* profile, |
const std::string& extension_id, |
const std::string& sub_event_name) { |
size_t slash_sep = sub_event_name.find('/'); |
@@ -789,11 +789,11 @@ |
// the renderer believes the listener exists, while the browser does not. |
// Ignore a RemoveEventListener in that case. |
std::set<EventListener>::iterator found = |
- listeners_[profile_id][event_name].find(listener); |
- if (found == listeners_[profile_id][event_name].end()) |
+ listeners_[profile][event_name].find(listener); |
+ if (found == listeners_[profile][event_name].end()) |
return; |
- CHECK_EQ(listeners_[profile_id][event_name].count(listener), 1u) << |
+ CHECK_EQ(listeners_[profile][event_name].count(listener), 1u) << |
"extension=" << extension_id << " event=" << event_name; |
// Unblock any request that this event listener may have been blocking. |
@@ -802,23 +802,23 @@ |
DecrementBlockCount(*it, NULL); |
} |
- listeners_[profile_id][event_name].erase(listener); |
+ listeners_[profile][event_name].erase(listener); |
} |
void ExtensionWebRequestEventRouter::OnOTRProfileCreated( |
- ProfileId original_profile_id, ProfileId otr_profile_id) { |
- cross_profile_map_[original_profile_id] = otr_profile_id; |
- cross_profile_map_[otr_profile_id] = original_profile_id; |
+ void* original_profile, void* otr_profile) { |
+ cross_profile_map_[original_profile] = otr_profile; |
+ cross_profile_map_[otr_profile] = original_profile; |
} |
void ExtensionWebRequestEventRouter::OnOTRProfileDestroyed( |
- ProfileId original_profile_id, ProfileId otr_profile_id) { |
- cross_profile_map_.erase(otr_profile_id); |
- cross_profile_map_.erase(original_profile_id); |
+ void* original_profile, void* otr_profile) { |
+ cross_profile_map_.erase(otr_profile); |
+ cross_profile_map_.erase(original_profile); |
} |
void ExtensionWebRequestEventRouter::GetMatchingListenersImpl( |
- ProfileId profile_id, |
+ void* profile, |
ExtensionInfoMap* extension_info_map, |
bool crosses_incognito, |
const std::string& event_name, |
@@ -829,7 +829,7 @@ |
int* extra_info_spec, |
std::vector<const ExtensionWebRequestEventRouter::EventListener*>* |
matching_listeners) { |
- std::set<EventListener>& listeners = listeners_[profile_id][event_name]; |
+ std::set<EventListener>& listeners = listeners_[profile][event_name]; |
for (std::set<EventListener>::iterator it = listeners.begin(); |
it != listeners.end(); ++it) { |
if (!it->ipc_sender.get()) { |
@@ -867,7 +867,7 @@ |
std::vector<const ExtensionWebRequestEventRouter::EventListener*> |
ExtensionWebRequestEventRouter::GetMatchingListeners( |
- ProfileId profile_id, |
+ void* profile, |
ExtensionInfoMap* extension_info_map, |
const std::string& event_name, |
const GURL& url, |
@@ -875,21 +875,20 @@ |
int window_id, |
ResourceType::Type resource_type, |
int* extra_info_spec) { |
- // TODO(mpcomplete): handle profile_id == invalid (should collect all |
- // listeners). |
+ // TODO(mpcomplete): handle profile == NULL (should collect all listeners). |
*extra_info_spec = 0; |
std::vector<const ExtensionWebRequestEventRouter::EventListener*> |
matching_listeners; |
GetMatchingListenersImpl( |
- profile_id, extension_info_map, false, event_name, url, |
+ profile, extension_info_map, false, event_name, url, |
tab_id, window_id, resource_type, extra_info_spec, &matching_listeners); |
- CrossProfileMap::const_iterator cross_profile_id = |
- cross_profile_map_.find(profile_id); |
- if (cross_profile_id != cross_profile_map_.end()) { |
+ CrossProfileMap::const_iterator cross_profile = |
+ cross_profile_map_.find(profile); |
+ if (cross_profile != cross_profile_map_.end()) { |
GetMatchingListenersImpl( |
- cross_profile_id->second, extension_info_map, true, event_name, url, |
+ cross_profile->second, extension_info_map, true, event_name, url, |
tab_id, window_id, resource_type, extra_info_spec, &matching_listeners); |
} |
@@ -898,7 +897,7 @@ |
std::vector<const ExtensionWebRequestEventRouter::EventListener*> |
ExtensionWebRequestEventRouter::GetMatchingListeners( |
- ProfileId profile_id, |
+ void* profile, |
ExtensionInfoMap* extension_info_map, |
const std::string& event_name, |
net::URLRequest* request, |
@@ -909,7 +908,7 @@ |
ExtractRequestInfo(request, &tab_id, &window_id, &resource_type); |
return GetMatchingListeners( |
- profile_id, extension_info_map, event_name, request->url(), |
+ profile, extension_info_map, event_name, request->url(), |
tab_id, window_id, resource_type, extra_info_spec); |
} |
@@ -1035,7 +1034,7 @@ |
EXTENSION_FUNCTION_VALIDATE(args_->GetString(4, &sub_event_name)); |
ExtensionWebRequestEventRouter::GetInstance()->AddEventListener( |
- profile_id(), extension_id(), event_name, sub_event_name, filter, |
+ profile(), extension_id(), event_name, sub_event_name, filter, |
extra_info_spec, ipc_sender_weak()); |
return true; |
@@ -1112,7 +1111,7 @@ |
} |
ExtensionWebRequestEventRouter::GetInstance()->OnEventHandled( |
- profile_id(), extension_id(), event_name, sub_event_name, request_id, |
+ profile(), extension_id(), event_name, sub_event_name, request_id, |
response.release()); |
return true; |