Skip to content

Commit 27d6747

Browse files
committed
Remove x-webkit-deflate-frame dead code
1 parent f4997d7 commit 27d6747

File tree

2 files changed

+0
-53
lines changed

2 files changed

+0
-53
lines changed

Diff for: accept.go

-37
Original file line numberDiff line numberDiff line change
@@ -240,9 +240,6 @@ func selectDeflate(extensions []websocketExtension, mode CompressionMode) (*comp
240240
if copts, ok := acceptDeflate(ext, mode); ok {
241241
return copts, true
242242
}
243-
// Disabled for now, see https://github.com/nhooyr/websocket/issues/218
244-
// case "x-webkit-deflate-frame":
245-
// return acceptWebkitDeflate(w, ext, mode)
246243
}
247244
}
248245
return nil, false
@@ -271,40 +268,6 @@ func acceptDeflate(ext websocketExtension, mode CompressionMode) (*compressionOp
271268
return copts, true
272269
}
273270

274-
func acceptWebkitDeflate(w http.ResponseWriter, ext websocketExtension, mode CompressionMode) (*compressionOptions, error) {
275-
copts := mode.opts()
276-
// The peer must explicitly request it.
277-
copts.serverNoContextTakeover = false
278-
279-
for _, p := range ext.params {
280-
if p == "no_context_takeover" {
281-
copts.serverNoContextTakeover = true
282-
continue
283-
}
284-
285-
// We explicitly fail on x-webkit-deflate-frame's max_window_bits parameter instead
286-
// of ignoring it as the draft spec is unclear. It says the server can ignore it
287-
// but the server has no way of signalling to the client it was ignored as the parameters
288-
// are set one way.
289-
// Thus us ignoring it would make the client think we understood it which would cause issues.
290-
// See https://tools.ietf.org/html/draft-tyoshino-hybi-websocket-perframe-deflate-06#section-4.1
291-
//
292-
// Either way, we're only implementing this for webkit which never sends the max_window_bits
293-
// parameter so we don't need to worry about it.
294-
err := fmt.Errorf("unsupported x-webkit-deflate-frame parameter: %q", p)
295-
http.Error(w, err.Error(), http.StatusBadRequest)
296-
return nil, err
297-
}
298-
299-
s := "x-webkit-deflate-frame"
300-
if copts.clientNoContextTakeover {
301-
s += "; no_context_takeover"
302-
}
303-
w.Header().Set("Sec-WebSocket-Extensions", s)
304-
305-
return copts, nil
306-
}
307-
308271
func headerContainsToken(h http.Header, key, token string) bool {
309272
token = strings.ToLower(token)
310273

Diff for: accept_test.go

-16
Original file line numberDiff line numberDiff line change
@@ -396,22 +396,6 @@ func Test_selectDeflate(t *testing.T) {
396396
},
397397
expOK: true,
398398
},
399-
// {
400-
// name: "x-webkit-deflate-frame",
401-
// mode: CompressionNoContextTakeover,
402-
// reqSecWebSocketExtensions: "x-webkit-deflate-frame; no_context_takeover",
403-
// respSecWebSocketExtensions: "x-webkit-deflate-frame; no_context_takeover",
404-
// expCopts: &compressionOptions{
405-
// clientNoContextTakeover: true,
406-
// serverNoContextTakeover: true,
407-
// },
408-
// },
409-
// {
410-
// name: "x-webkit-deflate/error",
411-
// mode: CompressionNoContextTakeover,
412-
// reqSecWebSocketExtensions: "x-webkit-deflate-frame; max_window_bits",
413-
// error: true,
414-
// },
415399
}
416400

417401
for _, tc := range testCases {

0 commit comments

Comments
 (0)