| Index: ppapi/proxy/plugin_resource.cc
|
| diff --git a/ppapi/proxy/plugin_resource.cc b/ppapi/proxy/plugin_resource.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..6e387bb5c68c2cb22fb2b16632b021b0b74805fd
|
| --- /dev/null
|
| +++ b/ppapi/proxy/plugin_resource.cc
|
| @@ -0,0 +1,52 @@
|
| +// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "ppapi/proxy/plugin_resource.h"
|
| +
|
| +#include "ppapi/proxy/ppapi_messages.h"
|
| +#include "ppapi/proxy/resource_message_params.h"
|
| +
|
| +namespace ppapi {
|
| +namespace proxy {
|
| +
|
| +PluginResource::PluginResource(IPC::Sender* sender, PP_Instance instance)
|
| + : Resource(OBJECT_IS_PROXY, instance),
|
| + sender_(sender),
|
| + next_sequence_number_(0),
|
| + sent_create_to_renderer_(false) {
|
| +}
|
| +
|
| +PluginResource::~PluginResource() {
|
| + if (sent_create_to_renderer_)
|
| + Send(new PpapiHostMsg_ResourceDestroyed(pp_resource()));
|
| +}
|
| +
|
| +bool PluginResource::Send(IPC::Message* message) {
|
| + return sender_->Send(message);
|
| +}
|
| +
|
| +void PluginResource::SendCreateToRenderer(const IPC::Message& msg) {
|
| + DCHECK(!sent_create_to_renderer_);
|
| + sent_create_to_renderer_ = true;
|
| + ResourceMessageCallParams params(pp_resource(),
|
| + next_sequence_number_++);
|
| + Send(new PpapiHostMsg_ResourceCreated(params, pp_instance(), msg));
|
| +}
|
| +
|
| +void PluginResource::PostToRenderer(const IPC::Message& msg) {
|
| + ResourceMessageCallParams params(pp_resource(),
|
| + next_sequence_number_++);
|
| + Send(new PpapiHostMsg_ResourceCall(params, msg));
|
| +}
|
| +
|
| +int32_t PluginResource::CallRenderer(const IPC::Message& msg) {
|
| + ResourceMessageCallParams params(pp_resource(),
|
| + next_sequence_number_++);
|
| + params.set_has_callback();
|
| + Send(new PpapiHostMsg_ResourceCall(params, msg));
|
| + return params.sequence();
|
| +}
|
| +
|
| +} // namespace proxy
|
| +} // namespace ppapi
|
|
|