Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1017)

Side by Side Diff: ppapi/proxy/ppb_url_loader_proxy.cc

Issue 7844018: Revert 100748 - This patch tries to remove most of the manual registration for Pepper interfaces,... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « ppapi/proxy/ppb_url_loader_proxy.h ('k') | ppapi/proxy/ppb_url_request_info_proxy.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 params.instance = pp_instance; 63 params.instance = pp_instance;
64 params.resource.SetHostResource(pp_instance, pp_resource); 64 params.resource.SetHostResource(pp_instance, pp_resource);
65 params.bytes_sent = bytes_sent; 65 params.bytes_sent = bytes_sent;
66 params.total_bytes_to_be_sent = total_bytes_to_be_sent; 66 params.total_bytes_to_be_sent = total_bytes_to_be_sent;
67 params.bytes_received = bytes_received; 67 params.bytes_received = bytes_received;
68 params.total_bytes_to_be_received = total_bytes_to_be_received; 68 params.total_bytes_to_be_received = total_bytes_to_be_received;
69 dispatcher->Send(new PpapiMsg_PPBURLLoader_UpdateProgress( 69 dispatcher->Send(new PpapiMsg_PPBURLLoader_UpdateProgress(
70 INTERFACE_ID_PPB_URL_LOADER, params)); 70 INTERFACE_ID_PPB_URL_LOADER, params));
71 } 71 }
72 72
73 InterfaceProxy* CreateURLLoaderProxy(Dispatcher* dispatcher) { 73 InterfaceProxy* CreateURLLoaderProxy(Dispatcher* dispatcher,
74 return new PPB_URLLoader_Proxy(dispatcher); 74 const void* target_interface) {
75 return new PPB_URLLoader_Proxy(dispatcher, target_interface);
75 } 76 }
76 77
77 } // namespace 78 } // namespace
78 79
79 // URLLoader ------------------------------------------------------------------- 80 // URLLoader -------------------------------------------------------------------
80 81
81 class URLLoader : public Resource, public PPB_URLLoader_API { 82 class URLLoader : public Resource, public PPB_URLLoader_API {
82 public: 83 public:
83 URLLoader(const HostResource& resource); 84 URLLoader(const HostResource& resource);
84 virtual ~URLLoader(); 85 virtual ~URLLoader();
(...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after
338 buffer_.begin() + output_size); 339 buffer_.begin() + output_size);
339 } 340 }
340 341
341 // PPB_URLLoader_Proxy --------------------------------------------------------- 342 // PPB_URLLoader_Proxy ---------------------------------------------------------
342 343
343 struct PPB_URLLoader_Proxy::ReadCallbackInfo { 344 struct PPB_URLLoader_Proxy::ReadCallbackInfo {
344 HostResource resource; 345 HostResource resource;
345 std::string read_buffer; 346 std::string read_buffer;
346 }; 347 };
347 348
348 PPB_URLLoader_Proxy::PPB_URLLoader_Proxy(Dispatcher* dispatcher) 349 PPB_URLLoader_Proxy::PPB_URLLoader_Proxy(Dispatcher* dispatcher,
349 : InterfaceProxy(dispatcher), 350 const void* target_interface)
351 : InterfaceProxy(dispatcher, target_interface),
350 callback_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)), 352 callback_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)),
351 host_urlloader_trusted_interface_(NULL) { 353 host_urlloader_trusted_interface_(NULL) {
352 } 354 }
353 355
354 PPB_URLLoader_Proxy::~PPB_URLLoader_Proxy() { 356 PPB_URLLoader_Proxy::~PPB_URLLoader_Proxy() {
355 } 357 }
356 358
357 // static 359 // static
358 PP_Resource PPB_URLLoader_Proxy::TrackPluginResource( 360 PP_Resource PPB_URLLoader_Proxy::TrackPluginResource(
359 const HostResource& url_loader_resource) { 361 const HostResource& url_loader_resource) {
360 return (new URLLoader(url_loader_resource))->GetReference(); 362 return (new URLLoader(url_loader_resource))->GetReference();
361 } 363 }
362 364
363 // static 365 // static
366 const InterfaceProxy::Info* PPB_URLLoader_Proxy::GetInfo() {
367 static const Info info = {
368 thunk::GetPPB_URLLoader_Thunk(),
369 PPB_URLLOADER_INTERFACE,
370 INTERFACE_ID_PPB_URL_LOADER,
371 false,
372 &CreateURLLoaderProxy,
373 };
374 return &info;
375 }
376
377 // static
364 const InterfaceProxy::Info* PPB_URLLoader_Proxy::GetTrustedInfo() { 378 const InterfaceProxy::Info* PPB_URLLoader_Proxy::GetTrustedInfo() {
365 static const Info info = { 379 static const Info info = {
366 thunk::GetPPB_URLLoaderTrusted_Thunk(), 380 thunk::GetPPB_URLLoaderTrusted_Thunk(),
367 PPB_URLLOADERTRUSTED_INTERFACE, 381 PPB_URLLOADERTRUSTED_INTERFACE,
368 INTERFACE_ID_NONE, // URL_LOADER is the canonical one. 382 INTERFACE_ID_NONE, // URL_LOADER is the canonical one.
369 false, 383 false,
370 &CreateURLLoaderProxy 384 &CreateURLLoaderProxy
371 }; 385 };
372 return &info; 386 return &info;
373 } 387 }
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
422 // callback before sending any URLLoader to the plugin. 436 // callback before sending any URLLoader to the plugin.
423 EnterResourceNoLock<PPB_URLLoader_API> enter(resource, false); 437 EnterResourceNoLock<PPB_URLLoader_API> enter(resource, false);
424 if (enter.succeeded()) 438 if (enter.succeeded())
425 enter.object()->SetStatusCallback(&UpdateResourceLoadStatus); 439 enter.object()->SetStatusCallback(&UpdateResourceLoadStatus);
426 else 440 else
427 NOTREACHED(); // Only called internally, resource should be valid. 441 NOTREACHED(); // Only called internally, resource should be valid.
428 } 442 }
429 443
430 void PPB_URLLoader_Proxy::OnMsgCreate(PP_Instance instance, 444 void PPB_URLLoader_Proxy::OnMsgCreate(PP_Instance instance,
431 HostResource* result) { 445 HostResource* result) {
432 thunk::EnterResourceCreation enter(instance); 446 EnterFunctionNoLock<ResourceCreationAPI> enter(instance, true);
433 if (enter.succeeded()) { 447 if (enter.succeeded()) {
434 result->SetHostResource(instance, 448 result->SetHostResource(instance,
435 enter.functions()->CreateURLLoader(instance)); 449 enter.functions()->CreateURLLoader(instance));
436 PrepareURLLoaderForSendingToPlugin(result->host_resource()); 450 PrepareURLLoaderForSendingToPlugin(result->host_resource());
437 } 451 }
438 } 452 }
439 453
440 void PPB_URLLoader_Proxy::OnMsgOpen(const HostResource& loader, 454 void PPB_URLLoader_Proxy::OnMsgOpen(const HostResource& loader,
441 const PPB_URLRequestInfo_Data& data, 455 const PPB_URLRequestInfo_Data& data,
442 uint32_t serialized_callback) { 456 uint32_t serialized_callback) {
443 // Have to be careful to always issue the callback, so don't return early. 457 // Have to be careful to always issue the callback, so don't return early.
444 EnterHostFromHostResource<PPB_URLLoader_API> enter(loader); 458 EnterHostFromHostResource<PPB_URLLoader_API> enter(loader);
445 thunk::EnterResourceCreation enter_creation(loader.instance()); 459 EnterFunctionNoLock<ResourceCreationAPI> enter_creation(
460 loader.instance(), true);
446 461
447 PP_CompletionCallback callback = ReceiveCallback(serialized_callback); 462 PP_CompletionCallback callback = ReceiveCallback(serialized_callback);
448 463
449 int32_t result = PP_ERROR_BADRESOURCE; 464 int32_t result = PP_ERROR_BADRESOURCE;
450 if (enter.succeeded() && enter_creation.succeeded()) { 465 if (enter.succeeded() && enter_creation.succeeded()) {
451 ScopedPPResource request_resource( 466 ScopedPPResource request_resource(
452 ScopedPPResource::PassRef(), 467 ScopedPPResource::PassRef(),
453 enter_creation.functions()->CreateURLRequestInfo(loader.instance(), 468 enter_creation.functions()->CreateURLRequestInfo(loader.instance(),
454 data)); 469 data));
455 result = enter.object()->Open(request_resource, callback); 470 result = enter.object()->Open(request_resource, callback);
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
573 info->read_buffer.resize(bytes_read); 588 info->read_buffer.resize(bytes_read);
574 589
575 dispatcher()->Send(new PpapiMsg_PPBURLLoader_ReadResponseBody_Ack( 590 dispatcher()->Send(new PpapiMsg_PPBURLLoader_ReadResponseBody_Ack(
576 INTERFACE_ID_PPB_URL_LOADER, info->resource, result, info->read_buffer)); 591 INTERFACE_ID_PPB_URL_LOADER, info->resource, result, info->read_buffer));
577 592
578 delete info; 593 delete info;
579 } 594 }
580 595
581 } // namespace proxy 596 } // namespace proxy
582 } // namespace ppapi 597 } // namespace ppapi
OLDNEW
« no previous file with comments | « ppapi/proxy/ppb_url_loader_proxy.h ('k') | ppapi/proxy/ppb_url_request_info_proxy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698