Chromium Code Reviews| Index: LayoutTests/http/tests/websocket/permessage-deflate-split-frames_wsh.py |
| diff --git a/LayoutTests/http/tests/websocket/permessage-deflate-split-frames_wsh.py b/LayoutTests/http/tests/websocket/permessage-deflate-split-frames_wsh.py |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..3c458930b9abe3351afec0666d080e8962c43592 |
| --- /dev/null |
| +++ b/LayoutTests/http/tests/websocket/permessage-deflate-split-frames_wsh.py |
| @@ -0,0 +1,45 @@ |
| +# 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. |
| + |
| + |
| +from mod_pywebsocket import common |
| +from mod_pywebsocket.extensions import PerMessageDeflateExtensionProcessor |
| +from mod_pywebsocket.extensions import ExtensionProcessorInterface |
|
tyoshino (SeeGerritForStatus)
2014/06/05 05:49:44
unnecessary?
yhirano
2014/06/05 05:57:21
Done.
|
| +from mod_pywebsocket.common import ExtensionParameter |
|
tyoshino (SeeGerritForStatus)
2014/06/05 05:49:44
unnecessary?
yhirano
2014/06/05 05:57:21
Done.
|
| +from mod_pywebsocket.stream import Frame, create_header |
|
tyoshino (SeeGerritForStatus)
2014/06/05 05:49:44
Frame is unnecessary?
yhirano
2014/06/05 05:57:21
Done.
|
| + |
| + |
| +def _get_permessage_deflate_extension_processor(request): |
| + for extension_processor in request.ws_extension_processors: |
| + if isinstance(extension_processor, |
| + PerMessageDeflateExtensionProcessor): |
| + return extension_processor |
| + return None |
| + |
| + |
| +def web_socket_do_extra_handshake(request): |
| + processor = _get_permessage_deflate_extension_processor(request) |
| + assert processor is not None |
| + # Remove extension processors other than |
| + # PerMessageDeflateExtensionProcessor to avoid conflict. |
| + request.ws_extension_processors = [processor] |
| + |
| + |
| +def web_socket_transfer_data(request): |
| + line = request.ws_stream.receive_message() |
| + # Hello |
| + payload = b'\xf2\x48\xcd\xc9\xc9\x07\x00\x00\x00\xff\xff' |
| + # Strip \x00\x00\xff\xff |
| + stripped = payload[:-4] |
| + |
| + header = create_header(common.OPCODE_TEXT, len(payload), |
| + fin=0, rsv1=1, rsv2=0, rsv3=0, mask=False) |
| + request.ws_stream._write(header + payload) |
| + |
| + header = create_header(common.OPCODE_CONTINUATION, len(stripped), |
| + fin=1, rsv1=0, rsv2=0, rsv3=0, mask=False) |
| + request.ws_stream._write(header + stripped) |
| + |
| + |
| +# vi:sts=4 sw=4 et |