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

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

Issue 5978003: Make IPC::Channel::Listener:OnMessageReceived have a return value indicating ... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 12 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/dispatcher.h ('k') | ppapi/proxy/interface_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) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/dispatcher.h" 5 #include "ppapi/proxy/dispatcher.h"
6 6
7 #include <string.h> // For memset. 7 #include <string.h> // For memset.
8 8
9 #include <map> 9 #include <map>
10 10
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 const IPC::ChannelHandle& channel_handle, 80 const IPC::ChannelHandle& channel_handle,
81 bool is_client, 81 bool is_client,
82 base::WaitableEvent* shutdown_event) { 82 base::WaitableEvent* shutdown_event) {
83 IPC::Channel::Mode mode = is_client ? IPC::Channel::MODE_CLIENT 83 IPC::Channel::Mode mode = is_client ? IPC::Channel::MODE_CLIENT
84 : IPC::Channel::MODE_SERVER; 84 : IPC::Channel::MODE_SERVER;
85 channel_.reset(new IPC::SyncChannel(channel_handle, mode, this, 85 channel_.reset(new IPC::SyncChannel(channel_handle, mode, this,
86 ipc_message_loop, false, shutdown_event)); 86 ipc_message_loop, false, shutdown_event));
87 return true; 87 return true;
88 } 88 }
89 89
90 void Dispatcher::OnMessageReceived(const IPC::Message& msg) { 90 bool Dispatcher::OnMessageReceived(const IPC::Message& msg) {
91 // Control messages. 91 // Control messages.
92 if (msg.routing_id() == MSG_ROUTING_CONTROL) { 92 if (msg.routing_id() == MSG_ROUTING_CONTROL) {
93 bool handled = true;
93 IPC_BEGIN_MESSAGE_MAP(Dispatcher, msg) 94 IPC_BEGIN_MESSAGE_MAP(Dispatcher, msg)
94 IPC_MESSAGE_HANDLER(PpapiMsg_DeclareInterfaces, 95 IPC_MESSAGE_HANDLER(PpapiMsg_DeclareInterfaces,
95 OnMsgDeclareInterfaces) 96 OnMsgDeclareInterfaces)
96 IPC_MESSAGE_HANDLER(PpapiMsg_SupportsInterface, OnMsgSupportsInterface) 97 IPC_MESSAGE_HANDLER(PpapiMsg_SupportsInterface, OnMsgSupportsInterface)
97 IPC_MESSAGE_FORWARD(PpapiMsg_ExecuteCallback, &callback_tracker_, 98 IPC_MESSAGE_FORWARD(PpapiMsg_ExecuteCallback, &callback_tracker_,
98 CallbackTracker::ReceiveExecuteSerializedCallback) 99 CallbackTracker::ReceiveExecuteSerializedCallback)
100 IPC_MESSAGE_UNHANDLED(handled = false)
99 IPC_END_MESSAGE_MAP() 101 IPC_END_MESSAGE_MAP()
100 return; 102 return handled;
101 } 103 }
102 104
103 // Interface-specific messages. 105 // Interface-specific messages.
104 if (msg.routing_id() > 0 && msg.routing_id() < INTERFACE_ID_COUNT) { 106 if (msg.routing_id() > 0 && msg.routing_id() < INTERFACE_ID_COUNT) {
105 InterfaceProxy* proxy = id_to_proxy_[msg.routing_id()]; 107 InterfaceProxy* proxy = id_to_proxy_[msg.routing_id()];
106 if (proxy) 108 if (proxy)
107 proxy->OnMessageReceived(msg); 109 return proxy->OnMessageReceived(msg);
108 else 110
109 NOTREACHED(); 111 NOTREACHED();
110 // TODO(brettw): kill the plugin if it starts sending invalid messages? 112 // TODO(brettw): kill the plugin if it starts sending invalid messages?
111 } 113 }
114
115 return false;
112 } 116 }
113 117
114 void Dispatcher::SetSerializationRules( 118 void Dispatcher::SetSerializationRules(
115 VarSerializationRules* var_serialization_rules) { 119 VarSerializationRules* var_serialization_rules) {
116 serialization_rules_.reset(var_serialization_rules); 120 serialization_rules_.reset(var_serialization_rules);
117 } 121 }
118 122
119 void Dispatcher::InjectProxy(InterfaceID id, 123 void Dispatcher::InjectProxy(InterfaceID id,
120 const std::string& name, 124 const std::string& name,
121 InterfaceProxy* proxy) { 125 InterfaceProxy* proxy) {
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
269 if (interface_name == PPB_URLLOADERTRUSTED_INTERFACE) 273 if (interface_name == PPB_URLLOADERTRUSTED_INTERFACE)
270 return new PPB_URLLoaderTrusted_Proxy(this, interface_functions); 274 return new PPB_URLLoaderTrusted_Proxy(this, interface_functions);
271 } 275 }
272 276
273 return NULL; 277 return NULL;
274 } 278 }
275 279
276 } // namespace proxy 280 } // namespace proxy
277 } // namespace pp 281 } // namespace pp
278 282
OLDNEW
« no previous file with comments | « ppapi/proxy/dispatcher.h ('k') | ppapi/proxy/interface_proxy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698