| 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);
|
| }
|
|
|
|
|