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

Unified Diff: content/browser/renderer_host/websocket_dispatcher_host.cc

Issue 1568523002: Implement content::WebSocketBlobSender (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@websocket_blob_send_ipcs
Patch Set: Rebase. Created 4 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/websocket_dispatcher_host.cc
diff --git a/content/browser/renderer_host/websocket_dispatcher_host.cc b/content/browser/renderer_host/websocket_dispatcher_host.cc
index 0cdf66383a544191d00c039e181cc9305d4ca516..e7049004b32fd4106d929b256f873fa1aca73e50 100644
--- a/content/browser/renderer_host/websocket_dispatcher_host.cc
+++ b/content/browser/renderer_host/websocket_dispatcher_host.cc
@@ -6,6 +6,7 @@
#include <stddef.h>
+#include <algorithm>
#include <string>
#include <vector>
@@ -15,6 +16,7 @@
#include "base/rand_util.h"
#include "base/stl_util.h"
#include "content/browser/child_process_security_policy_impl.h"
+#include "content/browser/fileapi/chrome_blob_storage_context.h"
#include "content/browser/renderer_host/websocket_host.h"
#include "content/common/websocket_messages.h"
@@ -35,7 +37,9 @@ const int kMaxPendingWebSocketConnections = 255;
WebSocketDispatcherHost::WebSocketDispatcherHost(
int process_id,
- const GetRequestContextCallback& get_context_callback)
+ const GetRequestContextCallback& get_context_callback,
+ ChromeBlobStorageContext* blob_storage_context,
+ StoragePartition* storage_partition)
: BrowserMessageFilter(WebSocketMsgStart),
process_id_(process_id),
get_context_callback_(get_context_callback),
@@ -46,7 +50,9 @@ WebSocketDispatcherHost::WebSocketDispatcherHost(
num_current_succeeded_connections_(0),
num_previous_succeeded_connections_(0),
num_current_failed_connections_(0),
- num_previous_failed_connections_(0) {}
+ num_previous_failed_connections_(0),
+ blob_storage_context_(blob_storage_context),
+ storage_partition_(storage_partition) {}
WebSocketDispatcherHost::WebSocketDispatcherHost(
int process_id,
@@ -60,7 +66,8 @@ WebSocketDispatcherHost::WebSocketDispatcherHost(
num_current_succeeded_connections_(0),
num_previous_succeeded_connections_(0),
num_current_failed_connections_(0),
- num_previous_failed_connections_(0) {}
+ num_previous_failed_connections_(0),
+ storage_partition_(nullptr) {}
WebSocketHost* WebSocketDispatcherHost::CreateWebSocketHost(
int routing_id,
@@ -72,6 +79,7 @@ WebSocketHost* WebSocketDispatcherHost::CreateWebSocketHost(
bool WebSocketDispatcherHost::OnMessageReceived(const IPC::Message& message) {
switch (message.type()) {
case WebSocketHostMsg_AddChannelRequest::ID:
+ case WebSocketHostMsg_SendBlob::ID:
case WebSocketMsg_SendFrame::ID:
case WebSocketMsg_FlowControl::ID:
case WebSocketMsg_DropChannel::ID:
@@ -95,9 +103,10 @@ bool WebSocketDispatcherHost::OnMessageReceived(const IPC::Message& message) {
return true; // We handled the message (by ignoring it).
}
if (num_pending_connections_ >= kMaxPendingWebSocketConnections) {
- if(!Send(new WebSocketMsg_NotifyFailure(routing_id,
- "Error in connection establishment: net::ERR_INSUFFICIENT_RESOURCES"
- ))) {
+ if (!Send(new WebSocketMsg_NotifyFailure(
+ routing_id,
+ "Error in connection establishment: "
+ "net::ERR_INSUFFICIENT_RESOURCES"))) {
DVLOG(1) << "Sending of message type "
<< "WebSocketMsg_NotifyFailure failed.";
}
@@ -127,6 +136,12 @@ bool WebSocketDispatcherHost::CanReadRawCookies() const {
return policy->CanReadRawCookies(process_id_);
}
+storage::BlobStorageContext* WebSocketDispatcherHost::blob_storage_context()
+ const {
+ DCHECK(blob_storage_context_);
+ return blob_storage_context_->context();
+}
+
WebSocketHost* WebSocketDispatcherHost::GetHost(int routing_id) const {
WebSocketHostTable::const_iterator it = hosts_.find(routing_id);
return it == hosts_.end() ? NULL : it->second;
@@ -202,6 +217,10 @@ WebSocketHostState WebSocketDispatcherHost::NotifyFailure(
return WEBSOCKET_HOST_DELETED;
}
+WebSocketHostState WebSocketDispatcherHost::BlobSendComplete(int routing_id) {
+ return SendOrDrop(new WebSocketMsg_BlobSendComplete(routing_id));
+}
+
WebSocketHostState WebSocketDispatcherHost::DoDropChannel(
int routing_id,
bool was_clean,

Powered by Google App Engine
This is Rietveld 408576698