summaryrefslogtreecommitdiffstats
path: root/webkit/plugins/ppapi/ppb_flash_impl.cc
diff options
context:
space:
mode:
authorviettrungluu@chromium.org <viettrungluu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-02-23 22:10:57 +0000
committerviettrungluu@chromium.org <viettrungluu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-02-23 22:10:57 +0000
commit9d9f1bb2aa1bd6db5e04e8ebd586f924d2532964 (patch)
treecf4e64950dfe2832ff011fdf2daa3e567e159b0d /webkit/plugins/ppapi/ppb_flash_impl.cc
parent7b978a7cf153257e6020638907389be85f054d8c (diff)
downloadchromium_src-9d9f1bb2aa1bd6db5e04e8ebd586f924d2532964.zip
chromium_src-9d9f1bb2aa1bd6db5e04e8ebd586f924d2532964.tar.gz
chromium_src-9d9f1bb2aa1bd6db5e04e8ebd586f924d2532964.tar.bz2
PPB_Flash cleanup part 1: move the net connector stuff to its own files.
BUG=none TEST=builds Review URL: http://codereview.chromium.org/6578007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@75800 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/plugins/ppapi/ppb_flash_impl.cc')
-rw-r--r--webkit/plugins/ppapi/ppb_flash_impl.cc194
1 files changed, 3 insertions, 191 deletions
diff --git a/webkit/plugins/ppapi/ppb_flash_impl.cc b/webkit/plugins/ppapi/ppb_flash_impl.cc
index 2a922c0..4c439b0 100644
--- a/webkit/plugins/ppapi/ppb_flash_impl.cc
+++ b/webkit/plugins/ppapi/ppb_flash_impl.cc
@@ -6,9 +6,10 @@
#include <string.h>
+#include <string>
+
#include "base/file_path.h"
#include "base/message_loop.h"
-#include "base/stringprintf.h"
#include "base/utf_string_conversions.h"
#include "googleurl/src/gurl.h"
#include "ppapi/c/dev/pp_file_info_dev.h"
@@ -20,13 +21,12 @@
#include "webkit/plugins/ppapi/plugin_delegate.h"
#include "webkit/plugins/ppapi/plugin_module.h"
#include "webkit/plugins/ppapi/ppapi_plugin_instance.h"
+#include "webkit/plugins/ppapi/resource_tracker.h"
#include "webkit/plugins/ppapi/var.h"
namespace webkit {
namespace ppapi {
-// PPB_Flash_Impl --------------------------------------------------------------
-
namespace {
void SetInstanceAlwaysOnTop(PP_Instance pp_instance, PP_Bool on_top) {
@@ -252,193 +252,5 @@ const PPB_Flash* PPB_Flash_Impl::GetInterface() {
return &ppb_flash;
}
-// PPB_Flash_NetConnector_Impl -------------------------------------------------
-
-namespace {
-
-PP_Resource Create(PP_Instance instance_id) {
- PluginInstance* instance = ResourceTracker::Get()->GetInstance(instance_id);
- if (!instance)
- return 0;
-
- scoped_refptr<PPB_Flash_NetConnector_Impl> connector(
- new PPB_Flash_NetConnector_Impl(instance));
- return connector->GetReference();
-}
-
-PP_Bool IsFlashNetConnector(PP_Resource resource) {
- return BoolToPPBool(!!Resource::GetAs<PPB_Flash_NetConnector_Impl>(resource));
-}
-
-int32_t ConnectTcp(PP_Resource connector_id,
- const char* host,
- uint16_t port,
- PP_FileHandle* socket_out,
- PP_Flash_NetAddress* local_addr_out,
- PP_Flash_NetAddress* remote_addr_out,
- PP_CompletionCallback callback) {
- scoped_refptr<PPB_Flash_NetConnector_Impl> connector(
- Resource::GetAs<PPB_Flash_NetConnector_Impl>(connector_id));
- if (!connector.get())
- return PP_ERROR_BADRESOURCE;
-
- return connector->ConnectTcp(
- host, port, socket_out, local_addr_out, remote_addr_out, callback);
-}
-
-int32_t ConnectTcpAddress(PP_Resource connector_id,
- const PP_Flash_NetAddress* addr,
- PP_FileHandle* socket_out,
- PP_Flash_NetAddress* local_addr_out,
- PP_Flash_NetAddress* remote_addr_out,
- PP_CompletionCallback callback) {
- scoped_refptr<PPB_Flash_NetConnector_Impl> connector(
- Resource::GetAs<PPB_Flash_NetConnector_Impl>(connector_id));
- if (!connector.get())
- return PP_ERROR_BADRESOURCE;
-
- return connector->ConnectTcpAddress(
- addr, socket_out, local_addr_out, remote_addr_out, callback);
-}
-
-const PPB_Flash_NetConnector ppb_flash_netconnector = {
- &Create,
- &IsFlashNetConnector,
- &ConnectTcp,
- &ConnectTcpAddress,
-};
-
-} // namespace
-
-PPB_Flash_NetConnector_Impl::PPB_Flash_NetConnector_Impl(
- PluginInstance* instance)
- : Resource(instance) {
-}
-
-PPB_Flash_NetConnector_Impl::~PPB_Flash_NetConnector_Impl() {
-}
-
-// static
-const PPB_Flash_NetConnector* PPB_Flash_NetConnector_Impl::GetInterface() {
- return &ppb_flash_netconnector;
-}
-
-PPB_Flash_NetConnector_Impl*
- PPB_Flash_NetConnector_Impl::AsPPB_Flash_NetConnector_Impl() {
- return this;
-}
-
-int32_t PPB_Flash_NetConnector_Impl::ConnectTcp(
- const char* host,
- uint16_t port,
- PP_FileHandle* socket_out,
- PP_Flash_NetAddress* local_addr_out,
- PP_Flash_NetAddress* remote_addr_out,
- PP_CompletionCallback callback) {
- // |socket_out| is not optional.
- if (!socket_out)
- return PP_ERROR_BADARGUMENT;
-
- if (!callback.func) {
- NOTIMPLEMENTED();
- return PP_ERROR_BADARGUMENT;
- }
-
- if (callback_.get() && !callback_->completed())
- return PP_ERROR_INPROGRESS;
-
- PP_Resource resource_id = GetReferenceNoAddRef();
- if (!resource_id) {
- NOTREACHED();
- return PP_ERROR_FAILED;
- }
-
- int32_t rv = instance()->delegate()->ConnectTcp(this, host, port);
- if (rv == PP_ERROR_WOULDBLOCK) {
- // Record callback and output buffers.
- callback_ = new TrackedCompletionCallback(
- instance()->module()->GetCallbackTracker(), resource_id, callback);
- socket_out_ = socket_out;
- local_addr_out_ = local_addr_out;
- remote_addr_out_ = remote_addr_out;
- } else {
- // This should never be completed synchronously successfully.
- DCHECK_NE(rv, PP_OK);
- }
- return rv;
-}
-
-int32_t PPB_Flash_NetConnector_Impl::ConnectTcpAddress(
- const PP_Flash_NetAddress* addr,
- PP_FileHandle* socket_out,
- PP_Flash_NetAddress* local_addr_out,
- PP_Flash_NetAddress* remote_addr_out,
- PP_CompletionCallback callback) {
- // |socket_out| is not optional.
- if (!socket_out)
- return PP_ERROR_BADARGUMENT;
-
- if (!callback.func) {
- NOTIMPLEMENTED();
- return PP_ERROR_BADARGUMENT;
- }
-
- if (callback_.get() && !callback_->completed())
- return PP_ERROR_INPROGRESS;
-
- PP_Resource resource_id = GetReferenceNoAddRef();
- if (!resource_id) {
- NOTREACHED();
- return PP_ERROR_FAILED;
- }
-
- int32_t rv = instance()->delegate()->ConnectTcpAddress(this, addr);
- if (rv == PP_ERROR_WOULDBLOCK) {
- // Record callback and output buffers.
- callback_ = new TrackedCompletionCallback(
- instance()->module()->GetCallbackTracker(), resource_id, callback);
- socket_out_ = socket_out;
- local_addr_out_ = local_addr_out;
- remote_addr_out_ = remote_addr_out;
- } else {
- // This should never be completed synchronously successfully.
- DCHECK_NE(rv, PP_OK);
- }
- return rv;
-}
-
-void PPB_Flash_NetConnector_Impl::CompleteConnectTcp(
- PP_FileHandle socket,
- const PP_Flash_NetAddress& local_addr,
- const PP_Flash_NetAddress& remote_addr) {
- int32_t rv = PP_ERROR_ABORTED;
- if (!callback_->aborted()) {
- CHECK(!callback_->completed());
-
- // Write output data.
- *socket_out_ = socket;
- if (socket != PP_kInvalidFileHandle) {
- if (local_addr_out_)
- *local_addr_out_ = local_addr;
- if (remote_addr_out_)
- *remote_addr_out_ = remote_addr;
- rv = PP_OK;
- } else {
- rv = PP_ERROR_FAILED;
- }
- }
-
- // Theoretically, the plugin should be allowed to try another |ConnectTcp()|
- // from the callback.
- scoped_refptr<TrackedCompletionCallback> callback;
- callback.swap(callback_);
- // Wipe everything else out for safety.
- socket_out_ = NULL;
- local_addr_out_ = NULL;
- remote_addr_out_ = NULL;
-
- callback->Run(rv); // Will complete abortively if necessary.
-}
-
} // namespace ppapi
} // namespace webkit