summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoryhirano@chromium.org <yhirano@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-24 04:49:23 +0000
committeryhirano@chromium.org <yhirano@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-24 04:49:23 +0000
commitb7b2c9d0dc5f35c9d0796dc78e6993274cfe4110 (patch)
tree37d42acb1282e4ebb1ef5ddebc3cdb98e43556ca
parente10fbf1a880c936bee0ad4fff1daf4441794790a (diff)
downloadchromium_src-b7b2c9d0dc5f35c9d0796dc78e6993274cfe4110.zip
chromium_src-b7b2c9d0dc5f35c9d0796dc78e6993274cfe4110.tar.gz
chromium_src-b7b2c9d0dc5f35c9d0796dc78e6993274cfe4110.tar.bz2
[WebSocket] Fix and enable flaky browser test.
Fix and enable WebSocketBrowserTest.SecureWebSocketSplitRecords because Updating pywebsocket fixes the flakiness. BUG=176867 R=tyoshino Review URL: https://codereview.chromium.org/205963002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@258874 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--DEPS2
-rw-r--r--chrome/browser/net/websocket_browsertest.cc10
-rw-r--r--net/data/websocket/close-with-split-packet_wsh.py11
-rw-r--r--net/data/websocket/split_packet_check.html2
-rwxr-xr-xnet/tools/testserver/testserver.py5
5 files changed, 11 insertions, 19 deletions
diff --git a/DEPS b/DEPS
index 7c77192..b41cb0b 100644
--- a/DEPS
+++ b/DEPS
@@ -285,7 +285,7 @@ deps = {
(Var("googlecode_url") % "web-page-replay") + "/trunk@544",
"src/third_party/pywebsocket/src":
- (Var("googlecode_url") % "pywebsocket") + "/trunk/src@662",
+ (Var("googlecode_url") % "pywebsocket") + "/trunk/src@790",
"src/third_party/opus/src":
"/trunk/deps/third_party/opus@256783",
diff --git a/chrome/browser/net/websocket_browsertest.cc b/chrome/browser/net/websocket_browsertest.cc
index 27bf3f9..58605de 100644
--- a/chrome/browser/net/websocket_browsertest.cc
+++ b/chrome/browser/net/websocket_browsertest.cc
@@ -60,15 +60,7 @@ IN_PROC_BROWSER_TEST_F(WebSocketBrowserTest, WebSocketSplitSegments) {
EXPECT_TRUE(EqualsASCII(result, "PASS"));
}
-// Test that the browser can handle a WebSocket frame split into multiple SSL
-// records. This test is flaky on Linux; see http://crbug.com/176867.
-#if defined(OS_LINUX)
-#define MAYBE_SecureWebSocketSplitRecords DISABLED_SecureWebSocketSplitRecords
-#else
-#define MAYBE_SecureWebSocketSplitRecords SecureWebSocketSplitRecords
-#endif
-IN_PROC_BROWSER_TEST_F(WebSocketBrowserTest,
- MAYBE_SecureWebSocketSplitRecords) {
+IN_PROC_BROWSER_TEST_F(WebSocketBrowserTest, SecureWebSocketSplitRecords) {
// Launch a secure WebSocket server.
ASSERT_TRUE(wss_server_.Start());
diff --git a/net/data/websocket/close-with-split-packet_wsh.py b/net/data/websocket/close-with-split-packet_wsh.py
index d5185c4..3bd5b58 100644
--- a/net/data/websocket/close-with-split-packet_wsh.py
+++ b/net/data/websocket/close-with-split-packet_wsh.py
@@ -13,17 +13,12 @@ def web_socket_do_extra_handshake(_request):
def web_socket_transfer_data(request):
- line = request.ws_stream.receive_message()
- if line is None:
- return
- if isinstance(line, unicode):
- request.ws_stream.send_message(line, binary=False)
- else:
- request.ws_stream.send_message(line, binary=True)
+ # Just waiting...
+ request.ws_stream.receive_message()
def web_socket_passive_closing_handshake(request):
- code = struct.pack('!H', 1000)
+ code = struct.pack('!H', 3004)
packet = stream.create_close_frame(code + 'split test'.encode('utf-8'))
request.connection.write(packet[:1])
request.connection.write(packet[1:])
diff --git a/net/data/websocket/split_packet_check.html b/net/data/websocket/split_packet_check.html
index 8e273ec..a7f4c36 100644
--- a/net/data/websocket/split_packet_check.html
+++ b/net/data/websocket/split_packet_check.html
@@ -26,7 +26,7 @@ ws.onopen = function()
ws.onclose = function(event)
{
// Check wasClean, then set proper title.
- if (event.wasClean)
+ if (event.wasClean && event.code === 3004 && event.reason === 'split test')
document.title = 'PASS';
else
document.title = 'FAIL';
diff --git a/net/tools/testserver/testserver.py b/net/tools/testserver/testserver.py
index 0a1f59b..13aafcd 100755
--- a/net/tools/testserver/testserver.py
+++ b/net/tools/testserver/testserver.py
@@ -27,6 +27,7 @@ import re
import select
import socket
import SocketServer
+import ssl
import struct
import sys
import threading
@@ -51,7 +52,10 @@ import tlslite.api
# Insert at the beginning of the path, we want this to be used
# unconditionally.
sys.path.insert(0, os.path.join(ROOT_DIR, 'third_party', 'pywebsocket', 'src'))
+import mod_pywebsocket.standalone
from mod_pywebsocket.standalone import WebSocketServer
+# import manually
+mod_pywebsocket.standalone.ssl = ssl
SERVER_HTTP = 0
SERVER_FTP = 1
@@ -84,6 +88,7 @@ class WebSocketOptions:
self.certificate = None
self.tls_client_auth = False
self.tls_client_ca = None
+ self.tls_module = 'ssl'
self.use_basic_auth = False