summaryrefslogtreecommitdiffstats
path: root/content/renderer/render_view_impl.h
diff options
context:
space:
mode:
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