summaryrefslogtreecommitdiffstats
path: root/testing/mochitest/pywebsocket3/README-MOZILLA
diff options
context:
space:
mode:
Diffstat (limited to 'testing/mochitest/pywebsocket3/README-MOZILLA')
-rw-r--r--testing/mochitest/pywebsocket3/README-MOZILLA74
1 files changed, 74 insertions, 0 deletions
diff --git a/testing/mochitest/pywebsocket3/README-MOZILLA b/testing/mochitest/pywebsocket3/README-MOZILLA
new file mode 100644
index 0000000000..e4d3960193
--- /dev/null
+++ b/testing/mochitest/pywebsocket3/README-MOZILLA
@@ -0,0 +1,74 @@
+This pywebsocket code is mostly unchanged from the source at
+
+ https://github.com/GoogleChromeLabs/pywebsocket3
+
+--------------------------------------------------------------------------------
+STEPS TO UPDATE MOZILLA TO NEWER PYWEBSOCKET VERSION
+--------------------------------------------------------------------------------
+- Get new pywebsocket checkout from googlecode (into, for instance, 'src')
+
+ git clone https://github.com/GoogleChromeLabs/pywebsocket3 pywebsocket-read-only
+ cp -r pywebsocket-read-only/mod_pywebsocket testing/mochitest/pywebsocket3
+
+- hg add/rm appropriate files, and add/remove them from
+ testing/mochitest/moz.build
+
+- We need to apply the patch to hybi.py that makes HSTS work: (attached at end
+ of this README)
+
+- Test and make sure the code works:
+
+ mach mochitest dom/websocket/tests
+
+- If this doesn't take a look at the pywebsocket server log,
+ $OBJDIR/_tests/testing/mochitest/websock.log
+
+--------------------------------------------------------------------------------
+PATCH TO hybi.py for HSTS support:
+
+
+diff --git a/testing/mochitest/pywebsocket3/mod_pywebsocket/handshake/hybi.py b/testing/mochitest/pywebsocket3/mod_pywebsocket/handshake/hybi.py
+--- a/testing/mochitest/pywebsocket3/mod_pywebsocket/handshake/hybi.py
++++ b/testing/mochitest/pywebsocket3/mod_pywebsocket/handshake/hybi.py
+@@ -273,16 +273,19 @@ class Handshaker(object):
+ status=common.HTTP_STATUS_BAD_REQUEST)
+ raise VersionException('Unsupported version %r for header %s' %
+ (version, common.SEC_WEBSOCKET_VERSION_HEADER),
+ supported_versions=', '.join(
+ map(str, _SUPPORTED_VERSIONS)))
+
+ def _set_protocol(self):
+ self._request.ws_protocol = None
++ # MOZILLA
++ self._request.sts = None
++ # /MOZILLA
+
+ protocol_header = self._request.headers_in.get(
+ common.SEC_WEBSOCKET_PROTOCOL_HEADER)
+
+ if protocol_header is None:
+ self._request.ws_requested_protocols = None
+ return
+
+@@ -371,16 +374,21 @@ class Handshaker(object):
+ format_header(common.SEC_WEBSOCKET_PROTOCOL_HEADER,
+ self._request.ws_protocol))
+ if (self._request.ws_extensions is not None
+ and len(self._request.ws_extensions) != 0):
+ response.append(
+ format_header(
+ common.SEC_WEBSOCKET_EXTENSIONS_HEADER,
+ common.format_extensions(self._request.ws_extensions)))
++ # MOZILLA
++ if self._request.sts is not None:
++ response.append(format_header("Strict-Transport-Security",
++ self._request.sts))
++ # /MOZILLA
+
+ # Headers not specific for WebSocket
+ for name, value in self._request.extra_headers:
+ response.append(format_header(name, value))
+
+ response.append(u'\r\n')
+
+ return u''.join(response)