Skip to content

chore: update Code to 1.68 #5263

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 12 commits into from
Jun 21, 2022
Merged

chore: update Code to 1.68 #5263

merged 12 commits into from
Jun 21, 2022

Conversation

code-asher
Copy link
Member

@code-asher code-asher commented Jun 13, 2022

Closes #5165

I had a bit of trouble going straight to 1.68 (had some weird webview issues) so I went to 1.67 first then 1.68 and then it went smoothly. Not sure if that is a coincidence but seems like updating one version at a time might be the way to go.

Was able to remove our changes to common/webview.ts since they are
upstream now.

Other than that no serious changes, just context diffs.
@MitchTalmadge
Copy link

Thanks for doing this, I am eagerly awaiting 1.68 myself. I saw that this is marked as a draft, is there anything that you need help with?

@code-asher
Copy link
Member Author

I think everything is good to go except the display language support.

Upstream added their own display language support for web but it only supports certain built-in languages and it uses the browser default language.

Ours has the user choose the display language via --locale flag or the "change display language" option and uses language extensions so it has broader language support.

So the question is whether to:

  1. Try merging the two implementations
  2. Replace theirs with ours
  3. Just get rid of ours

Eventually upstream plans on supporting language extensions in web at which time we definitely would want to remove our patch but it would be unfortunate to lose that support at this stage as that would essentially be a regression so I am thinking we go with one of the first two options.

I will be digging into it later today but if anyone has insight I am all ears! I am hoping it is straightforward though.

@MitchTalmadge
Copy link

Hmm yeah that's a tough problem indeed. It would suck to lose additional language support that we have added, but it also sucks to have to replace a core feature. I'm not sure what can be done for option 1, but if it's not feasible, I would prefer option 2 to losing languages in option 3.

@code-asher code-asher force-pushed the code-update-1.68 branch 2 times, most recently from 4070776 to feb88ec Compare June 16, 2022 21:01
- Upstream moved the web socket endpoint so change the Express route
  from / to *.  That will let web sockets work at any endpoint.
- Everything in the workbench config is basically the same but
  de-indented (upstream extracted it into a separate object which
  resulted in a de-indent), the ordering is slightly different, and
  instead of vscodeBase we now need vscodeBase + this._staticRoute since
  everything is served from a sub-path now.
- Move manifest link back to the root since that is where we host our
  manifest.
- Change RemoteAuthoritiesImpl to use the same path building method as
  in other places (+ instead of using URI.parse/join).
- Use existing host/port in RemoteAuthoritiesImpl and
  BrowserSocketFactory instead of patching them to use window.location
  (these are set from window.location to begin with so it should be the
  same result but with less patching).
- Since BrowserSocketFactory includes a sub-path now (endpoints were
  changed upstream to serve from /quality/commit instead of from the
  root) the patch there has changed to prepend the base to that
  path (instead of using the base directly).
- The workbench HTML now natively supports a base URL in the form of
  WORKBENCH_WEB_BASE_URL so no need for VS_BASE patches there anymore.
- Upstream added type="image/x-icon" so I did as well.
- Move the language patch to the end of the series so it is easier to
  eventually remove.
- Remove the existing NLS config in favor of one that supports
  extensions.
- Upstream deleted webview main.js and inlined it into the HTML so move
  that code (the parent origin check) into both those HTML files
  (index.html and index-no-csp.html).
- The remaining diff is from changes to the surrounding context or a
  line was changed slightly by upstream (for example renamed files or
  new arguments like to the remote authority resolver).
@codecov
Copy link

codecov bot commented Jun 16, 2022

Codecov Report

Merging #5263 (c5e67ae) into main (eb314ff) will not change coverage.
The diff coverage is 100.00%.

Impacted file tree graph

@@           Coverage Diff           @@
##             main    #5263   +/-   ##
=======================================
  Coverage   72.47%   72.47%           
=======================================
  Files          30       30           
  Lines        1671     1671           
  Branches      367      367           
=======================================
  Hits         1211     1211           
  Misses        397      397           
  Partials       63       63           
Impacted Files Coverage Δ
src/node/routes/vscode.ts 83.33% <100.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update eb314ff...c5e67ae. Read the comment docs.

@code-asher code-asher marked this pull request as ready for review June 16, 2022 21:42
@code-asher code-asher requested a review from a team June 16, 2022 21:42
@code-asher
Copy link
Member Author

I think this is good for testing and PR review. I went with option 2 for the display language so we have maintained the status quo.

Copy link
Contributor

@jsjoeio jsjoeio left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work! Impressed you were able to update two versions. All looks good to me 👍🏼

@@ -1,17 +1,28 @@
Add display language support

This likely needs tweaking if we want to upstream.
We can remove this once upstream supports all language packs.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👏🏼 Thanks for updating this!

@code-asher
Copy link
Member Author

Ran into a couple things when testing the full build:

  • Some /vscode-remote-resource requests are returning 404s, seems the commit is somehow missing so it defaults to dev but then that fails because the actual commit is not dev
  • There is another parentOrigin check in the web worker HTML, it does not seem to actually trigger validation but I should probably patch it anyway

Code injects this into the client during the build process so it needs
to be updated before we build.
@code-asher code-asher requested a review from jsjoeio June 17, 2022 19:22
@code-asher
Copy link
Member Author

@jsjoeio Three new commits fixing the aforementioned problems plus one spot where I could use the new base URL instead of the old one (both work for now but might as well use the new one).

@code-asher
Copy link
Member Author

OK one more problem with our parent origin patch, on non-Firefox browsers the CSP breaks because there is a nonce so I need to update those. Give me a second...

@code-asher code-asher force-pushed the code-update-1.68 branch 2 times, most recently from 11087f9 to 50e4396 Compare June 17, 2022 20:38
Code overrides it with nothing.

The date is also already injected.
@code-asher code-asher force-pushed the code-update-1.68 branch 3 times, most recently from a162dff to e5f8d63 Compare June 17, 2022 23:29
By just using the marketplace directly instead of going through the
backend.  I am not sure what the point is when searching extensions
already goes directly to the marketplace anyway.

But also remove the prefix that breaks this as well because otherwise
existing installations will break.
@code-asher code-asher enabled auto-merge (squash) June 21, 2022 21:30
@code-asher code-asher merged commit 5ce99f8 into coder:main Jun 21, 2022
@code-asher code-asher deleted the code-update-1.68 branch June 21, 2022 21:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Chore]: upgrade Code to 1.67
3 participants