Skip to content
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

Improve UX for Post extension install/uninstall/enable/disable #66931

Closed
miguelsolorio opened this issue Jan 22, 2019 · 14 comments
Closed

Improve UX for Post extension install/uninstall/enable/disable #66931

miguelsolorio opened this issue Jan 22, 2019 · 14 comments
Assignees
Labels
extensions Issues concerning extensions ux User experience issues

Comments

@miguelsolorio
Copy link
Contributor

Issue Type: Bug

When disabling/enabling extensions, not every item shows the Reload button in the viewlet. See the gif below as an example, Debugger for Chrome and Nunjucks do not get this button for reload. In some instances, the Reload button flashes for a few seconds and disappears.

VS Code version: Code - Insiders 1.31.0-insider (23f534b, 2019-01-22T06:13:01.312Z)
OS version: Darwin x64 18.2.0

System Info
Item Value
CPUs Intel(R) Core(TM) i7-7920HQ CPU @ 3.10GHz (8 x 3100)
GPU Status 2d_canvas: enabled
checker_imaging: disabled_off
flash_3d: enabled
flash_stage3d: enabled
flash_stage3d_baseline: enabled
gpu_compositing: enabled
multiple_raster_threads: enabled_on
native_gpu_memory_buffers: enabled
rasterization: enabled
surface_synchronization: enabled_on
video_decode: enabled
webgl: enabled
webgl2: enabled
Load (avg) 3, 4, 5
Memory (System) 16.00GB (0.63GB free)
Process Argv -psn_0_1290555
Screen Reader no
VM 22%
Extensions (4)
Extension Author (truncated) Version
vscode-svgviewer css 1.4.7
prettier-vscode esb 1.7.3
python ms- 2018.12.1
code-settings-sync Sha 3.2.4

(3 theme extensions excluded)

@sandy081 sandy081 added the *as-designed Described behavior is as designed label Jan 23, 2019
@sandy081
Copy link
Member

This is expected because of the new feature (Dynamic extension points) #66574

Some extensions can be enabled/disabled without window reload and some needs window reload. Hence you are seeing this.

@vscodebot
Copy link

vscodebot bot commented Jan 23, 2019

The described behavior is how it is expected to work. If you disagree, please explain what is expected and what is not in more detail. See also our issue reporting guidelines.

Happy Coding!

@miguelsolorio
Copy link
Contributor Author

Hmm...because the interaction/feedback is inconsistent it's not clear to the user what is happening. Is the end-goal to allow all extensions to not require a reload or will it still require a reload for some?

If it'll still require a reload for some then we should provide better messaging to be clear that the install is completed (i.e. no reload required).

@sandy081 sandy081 added the extensions Issues concerning extensions label Jan 23, 2019
@sandy081
Copy link
Member

Is the end-goal to allow all extensions to not require a reload or will it still require a reload for some?

Depends. I assume in future installing/enabling might never require reload except for language packs which need restart. But uninstall/disabling might need reload for most.

If it'll still require a reload for some then we should provide better messaging to be clear that the install is completed (i.e. no reload required).

I am not a big fan of adding messages or prompts. Does the reload button is not good enough to know it requires reload or not? I think there was discussion about refresh button - #60053. Are we are going in circles 🤔 ?

Open to suggestions here

@sandy081 sandy081 removed the *as-designed Described behavior is as designed label Jan 23, 2019
@sandy081 sandy081 reopened this Jan 23, 2019
@sandy081 sandy081 changed the title Disabling/Enabling extensions is inconsistent Improve UX for Post extension install/uninstall/enable/disable Jan 23, 2019
@sandy081 sandy081 added the under-discussion Issue is under discussion for relevance, priority, approach label Jan 23, 2019
@sandy081 sandy081 added this to the December/January 2019 milestone Jan 23, 2019
@miguelsolorio
Copy link
Contributor Author

What I'm trying to say is that if users are going to be seeing these two states often, then maybe we need add better message so it's clear, like (which would be a temporary state):

