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

Unified Diff: ppapi/proxy/ppb_flash_net_connector_proxy.cc

Issue 9836131: Remove PPB_Flash_NetConnector and ENABLE_FLAPPER_HACKS. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ppapi/proxy/ppb_flash_net_connector_proxy.h ('k') | ppapi/proxy/resource_creation_proxy.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ppapi/proxy/ppb_flash_net_connector_proxy.cc
diff --git a/ppapi/proxy/ppb_flash_net_connector_proxy.cc b/ppapi/proxy/ppb_flash_net_connector_proxy.cc
deleted file mode 100644
index 0b7ba10710ad6ebab4262442e38f2c7bddb06280..0000000000000000000000000000000000000000
--- a/ppapi/proxy/ppb_flash_net_connector_proxy.cc
+++ /dev/null
@@ -1,306 +0,0 @@
-// 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/ppb_flash_net_connector_proxy.h"
-
-#include <algorithm>
-
-#include "base/bind.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/private/ppb_flash_net_connector.h"
-#include "ppapi/proxy/enter_proxy.h"
-#include "ppapi/proxy/plugin_dispatcher.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/proxy/serialized_var.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_flash_net_connector_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
-
-using ppapi::thunk::EnterFunctionNoLock;
-using ppapi::thunk::PPB_Flash_NetConnector_API;
-using ppapi::thunk::ResourceCreationAPI;
-
-namespace ppapi {
-namespace proxy {
-
-std::string NetAddressToString(const PP_NetAddress_Private& addr) {
- return std::string(addr.data, std::min(static_cast<size_t>(addr.size),
- sizeof(addr.data)));
-}
-
-void StringToNetAddress(const std::string& str, PP_NetAddress_Private* addr) {
- addr->size = std::min(str.size(), sizeof(addr->data));
- memcpy(addr->data, str.data(), addr->size);
-}
-
-class FlashNetConnector : public PPB_Flash_NetConnector_API,
- public Resource {
- public:
- explicit FlashNetConnector(const HostResource& resource);
- virtual ~FlashNetConnector();
-
- // Resource overrides.
- virtual PPB_Flash_NetConnector_API* AsPPB_Flash_NetConnector_API() OVERRIDE;
-
- // PPB_Flash_NetConnector_API implementation.
- virtual int32_t ConnectTcp(const char* host,
- uint16_t port,
- PP_FileHandle* socket_out,
- PP_NetAddress_Private* local_addr_out,
- PP_NetAddress_Private* remote_addr_out,
- PP_CompletionCallback callback) OVERRIDE;
- virtual int32_t ConnectTcpAddress(const PP_NetAddress_Private* addr,
- PP_FileHandle* socket_out,
- PP_NetAddress_Private* local_addr_out,
- PP_NetAddress_Private* remote_addr_out,
- PP_CompletionCallback callback) OVERRIDE;
-
- void ConnectComplete(int32_t result,
- base::PlatformFile file,
- const std::string& local_addr_as_string,
- const std::string& remote_addr_as_string);
-
- private:
- // Backend for both ConnectTcp and ConnectTcpAddress. To keep things generic,
- // the message is passed in (on error, it's deleted).
- int32_t ConnectWithMessage(IPC::Message* msg,
- PP_FileHandle* socket_out,
- PP_NetAddress_Private* local_addr_out,
- PP_NetAddress_Private* remote_addr_out,
- PP_CompletionCallback callback);
-
- scoped_refptr<TrackedCallback> callback_;
- PP_FileHandle* socket_out_;
- PP_NetAddress_Private* local_addr_out_;
- PP_NetAddress_Private* remote_addr_out_;
-};
-
-FlashNetConnector::FlashNetConnector(const HostResource& resource)
- : Resource(OBJECT_IS_PROXY, resource),
- socket_out_(NULL),
- local_addr_out_(NULL),
- remote_addr_out_(NULL) {
-}
-
-FlashNetConnector::~FlashNetConnector() {
-}
-
-PPB_Flash_NetConnector_API* FlashNetConnector::AsPPB_Flash_NetConnector_API() {
- return this;
-}
-
-int32_t FlashNetConnector::ConnectTcp(
- const char* host,
- uint16_t port,
- PP_FileHandle* socket_out,
- PP_NetAddress_Private* local_addr_out,
- PP_NetAddress_Private* remote_addr_out,
- PP_CompletionCallback callback) {
- return ConnectWithMessage(
- new PpapiHostMsg_PPBFlashNetConnector_ConnectTcp(
- API_ID_PPB_FLASH_NETCONNECTOR, host_resource(), host, port),
- socket_out, local_addr_out, remote_addr_out, callback);
-}
-
-int32_t FlashNetConnector::ConnectTcpAddress(
- const PP_NetAddress_Private* addr,
- PP_FileHandle* socket_out,
- PP_NetAddress_Private* local_addr_out,
- PP_NetAddress_Private* remote_addr_out,
- PP_CompletionCallback callback) {
- return ConnectWithMessage(
- new PpapiHostMsg_PPBFlashNetConnector_ConnectTcpAddress(
- API_ID_PPB_FLASH_NETCONNECTOR,
- host_resource(), NetAddressToString(*addr)),
- socket_out, local_addr_out, remote_addr_out, callback);
-}
-
-void FlashNetConnector::ConnectComplete(
- int32_t result,
- base::PlatformFile file,
- const std::string& local_addr_as_string,
- const std::string& remote_addr_as_string) {
- if (TrackedCallback::IsPending(callback_)) {
- base::ClosePlatformFile(file);
- return;
- }
-
- *socket_out_ = static_cast<PP_FileHandle>(file);
- StringToNetAddress(local_addr_as_string, local_addr_out_);
- StringToNetAddress(remote_addr_as_string, remote_addr_out_);
-
- TrackedCallback::ClearAndRun(&callback_, result);
-}
-
-int32_t FlashNetConnector::ConnectWithMessage(
- IPC::Message* msg,
- PP_FileHandle* socket_out,
- PP_NetAddress_Private* local_addr_out,
- PP_NetAddress_Private* remote_addr_out,
- PP_CompletionCallback callback) {
- scoped_ptr<IPC::Message> msg_deletor(msg);
- if (TrackedCallback::IsPending(callback_))
- return PP_ERROR_INPROGRESS; // Can only have one pending request.
-
- // Send the request, it will call us back via ConnectACK.
- PluginDispatcher::GetForResource(this)->Send(msg_deletor.release());
-
- callback_ = new TrackedCallback(this, callback);
- socket_out_ = socket_out;
- local_addr_out_ = local_addr_out;
- remote_addr_out_ = remote_addr_out;
- return PP_OK_COMPLETIONPENDING;
-}
-
-// Contains the data that the host interface will write to so we can send it
-// to the plugin. This is created when a request is initiated, and deleted in
-// the callback handler.
-struct PPB_Flash_NetConnector_Proxy::ConnectCallbackInfo {
- ConnectCallbackInfo(const HostResource& r) : resource(r), handle(0) {
- memset(&local_addr, 0, sizeof(local_addr));
- memset(&remote_addr, 0, sizeof(remote_addr));
- }
-
- HostResource resource;
-
- PP_FileHandle handle;
- PP_NetAddress_Private local_addr;
- PP_NetAddress_Private remote_addr;
-};
-
-PPB_Flash_NetConnector_Proxy::PPB_Flash_NetConnector_Proxy(
- Dispatcher* dispatcher)
- : InterfaceProxy(dispatcher),
- callback_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) {
-}
-
-PPB_Flash_NetConnector_Proxy::~PPB_Flash_NetConnector_Proxy() {
-}
-
-// static
-PP_Resource PPB_Flash_NetConnector_Proxy::CreateProxyResource(
- PP_Instance instance) {
- PluginDispatcher* dispatcher = PluginDispatcher::GetForInstance(instance);
- if (!dispatcher)
- return 0;
-
- HostResource result;
- dispatcher->Send(new PpapiHostMsg_PPBFlashNetConnector_Create(
- API_ID_PPB_FLASH_NETCONNECTOR, instance, &result));
- if (result.is_null())
- return 0;
- return (new FlashNetConnector(result))->GetReference();
-}
-
-bool PPB_Flash_NetConnector_Proxy::OnMessageReceived(const IPC::Message& msg) {
- bool handled = true;
- IPC_BEGIN_MESSAGE_MAP(PPB_Flash_NetConnector_Proxy, msg)
- IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBFlashNetConnector_Create,
- OnMsgCreate)
- IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBFlashNetConnector_ConnectTcp,
- OnMsgConnectTcp)
- IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBFlashNetConnector_ConnectTcpAddress,
- OnMsgConnectTcpAddress)
- IPC_MESSAGE_HANDLER(PpapiMsg_PPBFlashNetConnector_ConnectACK,
- OnMsgConnectACK)
- IPC_MESSAGE_UNHANDLED(handled = false)
- IPC_END_MESSAGE_MAP()
- return handled;
-}
-
-void PPB_Flash_NetConnector_Proxy::OnMsgCreate(PP_Instance instance,
- HostResource* result) {
- thunk::EnterResourceCreation enter(instance);
- if (enter.succeeded()) {
- result->SetHostResource(
- instance,
- enter.functions()->CreateFlashNetConnector(instance));
- }
-}
-
-void PPB_Flash_NetConnector_Proxy::OnMsgConnectTcp(
- const HostResource& resource,
- const std::string& host,
- uint16_t port) {
- ConnectCallbackInfo* info = new ConnectCallbackInfo(resource);
- pp::CompletionCallback callback = callback_factory_.NewOptionalCallback(
- &PPB_Flash_NetConnector_Proxy::OnCompleteCallbackInHost, info);
-
- EnterHostFromHostResource<PPB_Flash_NetConnector_API> enter(resource);
- int32_t result = PP_ERROR_BADRESOURCE;
- if (enter.succeeded()) {
- result = enter.object()->ConnectTcp(
- host.c_str(), port, &info->handle, &info->local_addr,
- &info->remote_addr, callback.pp_completion_callback());
- }
- if (result != PP_OK_COMPLETIONPENDING)
- OnCompleteCallbackInHost(result, info);
-}
-
-void PPB_Flash_NetConnector_Proxy::OnMsgConnectTcpAddress(
- const HostResource& resource,
- const std::string& net_address_as_string) {
- ConnectCallbackInfo* info = new ConnectCallbackInfo(resource);
- pp::CompletionCallback callback = callback_factory_.NewOptionalCallback(
- &PPB_Flash_NetConnector_Proxy::OnCompleteCallbackInHost, info);
-
- PP_NetAddress_Private net_address;
- StringToNetAddress(net_address_as_string, &net_address);
-
- EnterHostFromHostResource<PPB_Flash_NetConnector_API> enter(resource);
- int32_t result = PP_ERROR_BADRESOURCE;
- if (enter.succeeded()) {
- result = enter.object()->ConnectTcpAddress(
- &net_address, &info->handle, &info->local_addr, &info->remote_addr,
- callback.pp_completion_callback());
- }
- if (result != PP_OK_COMPLETIONPENDING)
- OnCompleteCallbackInHost(result, info);
-}
-
-void PPB_Flash_NetConnector_Proxy::OnMsgConnectACK(
- const HostResource& host_resource,
- int32_t result,
- IPC::PlatformFileForTransit handle,
- const std::string& load_addr_as_string,
- const std::string& remote_addr_as_string) {
- base::PlatformFile platform_file =
- IPC::PlatformFileForTransitToPlatformFile(handle);
-
- EnterPluginFromHostResource<PPB_Flash_NetConnector_API> enter(host_resource);
- if (enter.failed()) {
- base::ClosePlatformFile(platform_file);
- return;
- }
- FlashNetConnector* object = static_cast<FlashNetConnector*>(enter.object());
- object->ConnectComplete(result, platform_file,
- load_addr_as_string, remote_addr_as_string);
-}
-
-void PPB_Flash_NetConnector_Proxy::OnCompleteCallbackInHost(
- int32_t result,
- ConnectCallbackInfo* info) {
- // Callback must always delete the info.
- scoped_ptr<ConnectCallbackInfo> info_deletor(info);
-
- if (result == PP_OK) {
- dispatcher()->Send(new PpapiMsg_PPBFlashNetConnector_ConnectACK(
- API_ID_PPB_FLASH_NETCONNECTOR,
- info->resource, result,
- dispatcher()->ShareHandleWithRemote(
- static_cast<base::PlatformFile>(info->handle), true),
- NetAddressToString(info->local_addr),
- NetAddressToString(info->remote_addr)));
- } else {
- dispatcher()->Send(new PpapiMsg_PPBFlashNetConnector_ConnectACK(
- API_ID_PPB_FLASH_NETCONNECTOR,
- info->resource, result,
- IPC::InvalidPlatformFileForTransit(), std::string(), std::string()));
- }
-}
-
-} // namespace proxy
-} // namespace ppapi
« no previous file with comments | « ppapi/proxy/ppb_flash_net_connector_proxy.h ('k') | ppapi/proxy/resource_creation_proxy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698