summaryrefslogtreecommitdiff
path: root/Source/WebKit2/UIProcess/InspectorServer
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@lorry>2017-06-27 06:07:23 +0000
committerLorry Tar Creator <lorry-tar-importer@lorry>2017-06-27 06:07:23 +0000
commit1bf1084f2b10c3b47fd1a588d85d21ed0eb41d0c (patch)
tree46dcd36c86e7fbc6e5df36deb463b33e9967a6f7 /Source/WebKit2/UIProcess/InspectorServer
parent32761a6cee1d0dee366b885b7b9c777e67885688 (diff)
downloadWebKitGtk-tarball-master.tar.gz
Diffstat (limited to 'Source/WebKit2/UIProcess/InspectorServer')
-rw-r--r--Source/WebKit2/UIProcess/InspectorServer/HTTPRequest.cpp5
-rw-r--r--Source/WebKit2/UIProcess/InspectorServer/HTTPRequest.h4
-rw-r--r--Source/WebKit2/UIProcess/InspectorServer/WebInspectorServer.cpp11
-rw-r--r--Source/WebKit2/UIProcess/InspectorServer/WebInspectorServer.h21
-rw-r--r--Source/WebKit2/UIProcess/InspectorServer/WebSocketServer.cpp9
-rw-r--r--Source/WebKit2/UIProcess/InspectorServer/WebSocketServer.h8
-rw-r--r--Source/WebKit2/UIProcess/InspectorServer/WebSocketServerConnection.cpp36
-rw-r--r--Source/WebKit2/UIProcess/InspectorServer/WebSocketServerConnection.h32
-rw-r--r--Source/WebKit2/UIProcess/InspectorServer/gtk/WebInspectorServerGtk.cpp4
-rw-r--r--Source/WebKit2/UIProcess/InspectorServer/soup/WebSocketServerSoup.cpp11
10 files changed, 65 insertions, 76 deletions
diff --git a/Source/WebKit2/UIProcess/InspectorServer/HTTPRequest.cpp b/Source/WebKit2/UIProcess/InspectorServer/HTTPRequest.cpp
index c026d7744..a88f4e027 100644
--- a/Source/WebKit2/UIProcess/InspectorServer/HTTPRequest.cpp
+++ b/Source/WebKit2/UIProcess/InspectorServer/HTTPRequest.cpp
@@ -27,6 +27,7 @@
#include "HTTPRequest.h"
#include <wtf/text/CString.h>
+#include <wtf/text/StringView.h>
using namespace WebCore;
@@ -82,7 +83,7 @@ size_t HTTPRequest::parseHeaders(const char* data, size_t length, String& failur
{
const char* p = data;
const char* end = data + length;
- AtomicString name;
+ StringView name;
String value;
for (; p < data + length; p++) {
size_t consumedLength = parseHTTPHeader(p, end - p, failureReason, name, value);
@@ -91,7 +92,7 @@ size_t HTTPRequest::parseHeaders(const char* data, size_t length, String& failur
p += consumedLength;
if (name.isEmpty())
break;
- m_headerFields.add(name, value);
+ m_headerFields.add(name.toString(), value);
}
// If we got here and "name" is empty, it means the headers are valid and ended with a
diff --git a/Source/WebKit2/UIProcess/InspectorServer/HTTPRequest.h b/Source/WebKit2/UIProcess/InspectorServer/HTTPRequest.h
index ecda14e99..ffb317ec8 100644
--- a/Source/WebKit2/UIProcess/InspectorServer/HTTPRequest.h
+++ b/Source/WebKit2/UIProcess/InspectorServer/HTTPRequest.h
@@ -43,8 +43,8 @@ namespace WebKit {
class HTTPRequest : public RefCounted<HTTPRequest> {
public:
- static PassRefPtr<HTTPRequest> create() { return adoptRef(new HTTPRequest()); }
- static PassRefPtr<HTTPRequest> create(const String& requestMethod, const WebCore::URL& url, WebCore::HTTPVersion version) { return adoptRef(new HTTPRequest(requestMethod, url, version)); }
+ static Ref<HTTPRequest> create() { return adoptRef(*new HTTPRequest()); }
+ static Ref<HTTPRequest> create(const String& requestMethod, const WebCore::URL& url, WebCore::HTTPVersion version) { return adoptRef(*new HTTPRequest(requestMethod, url, version)); }
static PassRefPtr<HTTPRequest> parseHTTPRequestFromBuffer(const char* data, size_t length, String& failureReason);
virtual ~HTTPRequest();
diff --git a/Source/WebKit2/UIProcess/InspectorServer/WebInspectorServer.cpp b/Source/WebKit2/UIProcess/InspectorServer/WebInspectorServer.cpp
index 8f689ac67..663877485 100644
--- a/Source/WebKit2/UIProcess/InspectorServer/WebInspectorServer.cpp
+++ b/Source/WebKit2/UIProcess/InspectorServer/WebInspectorServer.cpp
@@ -30,6 +30,7 @@
#include "WebInspectorServer.h"
+#include "HTTPHeaderNames.h"
#include "HTTPRequest.h"
#include "WebInspectorProxy.h"
#include "WebSocketServerConnection.h"
@@ -50,7 +51,7 @@ static unsigned pageIdFromRequestPath(const String& path)
return number;
}
-WebInspectorServer& WebInspectorServer::shared()
+WebInspectorServer& WebInspectorServer::singleton()
{
static WebInspectorServer& server = *new WebInspectorServer;
return server;
@@ -124,10 +125,10 @@ void WebInspectorServer::didReceiveUnrecognizedHTTPRequest(WebSocketServerConnec
bool found = platformResourceForPath(path, body, contentType);
HTTPHeaderMap headerFields;
- headerFields.set("Connection", "close");
- headerFields.set("Content-Length", String::number(body.size()));
+ headerFields.set(HTTPHeaderName::Connection, "close");
+ headerFields.set(HTTPHeaderName::ContentLength, String::number(body.size()));
if (found)
- headerFields.set("Content-Type", contentType);
+ headerFields.set(HTTPHeaderName::ContentType, contentType);
// Send when ready and close immediately afterwards.
connection->sendHTTPResponseHeader(found ? 200 : 404, found ? "OK" : "Not Found", headerFields);
@@ -140,7 +141,7 @@ bool WebInspectorServer::didReceiveWebSocketUpgradeHTTPRequest(WebSocketServerCo
String path = request->url();
// NOTE: Keep this in sync with WebCore/inspector/front-end/inspector.js.
- DEFINE_STATIC_LOCAL(const String, inspectorWebSocketConnectionPathPrefix, (ASCIILiteral("/devtools/page/")));
+ DEPRECATED_DEFINE_STATIC_LOCAL(const String, inspectorWebSocketConnectionPathPrefix, (ASCIILiteral("/devtools/page/")));
// Unknown path requested.
if (!path.startsWith(inspectorWebSocketConnectionPathPrefix))
diff --git a/Source/WebKit2/UIProcess/InspectorServer/WebInspectorServer.h b/Source/WebKit2/UIProcess/InspectorServer/WebInspectorServer.h
index 19675b2b9..939a7e21b 100644
--- a/Source/WebKit2/UIProcess/InspectorServer/WebInspectorServer.h
+++ b/Source/WebKit2/UIProcess/InspectorServer/WebInspectorServer.h
@@ -24,8 +24,7 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef WebInspectorServer_h
-#define WebInspectorServer_h
+#pragma once
#if ENABLE(INSPECTOR_SERVER)
@@ -38,10 +37,10 @@ namespace WebKit {
class WebInspectorProxy;
-class WebInspectorServer : public WebSocketServer, public WebSocketServerClient {
+class WebInspectorServer final : public WebSocketServer, public WebSocketServerClient {
public:
typedef HashMap<unsigned, WebInspectorProxy*> ClientMap;
- static WebInspectorServer& shared();
+ static WebInspectorServer& singleton();
// Page registry to manage known pages.
int registerPage(WebInspectorProxy* client);
@@ -54,14 +53,14 @@ private:
~WebInspectorServer();
// WebSocketServerClient implementation. Events coming from remote connections.
- virtual void didReceiveUnrecognizedHTTPRequest(WebSocketServerConnection*, PassRefPtr<HTTPRequest>);
- virtual bool didReceiveWebSocketUpgradeHTTPRequest(WebSocketServerConnection*, PassRefPtr<HTTPRequest>);
- virtual void didEstablishWebSocketConnection(WebSocketServerConnection*, PassRefPtr<HTTPRequest>);
- virtual void didReceiveWebSocketMessage(WebSocketServerConnection*, const String& message);
- virtual void didCloseWebSocketConnection(WebSocketServerConnection*);
+ void didReceiveUnrecognizedHTTPRequest(WebSocketServerConnection*, PassRefPtr<HTTPRequest>) final;
+ bool didReceiveWebSocketUpgradeHTTPRequest(WebSocketServerConnection*, PassRefPtr<HTTPRequest>) final;
+ void didEstablishWebSocketConnection(WebSocketServerConnection*, PassRefPtr<HTTPRequest>) final;
+ void didReceiveWebSocketMessage(WebSocketServerConnection*, const String& message) final;
+ void didCloseWebSocketConnection(WebSocketServerConnection*) final;
bool platformResourceForPath(const String& path, Vector<char>& data, String& contentType);
-#if PLATFORM(GTK) || PLATFORM(EFL)
+#if PLATFORM(GTK)
void buildPageList(Vector<char>& data, String& contentType);
#endif
@@ -75,5 +74,3 @@ private:
}
#endif // ENABLE(INSPECTOR_SERVER)
-
-#endif // WebInspectorServer_h
diff --git a/Source/WebKit2/UIProcess/InspectorServer/WebSocketServer.cpp b/Source/WebKit2/UIProcess/InspectorServer/WebSocketServer.cpp
index a78835d38..c534b4fcb 100644
--- a/Source/WebKit2/UIProcess/InspectorServer/WebSocketServer.cpp
+++ b/Source/WebKit2/UIProcess/InspectorServer/WebSocketServer.cpp
@@ -32,7 +32,6 @@
#include "WebSocketServerConnection.h"
#include <WebCore/SocketStreamHandle.h>
-#include <wtf/PassOwnPtr.h>
using namespace WebCore;
@@ -78,20 +77,20 @@ void WebSocketServer::close()
m_bindAddress = String();
}
-void WebSocketServer::didAcceptConnection(PassOwnPtr<WebSocketServerConnection> connection)
+void WebSocketServer::didAcceptConnection(std::unique_ptr<WebSocketServerConnection> connection)
{
- m_connections.append(connection);
+ m_connections.append(WTFMove(connection));
}
void WebSocketServer::didCloseWebSocketServerConnection(WebSocketServerConnection* connection)
{
- Deque<OwnPtr<WebSocketServerConnection> >::iterator end = m_connections.end();
- for (Deque<OwnPtr<WebSocketServerConnection> >::iterator it = m_connections.begin(); it != end; ++it) {
+ for (auto it = m_connections.begin(), end = m_connections.end(); it != end; ++it) {
if (it->get() == connection) {
m_connections.remove(it);
return;
}
}
+
ASSERT_NOT_REACHED();
}
diff --git a/Source/WebKit2/UIProcess/InspectorServer/WebSocketServer.h b/Source/WebKit2/UIProcess/InspectorServer/WebSocketServer.h
index a331dda3f..2e227ef00 100644
--- a/Source/WebKit2/UIProcess/InspectorServer/WebSocketServer.h
+++ b/Source/WebKit2/UIProcess/InspectorServer/WebSocketServer.h
@@ -29,13 +29,13 @@
#if ENABLE(INSPECTOR_SERVER)
+#include <memory>
#include <wtf/Deque.h>
-#include <wtf/OwnPtr.h>
#include <wtf/text/WTFString.h>
#if USE(SOUP)
#include <gio/gio.h>
-#include <wtf/gobject/GRefPtr.h>
+#include <wtf/glib/GRefPtr.h>
#endif
namespace WebCore {
@@ -61,7 +61,7 @@ public:
void close();
WebSocketServerClient* client() const { return m_client; }
- void didAcceptConnection(PassOwnPtr<WebSocketServerConnection>);
+ void didAcceptConnection(std::unique_ptr<WebSocketServerConnection>);
private:
void didCloseWebSocketServerConnection(WebSocketServerConnection*);
@@ -71,7 +71,7 @@ private:
void platformClose();
ServerState m_state;
- Deque<OwnPtr<WebSocketServerConnection> > m_connections;
+ Deque<std::unique_ptr<WebSocketServerConnection>> m_connections;
WebSocketServerClient* m_client;
String m_bindAddress;
unsigned short m_port;
diff --git a/Source/WebKit2/UIProcess/InspectorServer/WebSocketServerConnection.cpp b/Source/WebKit2/UIProcess/InspectorServer/WebSocketServerConnection.cpp
index a33855546..7af854217 100644
--- a/Source/WebKit2/UIProcess/InspectorServer/WebSocketServerConnection.cpp
+++ b/Source/WebKit2/UIProcess/InspectorServer/WebSocketServerConnection.cpp
@@ -30,6 +30,7 @@
#include "WebSocketServerConnection.h"
+#include "HTTPHeaderNames.h"
#include "HTTPRequest.h"
#include "WebSocketServer.h"
#include "WebSocketServerClient.h"
@@ -46,11 +47,8 @@ using namespace WebCore;
namespace WebKit {
WebSocketServerConnection::WebSocketServerConnection(WebSocketServerClient* client, WebSocketServer* server)
- : m_identifier(0)
- , m_mode(HTTP)
- , m_server(server)
+ : m_server(server)
, m_client(client)
- , m_shutdownAfterSend(false)
{
}
@@ -59,17 +57,17 @@ WebSocketServerConnection::~WebSocketServerConnection()
shutdownNow();
}
-void WebSocketServerConnection::setSocketHandle(PassRefPtr<WebCore::SocketStreamHandle> socket)
+void WebSocketServerConnection::setSocketHandle(Ref<SocketStreamHandle>&& socket)
{
ASSERT(!m_socket);
- m_socket = socket;
+ m_socket = WTFMove(socket);
}
void WebSocketServerConnection::shutdownNow()
{
if (!m_socket)
return;
- RefPtr<SocketStreamHandle> socket = m_socket.release();
+ auto socket = WTFMove(m_socket);
socket->close();
m_shutdownAfterSend = false;
}
@@ -122,10 +120,10 @@ void WebSocketServerConnection::sendRawData(const char* data, size_t length)
m_socket->send(data, length);
}
-void WebSocketServerConnection::didCloseSocketStream(SocketStreamHandle*)
+void WebSocketServerConnection::didCloseSocketStream(SocketStreamHandle&)
{
// Destroy the SocketStreamHandle now to prevent closing an already closed socket later.
- m_socket.clear();
+ m_socket = nullptr;
// Web Socket Mode.
if (m_mode == WebSocket)
@@ -135,11 +133,12 @@ void WebSocketServerConnection::didCloseSocketStream(SocketStreamHandle*)
m_server->didCloseWebSocketServerConnection(this);
}
-void WebSocketServerConnection::didReceiveSocketStreamData(SocketStreamHandle*, const char* data, int length)
+void WebSocketServerConnection::didReceiveSocketStreamData(SocketStreamHandle&, const char* data, std::optional<size_t> length)
{
// Each didReceiveData call adds more data to our buffer.
// We clear the buffer when we have handled data from it.
- m_bufferedData.append(data, length);
+ if (length)
+ m_bufferedData.append(data, length.value());
switch (m_mode) {
case HTTP:
@@ -154,17 +153,12 @@ void WebSocketServerConnection::didReceiveSocketStreamData(SocketStreamHandle*,
}
}
-void WebSocketServerConnection::didUpdateBufferedAmount(WebCore::SocketStreamHandle*, size_t)
+void WebSocketServerConnection::didUpdateBufferedAmount(SocketStreamHandle&, size_t)
{
if (m_shutdownAfterSend && !m_socket->bufferedAmount())
shutdownNow();
}
-void WebSocketServerConnection::didFailSocketStream(SocketStreamHandle*, const SocketStreamError&)
-{
- // Possible read or write error.
-}
-
void WebSocketServerConnection::readHTTPMessage()
{
String failureReason;
@@ -177,7 +171,7 @@ void WebSocketServerConnection::readHTTPMessage()
// If this is a WebSocket request, perform the WebSocket Handshake.
const HTTPHeaderMap& headers = request->headerFields();
- String upgradeHeaderValue = headers.get("Upgrade");
+ String upgradeHeaderValue = headers.get(HTTPHeaderName::Upgrade);
if (upgradeHeaderValue == "websocket") {
upgradeToWebSocketServerConnection(request);
return;
@@ -206,10 +200,10 @@ void WebSocketServerConnection::upgradeToWebSocketServerConnection(PassRefPtr<HT
// Build and send the WebSocket handshake response.
const HTTPHeaderMap& requestHeaders = protectedRequest->headerFields();
- String accept = WebSocketHandshake::getExpectedWebSocketAccept(requestHeaders.get("Sec-WebSocket-Key"));
+ String accept = WebSocketHandshake::getExpectedWebSocketAccept(requestHeaders.get(HTTPHeaderName::SecWebSocketKey));
HTTPHeaderMap responseHeaders;
- responseHeaders.add("Upgrade", requestHeaders.get("Upgrade"));
- responseHeaders.add("Connection", requestHeaders.get("Connection"));
+ responseHeaders.add("Upgrade", requestHeaders.get(HTTPHeaderName::Upgrade));
+ responseHeaders.add("Connection", requestHeaders.get(HTTPHeaderName::Connection));
responseHeaders.add("Sec-WebSocket-Accept", accept);
sendHTTPResponseHeader(101, "WebSocket Protocol Handshake", responseHeaders);
diff --git a/Source/WebKit2/UIProcess/InspectorServer/WebSocketServerConnection.h b/Source/WebKit2/UIProcess/InspectorServer/WebSocketServerConnection.h
index 13c551644..1ead501a9 100644
--- a/Source/WebKit2/UIProcess/InspectorServer/WebSocketServerConnection.h
+++ b/Source/WebKit2/UIProcess/InspectorServer/WebSocketServerConnection.h
@@ -24,8 +24,7 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef WebSocketServerConnection_h
-#define WebSocketServerConnection_h
+#pragma once
#if ENABLE(INSPECTOR_SERVER)
@@ -37,6 +36,7 @@
namespace WebCore {
class HTTPHeaderMap;
+class SocketStreamError;
class SocketStreamHandle;
}
@@ -46,7 +46,7 @@ class HTTPRequest;
class WebSocketServer;
class WebSocketServerClient;
-class WebSocketServerConnection : public WebCore::SocketStreamHandleClient {
+class WebSocketServerConnection final : public WebCore::SocketStreamHandleClient {
public:
enum WebSocketServerMode { HTTP, WebSocket };
WebSocketServerConnection(WebSocketServerClient*, WebSocketServer*);
@@ -54,7 +54,7 @@ public:
unsigned identifier() const { return m_identifier; }
void setIdentifier(unsigned id) { m_identifier = id; }
- void setSocketHandle(PassRefPtr<WebCore::SocketStreamHandle>);
+ void setSocketHandle(Ref<WebCore::SocketStreamHandle>&&);
// Sending data over the connection.
void sendWebSocketMessage(const String& message);
@@ -65,13 +65,14 @@ public:
void shutdownNow();
void shutdownAfterSendOrNow();
+private:
// SocketStreamHandleClient implementation.
- virtual void didCloseSocketStream(WebCore::SocketStreamHandle*);
- virtual void didReceiveSocketStreamData(WebCore::SocketStreamHandle*, const char* data, int length);
- virtual void didUpdateBufferedAmount(WebCore::SocketStreamHandle*, size_t bufferedAmount);
- virtual void didFailSocketStream(WebCore::SocketStreamHandle*, const WebCore::SocketStreamError&);
+ void didOpenSocketStream(WebCore::SocketStreamHandle&) final { }
+ void didCloseSocketStream(WebCore::SocketStreamHandle&) final;
+ void didReceiveSocketStreamData(WebCore::SocketStreamHandle&, const char* data, std::optional<size_t> length) final;
+ void didUpdateBufferedAmount(WebCore::SocketStreamHandle&, size_t bufferedAmount) final;
+ void didFailSocketStream(WebCore::SocketStreamHandle&, const WebCore::SocketStreamError&) final { }
-private:
// HTTP Mode.
void readHTTPMessage();
@@ -80,18 +81,15 @@ private:
void readWebSocketFrames();
bool readWebSocketFrame();
-protected:
- unsigned m_identifier;
+ unsigned m_identifier { 0 };
Vector<char> m_bufferedData;
- WebSocketServerMode m_mode;
+ WebSocketServerMode m_mode { HTTP };
RefPtr<WebCore::SocketStreamHandle> m_socket;
- WebSocketServer* m_server;
- WebSocketServerClient* m_client;
- bool m_shutdownAfterSend;
+ WebSocketServer* m_server { nullptr };
+ WebSocketServerClient* m_client { nullptr };
+ bool m_shutdownAfterSend { false };
};
}
#endif // ENABLE(INSPECTOR_SERVER)
-
-#endif // WebSocketServerConnection_h
diff --git a/Source/WebKit2/UIProcess/InspectorServer/gtk/WebInspectorServerGtk.cpp b/Source/WebKit2/UIProcess/InspectorServer/gtk/WebInspectorServerGtk.cpp
index 5011666b3..c5393a47d 100644
--- a/Source/WebKit2/UIProcess/InspectorServer/gtk/WebInspectorServerGtk.cpp
+++ b/Source/WebKit2/UIProcess/InspectorServer/gtk/WebInspectorServerGtk.cpp
@@ -33,7 +33,7 @@
#include <WebCore/MIMETypeRegistry.h>
#include <gio/gio.h>
#include <glib.h>
-#include <wtf/gobject/GUniquePtr.h>
+#include <wtf/glib/GUniquePtr.h>
#include <wtf/text/CString.h>
#include <wtf/text/StringBuilder.h>
#include <wtf/text/StringConcatenate.h>
@@ -94,7 +94,7 @@ void WebInspectorServer::buildPageList(Vector<char>& data, String& contentType)
builder.appendLiteral("[ ");
ClientMap::iterator end = m_clientMap.end();
for (ClientMap::iterator it = m_clientMap.begin(); it != end; ++it) {
- WebPageProxy* webPage = it->value->page();
+ WebPageProxy* webPage = it->value->inspectedPage();
if (it != m_clientMap.begin())
builder.appendLiteral(", ");
builder.appendLiteral("{ \"id\": ");
diff --git a/Source/WebKit2/UIProcess/InspectorServer/soup/WebSocketServerSoup.cpp b/Source/WebKit2/UIProcess/InspectorServer/soup/WebSocketServerSoup.cpp
index f3ad13ac2..bf3e019e6 100644
--- a/Source/WebKit2/UIProcess/InspectorServer/soup/WebSocketServerSoup.cpp
+++ b/Source/WebKit2/UIProcess/InspectorServer/soup/WebSocketServerSoup.cpp
@@ -28,11 +28,10 @@
#include "Logging.h"
#include "WebSocketServerConnection.h"
-#include <WebCore/SocketStreamHandle.h>
+#include <WebCore/SocketStreamHandleImpl.h>
#include <gio/gio.h>
#include <glib.h>
-#include <wtf/PassOwnPtr.h>
-#include <wtf/gobject/GUniquePtr.h>
+#include <wtf/glib/GUniquePtr.h>
#include <wtf/text/CString.h>
using namespace WebCore;
@@ -47,9 +46,9 @@ static gboolean connectionCallback(GSocketService* /*service*/, GSocketConnectio
LOG(InspectorServer, "New Connection from %s:%d.", addressString.get(), g_inet_socket_address_get_port(G_INET_SOCKET_ADDRESS(socketAddress.get())));
#endif
- OwnPtr<WebSocketServerConnection> webSocketConnection = adoptPtr(new WebSocketServerConnection(server->client(), server));
- webSocketConnection->setSocketHandle(SocketStreamHandle::create(connection, webSocketConnection.get()));
- server->didAcceptConnection(webSocketConnection.release());
+ auto webSocketConnection = std::make_unique<WebSocketServerConnection>(server->client(), server);
+ webSocketConnection->setSocketHandle(SocketStreamHandleImpl::create(connection, *webSocketConnection));
+ server->didAcceptConnection(WTFMove(webSocketConnection));
return TRUE;
}