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

Unified Diff: content/browser/renderer_host/pepper_message_filter.h

Issue 9283022: Exposed Listen and Accept methods to plugin. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Added comment, fixed StopListening. Created 8 years, 10 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
Index: content/browser/renderer_host/pepper_message_filter.h
diff --git a/content/browser/renderer_host/pepper_message_filter.h b/content/browser/renderer_host/pepper_message_filter.h
index e55a5237b351fa3ff5becd7158086197984b3244..83d674064d2d79ab2e0075212f23a70b2c040142 100644
--- a/content/browser/renderer_host/pepper_message_filter.h
+++ b/content/browser/renderer_host/pepper_message_filter.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// 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.
@@ -17,11 +17,13 @@
#include "content/browser/font_list_async.h"
#include "content/public/browser/browser_message_filter.h"
#include "net/base/ssl_config_service.h"
+#include "net/socket/stream_socket.h"
#include "ppapi/c/pp_stdint.h"
+#include "ppapi/c/private/ppb_net_address_private.h"
+class PepperTCPServerSocket;
class PepperTCPSocket;
class PepperUDPSocket;
-struct PP_NetAddress_Private;
namespace content {
class ResourceContext;
@@ -54,6 +56,15 @@ class PepperMessageFilter : public content::BrowserMessageFilter {
net::CertVerifier* GetCertVerifier();
+ // Adds already accepted socket to the internal TCP sockets table. Takes
+ // ownership over |socket|. In the case of failure (full socket table)
+ // returns 0 and deletes |socket|. Otherwise, returns generated ID for
+ // |socket|.
+ uint32 AddAcceptedTCPSocket(int32 routing_id,
+ uint32 plugin_dispatcher_id,
+ net::StreamSocket* socket);
+ void RemoveTCPServerSocket(uint32 real_socket_id);
+
const net::SSLConfig& ssl_config() { return ssl_config_; }
private:
@@ -115,6 +126,13 @@ class PepperMessageFilter : public content::BrowserMessageFilter {
const PP_NetAddress_Private& addr);
void OnUDPClose(uint32 socket_id);
+ void OnTCPServerListen(int32 routing_id,
+ uint32 plugin_dispatcher_id,
+ uint32 temp_socket_id,
+ const PP_NetAddress_Private& addr,
+ int32_t backlog);
+ void OnTCPServerAccept(uint32 real_socket_id);
+
// Callback when the font list has been retrieved on a background thread.
void GetFontFamiliesComplete(IPC::Message* reply_msg,
scoped_refptr<content::FontListResult> result);
@@ -142,6 +160,10 @@ class PepperMessageFilter : public content::BrowserMessageFilter {
typedef std::map<uint32, linked_ptr<PepperUDPSocket> > UDPSocketMap;
UDPSocketMap udp_sockets_;
+ typedef std::map<uint32,
+ linked_ptr<PepperTCPServerSocket> > TCPServerSocketMap;
+ TCPServerSocketMap tcp_server_sockets_;
+
DISALLOW_COPY_AND_ASSIGN(PepperMessageFilter);
};

Powered by Google App Engine
This is Rietveld 408576698