image

But if it's not very common, like you said only for language packs, then it might not be an issue.

@sandy081
Copy link
Member

Installing/Enabling an extension will not have a reload, but Uninstalling/Disabling will have reload as we cannot stop running the extension with code without reload. There are also exceptions like theme extensions which do not need reload when uninstalled/disabled. So reload gonna be a special state. So how about being a bit verbose like follow:

image

@miguelsolorio
Copy link
Contributor Author

I don't think we need to be verbose with reload, it's more for when an extension doesn't require a reload that is confusing because the process has always been to reload. So when you don't see a reload button you sort of wonder "What happened? Was there an error? Why is there no reload button?"

Let's bring this up at our next UX sync so we can go through it with the team to see if others feel the same (I could be alone in this).

@sandy081 sandy081 added the ux User experience issues label Jan 25, 2019
@isidorn
Copy link
Contributor

isidorn commented Jan 29, 2019

A huge issue I am hitting is the following:

  1. I install the extension, my muscle memory thinks I need to press the reload button (which the install buton turned in)
  2. Now since we do not require a reload sometims, I accidently click Uninstall which is exactly the opposite of what I want

@joaomoreno also hits this
@sandy081 let me know if you would like a new issue for this

@jrieken
Copy link
Member

jrieken commented Jan 29, 2019

It's the first time that I interacted with disabling extensions without reload and while I know that running extensions need a reload it wasn't clear to me. I though the feature is buggy, esp for extensions that activate on startup. Ideas

  • indicate that an extension is running
  • call the command "Disable after Reload" for those extensions that already run
  • show "Reload to Disable" instead of "Reload"

@sandy081
Copy link
Member

@isidorn I think your concerns are all related to this issue. I would use this issue to collect the feedback and ideas and get to a conclusion.

@stevencl
Copy link
Member

I had the same experience. I was convinced that an extension that I had installed wasn't actually installed. It might be good to add a badge to the extension landing page that says 'Active' and ensuring that the extension shows up in the enabled list. For example, here's the state after installing the chrome debugger extension (note that the chrome debugger doesn't show up in the enabled list):

image

@weinand
Copy link
Contributor

weinand commented Jan 29, 2019

It would help if the extension viewlet would automatically switch to the "Installed Extensions" after an Install. In my case it just stayed on the "Marketplace results".

@Tyriar
Copy link
Member

Tyriar commented Jan 29, 2019

In Dark+ this is #767676 on #252526 which fails WCAG AA for normal sized text (moved to #67433)

@sandy081
Copy link
Member

sandy081 commented Jan 29, 2019

Consolidating above into following three issues

  1. Used to reload behaviour: Users got used to reload after installing/uninstalling/enabling/disabling the extension. Need some visual affordance to convey that the action is completed and no reload is required.

  2. Not clear about reload: Reload is now required only for specific cases like when extension is activated and is asked to uninstall/disable. So it is not clear why to reload given that it is not required for many cases. Reload needs to be verbose.

  3. Extensions are not moved automatically into the proper buckets(views).

Issues 1 & 2 are introduced because of the new dynamic extensions feature and is causing a lot of confusion. Whereas Issue 3 partially exists even before and I think is not too important. So, I propose following simpler solutions for 1 & 2:

Provide feedback that action is completed (Installed/Enabled)

As suggested here

image

image

Reload: Verbose (Uninstall/Disable)

As suggested here

image

image

sandy081 added a commit that referenced this issue Jan 29, 2019
- Show feedback when action is completed
- Verbose reload action
@sandy081 sandy081 removed the under-discussion Issue is under discussion for relevance, priority, approach label Jan 30, 2019
@roblourens roblourens added verified Verification succeeded and removed verified Verification succeeded labels Jan 31, 2019
@vscodebot vscodebot bot locked and limited conversation to collaborators Mar 16, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
extensions Issues concerning extensions ux User experience issues
Projects
None yet
Development

No branches or pull requests

8 participants