Commit c6ff10f2 authored by yhirano@chromium.org's avatar yhirano@chromium.org

Add WebSerializedOrigin to represent a serialized Web Origin.

Use it in WebSocket.

BUG=339373
R=tyoshino, abarth

Review URL: https://codereview.chromium.org/201593002

git-svn-id: svn://svn.chromium.org/blink/trunk@169591 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent 49288012
......@@ -43,6 +43,7 @@
#include "platform/network/WebSocketHandshakeRequest.h"
#include "platform/weborigin/SecurityOrigin.h"
#include "public/platform/Platform.h"
#include "public/platform/WebSerializedOrigin.h"
#include "public/platform/WebSocketHandshakeRequestInfo.h"
#include "public/platform/WebSocketHandshakeResponseInfo.h"
#include "public/platform/WebString.h"
......@@ -136,8 +137,7 @@ void NewWebSocketChannelImpl::connect(const KURL& url, const String& protocol)
for (size_t i = 0; i < protocols.size(); ++i) {
webProtocols[i] = protocols[i];
}
String origin = executionContext()->securityOrigin()->toString();
m_handle->connect(url, webProtocols, origin, this);
m_handle->connect(url, webProtocols, *executionContext()->securityOrigin(), this);
flowControlIfNecessary();
if (m_identifier)
InspectorInstrumentation::didCreateWebSocket(document(), m_identifier, url, protocol);
......
......@@ -295,6 +295,7 @@
'exported/WebScrollbarThemeClientImpl.h',
'exported/WebScrollbarThemeGeometryNative.cpp',
'exported/WebScrollbarThemeGeometryNative.h',
'exported/WebSerializedOrigin.cpp',
'exported/WebServiceWorkerResponse.cpp',
'exported/WebSocketHandshakeRequestInfo.cpp',
'exported/WebSocketHandshakeResponseInfo.cpp',
......
// 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 "config.h"
#include "public/platform/WebSerializedOrigin.h"
#include "platform/weborigin/SecurityOrigin.h"
namespace blink {
WebSerializedOrigin::WebSerializedOrigin(const WebCore::SecurityOrigin& origin)
: m_string(origin.toString())
{
}
} // namespace blink
// 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.
#ifndef WebSerializedOrigin_h
#define WebSerializedOrigin_h
#include "WebString.h"
#if INSIDE_BLINK
namespace WebCore { class SecurityOrigin; }
#else
#include <url/origin.h>
#endif
namespace blink {
// WebSerializedOrigin represents a serialized Web Origin specified in RFC6454.
class WebSerializedOrigin {
public:
WebSerializedOrigin() : m_string("null") { }
#if INSIDE_BLINK
BLINK_PLATFORM_EXPORT WebSerializedOrigin(const WebCore::SecurityOrigin&);
#else
WebSerializedOrigin(const url::Origin& origin) : m_string(WebString::fromUTF8(origin.string())) { }
operator url::Origin() const { return url::Origin(m_string.utf8()); }
#endif
const WebString& string() const
{
return m_string;
}
private:
const WebString m_string;
};
} // namespace blink
#endif // #ifndef SerializedOrigin_h
......@@ -31,8 +31,9 @@
#ifndef WebSocketHandle_h
#define WebSocketHandle_h
#include "WebCommon.h"
#include "WebVector.h"
#include "public/platform/WebCommon.h"
#include "public/platform/WebSerializedOrigin.h"
#include "public/platform/WebVector.h"
namespace blink {
......@@ -58,7 +59,16 @@ public:
virtual ~WebSocketHandle() { }
virtual void connect(const WebURL& /* url */, const WebVector<WebString>& protocols, const WebString& origin, WebSocketHandleClient*) = 0;
virtual void connect(const WebURL& url, const WebVector<WebString>& protocols, const WebString& origin, WebSocketHandleClient* client)
{
// This method is not pure-virtual to avoid a compile error during
// the transition from connect(..., WebString, ...) to
// connect(..., WebSerializedOrigin, ...).
}
virtual void connect(const WebURL& url, const WebVector<WebString>& protocols, const WebSerializedOrigin& origin, WebSocketHandleClient* client)
{
this->connect(url, protocols, origin.string(), client);
}
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;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment