coder / code-server

VS Code in the browser
https://coder.com
MIT License
66.51k stars 5.45k forks source link

Safari 14 (macOS 11 / iOS 14) no longer able to load vscode interface #6805

Open Torrekie opened 1 month ago

Torrekie commented 1 month ago

Is there an existing issue for this?

OS/Web Information

Steps to Reproduce

  1. Install code-server by npm i code-server --install-from-source -g, this shall build all required modules natively
  2. ~/node_modules/out/node/entry.js --bind-addr 0.0.0.0:8080
  3. Open localhost:8080 in Safari

Expected

The login page and VSCode page should be successfully loaded

Actual

While opening with Google Chrome, everything is fine.

While opening with Safari 14, VSCode page is completely white, error logs printed to remote console.

Logs

[18:08:08] Extension host agent started.
[18:08:08] Started initializing default profile extensions in extensions installation folder. file:///Users/torrekie/.local/share/code-server/extensions
[18:08:09] Completed initializing default profile extensions in extensions installation folder. file:///Users/torrekie/.local/share/code-server/extensions
File not found: /Users/torrekie/node_modules/code-server/lib/vscode/out/vs/base/browser/browser.js
File not found: /Users/torrekie/node_modules/code-server/lib/vscode/out/vs/base/browser/window.js
File not found: /Users/torrekie/node_modules/code-server/lib/vscode/out/vs/base/common/buffer.js
File not found: /Users/torrekie/node_modules/code-server/lib/vscode/out/vs/base/common/event.js
File not found: /Users/torrekie/node_modules/code-server/lib/vscode/out/vs/base/common/lifecycle.js
File not found: /Users/torrekie/node_modules/code-server/lib/vscode/out/vs/base/common/marshalling.js
File not found: /Users/torrekie/node_modules/code-server/lib/vscode/out/vs/base/common/path.js
File not found: /Users/torrekie/node_modules/code-server/lib/vscode/out/vs/base/common/network.js
File not found: /Users/torrekie/node_modules/code-server/lib/vscode/out/vs/base/common/resources.js
File not found: /Users/torrekie/node_modules/code-server/lib/vscode/out/vs/base/common/uri.js
File not found: /Users/torrekie/node_modules/code-server/lib/vscode/out/vs/base/common/strings.js
File not found: /Users/torrekie/node_modules/code-server/lib/vscode/out/vs/platform/product/common/product.js
File not found: /Users/torrekie/node_modules/code-server/lib/vscode/out/vs/platform/window/common/window.js
File not found: /Users/torrekie/node_modules/code-server/lib/vscode/out/vs/platform/tunnel/common/tunnel.js

Screenshot/Video

image image

Opening with Google Chrome is fine:

image

Does this bug reproduce in native VS Code?

I did not test native VS Code

Does this bug reproduce in GitHub Codespaces?

I did not test GitHub Codespaces

Are you accessing code-server over a secure context?

Notes

No response

code-asher commented 1 month ago

The problem seems likely to be upstream in VS Code; I recommend testing vscode.dev and GitHub Codespaces and if it reproduces there then report in https://github.com/microsoft/vscode

If it does not reproduce in either of those places though, we will have to see if code-server is doing something different here. I am not sure what it could be though.

Torrekie commented 1 month ago

confirmed it is upstream bug and created new issue under https://github.com/microsoft/vscode/issues/213143

tested code-server@4.17.1 with my Safari and everything is fine. Can I keep this issue open for tracing purposes?

code-asher commented 1 month ago

confirmed it is upstream bug and created new issue

Awesome, thank you!

tested code-server@4.17.1 with my Safari and everything is fine. Can I keep this issue open for tracing purposes?

Yup, that sounds good to me.

Torrekie commented 1 month ago

is it possible to build latest code-server with older vscode? Is there any instructions for doing this?

code-asher commented 1 month ago

After cloning code-server you can check out whatever branch you want of the VS Code sub-module.

However, it will be unlikely that the patch files will apply to older versions, so you may have to do a lot of conflict resolution.

