| 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;
|
|
|