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

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

Issue 11022005: Converted PluginResource reply message handling to use base::Callback (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 8 years, 2 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/plugin_resource.h ('k') | ppapi/proxy/plugin_resource_callback.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) 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 #include "ppapi/proxy/plugin_resource.h" 5 #include "ppapi/proxy/plugin_resource.h"
6 6
7 #include "ppapi/c/pp_errors.h" 7 #include "ppapi/c/pp_errors.h"
8 #include "ppapi/proxy/ppapi_messages.h" 8 #include "ppapi/proxy/ppapi_messages.h"
9 #include "ppapi/proxy/resource_message_params.h" 9 #include "ppapi/proxy/resource_message_params.h"
10 10
(...skipping 12 matching lines...) Expand all
23 if (sent_create_to_browser_) { 23 if (sent_create_to_browser_) {
24 connection_.browser_sender->Send( 24 connection_.browser_sender->Send(
25 new PpapiHostMsg_ResourceDestroyed(pp_resource())); 25 new PpapiHostMsg_ResourceDestroyed(pp_resource()));
26 } 26 }
27 if (sent_create_to_renderer_) { 27 if (sent_create_to_renderer_) {
28 connection_.renderer_sender->Send( 28 connection_.renderer_sender->Send(
29 new PpapiHostMsg_ResourceDestroyed(pp_resource())); 29 new PpapiHostMsg_ResourceDestroyed(pp_resource()));
30 } 30 }
31 } 31 }
32 32
33 void PluginResource::OnReplyReceived(
34 const proxy::ResourceMessageReplyParams& params,
35 const IPC::Message& msg) {
36 // Grab the callback for the reply sequence number and run it with |msg|.
37 CallbackMap::iterator it = callbacks_.find(params.sequence());
38 if (it == callbacks_.end()) {
39 DCHECK(false) << "Callback does not exist for an expected sequence number.";
40 } else {
41 scoped_refptr<PluginResourceCallbackBase> callback = it->second;
42 callbacks_.erase(it);
43 callback->Run(params, msg);
44 }
45 }
46
33 void PluginResource::SendCreateToBrowser(const IPC::Message& msg) { 47 void PluginResource::SendCreateToBrowser(const IPC::Message& msg) {
34 DCHECK(!sent_create_to_browser_); 48 DCHECK(!sent_create_to_browser_);
35 sent_create_to_browser_ = true; 49 sent_create_to_browser_ = true;
36 ResourceMessageCallParams params(pp_resource(), 50 ResourceMessageCallParams params(pp_resource(),
37 next_sequence_number_++); 51 next_sequence_number_++);
38 connection_.browser_sender->Send( 52 connection_.browser_sender->Send(
39 new PpapiHostMsg_ResourceCreated(params, pp_instance(), msg)); 53 new PpapiHostMsg_ResourceCreated(params, pp_instance(), msg));
40 } 54 }
41 55
42 void PluginResource::SendCreateToRenderer(const IPC::Message& msg) { 56 void PluginResource::SendCreateToRenderer(const IPC::Message& msg) {
43 DCHECK(!sent_create_to_renderer_); 57 DCHECK(!sent_create_to_renderer_);
44 sent_create_to_renderer_ = true; 58 sent_create_to_renderer_ = true;
45 ResourceMessageCallParams params(pp_resource(), 59 ResourceMessageCallParams params(pp_resource(),
46 next_sequence_number_++); 60 next_sequence_number_++);
47 connection_.renderer_sender->Send( 61 connection_.renderer_sender->Send(
48 new PpapiHostMsg_ResourceCreated(params, pp_instance(), msg)); 62 new PpapiHostMsg_ResourceCreated(params, pp_instance(), msg));
49 } 63 }
50 64
51 void PluginResource::PostToBrowser(const IPC::Message& msg) { 65 void PluginResource::PostToBrowser(const IPC::Message& msg) {
52 ResourceMessageCallParams params(pp_resource(), 66 ResourceMessageCallParams params(pp_resource(),
53 next_sequence_number_++); 67 next_sequence_number_++);
54 connection_.browser_sender->Send(new PpapiHostMsg_ResourceCall(params, msg)); 68 SendResourceCall(connection_.browser_sender, params, msg);
55 } 69 }
56 70
57 void PluginResource::PostToRenderer(const IPC::Message& msg) { 71 void PluginResource::PostToRenderer(const IPC::Message& msg) {
58 ResourceMessageCallParams params(pp_resource(), 72 ResourceMessageCallParams params(pp_resource(),
59 next_sequence_number_++); 73 next_sequence_number_++);
60 connection_.renderer_sender->Send(new PpapiHostMsg_ResourceCall(params, msg)); 74 SendResourceCall(connection_.renderer_sender, params, msg);
61 } 75 }
62 76
63 int32_t PluginResource::CallBrowser(const IPC::Message& msg) { 77 bool PluginResource::SendResourceCall(
64 ResourceMessageCallParams params(pp_resource(), 78 IPC::Sender* sender,
65 next_sequence_number_++); 79 const ResourceMessageCallParams& call_params,
66 params.set_has_callback(); 80 const IPC::Message& nested_msg) {
67 connection_.browser_sender->Send(new PpapiHostMsg_ResourceCall(params, msg)); 81 return sender->Send(new PpapiHostMsg_ResourceCall(call_params, nested_msg));
68 return params.sequence();
69 }
70
71 int32_t PluginResource::CallRenderer(const IPC::Message& msg) {
72 ResourceMessageCallParams params(pp_resource(),
73 next_sequence_number_++);
74 params.set_has_callback();
75 connection_.renderer_sender->Send(new PpapiHostMsg_ResourceCall(params, msg));
76 return params.sequence();
77 } 82 }
78 83
79 int32_t PluginResource::CallBrowserSync(const IPC::Message& msg, 84 int32_t PluginResource::CallBrowserSync(const IPC::Message& msg,
80 IPC::Message* reply) { 85 IPC::Message* reply) {
81 ResourceMessageCallParams params(pp_resource(), 86 ResourceMessageCallParams params(pp_resource(),
82 next_sequence_number_++); 87 next_sequence_number_++);
83 params.set_has_callback(); 88 params.set_has_callback();
84 ResourceMessageReplyParams reply_params; 89 ResourceMessageReplyParams reply_params;
85 bool success = 90 bool success =
86 connection_.browser_sender->Send(new PpapiHostMsg_ResourceSyncCall( 91 connection_.browser_sender->Send(new PpapiHostMsg_ResourceSyncCall(
(...skipping 12 matching lines...) Expand all
99 bool success = 104 bool success =
100 connection_.renderer_sender->Send(new PpapiHostMsg_ResourceSyncCall( 105 connection_.renderer_sender->Send(new PpapiHostMsg_ResourceSyncCall(
101 params, msg, &reply_params, reply)); 106 params, msg, &reply_params, reply));
102 if (success) 107 if (success)
103 return reply_params.result(); 108 return reply_params.result();
104 return PP_ERROR_FAILED; 109 return PP_ERROR_FAILED;
105 } 110 }
106 111
107 } // namespace proxy 112 } // namespace proxy
108 } // namespace ppapi 113 } // namespace ppapi
OLDNEW
« no previous file with comments | « ppapi/proxy/plugin_resource.h ('k') | ppapi/proxy/plugin_resource_callback.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698