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

Unified Diff: sdk/lib/io/websocket.dart

Issue 1437623002: Ensure proper response to chrome client_max_window_bits (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Always send client_max_window_bits on response Created 5 years, 1 month 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
« no previous file with comments | « no previous file | sdk/lib/io/websocket_impl.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sdk/lib/io/websocket.dart
diff --git a/sdk/lib/io/websocket.dart b/sdk/lib/io/websocket.dart
index 5170bde89e6e45766c476c44122db6333be93f6f..7a6b86968bf02aa5ce81055bdacdc6c8061876b0 100644
--- a/sdk/lib/io/websocket.dart
+++ b/sdk/lib/io/websocket.dart
@@ -84,7 +84,10 @@ class CompressionOptions {
var info = new List(2);
int mwb;
- var part = requested.parameters[_serverMaxWindowBits];
+ String part;
+ if (requested?.parameters != null) {
+ part = requested.parameters[_serverMaxWindowBits];
+ }
if (part != null) {
if (part.length >= 2 && part.startsWith('0')) {
throw new ArgumentError("Illegal 0 padding on value.");
@@ -97,21 +100,22 @@ class CompressionOptions {
info[1] = mwb;
}
} else {
+ info[0] = "";
info[1] = _WebSocketImpl.DEFAULT_WINDOW_BITS;
}
return info;
}
/// Returns default values for client compression request headers.
- List _createClientRequestHeader(HeaderValue requested) {
- var info = new List(2);
+ List _createClientRequestHeader(HeaderValue requested, int size) {
Søren Gjesse 2015/11/11 13:31:08 This is no longer returning a List.
butlermatt 2015/11/11 18:26:30 Done.
+ var info = "";
- info[1] = _WebSocketImpl.DEFAULT_WINDOW_BITS;
- if (requested != null &&
- requested.parameters[_clientMaxWindowBits] != null) {
- info[0] = "; client_max_window_bits=${info[1]}";
+ // If responding to a valid request, specify size
+ if (requested != null) {
+ info = "; client_max_window_bits=$size";
} else {
- info[0] = "; client_max_window_bits";
+ // Client request. Specify default
+ info = "; client_max_window_bits";
}
return info;
@@ -141,19 +145,14 @@ class CompressionOptions {
header += "; server_no_context_takeover";
}
- if (requested == null ||
- requested.parameters.containsKey(_clientMaxWindowBits)) {
- var clientList = _createClientRequestHeader(requested);
- header += clientList[0];
- info[1] = clientList[1];
- } else {
- var headerList = _createServerResponseHeader(requested);
- header += headerList[0];
- info[1] = headerList[1];
- }
+ var headerList = _createServerResponseHeader(requested);
+ header += headerList[0];
+ info[1] = headerList[1];
- info[0] = header;
+ var clientList = _createClientRequestHeader(requested, info[1]);
+ header += clientList;
+ info[0] = header;
return info;
}
}
« no previous file with comments | « no previous file | sdk/lib/io/websocket_impl.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698