Index: net/websockets/websocket_deflate_stream.cc |
diff --git a/net/websockets/websocket_deflate_stream.cc b/net/websockets/websocket_deflate_stream.cc |
index fc4bceaea4965645b56d40d3a01a025163e61f7f..cf1690356537137d6353a4f214f5cb31c5073b07 100644 |
--- a/net/websockets/websocket_deflate_stream.cc |
+++ b/net/websockets/websocket_deflate_stream.cc |
@@ -15,6 +15,7 @@ |
#include "net/base/completion_callback.h" |
#include "net/base/io_buffer.h" |
#include "net/base/net_errors.h" |
+#include "net/websockets/websocket_deflate_parameters.h" |
#include "net/websockets/websocket_deflate_predictor.h" |
#include "net/websockets/websocket_deflater.h" |
#include "net/websockets/websocket_errors.h" |
@@ -35,11 +36,10 @@ const size_t kChunkSize = 4 * 1024; |
WebSocketDeflateStream::WebSocketDeflateStream( |
scoped_ptr<WebSocketStream> stream, |
- WebSocketDeflater::ContextTakeOverMode mode, |
- int client_window_bits, |
+ const WebSocketDeflateParameters& params, |
scoped_ptr<WebSocketDeflatePredictor> predictor) |
: stream_(stream.Pass()), |
- deflater_(mode), |
+ deflater_(params.client_context_take_over_mode()), |
inflater_(kChunkSize, kChunkSize), |
reading_state_(NOT_READING), |
writing_state_(NOT_WRITING), |
@@ -47,9 +47,13 @@ WebSocketDeflateStream::WebSocketDeflateStream( |
current_writing_opcode_(WebSocketFrameHeader::kOpCodeText), |
predictor_(predictor.Pass()) { |
DCHECK(stream_); |
- DCHECK_GE(client_window_bits, 8); |
- DCHECK_LE(client_window_bits, 15); |
- deflater_.Initialize(client_window_bits); |
+ DCHECK(params.IsValidAsResponse()); |
+ int client_max_window_bits = 15; |
+ if (params.is_client_max_window_bits_specified()) { |
+ DCHECK(params.has_client_max_window_bits_value()); |
+ client_max_window_bits = params.client_max_window_bits(); |
+ } |
+ deflater_.Initialize(client_max_window_bits); |
inflater_.Initialize(kWindowBits); |
} |