OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 #include "ppapi/proxy/ppb_url_loader_proxy.h" | 5 #include "ppapi/proxy/ppb_url_loader_proxy.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <deque> | 8 #include <deque> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 499 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
510 // This heap object will get deleted by the callback handler. | 510 // This heap object will get deleted by the callback handler. |
511 // TODO(brettw) this will be leaked if the plugin closes the resource! | 511 // TODO(brettw) this will be leaked if the plugin closes the resource! |
512 // (Also including the plugin unloading and having the resource implicitly | 512 // (Also including the plugin unloading and having the resource implicitly |
513 // destroyed. Depending on the cleanup ordering, we may not need the weak | 513 // destroyed. Depending on the cleanup ordering, we may not need the weak |
514 // pointer here.) | 514 // pointer here.) |
515 ReadCallbackInfo* info = new ReadCallbackInfo; | 515 ReadCallbackInfo* info = new ReadCallbackInfo; |
516 info->resource = loader; | 516 info->resource = loader; |
517 // TODO(brettw) have a way to check for out-of-memory. | 517 // TODO(brettw) have a way to check for out-of-memory. |
518 info->read_buffer.resize(bytes_to_read); | 518 info->read_buffer.resize(bytes_to_read); |
519 | 519 |
520 CompletionCallback callback = callback_factory_.NewCallback( | 520 CompletionCallback callback = callback_factory_.NewOptionalCallback( |
521 &PPB_URLLoader_Proxy::OnReadCallback, info); | 521 &PPB_URLLoader_Proxy::OnReadCallback, info); |
522 | 522 |
523 EnterHostFromHostResource<PPB_URLLoader_API> enter(loader); | 523 EnterHostFromHostResource<PPB_URLLoader_API> enter(loader); |
524 int32_t result = PP_ERROR_BADRESOURCE; | 524 int32_t result = PP_ERROR_BADRESOURCE; |
525 if (enter.succeeded()) { | 525 if (enter.succeeded()) { |
526 result = enter.object()->ReadResponseBody( | 526 result = enter.object()->ReadResponseBody( |
527 const_cast<char*>(info->read_buffer.c_str()), | 527 const_cast<char*>(info->read_buffer.c_str()), |
528 bytes_to_read, callback.pp_completion_callback()); | 528 bytes_to_read, callback.pp_completion_callback()); |
529 } | 529 } |
530 if (result != PP_OK_COMPLETIONPENDING) { | 530 if (result != PP_OK_COMPLETIONPENDING) { |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
586 info->read_buffer.resize(bytes_read); | 586 info->read_buffer.resize(bytes_read); |
587 | 587 |
588 dispatcher()->Send(new PpapiMsg_PPBURLLoader_ReadResponseBody_Ack( | 588 dispatcher()->Send(new PpapiMsg_PPBURLLoader_ReadResponseBody_Ack( |
589 INTERFACE_ID_PPB_URL_LOADER, info->resource, result, info->read_buffer)); | 589 INTERFACE_ID_PPB_URL_LOADER, info->resource, result, info->read_buffer)); |
590 | 590 |
591 delete info; | 591 delete info; |
592 } | 592 } |
593 | 593 |
594 } // namespace proxy | 594 } // namespace proxy |
595 } // namespace pp | 595 } // namespace pp |
OLD | NEW |