code-asher commented 1 month ago

If you want to try this, the instructions would be the same as updating VS Code, just you are downgrading the submodule instead of upgrading: https://github.com/coder/code-server/blob/main/docs/CONTRIBUTING.md#version-updates-to-code

Torrekie commented 1 month ago

is there any way to prevent rebuilding? This takes over 40 minutes per build

yarn run v1.22.19
warning ../../package.json: No license field
$ ./ci/build/build-vscode.sh --verbose
warning ../../../../package.json: No license field
$ node --max-old-space-size=8192 ./node_modules/gulp/bin/gulp.js -LLLL vscode-reh-web-linux-x64-min
{"type":"warning","data":"../../../../package.json: No license field"}
{"type":"warning","data":"../../../../package.json: No license field"}
{"type":"warning","data":"../../../../package.json: No license field"}
{"type":"warning","data":"../../../../package.json: No license field"}
{"type":"warning","data":"../../../../package.json: No license field"}
{"type":"warning","data":"../../../../package.json: No license field"}
(node:2975) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
[15:48:08] Using gulpfile ~/proj/code-server/lib/vscode/gulpfile.js
[15:48:08] Starting 'vscode-reh-web-linux-x64-min'...
[15:48:08] Starting clean-out-build ...
[15:48:08] Finished clean-out-build after 528 ms
[15:48:08] Starting build-web-node-paths ...
[15:48:08] Finished build-web-node-paths after 3 ms
[15:48:08] Starting compile-api-proposal-names ...
[15:48:08] Starting compilation api-proposal-names...
[15:48:08] Finished compilation api-proposal-names with 0 errors after 31 ms
[15:48:08] Finished compile-api-proposal-names after 35 ms
[15:48:08] Starting compile-src ...
[15:48:17] [mangler] Done collecting. Classes: 7616. Exported symbols: 9261
[15:48:17] [mangler] Done creating class replacements
[15:48:17] [mangler] Starting prepare rename edits
[15:48:18] Starting compilation...
[16:16:09] [mangler] Done preparing edits: 3719 files
[16:16:17] [mangler] Done: 4714.336kb saved, memory-usage: {"total_heap_size":2080604160,"total_heap_size_executable":11304960,"total_physical_size":2079178752,"total_available_size":6611867936,"used_heap_size":1985923416,"heap_size_limit":8640266240,"malloced_memory":1328232,"peak_malloced_memory":19938304,"does_zap_garbage":0,"number_of_native_contexts":2,"number_of_detached_contexts":0,"total_global_handles_size":4595712,"used_global_handles_size":1805120,"external_memory":100330469}
[16:18:14] Finished compilation with 0 errors after 1795930 ms
[16:18:14] Finished compile-src after 1805269 ms
[16:18:14] Starting compile-build ...
[16:18:14] Finished compile-build after 11 ms
[16:18:14] Starting clean-extensions-build ...
[16:18:14] Finished clean-extensions-build after 6 ms
[16:18:14] Starting bundle-marketplace-extensions-build ...
[16:18:14] Downloading extension from GH: ms-vscode.js-debug-companion@1.1.2 ...
[16:18:14] Downloading extension from GH: ms-vscode.js-debug@1.89.0 ...
[16:18:14] Downloading extension from GH: ms-vscode.vscode-js-profile-table@1.0.9 ...
[16:23:55] 'vscode-reh-web-linux-x64-min' errored after 36 min
[16:23:55] AbortError: This operation was aborted
    at new DOMException (node:internal/per_context/domexception:53:5)
    at AbortController.abort (node:internal/abort_controller:395:18)
    at Timeout._onTimeout (/Users/torrekie/proj/code-server/lib/vscode/build/lib/fetch.js:44:53)
    at listOnTimeout (node:internal/timers:573:17)
    at process.processTimers (node:internal/timers:514:7)
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
code-asher commented 1 month ago

VS Code does not seem to support incremental building, at least not last time I checked.