Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(109)

Unified Diff: LayoutTests/http/tests/websocket/tests/hybi/permessage-deflate-manual_wsh.py

Issue 101143002: Remove hybi sub directory for WebSocket layout tests (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: LayoutTests/http/tests/websocket/tests/hybi/permessage-deflate-manual_wsh.py
diff --git a/LayoutTests/http/tests/websocket/tests/hybi/permessage-deflate-manual_wsh.py b/LayoutTests/http/tests/websocket/tests/hybi/permessage-deflate-manual_wsh.py
deleted file mode 100644
index 7d09be482c9c943b445356645f88f7565e250556..0000000000000000000000000000000000000000
--- a/LayoutTests/http/tests/websocket/tests/hybi/permessage-deflate-manual_wsh.py
+++ /dev/null
@@ -1,122 +0,0 @@
-# Copyright 2013, Google Inc. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following disclaimer
-# in the documentation and/or other materials provided with the
-# distribution.
-# * Neither the name of Google Inc. nor the names of its
-# contributors may be used to endorse or promote products derived from
-# this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-import urlparse
-import zlib
-from mod_pywebsocket import common, util
-from mod_pywebsocket.extensions import PerMessageDeflateExtensionProcessor
-from mod_pywebsocket.extensions import ExtensionProcessorInterface
-from mod_pywebsocket.common import ExtensionParameter
-
-
-_GOODBYE_MESSAGE = u'Goodbye'
-_ENABLE_MESSAGE = u'EnableCompression'
-_DISABLE_MESSAGE = u'DisableCompression'
-_bfinal = False
-_client_max_window_bits = 15
-
-
-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):
- global _bfinal
- global _client_max_window_bits
- processor = _get_permessage_deflate_extension_processor(request)
- # Remove extension processors other than
- # PerMessageDeflateExtensionProcessor to avoid conflict.
- request.ws_extension_processors = [processor]
- if not processor:
- return
- r = request.ws_resource.split('?', 1)
- if len(r) == 1:
- return
- parameters = urlparse.parse_qs(r[1], keep_blank_values=True)
- if 'client_max_window_bits' in parameters:
- window_bits = int(parameters['client_max_window_bits'][0])
- processor.set_client_max_window_bits(window_bits)
- _client_max_window_bits = window_bits
- if 'client_no_context_takeover' in parameters:
- processor.set_client_no_context_takeover(True)
- if 'set_bfinal' in parameters:
- _bfinal = True
-
-
-def receive(request):
- stream = request.ws_stream
- possibly_compressed_body = b''
- compress = False
- while True:
- frame = stream._receive_frame_as_frame_object()
- if frame.opcode == common.OPCODE_CLOSE:
- message = stream._get_message_from_frame(frame)
- stream._process_close_message(message)
- return (False, None)
- compress = compress or frame.rsv1
- possibly_compressed_body += frame.payload
- if frame.fin:
- break
- if compress:
- return (compress, possibly_compressed_body + b'\x00\x00\xff\xff')
- else:
- return (compress, possibly_compressed_body)
-
-
-def web_socket_transfer_data(request):
- processor = _get_permessage_deflate_extension_processor(request)
- processor.set_bfinal(_bfinal)
- inflater = util._Inflater(_client_max_window_bits)
- while True:
- compress, possibly_compressed_body = receive(request)
- body = None
- if possibly_compressed_body is None:
- return
- if compress:
- inflater.append(possibly_compressed_body)
- body = inflater.decompress(-1)
- else:
- body = possibly_compressed_body
-
- text = body.decode('utf-8')
- if processor:
- if text == _ENABLE_MESSAGE:
- processor.enable_outgoing_compression()
- elif text == _DISABLE_MESSAGE:
- processor.disable_outgoing_compression()
- request.ws_stream.send_message(text, binary=False)
- if text == _GOODBYE_MESSAGE:
- return
-
-
-# vi:sts=4 sw=4 et

Powered by Google App Engine
This is Rietveld 408576698