Closed Bug 300116 Opened 19 years ago Closed 19 years ago

Extension Manager only checks for updates for the selected extension

Categories

(Toolkit :: Add-ons Manager, defect)

defect
Not set
normal

Tracking

()

VERIFIED FIXED

People

(Reporter: zach, Assigned: robert.strong.bugs)

References

Details

Attachments

(3 files, 1 obsolete file)

Seen on both today's trunk and branch builds. STR: 1. Install the latest version of an extension (I used FlashGot) 2. Restart 3. Install an old version of an extension (ForecastFox in my case) 4. Restart 5. Open Extension Manager 6. Select the new extension and click update, see that no updates were found 7. Select the old extension and click update, the update is found When the user clicks update, their intent is clearly to check for updates for all installed extensions, there is no reason to check for updates to only one extension at a time. Furthermore, the tooltip on the update button reads "checks for updates to your extensions," indicating that the button will check for updates to all extensions, not just the selected one.
nominating as a blocker, the user could very easily be led to believe that their extension is up to date when it in fact needs to be updated
Flags: blocking-aviary1.0.5?
Attached patch Patch to fix (obsolete) — Splinter Review
Here's a patch that makes the update button in Extension Manager check for updates to all extensions, not just the currently selected extension.
Assignee: nobody → zach
Status: NEW → ASSIGNED
Attachment #188694 - Flags: review?
Flags: blocking-aviary1.0.5? → blocking-aviary1.1?
We're not taking these kinds of things on the 1.0.x branch. This was a conscious UI decision and Ben or one of the UI gurus ought to be dealing with this decision on trunk. I'm pretty sure this is a dup of several existing bugs.
I would strongly disagree that the user is _clearly_ expecting this, given that the button is sandwiched in between two selection-specific buttons. However, the tooltip is confusing, and if no extensions are selected, the button actually does check all extensions. I think we want to preserve this selection-oriented behaviour, but I'm not sure how to expose "check for all" in a discoverable way (the current behaviour isn't really discoverable either).
Comment on attachment 188694 [details] [diff] [review] Patch to fix no matter what the button does, this is the wrong fix, since we have a context menu option on the extension to update
Attachment #188694 - Flags: review? → review-
I agree that this shouldn't go on the 1.0.x branch, that was my mistake. What if we moved the update button over to the right of the window to clarify that it applies to all extensions? If a user really wants to check for updates only to a specific extension, they can use the context menu (I didn't realize that was there, any new patch should of course keep that working) to do that. A very small number of users will even use the Extension Manager let alone want to check for updates for only one extension, and they can use the context menu for that. The update button should be a general "deal with extensions" button that takes care of all extension updating related needs.
What do people think about this? We move the update button over to the right of the command bar so the buttons on the left are specific to the selected extension and the buttons on the right refer to extensions as a whole. The update button would check for updates to all extensions, and the context-menu command would check for updates only for the selected extension.
See discussion in bug 297580 which was marked wontfix. IMHO this is a dupe of that bug and should have the same resolution.
The problem with this is that you can't rely on users finding the context menu. Most HIGs rightly warn against this. This actually got wontfixed previously, which I agree with. Also, on non-Mac these buttons have labels, so moving isn't quite so distinct, and nudging the text link seems ugly to boot. Let's back up here, what is the user problem you're trying to solve with this? A means to manually check for all extensions? Or a perceived confusion that's caused partly by a bogus tooltip, and partly by an assumption that's pretty bogus considering the UI context?
(In reply to comment #9) > Let's back up here, what is the user problem you're trying to solve with this? The user problem is as follows. A user opens the Extension Manager and wants to see if any of his extensions need to be updated. Therefore, they click on the update button, which has a tooltip indicating that it checks for updates to all extensions. Everything about the UI creates the expectation that the button will check for updates to all extensions. They then recieve a message informing them that their extensions are up to date, which is not true. As for users needing to find the context menu, this is a non-issue to me. What user situation can you imagine that would be resolved by checking for updates to only one extension? There are already several useful features in the Extension Manager that are only accessable from the context menu. Is this a good thing? Not really, but redesigning the Extension Manager is not a good use of our time. Right now, the update button is modal; it acts in one way (a update selected extension button) when something is selected, and acts in another way (a update all extensions buttion) when something isn't selected. This is a far bigger UI issue. I consider myself a fairly competant operator and the way this "feature" currently behaves was so non-obvious to me, that I didn't realize that this wasn't some sort of an UMO bug until I actually looked at the code.
(In reply to comment #10) > Everything about the UI creates the expectation that the button will > check for updates to all extensions. Not exactly, the other buttons immediately next to the update button are specific actions to individual items just as the update button is. I do agree that there should be a better way than de-selecting all items to update all items but making the update button update all items when clicked when the actions for the buttons next to it work only on the selected item is not a good solution as I see it. There have also been requests for disabling and enabling all items at the same time. It seems to me that a common solution for being able to accomplish this as well as updating all items would be more appropriate than making the one button act on all items while the buttons next to it acted only on individual items.
We have all sorts of context-menu problems here, don't we? Can you disable/enable an extension without discovering the context menu?
(In reply to comment #11) > Not exactly, the other buttons immediately next to the update button are > specific actions to individual items just as the update button is. Ergo I thought it would be best to move the update button over to the right to make it more clear that the behavior of the update button is global, while the behavior of the uninstall and prefs buttons are selection-specific. Simply put, no user should ever have the need to check for updates to only one extension (they can always choose exactly what extensions to update in the update selection dialog), and if they really do have this need for some reason, they can use the context menu. Let's do the right thing by default, not make users work for it.
(In reply to comment #12) > We have all sorts of context-menu problems here, don't we? Can you > disable/enable an extension without discovering the context menu? Nope. We certainly do have context-menu issues here, but I would rather have rarely used options that appeal only to developers like enable/disable and check for updates to only this extension live only in the context-menu, then clutter up the Extension Manager command bar with 15 different buttons.
were it not for a tooltip, the entire argument is a straw man, and its more than a little contradictory. I don't think anyone would assume that Uninstall refers to all extensions, so why would the reasonable user would expect that the button right beside it would apply to all extensions? If you're saying that we need to move it so its obviously not part of the same group, then you're conceding that the button placement identifies it as being selection-specific, and simply saying that checking for updates for all extensions is more useful and we should do that instead. I disagree with your assertion that disabling and updating single extensions are "developer" or "power-user" functions, or that they're rarely used. Its a really useful troubleshooting tool, and users are already accustomed to checking individual extensions. Its really commonly used in #firefox, and the disable feature isn't discoverable enough, based on that user experience info, anecdotal as it is. Update all isn't well-supported via the EM, and that does need to be addressed, as does the misleading tooltip, but the original aim of the manager is to manage individual extensions, not to provide UI for general update checking, we have a Check For Updates menuitem that's even more straightforward and should be used for that.
That explains why Update never found any updates for me, even for stuff that I knew there was an update for. I agree with Zach in comment #7 -- I'd much rather see a clearly labelled "Check for Updates" button somewhere to the right, and get rid of the Update button at the bottom. Having to go back to the *Help Menu* to select "Check for Updates" to see whether any extensions have updates is pretty silly, considering that you're in the "Extensions Manager".
(In reply to comment #12) > We have all sorts of context-menu problems here, don't we? Can you > disable/enable an extension without discovering the context menu? I believe we do, another example is update is always enabled for each extension even when it is disabled. Another I introduced in that it isn't obvious that it is now possible to cancel an uninstall for an extension by selecting enable when an uninstall is pending. As for the command bar, I am not arguing with anyone that it needs work. I just would prefer a solution that takes this issue *and* the other issues into account instead of going for a quick fix for just this one issue which would more than likely need to be reworked when a more complete solution is created.
Update for Extensions is in a weird state right now. Help->Check for Updates applies to the app only. I am going to work on a robust background update solution for Extensions for DPb1 The background update check and installation process should be streamlined to make the manual "check for updates to all" less necessary as a front line UI feature.
I have been testing Firefox on Mac for some time, and I always thought that button checked for all ext and theme updates. I think we need to think about what makes sense from a user perspective - I am all in favor of making it easier for users to understand the functionality of the various buttons. Especially on the mac, but right now it isn't readily apparent that the button only checks for individual updates. As Vlad notes, I would be in favor of seeing a button that would allow me to check for updates for all extensions in the actual Ext Manager. (In reply to comment #16) > That explains why Update never found any updates for me, even for stuff that I > knew there was an update for. > > I agree with Zach in comment #7 -- I'd much rather see a clearly labelled "Check > for Updates" button somewhere to the right, and get rid of the Update button at > the bottom. Having to go back to the *Help Menu* to select "Check for Updates" > to see whether any extensions have updates is pretty silly, considering that > you're in the "Extensions Manager".
A simple solution might be to just add a "Update All" button separate from the 3 current buttons, either with a vertical bar or with some space. zach said he was against this, because it confuses things even more with two Update buttons... but I think it would be pretty clear what the "Update All" button does, and the "Update" button would be just as unclear as it was before. The "Preferences" button is in the same boat, IMO -- you're in the "Extensions Manager", and you have a "Preferences" button that looks like it applies to the entire window. I'd expect global extension preferences, not a per-extension prefs dialog.
At Josh's request, here's my patch to make the update button an update all button and mvoe it over to the right side of the UI next to the "get extensions" link.
Attachment #188694 - Attachment is obsolete: true
Ben's gonna fix this for b1 it sounds like, but just for tracking (hi, cbeard) I am plus'ing for 1.1. Doesn't mean I want zach to fix it, or anything like that. Ben, if you have a better bug you're already using, please dup this against it -- otherwise take this bug (or get mconnor to take it ;-). Thanks, /be
Flags: blocking-aviary1.1? → blocking-aviary1.1+
Flags: blocking1.8b4+
Whiteboard: [affects l10n]
Kicking over to Ben. I'm tired of this bug now that it's more then a personal annoyance :-)
Assignee: zach → bugs
Status: ASSIGNED → NEW
FWIW, my gut feeling on this is that while updates to single extensions may be useful for testing or other advanced purposes, the majority of users are going to assume that checking for updates would apply to all potentially updatable things; we can "thank" Windows Update for that. People are now very used to a single action which results in a list of potential updates from which they can select all or a subset. It sounds to me that, from a UI perspective, there are two quick-and-dirty options that would be effective in reducing the confusion: 1. Update tooltips and dialog text to make it clear that the function is currently context sensitive. Right now it really does give every impression that it's checking for all updates, which would override any other expectation that may have arisen from the fact that the button is placed with a bunch of other context-sensitive buttons. - or - 2. As Zach suggests, move the update button away from the enable/diable/preferences buttons and change its underlying function so that it checks for all updates and then offers a list of potential updates from which the user can select a subset if they really want to. This is, if you're interested, my preferred option as well. :) And, of course, as Ben notes, if extension update checks become part of the standard background update check, this may all become moot as we'd live in a world where one's extensions are continually checked for up-to-dateness.
Note that fixing this will make bug 264750 much more visible.
Blocks: branching1.8
Blocks: 300861
Depends on: 299887
I wouldn't consider this a "blocker"... but go ahead and land this if you want.
Flags: blocking1.8b4-
Flags: blocking1.8b4+
Flags: blocking-aviary1.1-
Flags: blocking-aviary1.1+
Before I go down the road of looking to possibly land this, I'm going to wait for bug 264750. Fixing this before we fix that is just taking a big step backwards.
Depends on: 264750
This patch is much more appropriate now that a couple of the other issues such as bug 299887 and bug 262373 (patch ready to land) have been fixed and I have a patch for bug 264750 that will be ready to land soon. There is still one more issue that I think should be fixed. The installer can install several items that update will never update yet the button will always be enabled... it should only be enabled if there are items that can be updated.
mconnor, if the patch in this bug won't make it in any time soon, would it be possible to at least make two changes to the existing system? 1) provide the user some means to deselect an extension instead of holding down control while clicking on a highlighted extension, or maximizing the Extension Manager so that you can see the area below the extension list, and then clicking on the area below the listed extensions. As it is with the current EM, there appears to be no way to completely deselect all extensions other than one of these two methods. You mentioned that clicking on "Update" without any selected does indeed update them all. I was delighted to find out that it does in fact do this, but to the normal user there is currently no way to attain this "no extensions selected" which will be obvious to them. Would it be possible to make an additional click on a selected extension DESELECT the extension in the list? Make the regular click act as sort of a select toggle in essence? 2) Would it be possible to dynamically change the text of the "Update" button to say "Update All" when the user deselects all extensions? This would clear things up a lot. Again, thanks for the "deselected Update" tip though. I've been using nightly builds since the day the EM was introduced, and I'd never come across this behavior.
No longer blocks: branching1.8
Attachment #188738 - Attachment description: Move update button to the right and make it do update all extensions → Move update button to the right and make it update all extensions
Attachment #188738 - Flags: review?
The patch for bug 264750 will be ready to submit after the patch in bug 296566 lands.
Thanks Rob. I'll seek review and approval for this and will deal with checkin after 264750 and 296566 land to avoid making things worse then they already are.
No longer blocks: 300861
Depends on: 296566
Attachment #188738 - Flags: review? → review?(rob_strong)
Comment on attachment 188738 [details] [diff] [review] Move update button to the right and make it update all extensions Zach - I'll review this but I can't approve checkins... you'll need someone like mconnor to review it as well. It is also easier when you diff from the root of your tree and the patch will need to be updated for recent changes in these files. >+ case "cmd_update_all": >+ return gExtensionsView.children.length > 0; Use spaces instead of tabs like the rest of the file >+ >+ cmd_update_all: function (aSelectedItem) >+ { >+ // check for updates for all installed extensions and themes >+ gExtensionsViewController.commands['cmd_update'](null); >+ }, Same here. I think gExtensionsViewController.commands.cmd_update(null); is cleaner. > command="cmd_uninstall"/> >- <separator class="commandBarSeparator"/> >- <button id="updateButton" >- label="&cmd.update.label;" accesskey="&cmd.update.accesskey;" tooltiptext="&cmd.update.tooltip;" >- command="cmd_update"/> >- <separator class="commandBarSeparator"/> >+ <spacer flex="1"/> The separator will ensure that there is separation between adjacent items and a spacer will not. It isn't clear why the second one should be removed. > </hbox> >- <spacer flex="1"/> >+ <spacer flex="5"/> flex="1" should be sufficient... isn't it? Also, now that there is a button on the right a separator should also be used here since the adjacent button would be right next to it if th window is sized smaller than the content. >+ command="cmd_update_all"/> >+ >+ <separator class="commandBarSeparator"/> nit: there is no need for the extra line.
Attachment #188738 - Flags: review?(rob_strong) → review-
*** Bug 302289 has been marked as a duplicate of this bug. ***
Attached patch patchSplinter Review
Zach - I am submitting an updated patch in case you don't have the time to submit one. Benjamin - Ben gave his go ahead for this in comment #27. I also fixed a Thunderbird ui glitch in that all buttons but the install button have a separator.
Attachment #190684 - Flags: review?(benjamin)
Assignee: bugs → rob_strong
OS: MacOS X → All
Hardware: Macintosh → All
Version: unspecified → Trunk
Attachment #190684 - Flags: review?(benjamin)
Attachment #190684 - Flags: review+
Attachment #190684 - Flags: approval1.8b4+
Whiteboard: [affects l10n] → [checkin needed][a+][affects l10n]
Fixed on trunk
Status: NEW → RESOLVED
Closed: 19 years ago
Resolution: --- → FIXED
Whiteboard: [checkin needed][a+][affects l10n]
Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.8b4) Gecko/20050727 Firefox/1.0+ ID:2005072709 verified
Status: RESOLVED → VERIFIED
Product: Firefox → Toolkit
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: