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

Unified Diff: content/renderer/render_view_impl.h

Issue 8688002: PPB_TCPSocket_Private/PPB_UDPSocket_Private are exposed to Browser (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Removed base/scoped_array dependency. Created 9 years 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/renderer/render_view_impl.h
diff --git a/content/renderer/render_view_impl.h b/content/renderer/render_view_impl.h
index b6db69feeb1a6690e28e3649e22b447c209c875e..49c5c9012bf3ddc9db1db7409c88f4b53310434e 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

Powered by Google App Engine
This is Rietveld 408576698