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

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

Issue 10815073: Refactoring of new IPC-only pepper implementation (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 4 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/ppapi_proxy_test.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/proxy/ppapi_messages.h" 7 #include "ppapi/proxy/ppapi_messages.h"
8 #include "ppapi/proxy/resource_message_params.h" 8 #include "ppapi/proxy/resource_message_params.h"
9 9
10 namespace ppapi { 10 namespace ppapi {
11 namespace proxy { 11 namespace proxy {
12 12
13 PluginResource::PluginResource(IPC::Sender* sender, PP_Instance instance) 13 PluginResource::PluginResource(Connection connection, PP_Instance instance)
14 : Resource(OBJECT_IS_PROXY, instance), 14 : Resource(OBJECT_IS_PROXY, instance),
15 sender_(sender), 15 connection_(connection),
16 next_sequence_number_(0), 16 next_sequence_number_(0),
17 sent_create_to_browser_(false),
17 sent_create_to_renderer_(false) { 18 sent_create_to_renderer_(false) {
18 } 19 }
19 20
20 PluginResource::~PluginResource() { 21 PluginResource::~PluginResource() {
21 if (sent_create_to_renderer_) 22 if (sent_create_to_browser_) {
22 Send(new PpapiHostMsg_ResourceDestroyed(pp_resource())); 23 connection_.browser_sender->Send(
24 new PpapiHostMsg_ResourceDestroyed(pp_resource()));
25 }
26 if (sent_create_to_renderer_) {
27 connection_.renderer_sender->Send(
28 new PpapiHostMsg_ResourceDestroyed(pp_resource()));
29 }
23 } 30 }
24 31
25 bool PluginResource::Send(IPC::Message* message) { 32 void PluginResource::SendCreateToBrowser(const IPC::Message& msg) {
26 return sender_->Send(message); 33 DCHECK(!sent_create_to_browser_);
34 sent_create_to_browser_ = true;
35 ResourceMessageCallParams params(pp_resource(),
36 next_sequence_number_++);
37 connection_.browser_sender->Send(
38 new PpapiHostMsg_ResourceCreated(params, pp_instance(), msg));
27 } 39 }
28 40
29 void PluginResource::SendCreateToRenderer(const IPC::Message& msg) { 41 void PluginResource::SendCreateToRenderer(const IPC::Message& msg) {
30 DCHECK(!sent_create_to_renderer_); 42 DCHECK(!sent_create_to_renderer_);
31 sent_create_to_renderer_ = true; 43 sent_create_to_renderer_ = true;
32 ResourceMessageCallParams params(pp_resource(), 44 ResourceMessageCallParams params(pp_resource(),
33 next_sequence_number_++); 45 next_sequence_number_++);
34 Send(new PpapiHostMsg_ResourceCreated(params, pp_instance(), msg)); 46 connection_.renderer_sender->Send(
47 new PpapiHostMsg_ResourceCreated(params, pp_instance(), msg));
48 }
49
50 void PluginResource::PostToBrowser(const IPC::Message& msg) {
51 ResourceMessageCallParams params(pp_resource(),
52 next_sequence_number_++);
53 connection_.browser_sender->Send(new PpapiHostMsg_ResourceCall(params, msg));
35 } 54 }
36 55
37 void PluginResource::PostToRenderer(const IPC::Message& msg) { 56 void PluginResource::PostToRenderer(const IPC::Message& msg) {
38 ResourceMessageCallParams params(pp_resource(), 57 ResourceMessageCallParams params(pp_resource(),
39 next_sequence_number_++); 58 next_sequence_number_++);
40 Send(new PpapiHostMsg_ResourceCall(params, msg)); 59 connection_.renderer_sender->Send(new PpapiHostMsg_ResourceCall(params, msg));
60 }
61
62 int32_t PluginResource::CallBrowser(const IPC::Message& msg) {
63 ResourceMessageCallParams params(pp_resource(),
64 next_sequence_number_++);
65 params.set_has_callback();
66 connection_.browser_sender->Send(new PpapiHostMsg_ResourceCall(params, msg));
67 return params.sequence();
41 } 68 }
42 69
43 int32_t PluginResource::CallRenderer(const IPC::Message& msg) { 70 int32_t PluginResource::CallRenderer(const IPC::Message& msg) {
44 ResourceMessageCallParams params(pp_resource(), 71 ResourceMessageCallParams params(pp_resource(),
45 next_sequence_number_++); 72 next_sequence_number_++);
46 params.set_has_callback(); 73 params.set_has_callback();
47 Send(new PpapiHostMsg_ResourceCall(params, msg)); 74 connection_.renderer_sender->Send(new PpapiHostMsg_ResourceCall(params, msg));
48 return params.sequence(); 75 return params.sequence();
49 } 76 }
50 77
51 } // namespace proxy 78 } // namespace proxy
52 } // namespace ppapi 79 } // namespace ppapi
OLDNEW
« no previous file with comments | « ppapi/proxy/plugin_resource.h ('k') | ppapi/proxy/ppapi_proxy_test.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698