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

Unified Diff: mojo/services/network/web_socket_impl.cc

Issue 1873463003: Remove mojo network service. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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
« no previous file with comments | « mojo/services/network/web_socket_impl.h ('k') | testing/buildbot/chromium.linux.json » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mojo/services/network/web_socket_impl.cc
diff --git a/mojo/services/network/web_socket_impl.cc b/mojo/services/network/web_socket_impl.cc
deleted file mode 100644
index 2d89149d49748efa299523e7afa35be8f6b9fe98..0000000000000000000000000000000000000000
--- a/mojo/services/network/web_socket_impl.cc
+++ /dev/null
@@ -1,242 +0,0 @@
-// Copyright 2014 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.
-
-#include "mojo/services/network/web_socket_impl.h"
-
-#include <stdint.h>
-
-#include <utility>
-
-#include "base/logging.h"
-#include "base/macros.h"
-#include "base/message_loop/message_loop.h"
-#include "mojo/message_pump/handle_watcher.h"
-#include "mojo/services/network/network_context.h"
-#include "mojo/services/network/public/cpp/web_socket_read_queue.h"
-#include "mojo/services/network/public/cpp/web_socket_write_queue.h"
-#include "net/websockets/websocket_channel.h"
-#include "net/websockets/websocket_errors.h"
-#include "net/websockets/websocket_event_interface.h"
-#include "net/websockets/websocket_frame.h" // for WebSocketFrameHeader::OpCode
-#include "net/websockets/websocket_handshake_request_info.h"
-#include "net/websockets/websocket_handshake_response_info.h"
-#include "url/origin.h"
-
-namespace mojo {
-
-template <>
-struct TypeConverter<net::WebSocketFrameHeader::OpCode,
- WebSocket::MessageType> {
- static net::WebSocketFrameHeader::OpCode Convert(
- WebSocket::MessageType type) {
- DCHECK(type == WebSocket::MessageType::CONTINUATION ||
- type == WebSocket::MessageType::TEXT ||
- type == WebSocket::MessageType::BINARY);
- typedef net::WebSocketFrameHeader::OpCode OpCode;
- // These compile asserts verify that the same underlying values are used for
- // both types, so we can simply cast between them.
- static_assert(static_cast<OpCode>(WebSocket::MessageType::CONTINUATION) ==
- net::WebSocketFrameHeader::kOpCodeContinuation,
- "enum values must match for opcode continuation");
- static_assert(static_cast<OpCode>(WebSocket::MessageType::TEXT) ==
- net::WebSocketFrameHeader::kOpCodeText,
- "enum values must match for opcode text");
- static_assert(static_cast<OpCode>(WebSocket::MessageType::BINARY) ==
- net::WebSocketFrameHeader::kOpCodeBinary,
- "enum values must match for opcode binary");
- return static_cast<OpCode>(type);
- }
-};
-
-template <>
-struct TypeConverter<WebSocket::MessageType,
- net::WebSocketFrameHeader::OpCode> {
- static WebSocket::MessageType Convert(
- net::WebSocketFrameHeader::OpCode type) {
- DCHECK(type == net::WebSocketFrameHeader::kOpCodeContinuation ||
- type == net::WebSocketFrameHeader::kOpCodeText ||
- type == net::WebSocketFrameHeader::kOpCodeBinary);
- return static_cast<WebSocket::MessageType>(type);
- }
-};
-
-namespace {
-
-typedef net::WebSocketEventInterface::ChannelState ChannelState;
-
-struct WebSocketEventHandler : public net::WebSocketEventInterface {
- public:
- WebSocketEventHandler(WebSocketClientPtr client)
- : client_(std::move(client)) {}
- ~WebSocketEventHandler() override {}
-
- private:
- // net::WebSocketEventInterface methods:
- ChannelState OnAddChannelResponse(const std::string& selected_subprotocol,
- const std::string& extensions) override;
- ChannelState OnDataFrame(bool fin,
- WebSocketMessageType type,
- const std::vector<char>& data) override;
- ChannelState OnClosingHandshake() override;
- ChannelState OnFlowControl(int64_t quota) override;
- ChannelState OnDropChannel(bool was_clean,
- uint16_t code,
- const std::string& reason) override;
- ChannelState OnFailChannel(const std::string& message) override;
- ChannelState OnStartOpeningHandshake(
- scoped_ptr<net::WebSocketHandshakeRequestInfo> request) override;
- ChannelState OnFinishOpeningHandshake(
- scoped_ptr<net::WebSocketHandshakeResponseInfo> response) override;
- ChannelState OnSSLCertificateError(
- scoped_ptr<net::WebSocketEventInterface::SSLErrorCallbacks> callbacks,
- const GURL& url,
- const net::SSLInfo& ssl_info,
- bool fatal) override;
-
- // Called once we've written to |receive_stream_|.
- void DidWriteToReceiveStream(bool fin,
- net::WebSocketFrameHeader::OpCode type,
- uint32_t num_bytes,
- const char* buffer);
- WebSocketClientPtr client_;
- ScopedDataPipeProducerHandle receive_stream_;
- scoped_ptr<WebSocketWriteQueue> write_queue_;
-
- DISALLOW_COPY_AND_ASSIGN(WebSocketEventHandler);
-};
-
-ChannelState WebSocketEventHandler::OnAddChannelResponse(
- const std::string& selected_protocol,
- const std::string& extensions) {
- DataPipe data_pipe;
- receive_stream_ = std::move(data_pipe.producer_handle);
- write_queue_.reset(new WebSocketWriteQueue(receive_stream_.get()));
- client_->DidConnect(selected_protocol, extensions,
- std::move(data_pipe.consumer_handle));
- return WebSocketEventInterface::CHANNEL_ALIVE;
-}
-
-ChannelState WebSocketEventHandler::OnDataFrame(
- bool fin,
- net::WebSocketFrameHeader::OpCode type,
- const std::vector<char>& data) {
- uint32_t size = static_cast<uint32_t>(data.size());
- write_queue_->Write(
- &data[0], size,
- base::Bind(&WebSocketEventHandler::DidWriteToReceiveStream,
- base::Unretained(this),
- fin, type, size));
- return WebSocketEventInterface::CHANNEL_ALIVE;
-}
-
-ChannelState WebSocketEventHandler::OnClosingHandshake() {
- return WebSocketEventInterface::CHANNEL_ALIVE;
-}
-
-ChannelState WebSocketEventHandler::OnFlowControl(int64_t quota) {
- client_->DidReceiveFlowControl(quota);
- return WebSocketEventInterface::CHANNEL_ALIVE;
-}
-
-ChannelState WebSocketEventHandler::OnDropChannel(bool was_clean,
- uint16_t code,
- const std::string& reason) {
- client_->DidClose(was_clean, code, reason);
- return WebSocketEventInterface::CHANNEL_DELETED;
-}
-
-ChannelState WebSocketEventHandler::OnFailChannel(const std::string& message) {
- client_->DidFail(message);
- return WebSocketEventInterface::CHANNEL_DELETED;
-}
-
-ChannelState WebSocketEventHandler::OnStartOpeningHandshake(
- scoped_ptr<net::WebSocketHandshakeRequestInfo> request) {
- return WebSocketEventInterface::CHANNEL_ALIVE;
-}
-
-ChannelState WebSocketEventHandler::OnFinishOpeningHandshake(
- scoped_ptr<net::WebSocketHandshakeResponseInfo> response) {
- return WebSocketEventInterface::CHANNEL_ALIVE;
-}
-
-ChannelState WebSocketEventHandler::OnSSLCertificateError(
- scoped_ptr<net::WebSocketEventInterface::SSLErrorCallbacks> callbacks,
- const GURL& url,
- const net::SSLInfo& ssl_info,
- bool fatal) {
- client_->DidFail("SSL Error");
- return WebSocketEventInterface::CHANNEL_DELETED;
-}
-
-void WebSocketEventHandler::DidWriteToReceiveStream(
- bool fin,
- net::WebSocketFrameHeader::OpCode type,
- uint32_t num_bytes,
- const char* buffer) {
- client_->DidReceiveData(
- fin, ConvertTo<WebSocket::MessageType>(type), num_bytes);
-}
-
-} // namespace mojo
-
-WebSocketImpl::WebSocketImpl(NetworkContext* context,
- scoped_ptr<mojo::MessageLoopRef> app_refcount,
- InterfaceRequest<WebSocket> request)
- : context_(context),
- app_refcount_(std::move(app_refcount)),
- binding_(this, std::move(request)) {}
-
-WebSocketImpl::~WebSocketImpl() {
-}
-
-void WebSocketImpl::Connect(const String& url,
- Array<String> protocols,
- const String& origin,
- ScopedDataPipeConsumerHandle send_stream,
- WebSocketClientPtr client) {
- DCHECK(!channel_);
- send_stream_ = std::move(send_stream);
- read_queue_.reset(new WebSocketReadQueue(send_stream_.get()));
- scoped_ptr<net::WebSocketEventInterface> event_interface(
- new WebSocketEventHandler(std::move(client)));
- channel_.reset(new net::WebSocketChannel(std::move(event_interface),
- context_->url_request_context()));
- channel_->SendAddChannelRequest(GURL(url.get()),
- protocols.To<std::vector<std::string>>(),
- url::Origin(GURL(origin.get())));
-}
-
-void WebSocketImpl::Send(bool fin,
- WebSocket::MessageType type,
- uint32_t num_bytes) {
- DCHECK(channel_);
- read_queue_->Read(num_bytes,
- base::Bind(&WebSocketImpl::DidReadFromSendStream,
- base::Unretained(this),
- fin, type, num_bytes));
-}
-
-void WebSocketImpl::FlowControl(int64_t quota) {
- DCHECK(channel_);
- channel_->SendFlowControl(quota);
-}
-
-void WebSocketImpl::Close(uint16_t code, const String& reason) {
- DCHECK(channel_);
- channel_->StartClosingHandshake(code, reason);
-}
-
-void WebSocketImpl::DidReadFromSendStream(bool fin,
- WebSocket::MessageType type,
- uint32_t num_bytes,
- const char* data) {
- std::vector<char> buffer(num_bytes);
- memcpy(&buffer[0], data, num_bytes);
- DCHECK(channel_);
- channel_->SendFrame(
- fin, ConvertTo<net::WebSocketFrameHeader::OpCode>(type), buffer);
-}
-
-} // namespace mojo
« no previous file with comments | « mojo/services/network/web_socket_impl.h ('k') | testing/buildbot/chromium.linux.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698