-
Notifications
You must be signed in to change notification settings - Fork 29.7k
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
Offline mode for VS Code #54354
Comments
Great idea @ramya-rao-a . Quick feedback: I tried your options but it seems that VS Code (1.25.1) still tries to connect outside. I'm behind a VPN and using a proxy. When setting all 5 options to false and restarting VS Code, I still get the popup question asking me for my proxy username and password... EDIT: I had to change "update.channel" to "none" |
Below are VS Code features that send requests over the network User invoked features:
VS Code Features not invoked by the user:
VS Code features from built-in extensions invoked by user:
VS Code features from built-in extensions not specifically invoked by user:
|
Based on the above, we will end up losing a few essential features if we were to take the
Also, after offline discussions, we came to the conclusion that user invoked actions should be supported regardless of whether they send requests over the network or not. Due to this, having an uber switch to control the offline mode doesnt seem that useful. Instead below is the current proposal
|
If the offline mode's primary goal was to invalidate users' privacy concerns it actually might make sense to ...
(I guess if I was to decide I'd even make all of this opt-in, but prompted for (like Android's app permissions), but I guess you wouldn't want to sacrifice UX that much just to be overly correct for the few users appreciating that (see below)) Why I don't see this happenAs after some discussion in #60 there was no reaction to further objections on the misleading license concern (eg #28736, #17996, #60 itself), I guess they were probably considered exaggerated and nitpicky or at least not serious, important or urgent.
And - if this even is "the team's" position - that is totally ok. That's why for now I'm just leaving this here as part of the offline mode's scope's discussion. If the offline mode's was not primarily for privacy, this whole comment is off topic here and probably rather belongs to #16131 or #47284. |
@myfairsyer Thanks for your input.
Over eager users might do this and then find the experience sub-par. For example, the natural language search backing the search in settings editor, automatically acquiring types to provide language support (completions, hover, validations) in typescript are essential features that rely on sending network requests. Instead, providing control over different features such that one can pick and choose and also surface them in an easy manner is what we are heading towards.
We do intend to document features that make network requests along with information on why they do so and what kind of information is sent. But not tracking the exact message content and format of the requests. These may change in time and its very easy for the documentation to get stale. If anyone wants to see the exact content and format, there are tools available to do the same. Having said that, we are indeed rolling out a feature to display the exact content of the data that we send as part of telemetry. See #54001
That's an interesting notion. Please log another issue so that we can have a separate discussion for it. |
Sorry for joining late, I just discovered the In the description, you wrote that the goal is to have a single 'offline' settings and I would also think that's much better than what we ended up. Can you explain again why we didn't go for that? |
In the new settings editor, we will have the option to show all the settings corresponding to online features. The user doesn't need to remember all the settings, they just need to know how to get to them. And that too for users who really want to go offline which is a very small portion of our user base
That is explained in |
That's where I can't follow:
Why? Not being able to have functionality that makes connections is the consequence of the offline mode. So some commands or features (hover, code completions) might not be enabled anymore or work in a limited way. None of the features listed are critical. There can also be a (one time) user notification or indication to say that you are in offline mode. I'm worried that if we have such fine-grained options like |
Features like automatic type acquisition by typescript extension and use of bing natural language search for settings search are critical for a pleasant experience with the product.
From the feedback we have gotten over time, the need for offline mode comes more from a "dont make connections without my knowledge" than from "dont make any network connections". Having fine-grained options helps in being transparent on what we do in the background and gives fine grained control to users to opt out of features that they are not sure of. Examples:
The idea is not to introduce settings for each feature. Only for those that function without being explicitly invoked by the user. For example, the cc @kieferrm |
Below settings can be currently used to enter an offline mode
telemetry.enableTelemetry
telemetry.enableCrashReporter
update.channel
extensions.autoupdate
extensions.showRecommendationsOnlyOnDemand
update.showReleaseNotes
To completely enter an offline mode we need to, we also need to not check for extension updates which we do currently as it is useful to notify users who have disabled extension auto-updates that some of their extensions are outdated
Even so, changing 6 settings manually to enter offline mode is cumbersome. It would be much easier if we have a single setting controlling the offline mode
The text was updated successfully, but these errors were encountered: