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

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

Issue 1584653008: Optimize Websocket compression for no context takeover requests (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Created 4 years, 11 months 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: sdk/lib/io/websocket_impl.dart
diff --git a/sdk/lib/io/websocket_impl.dart b/sdk/lib/io/websocket_impl.dart
index 6189c46faaafd568e8e29401ee10704c30c23a7a..2aa894c20a49fe81e10021d198e9f3def6a1a4d2 100644
--- a/sdk/lib/io/websocket_impl.dart
+++ b/sdk/lib/io/websocket_impl.dart
@@ -481,9 +481,11 @@ class _WebSocketTransformerImpl implements WebSocketTransformer {
response.headers.add("Sec-WebSocket-Extensions", info.headerValue);
var serverNoContextTakeover =
- hv.parameters.containsKey(_serverNoContextTakeover);
+ (hv.parameters.containsKey(_serverNoContextTakeover) &&
+ compression.serverNoContextTakeover);
var clientNoContextTakeover =
- hv.parameters.containsKey(_clientNoContextTakeover);
+ (hv.parameters.containsKey(_clientNoContextTakeover) &&
+ compression.clientNoContextTakeover);
var deflate = new _WebSocketPerMessageDeflate(
serverNoContextTakeover: serverNoContextTakeover,
clientNoContextTakeover: clientNoContextTakeover,
@@ -577,6 +579,12 @@ class _WebSocketPerMessageDeflate {
result.addAll(out);
}
+ if ((serverSide && clientNoContextTakeover) ||
+ (!serverSide && serverNoContextTakeover)) {
+ decoder.end();
+ decoder = null;
+ }
+
return new Uint8List.fromList(result);
}
@@ -604,7 +612,8 @@ class _WebSocketPerMessageDeflate {
result.addAll(out);
}
- if (!serverSide && clientNoContextTakeover) {
+ if ((!serverSide && clientNoContextTakeover) ||
+ (serverSide && serverNoContextTakeover)) {
encoder.end();
encoder = null;
}

Powered by Google App Engine
This is Rietveld 408576698