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

Unified Diff: third_party/WebKit/Source/modules/websockets/WebSocketHandle.h

Issue 2224713002: Move WebSocketHandleImpl into Blink (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address review feedback except the location of websocket.mojom Created 4 years, 4 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: third_party/WebKit/Source/modules/websockets/WebSocketHandle.h
diff --git a/third_party/WebKit/public/platform/modules/websockets/WebSocketHandle.h b/third_party/WebKit/Source/modules/websockets/WebSocketHandle.h
similarity index 57%
rename from third_party/WebKit/public/platform/modules/websockets/WebSocketHandle.h
rename to third_party/WebKit/Source/modules/websockets/WebSocketHandle.h
index 189a9bf7c9b2acdc7e559e249f1622d2822acf55..f3368e546d2c793dbe13e5168df53440ebcb2ead 100644
--- a/third_party/WebKit/public/platform/modules/websockets/WebSocketHandle.h
+++ b/third_party/WebKit/Source/modules/websockets/WebSocketHandle.h
@@ -31,15 +31,16 @@
#ifndef WebSocketHandle_h
#define WebSocketHandle_h
-#include "public/platform/WebCommon.h"
-#include "public/platform/WebVector.h"
+#include "mojo/public/cpp/bindings/binding.h"
+#include "public/platform/modules/websockets/websocket.mojom-blink.h"
+#include "wtf/Forward.h"
namespace blink {
-class WebSecurityOrigin;
+class InterfaceProvider;
+class KURL;
+class SecurityOrigin;
class WebSocketHandleClient;
-class WebString;
-class WebURL;
// WebSocketHandle is an interface class designed to be a handle of WebSocket connection.
// WebSocketHandle will be used together with WebSocketHandleClient.
@@ -47,7 +48,7 @@ class WebURL;
// Once a WebSocketHandle is deleted there will be no notification to the corresponding WebSocketHandleClient.
// Once a WebSocketHandleClient receives DidClose, any method of the corresponding WebSocketHandle can't be called.
-class WebSocketHandle {
+class WebSocketHandle : public mojom::blink::WebSocketClient {
public:
enum MessageType {
MessageTypeContinuation,
@@ -55,12 +56,38 @@ public:
MessageTypeBinary,
};
- virtual ~WebSocketHandle() { }
+ WebSocketHandle();
+ virtual ~WebSocketHandle();
- virtual void connect(const WebURL&, const WebVector<WebString>& protocols, const WebSecurityOrigin&, const WebURL& first_party_for_cookies, const WebString& user_agent_override, WebSocketHandleClient*) = 0;
- virtual void send(bool fin, MessageType, const char* data, size_t /* size */) = 0;
- virtual void flowControl(int64_t quota) = 0;
- virtual void close(unsigned short code, const WebString& reason) = 0;
+ // This method may optionally be called before connect() to specify an
+ // InterfaceProvider to get a WebSocket instance. By default, connect() will
+ // use Platform::interfaceProvider().
+ void initialize(InterfaceProvider*);
+
+ virtual void connect(const KURL&, const Vector<String>& protocols, SecurityOrigin*, const KURL& firstPartyForCookies, const String& userAgentOverride, WebSocketHandleClient*);
+ virtual void send(bool fin, MessageType, const char* data, size_t);
+ virtual void flowControl(int64_t quota);
+ virtual void close(unsigned short code, const String& reason);
+
+private:
+
+ void disconnect();
+ void onConnectionError();
+
+ // mojom::blink::WebSocketClient methods:
+ void OnFailChannel(const String& reason) override;
+ void OnStartOpeningHandshake(mojom::blink::WebSocketHandshakeRequestPtr) override;
+ void OnFinishOpeningHandshake(mojom::blink::WebSocketHandshakeResponsePtr) override;
+ void OnAddChannelResponse(const String& selectedProtocol, const String& extensions) override;
+ void OnDataFrame(bool fin, mojom::blink::WebSocketMessageType, const Vector<uint8_t>& data) override;
+ void OnFlowControl(int64_t quota) override;
+ void OnDropChannel(bool wasClean, uint16_t code, const String& reason) override;
+ void OnClosingHandshake() override;
+
+ WebSocketHandleClient* m_client;
+
+ mojom::blink::WebSocketPtr m_websocket;
+ mojo::Binding<mojom::blink::WebSocketClient> m_clientBinding;
};
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698