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

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

Issue 7740038: Use macros to define pepper interfaces (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: New patch 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 const void* target_interface) { 74 return new PPB_URLLoader_Proxy(dispatcher);
75 return new PPB_URLLoader_Proxy(dispatcher, target_interface);
76 } 75 }
77 76
78 } // namespace 77 } // namespace
79 78
80 // URLLoader ------------------------------------------------------------------- 79 // URLLoader -------------------------------------------------------------------
81 80
82 class URLLoader : public Resource, public PPB_URLLoader_API { 81 class URLLoader : public Resource, public PPB_URLLoader_API {
83 public: 82 public:
84 URLLoader(const HostResource& resource); 83 URLLoader(const HostResource& resource);
85 virtual ~URLLoader(); 84 virtual ~URLLoader();
(...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after
339 buffer_.begin() + output_size); 338 buffer_.begin() + output_size);
340 } 339 }
341 340
342 // PPB_URLLoader_Proxy --------------------------------------------------------- 341 // PPB_URLLoader_Proxy ---------------------------------------------------------
343 342
344 struct PPB_URLLoader_Proxy::ReadCallbackInfo { 343 struct PPB_URLLoader_Proxy::ReadCallbackInfo {
345 HostResource resource; 344 HostResource resource;
346 std::string read_buffer; 345 std::string read_buffer;
347 }; 346 };
348 347
349 PPB_URLLoader_Proxy::PPB_URLLoader_Proxy(Dispatcher* dispatcher, 348 PPB_URLLoader_Proxy::PPB_URLLoader_Proxy(Dispatcher* dispatcher)
350 const void* target_interface) 349 : InterfaceProxy(dispatcher),
351 : InterfaceProxy(dispatcher, target_interface),
352 callback_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)), 350 callback_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)),
353 host_urlloader_trusted_interface_(NULL) { 351 host_urlloader_trusted_interface_(NULL) {
354 } 352 }
355 353
356 PPB_URLLoader_Proxy::~PPB_URLLoader_Proxy() { 354 PPB_URLLoader_Proxy::~PPB_URLLoader_Proxy() {
357 } 355 }
358 356
359 // static 357 // static
360 PP_Resource PPB_URLLoader_Proxy::TrackPluginResource( 358 PP_Resource PPB_URLLoader_Proxy::TrackPluginResource(
361 const HostResource& url_loader_resource) { 359 const HostResource& url_loader_resource) {
362 return (new URLLoader(url_loader_resource))->GetReference(); 360 return (new URLLoader(url_loader_resource))->GetReference();
363 } 361 }
364 362
365 // static 363 // 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
378 const InterfaceProxy::Info* PPB_URLLoader_Proxy::GetTrustedInfo() { 364 const InterfaceProxy::Info* PPB_URLLoader_Proxy::GetTrustedInfo() {
379 static const Info info = { 365 static const Info info = {
380 thunk::GetPPB_URLLoaderTrusted_Thunk(), 366 thunk::GetPPB_URLLoaderTrusted_Thunk(),
381 PPB_URLLOADERTRUSTED_INTERFACE, 367 PPB_URLLOADERTRUSTED_INTERFACE,
382 INTERFACE_ID_NONE, // URL_LOADER is the canonical one. 368 INTERFACE_ID_NONE, // URL_LOADER is the canonical one.
383 false, 369 false,
384 &CreateURLLoaderProxy 370 &CreateURLLoaderProxy
385 }; 371 };
386 return &info; 372 return &info;
387 } 373 }
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
436 // callback before sending any URLLoader to the plugin. 422 // callback before sending any URLLoader to the plugin.
437 EnterResourceNoLock<PPB_URLLoader_API> enter(resource, false); 423 EnterResourceNoLock<PPB_URLLoader_API> enter(resource, false);
438 if (enter.succeeded()) 424 if (enter.succeeded())
439 enter.object()->SetStatusCallback(&UpdateResourceLoadStatus); 425 enter.object()->SetStatusCallback(&UpdateResourceLoadStatus);
440 else 426 else
441 NOTREACHED(); // Only called internally, resource should be valid. 427 NOTREACHED(); // Only called internally, resource should be valid.
442 } 428 }
443 429
444 void PPB_URLLoader_Proxy::OnMsgCreate(PP_Instance instance, 430 void PPB_URLLoader_Proxy::OnMsgCreate(PP_Instance instance,
445 HostResource* result) { 431 HostResource* result) {
446 EnterFunctionNoLock<ResourceCreationAPI> enter(instance, true); 432 thunk::EnterResourceCreation enter(instance);
447 if (enter.succeeded()) { 433 if (enter.succeeded()) {
448 result->SetHostResource(instance, 434 result->SetHostResource(instance,
449 enter.functions()->CreateURLLoader(instance)); 435 enter.functions()->CreateURLLoader(instance));
450 PrepareURLLoaderForSendingToPlugin(result->host_resource()); 436 PrepareURLLoaderForSendingToPlugin(result->host_resource());
451 } 437 }
452 } 438 }
453 439
454 void PPB_URLLoader_Proxy::OnMsgOpen(const HostResource& loader, 440 void PPB_URLLoader_Proxy::OnMsgOpen(const HostResource& loader,
455 const PPB_URLRequestInfo_Data& data, 441 const PPB_URLRequestInfo_Data& data,
456 uint32_t serialized_callback) { 442 uint32_t serialized_callback) {
457 // Have to be careful to always issue the callback, so don't return early. 443 // Have to be careful to always issue the callback, so don't return early.
458 EnterHostFromHostResource<PPB_URLLoader_API> enter(loader); 444 EnterHostFromHostResource<PPB_URLLoader_API> enter(loader);
459 EnterFunctionNoLock<ResourceCreationAPI> enter_creation( 445 thunk::EnterResourceCreation enter_creation(loader.instance());
460 loader.instance(), true);
461 446
462 PP_CompletionCallback callback = ReceiveCallback(serialized_callback); 447 PP_CompletionCallback callback = ReceiveCallback(serialized_callback);
463 448
464 int32_t result = PP_ERROR_BADRESOURCE; 449 int32_t result = PP_ERROR_BADRESOURCE;
465 if (enter.succeeded() && enter_creation.succeeded()) { 450 if (enter.succeeded() && enter_creation.succeeded()) {
466 ScopedPPResource request_resource( 451 ScopedPPResource request_resource(
467 ScopedPPResource::PassRef(), 452 ScopedPPResource::PassRef(),
468 enter_creation.functions()->CreateURLRequestInfo(loader.instance(), 453 enter_creation.functions()->CreateURLRequestInfo(loader.instance(),
469 data)); 454 data));
470 result = enter.object()->Open(request_resource, callback); 455 result = enter.object()->Open(request_resource, callback);
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
588 info->read_buffer.resize(bytes_read); 573 info->read_buffer.resize(bytes_read);
589 574
590 dispatcher()->Send(new PpapiMsg_PPBURLLoader_ReadResponseBody_Ack( 575 dispatcher()->Send(new PpapiMsg_PPBURLLoader_ReadResponseBody_Ack(
591 INTERFACE_ID_PPB_URL_LOADER, info->resource, result, info->read_buffer)); 576 INTERFACE_ID_PPB_URL_LOADER, info->resource, result, info->read_buffer));
592 577
593 delete info; 578 delete info;
594 } 579 }
595 580
596 } // namespace proxy 581 } // namespace proxy
597 } // namespace ppapi 582 } // 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