| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // See http://dev.chromium.org/developers/design-documents/multi-process-resourc
e-loading | 5 // See http://dev.chromium.org/developers/design-documents/multi-process-resourc
e-loading |
| 6 | 6 |
| 7 #include "content/browser/loader/resource_dispatcher_host_impl.h" | 7 #include "content/browser/loader/resource_dispatcher_host_impl.h" |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <set> | 10 #include <set> |
| (...skipping 971 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 982 IPC_END_MESSAGE_MAP() | 982 IPC_END_MESSAGE_MAP() |
| 983 | 983 |
| 984 if (!handled && IPC_MESSAGE_ID_CLASS(message.type()) == ResourceMsgStart) { | 984 if (!handled && IPC_MESSAGE_ID_CLASS(message.type()) == ResourceMsgStart) { |
| 985 PickleIterator iter(message); | 985 PickleIterator iter(message); |
| 986 int request_id = -1; | 986 int request_id = -1; |
| 987 bool ok = iter.ReadInt(&request_id); | 987 bool ok = iter.ReadInt(&request_id); |
| 988 DCHECK(ok); | 988 DCHECK(ok); |
| 989 GlobalRequestID id(filter_->child_id(), request_id); | 989 GlobalRequestID id(filter_->child_id(), request_id); |
| 990 DelegateMap::iterator it = delegate_map_.find(id); | 990 DelegateMap::iterator it = delegate_map_.find(id); |
| 991 if (it != delegate_map_.end()) { | 991 if (it != delegate_map_.end()) { |
| 992 ObserverList<ResourceMessageDelegate>::Iterator del_it(it->second); | 992 base::ObserverList<ResourceMessageDelegate>::Iterator del_it(it->second); |
| 993 ResourceMessageDelegate* delegate; | 993 ResourceMessageDelegate* delegate; |
| 994 while (!handled && (delegate = del_it.GetNext()) != NULL) { | 994 while (!handled && (delegate = del_it.GetNext()) != NULL) { |
| 995 handled = delegate->OnMessageReceived(message); | 995 handled = delegate->OnMessageReceived(message); |
| 996 } | 996 } |
| 997 } | 997 } |
| 998 | 998 |
| 999 // As the unhandled resource message effectively has no consumer, mark it as | 999 // As the unhandled resource message effectively has no consumer, mark it as |
| 1000 // handled to prevent needless propagation through the filter pipeline. | 1000 // handled to prevent needless propagation through the filter pipeline. |
| 1001 handled = true; | 1001 handled = true; |
| 1002 } | 1002 } |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1089 blocked_loaders_map_.end()) { | 1089 blocked_loaders_map_.end()) { |
| 1090 blocked_loaders_map_[new_routing_id] = | 1090 blocked_loaders_map_[new_routing_id] = |
| 1091 blocked_loaders_map_[old_routing_id]; | 1091 blocked_loaders_map_[old_routing_id]; |
| 1092 blocked_loaders_map_.erase(old_routing_id); | 1092 blocked_loaders_map_.erase(old_routing_id); |
| 1093 } | 1093 } |
| 1094 } | 1094 } |
| 1095 if (old_request_id != new_request_id) { | 1095 if (old_request_id != new_request_id) { |
| 1096 DelegateMap::iterator it = delegate_map_.find(old_request_id); | 1096 DelegateMap::iterator it = delegate_map_.find(old_request_id); |
| 1097 if (it != delegate_map_.end()) { | 1097 if (it != delegate_map_.end()) { |
| 1098 // Tell each delegate that the request ID has changed. | 1098 // Tell each delegate that the request ID has changed. |
| 1099 ObserverList<ResourceMessageDelegate>::Iterator del_it(it->second); | 1099 base::ObserverList<ResourceMessageDelegate>::Iterator del_it(it->second); |
| 1100 ResourceMessageDelegate* delegate; | 1100 ResourceMessageDelegate* delegate; |
| 1101 while ((delegate = del_it.GetNext()) != NULL) { | 1101 while ((delegate = del_it.GetNext()) != NULL) { |
| 1102 delegate->set_request_id(new_request_id); | 1102 delegate->set_request_id(new_request_id); |
| 1103 } | 1103 } |
| 1104 // Now store the observer list under the new request ID. | 1104 // Now store the observer list under the new request ID. |
| 1105 delegate_map_[new_request_id] = delegate_map_[old_request_id]; | 1105 delegate_map_[new_request_id] = delegate_map_[old_request_id]; |
| 1106 delegate_map_.erase(old_request_id); | 1106 delegate_map_.erase(old_request_id); |
| 1107 } | 1107 } |
| 1108 } | 1108 } |
| 1109 | 1109 |
| (...skipping 1193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2303 ResourceLoader* ResourceDispatcherHostImpl::GetLoader(int child_id, | 2303 ResourceLoader* ResourceDispatcherHostImpl::GetLoader(int child_id, |
| 2304 int request_id) const { | 2304 int request_id) const { |
| 2305 return GetLoader(GlobalRequestID(child_id, request_id)); | 2305 return GetLoader(GlobalRequestID(child_id, request_id)); |
| 2306 } | 2306 } |
| 2307 | 2307 |
| 2308 void ResourceDispatcherHostImpl::RegisterResourceMessageDelegate( | 2308 void ResourceDispatcherHostImpl::RegisterResourceMessageDelegate( |
| 2309 const GlobalRequestID& id, ResourceMessageDelegate* delegate) { | 2309 const GlobalRequestID& id, ResourceMessageDelegate* delegate) { |
| 2310 DelegateMap::iterator it = delegate_map_.find(id); | 2310 DelegateMap::iterator it = delegate_map_.find(id); |
| 2311 if (it == delegate_map_.end()) { | 2311 if (it == delegate_map_.end()) { |
| 2312 it = delegate_map_.insert( | 2312 it = delegate_map_.insert( |
| 2313 std::make_pair(id, new ObserverList<ResourceMessageDelegate>)).first; | 2313 std::make_pair( |
| 2314 id, |
| 2315 new base::ObserverList<ResourceMessageDelegate>)) |
| 2316 .first; |
| 2314 } | 2317 } |
| 2315 it->second->AddObserver(delegate); | 2318 it->second->AddObserver(delegate); |
| 2316 } | 2319 } |
| 2317 | 2320 |
| 2318 void ResourceDispatcherHostImpl::UnregisterResourceMessageDelegate( | 2321 void ResourceDispatcherHostImpl::UnregisterResourceMessageDelegate( |
| 2319 const GlobalRequestID& id, ResourceMessageDelegate* delegate) { | 2322 const GlobalRequestID& id, ResourceMessageDelegate* delegate) { |
| 2320 DCHECK(ContainsKey(delegate_map_, id)); | 2323 DCHECK(ContainsKey(delegate_map_, id)); |
| 2321 DelegateMap::iterator it = delegate_map_.find(id); | 2324 DelegateMap::iterator it = delegate_map_.find(id); |
| 2322 DCHECK(it->second->HasObserver(delegate)); | 2325 DCHECK(it->second->HasObserver(delegate)); |
| 2323 it->second->RemoveObserver(delegate); | 2326 it->second->RemoveObserver(delegate); |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2365 | 2368 |
| 2366 // Add a flag to selectively bypass the data reduction proxy if the resource | 2369 // Add a flag to selectively bypass the data reduction proxy if the resource |
| 2367 // type is not an image. | 2370 // type is not an image. |
| 2368 if (request_data.resource_type != RESOURCE_TYPE_IMAGE) | 2371 if (request_data.resource_type != RESOURCE_TYPE_IMAGE) |
| 2369 load_flags |= net::LOAD_BYPASS_DATA_REDUCTION_PROXY; | 2372 load_flags |= net::LOAD_BYPASS_DATA_REDUCTION_PROXY; |
| 2370 | 2373 |
| 2371 return load_flags; | 2374 return load_flags; |
| 2372 } | 2375 } |
| 2373 | 2376 |
| 2374 } // namespace content | 2377 } // namespace content |
| OLD | NEW |