summaryrefslogtreecommitdiffstats
path: root/content/renderer/render_view_impl.h
diff options
context:
space:
mode:
authordpolukhin@chromium.org <dpolukhin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-02 14:29:07 +0000
committerdpolukhin@chromium.org <dpolukhin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-02 14:29:07 +0000
commited966587d28db59eb131487bc097d0f4a19a47a4 (patch)
tree386b9f3f78c09af7a37529b3566416a13a7d2ba2 /content/renderer/render_view_impl.h
parent64576b675e4fc0e2d2eaa4b669df8685b0f7a476 (diff)
downloadchromium_src-ed966587d28db59eb131487bc097d0f4a19a47a4.zip
chromium_src-ed966587d28db59eb131487bc097d0f4a19a47a4.tar.gz
chromium_src-ed966587d28db59eb131487bc097d0f4a19a47a4.tar.bz2
Landing 8688002: PPB_TCPSocket_Private/PPB_UDPSocket_Private are exposed to Browser
Review URL: http://codereview.chromium.org/8688002 Patch from Yuri Gorshenin <ygorshenin@chromium.org>. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@112693 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/renderer/render_view_impl.h')
-rw-r--r--content/renderer/render_view_impl.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/content/renderer/render_view_impl.h b/content/renderer/render_view_impl.h
index b6db69f..49c5c90 100644
--- a/content/renderer/render_view_impl.h
+++ b/content/renderer/render_view_impl.h
@@ -293,6 +293,14 @@ class RenderViewImpl : public RenderWidget,
webkit::WebPluginInfo* plugin_info,
std::string* actual_mime_type);
+ // Helper function to check that TCP/UDP private APIs are allowed for current
+ // page. This check actually allows socket usage for NativeClient code only.
+ // It is better to move this check to browser process but Pepper message
+ // filters in browser process have no context about page that sent
+ // the request. Doing this check in render process is safe because NaCl code
+ // is executed in separate NaCl process.
+ bool CanUseSocketAPIs();
+
// IPC::Channel::Listener implementation -------------------------------------
virtual bool OnMessageReceived(const IPC::Message& msg) OVERRIDE;
@@ -751,6 +759,35 @@ class RenderViewImpl : public RenderWidget,
const PP_NetAddress_Private& local_addr,
const PP_NetAddress_Private& remote_addr);
#endif
+ void OnTCPSocketConnectACK(uint32 plugin_dispatcher_id,
+ uint32 socket_id,
+ bool succeeded,
+ const PP_NetAddress_Private& local_addr,
+ const PP_NetAddress_Private& remote_addr);
+ void OnTCPSocketSSLHandshakeACK(uint32 plugin_dispatcher_id,
+ uint32 socket_id,
+ bool succeeded);
+ void OnTCPSocketReadACK(uint32 plugin_dispatcher_id,
+ uint32 socket_id,
+ bool succeeded,
+ const std::string& data);
+ void OnTCPSocketWriteACK(uint32 plugin_dispatcher_id,
+ uint32 socket_id,
+ bool succeeded,
+ int32_t bytes_written);
+ void OnUDPSocketBindACK(uint32 plugin_dispatcher_id,
+ uint32 socket_id,
+ bool succeeded);
+ void OnUDPSocketSendToACK(uint32 plugin_dispatcher_id,
+ uint32 socket_id,
+ bool succeeded,
+ int32_t bytes_written);
+ void OnUDPSocketRecvFromACK(uint32 plugin_dispatcher_id,
+ uint32 socket_id,
+ bool succeeded,
+ const std::string& data,
+ const PP_NetAddress_Private& addr);
+
void OnContextMenuClosed(
const webkit_glue::CustomContextMenuContext& custom_context);
void OnCopy();
@@ -1219,6 +1256,9 @@ class RenderViewImpl : public RenderWidget,
// of handling a ViewMsg_SelectRange IPC.
bool handling_select_range_;
+ // Set of origins that can use TCP/UDP private APIs from NaCl.
+ std::set<std::string> allowed_socket_origins_;
+
// ---------------------------------------------------------------------------
// ADDING NEW DATA? Please see if it fits appropriately in one of the above
// sections rather than throwing it randomly at the end. If you're adding a