Skip to content

Commit 66763aa

Browse files
committed
Enable permessage-deflate in dev mode only
1 parent 75e9e24 commit 66763aa

File tree

2 files changed

+7
-4
lines changed

2 files changed

+7
-4
lines changed

src/node/constants.ts

+1
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,4 @@ export const version = pkg.version || "development"
2020
export const commit = pkg.commit || "development"
2121
export const rootPath = path.resolve(__dirname, "../..")
2222
export const tmpdir = path.join(os.tmpdir(), "code-server")
23+
export const isDevMode = commit === "development"

src/node/routes/vscode.ts

+6-4
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import * as ipc from "../../../typings/ipc"
77
import { Emitter } from "../../common/emitter"
88
import { HttpCode, HttpError } from "../../common/http"
99
import { getFirstString } from "../../common/util"
10-
import { commit, rootPath, version } from "../constants"
10+
import { isDevMode, rootPath, version } from "../constants"
1111
import { authenticated, ensureAuthenticated, redirect, replaceTemplates } from "../http"
1212
import { getMediaMime, pathToFsPath } from "../util"
1313
import { VscodeProvider } from "../vscode"
@@ -31,7 +31,7 @@ router.get("/", async (req, res) => {
3131
try {
3232
return await vscode.initialize({ args: req.args, remoteAuthority: req.headers.host || "" }, req.query)
3333
} catch (error) {
34-
const devMessage = commit === "development" ? "It might not have finished compiling." : ""
34+
const devMessage = isDevMode ? "It might not have finished compiling." : ""
3535
throw new Error(`VS Code failed to load. ${devMessage} ${error.message}`)
3636
}
3737
})(),
@@ -44,7 +44,7 @@ router.get("/", async (req, res) => {
4444
req,
4545
// Uncomment prod blocks if not in development. TODO: Would this be
4646
// better as a build step? Or maintain two HTML files again?
47-
commit !== "development" ? content.replace(/<!-- PROD_ONLY/g, "").replace(/END_PROD_ONLY -->/g, "") : content,
47+
!isDevMode ? content.replace(/<!-- PROD_ONLY/g, "").replace(/END_PROD_ONLY -->/g, "") : content,
4848
{
4949
authed: req.args.auth !== "none",
5050
disableTelemetry: !!req.args["disable-telemetry"],
@@ -209,9 +209,11 @@ wsRouter.ws("/", ensureAuthenticated, async (req) => {
209209
`Sec-WebSocket-Accept: ${reply}`,
210210
]
211211

212+
// TODO: Support compression in development only for now until we can be sure
213+
// it's stable (see zlib issues).
212214
// TODO: Parse this header properly.
213215
const extensions = req.headers["sec-websocket-extensions"]
214-
const permessageDeflate = extensions ? extensions.includes("permessage-deflate") : false
216+
const permessageDeflate = extensions ? extensions.includes("permessage-deflate") && isDevMode : false
215217
if (permessageDeflate) {
216218
responseHeaders.push("Sec-WebSocket-Extensions: permessage-deflate; server_max_window_bits=15")
217219
}

0 commit comments

Comments
 (0)