OLD | NEW |
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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 "chrome/common/resource_dispatcher.h" | 7 #include "chrome/common/resource_dispatcher.h" |
8 | 8 |
9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
10 #include "base/compiler_specific.h" | 10 #include "base/compiler_specific.h" |
(...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
268 return true; | 268 return true; |
269 } | 269 } |
270 // Make sure any deferred messages are dispatched before we dispatch more. | 270 // Make sure any deferred messages are dispatched before we dispatch more. |
271 if (!request_info.deferred_message_queue.empty()) | 271 if (!request_info.deferred_message_queue.empty()) |
272 FlushDeferredMessages(request_id); | 272 FlushDeferredMessages(request_id); |
273 | 273 |
274 DispatchMessage(message); | 274 DispatchMessage(message); |
275 return true; | 275 return true; |
276 } | 276 } |
277 | 277 |
| 278 void ResourceDispatcher::OnDownloadProgress( |
| 279 int request_id, int64 position, int64 size) { |
| 280 // TODO(hclam): delegate this message to |
| 281 // ResourceLoaderBridge::Peer::OnDownloadProgress and send an ACK message |
| 282 // back to ResourceDispatcherHost. |
| 283 } |
| 284 |
278 void ResourceDispatcher::OnUploadProgress( | 285 void ResourceDispatcher::OnUploadProgress( |
279 const IPC::Message& message, int request_id, int64 position, int64 size) { | 286 const IPC::Message& message, int request_id, int64 position, int64 size) { |
280 PendingRequestList::iterator it = pending_requests_.find(request_id); | 287 PendingRequestList::iterator it = pending_requests_.find(request_id); |
281 if (it == pending_requests_.end()) { | 288 if (it == pending_requests_.end()) { |
282 // this might happen for kill()ed requests on the webkit end, so perhaps | 289 // this might happen for kill()ed requests on the webkit end, so perhaps |
283 // it shouldn't be a warning... | 290 // it shouldn't be a warning... |
284 DLOG(WARNING) << "Got upload progress for a nonexistant or " | 291 DLOG(WARNING) << "Got upload progress for a nonexistant or " |
285 "finished request"; | 292 "finished request"; |
286 return; | 293 return; |
287 } | 294 } |
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
446 request_info.is_deferred = false; | 453 request_info.is_deferred = false; |
447 MessageLoop::current()->PostTask(FROM_HERE, | 454 MessageLoop::current()->PostTask(FROM_HERE, |
448 method_factory_.NewRunnableMethod( | 455 method_factory_.NewRunnableMethod( |
449 &ResourceDispatcher::FlushDeferredMessages, request_id)); | 456 &ResourceDispatcher::FlushDeferredMessages, request_id)); |
450 } | 457 } |
451 } | 458 } |
452 | 459 |
453 void ResourceDispatcher::DispatchMessage(const IPC::Message& message) { | 460 void ResourceDispatcher::DispatchMessage(const IPC::Message& message) { |
454 IPC_BEGIN_MESSAGE_MAP(ResourceDispatcher, message) | 461 IPC_BEGIN_MESSAGE_MAP(ResourceDispatcher, message) |
455 IPC_MESSAGE_HANDLER(ViewMsg_Resource_UploadProgress, OnUploadProgress) | 462 IPC_MESSAGE_HANDLER(ViewMsg_Resource_UploadProgress, OnUploadProgress) |
| 463 IPC_MESSAGE_HANDLER(ViewMsg_Resource_DownloadProgress, OnDownloadProgress) |
456 IPC_MESSAGE_HANDLER(ViewMsg_Resource_ReceivedResponse, OnReceivedResponse) | 464 IPC_MESSAGE_HANDLER(ViewMsg_Resource_ReceivedResponse, OnReceivedResponse) |
457 IPC_MESSAGE_HANDLER(ViewMsg_Resource_ReceivedRedirect, OnReceivedRedirect) | 465 IPC_MESSAGE_HANDLER(ViewMsg_Resource_ReceivedRedirect, OnReceivedRedirect) |
458 IPC_MESSAGE_HANDLER(ViewMsg_Resource_DataReceived, OnReceivedData) | 466 IPC_MESSAGE_HANDLER(ViewMsg_Resource_DataReceived, OnReceivedData) |
459 IPC_MESSAGE_HANDLER(ViewMsg_Resource_RequestComplete, OnRequestComplete) | 467 IPC_MESSAGE_HANDLER(ViewMsg_Resource_RequestComplete, OnRequestComplete) |
460 IPC_END_MESSAGE_MAP() | 468 IPC_END_MESSAGE_MAP() |
461 } | 469 } |
462 | 470 |
463 void ResourceDispatcher::FlushDeferredMessages(int request_id) { | 471 void ResourceDispatcher::FlushDeferredMessages(int request_id) { |
464 PendingRequestList::iterator it = pending_requests_.find(request_id); | 472 PendingRequestList::iterator it = pending_requests_.find(request_id); |
465 if (it == pending_requests_.end()) // The request could have become invalid. | 473 if (it == pending_requests_.end()) // The request could have become invalid. |
(...skipping 29 matching lines...) Expand all Loading... |
495 referrer, headers, flags, | 503 referrer, headers, flags, |
496 origin_pid, resource_type, | 504 origin_pid, resource_type, |
497 mixed_content, | 505 mixed_content, |
498 request_context, | 506 request_context, |
499 route_id); | 507 route_id); |
500 } | 508 } |
501 | 509 |
502 | 510 |
503 bool ResourceDispatcher::IsResourceMessage(const IPC::Message& message) const { | 511 bool ResourceDispatcher::IsResourceMessage(const IPC::Message& message) const { |
504 switch (message.type()) { | 512 switch (message.type()) { |
| 513 case ViewMsg_Resource_DownloadProgress::ID: |
505 case ViewMsg_Resource_UploadProgress::ID: | 514 case ViewMsg_Resource_UploadProgress::ID: |
506 case ViewMsg_Resource_ReceivedResponse::ID: | 515 case ViewMsg_Resource_ReceivedResponse::ID: |
507 case ViewMsg_Resource_ReceivedRedirect::ID: | 516 case ViewMsg_Resource_ReceivedRedirect::ID: |
508 case ViewMsg_Resource_DataReceived::ID: | 517 case ViewMsg_Resource_DataReceived::ID: |
509 case ViewMsg_Resource_RequestComplete::ID: | 518 case ViewMsg_Resource_RequestComplete::ID: |
510 return true; | 519 return true; |
511 | 520 |
512 default: | 521 default: |
513 break; | 522 break; |
514 } | 523 } |
515 | 524 |
516 return false; | 525 return false; |
517 } | 526 } |
OLD | NEW |