Open Bug 1374227 Opened 7 years ago Updated 2 years ago

Inform users of multiple versions of the same channel that they may encounter profile corruption

Categories

(Toolkit :: Startup and Profile System, enhancement, P3)

enhancement

Tracking

()

People

(Reporter: RT, Unassigned)

References

(Blocks 1 open bug)

Details

User Story

Per discussion on bug 1246615, it seems very likely (previous users research and common sense) that users who reverted to an older version, staying on the release channel (2.19% mentioned on https://bugzilla.mozilla.org/show_bug.cgi?id=1246615#c42) are users with multiple release versions installed on their system. This is a supported use case and our goal is to make profiles backwards and forwards compatible although this is a hard goal to achieve and number of developers suffer from profile corruption issues when using profiles from the future.

What we know of multi-folder installs on release:
-  https://sql.telemetry.mozilla.org/queries/3948#7852  shows that about 15% to 17% of new stub installs had Firefox already installed in a different directory at some point (may have been uninstalled at time of installation)
- https://sql.telemetry.mozilla.org/queries/3665#7247 shows that 2% to 5% of installs are done in a non default path
- https://bugzilla.mozilla.org/show_bug.cgi?id=1246615#c42 shows that 2.19% of users reverted to an older version, staying on the release channel

The above data does not explicitly show the correlation between users who reverted to an older version, staying on the release channel and running different Firefox versions on the same machine from different directories but it gives us clues that both are likely related.

User stories: 
- As a developer, I want to be warned that I may encounter profile corruption when I switch Firefox release versions, so my life gets simpler.
- As a user, I want to use the most up to date Firefox on my desktop.

 
Acceptance criteria:
- TBD
 
Next steps:
1 Understand if we can prove the correlation between users who reverted to an older version, staying on the release channel and running different Firefox versions on the same machine from different directories (data analyst support?)
2 Understand if this is only a developer use case. The reason for having 2.19% of users who reverted to an older version, staying on the release channel may be that they get confused between different Firefox versions installed on their system (at some point they may have re-installed Firefox in a different directory to fix an issue and they may use shortcuts that point to the old version) (shield study?)
3 Engage with UX for potential solutions based on 1 and 2

Attachments

(1 file)

      No description provided.
Blocks: 1246615
User Story: (updated)
Bram,
We have strong clues that 2.19% of users downgrade Firefox versions because they use multiple installations of Firefox in different directories. This may be a developer use case (I want to test against different Firefox release versions because I know updates take-up can take some time) but this may also be an end user use case (I tried to fix Firefox by installing it in a different directory, I did not uninstall the old version and I may be getting consused when using shortcuts. 
It seems hard to know for sure why this happens (user testing would not help there, a shield study probably also won't since asking confused users would not give us great insights).

Do you think that a single UX informing users could address both populations?

The goals would be:
- Inform users that they may encounter issues
- Inform users that they used a more recent Firefox version on their current profile and perhaps point to a SUMO page about how to uninstall the old version
Flags: needinfo?(bram)
In my mind, the design should anticipate user needs at different points in the process:


1. A message that appears on the download page when you’re trying to download an older version while running a newer version of Firefox.

The message should be the reverse of “You’re running the latest version”. Maybe like this:

> Have a problem with Firefox?
>
> Try this before you do anything else:
> [Refresh Firefox] to fix slowness, crashing, search hijacking and other problems.
>
> What are the problems you’re experiencing?
> * [Problems with websites (Facebook, YouTube, webmail etc.)]
> * [Videos, sound, pictures and animations don't work]
> * [Firefox is slow or stops working]
> * [Slowness or hanging]
> * [Firefox crashes]
>
> <small>You can ignore the risk and download [this older version of Firefox].</small>


2. A message that appears on the first screen of the installer when a newer version of Firefox is already present.

IF currently installed version is newer, but still not up to date, SHOW:
> A new version of Firefox is ready for you. It’s faster and more secure. Get it now by downloading.
> [Not now] [Download update]

“Not now” will skip the screen and proceed with the installation of the old version. “Download update” will close the installer, open Firefox, and manually initiate downloading an update. We can show the “About Firefox” window so the user can see the update progress.

IF currently installed version is newer and up to date, SHOW:
> You’re already running the newest, fastest and most secure version of Firefox. Installing an older version may cause problems.
> [Ignore the risk and install older version] [Try to fix Firefox]

“Ignore the risk” will skip the screen. “Fix Firefox” will close the installer, open Firefox and initiate Refresh Firefox.

We assume that, even if users chose to ignore the risk and click Next… Next… Next…, the older version will overwrite the newer version. It’s bad, but at least there’s no version conflict here.


3. A message that appears on the installer when you click the button to change installation directory:

> Installing multiple versions of Firefox on one computer may cause problems
> [Ignore the risk] [Use default directory]

This is where we address the possible version conflict.


4. A message that appears when the user proceeds with the directory change, installs an older version in parallel, then run it. The page should also be like the webpage that opens when you’ve just updated Firefox, but in reverse:

> A newer, faster and more secure version of Firefox is already installed on this computer.
>
> Running an older version alongside a newer one may cause problems.
>
> [Run the latest Firefox] [Learn how to uninstall the old version]
>
> <small> You can ignore the risk and continue [running this old version].</small>

Like any other webpage, this page can very easily be closed. But it will reappear the next time you run the older version until you’ve clicked on “continue running this old version”. This assumes that you’ve understood the risk and are ready to deal with its consequences.


What do you think?
Flags: needinfo?(bram) → needinfo?(rtestard)
(In reply to Bram Pitoyo [:bram] from comment #2)
> In my mind, the design should anticipate user needs at different points in
> the process:
> 
> 
> 1. A message that appears on the download page when you’re trying to
> download an older version while running a newer version of Firefox.
It's pretty hard to download an older version of Firefox. The assumption here is that users install release N in a custom directory. Then for some reason (likely to be trying to fix Firefox which happens a lot), they re-install Firefox N+1 but on the default directory (Data analysis shows that about 15% to 17% of new stub installs had Firefox already installed in a different directory at some point (may have been uninstalled at time of installation - https://sql.telemetry.mozilla.org/queries/3948#7852 )
 They end-up with 2 distinct installs in 2 directories and probably sometimes use different shortcuts or the exe to launch Firefox. This way they may be switching versions without even realizing it. Does it sound right to you?
> 
> 
> 2. A message that appears on the first screen of the installer when a newer
> version of Firefox is already present.
> 
This would not be applicable per comment above
> 3. A message that appears on the installer when you click the button to
The new stub installer in FF55 has no more Options page. This remains on full installers, I assumle usage is very low but I'll get the data
> 
> 4. A message that appears when the user proceeds with the directory change,
> installs an older version in parallel, then run it. The page should also be
> like the webpage that opens when you’ve just updated Firefox, but in reverse:
> 
> > A newer, faster and more secure version of Firefox is already installed on this computer.
> >
> > Running an older version alongside a newer one may cause problems.
> >
> > [Run the latest Firefox] [Learn how to uninstall the old version]
> >
> > <small> You can ignore the risk and continue [running this old version].</small>
> 
> Like any other webpage, this page can very easily be closed. But it will
> reappear the next time you run the older version until you’ve clicked on
> “continue running this old version”. This assumes that you’ve understood the
> risk and are ready to deal with its consequences.
> 
This would work indeed if a user of Firefox N+1 then opens Firefox N
> 
> What do you think?
Flags: needinfo?(rtestard)
Priority: -- → P3
(In reply to Romain Testard [:RT] from comment #3)
> The assumption
> here is that users install release N in a custom directory. Then for some
> reason (likely to be trying to fix Firefox which happens a lot), they
> re-install Firefox N+1 but on the default directory […]
> They end-up with 2 distinct installs in 2 directories and probably
> sometimes use different shortcuts or the exe to launch Firefox. This way
> they may be switching versions without even realizing it. Does it sound
> right to you?

Tricky, especially if we have no idea of the user’s intentions (and as you said, interviewing will probably not be very helpful in uncovering these intentions).

Maybe we should start with just showing the doorhanger. The simplest possible approach. The message will tell users that we’ve detected an older version of Firefox, and it might cause problems with this version that they have running. Want to fix it? Here’s how to uninstall it.

First question: is this approach too general?

If the uninstall procedure is too hard to follow (especially if the user will have to keep a SUMO tab open) and can’t be done with a few clicks, I’m worried that most people won’t follow through and will keep running two Firefoxes side by side. Can we, for example, trigger running the uninstaller from one of the doorhanger buttons?

The other possible scenario is the user running two versions side by side to resolve some sort of an issue. In that case, my second question is whether the solution we should encourage is to uninstall first, followed by installing Nightly or Beta?
Flags: needinfo?(rtestard)
(In reply to Bram Pitoyo [:bram] from comment #4)
> (In reply to Romain Testard [:RT] from comment #3)
> > The assumption
> > here is that users install release N in a custom directory. Then for some
> > reason (likely to be trying to fix Firefox which happens a lot), they
> > re-install Firefox N+1 but on the default directory […]
> > They end-up with 2 distinct installs in 2 directories and probably
> > sometimes use different shortcuts or the exe to launch Firefox. This way
> > they may be switching versions without even realizing it. Does it sound
> > right to you?
> 
> Tricky, especially if we have no idea of the user’s intentions (and as you
> said, interviewing will probably not be very helpful in uncovering these
> intentions).
> 
> Maybe we should start with just showing the doorhanger. The simplest
> possible approach. The message will tell users that we’ve detected an older
> version of Firefox, and it might cause problems with this version that they
> have running. Want to fix it? Here’s how to uninstall it.
> 
> First question: is this approach too general?
This feels right to me
> 
> If the uninstall procedure is too hard to follow (especially if the user
> will have to keep a SUMO tab open) and can’t be done with a few clicks, I’m
> worried that most people won’t follow through and will keep running two
> Firefoxes side by side. Can we, for example, trigger running the uninstaller
> from one of the doorhanger buttons?
I NI Matt here who may have ideas about what could be done to simplify the uninstall process for these users. 
> 
> The other possible scenario is the user running two versions side by side to
> resolve some sort of an issue. In that case, my second question is whether
> the solution we should encourage is to uninstall first, followed by
> installing Nightly or Beta?
The official way to fix issues is to go to about:support and use the "Refresh" feature. I agree it sounds like it may be a use case, worst case it could probably be detailed on the SUMO page we point to.
Flags: needinfo?(rtestard)
I missed NeedInfoing Matt on my previous comment, now done.
Flags: needinfo?(mhowell)
So, if you install version N and then N+1 in different directories, as long as they're on the same channel and the same locale and you didn't tell the N+1 installer not to create any shortcuts, you'll only have shortcuts to version N+1. The installer just paves over any existing shortcuts with the same file name. So I don't think confusion caused by having shortcuts pointing to different versions is very likely in that case. But of course that also means if you have N+1 and you install version N, you end up with shortcuts for version N.

(In reply to Romain Testard [:RT] from comment #5)
> I NI Matt here who may have ideas about what could be done to simplify the
> uninstall process for these users.

I think we really could just launch the uninstaller directly from a doorhanger; if we've already found an older installation, then we know exactly where its uninstaller is and we can just run it. The user still has to accept a UAC prompt and click Next in the wizard, but this way cuts out most of the steps. We just have to be careful and a bit conservative about when we decide to show that button; we need to be really sure that we know exactly what it is we're offering to uninstall and that it really does need to go.
Flags: needinfo?(mhowell)
Launching another application directly from a doorhanger button is the right concept here, in that we want quick and easy access to fix problems.

At the same time, I was thinking that the doorhanger space might be too small to convey something so important – especially a button that will open another application (which is a pattern that we don’t currently use in Firefox).

So should we use an in-content info page in this case? It allows us to have more space, where we can convey more information.

Let’s consult with :amin who works for Firefox Design Systems.


Amin,

We’re thinking of ways to inform users who have multiple release-versions installed on their computers.


User problem
------------
You have an older Firefox version installed because, either:

* Most users wants to solve a problem that can only be resolved by rolling back version (e.g. add-ons compatibility)
* Some developers want to perform tests with old versions but without running Nightly or a VM


Firefox problem
---------------
* The two Firefox versions will share the same profile
* Profiles aren’t necessarily backwards or forwards-compatible
* So users would be at risk to encounter crashes and data losses


Proposed solution
-----------------
Uninstall the old version


What we’re unclear about
------------------------
1. What’s the best means to inform users?
   * Our reflex was to use the doorhanger
   * Is there a place for an in-content page here, because the notification might be quite long?

2. Is there a design pattern for warning/notification that persists each time you run the browser, until you take action?
   * We’re worried about being annoying or too in-your-face
   * At the same time, profile corruption can cause all sorts of problems, so we’d like you to take action

3. If the primary call-to-action is to run the uninstaller, is there a design pattern for clicking a button or a link that will invoke running another application? I think we don’t have this currently.
Flags: needinfo?(aalhazwani)
Hey Bram, sorry for the late reply!

(In reply to Bram Pitoyo [:bram] from comment #8)
> 1. What’s the best means to inform users?
>    * Our reflex was to use the doorhanger
>    * Is there a place for an in-content page here, because the notification
> might be quite long?

With Photon we're trying to use as less doorhangers as possible. I might have a different proposal, see 2. What's the exact string that you would like to print out?

> 2. Is there a design pattern for warning/notification that persists each
> time you run the browser, until you take action?
>    * We’re worried about being annoying or too in-your-face
>    * At the same time, profile corruption can cause all sorts of problems,
> so we’d like you to take action

What if we use the same pattern as the one we're using for notifying users that an update is available or that they need to verify their account? We could display a warning badge on the menu icon and when they click it there's a little banner that explain them what's happening and let them uninstall the older version. See example here https://screenshots.firefox.com/IW1Om3dmAmMuIBSD/mozilla.invisionapp.com

> 3. If the primary call-to-action is to run the uninstaller, is there a
> design pattern for clicking a button or a link that will invoke running
> another application? I think we don’t have this currently.

Do we really need a call to action or could be the banner enough? It's a pattern that users are already familiar with. What do you think?
Flags: needinfo?(aalhazwani) → needinfo?(bram)
Hi Amin. Thanks for the suggestion. Having a combination of a warning badge + in-menu banner sounds great! I had worked on the update UX but forgot that it’s an available solution to try.

Amin wrote:
> What's the exact string that you would like to print out?

It will be something along the lines of:

Longer: “An out of date version of Firefox is installed on this computer and may cause problems. Uninstall it.”

Shorter: “Uninstall out-of-date version of Firefox”.

The badge and in-menu banner will appear when you run the newer version of Firefox. When clicked, it will run the uninstaller. (Hopefully, it will only take 1 or 2 clicks and a few seconds).


Two questions for you:
1. Is there a space for the longer string, or should we stick to the shorter one?
2. Can we utilise the same yellow exclamation mark icon as “Verify your account”, or should we come up with our own?


A question for Romain: I avoid any mention of “profile” and just stick to addressing the immediate problem. What do you think of the strings?
Flags: needinfo?(rtestard)
Flags: needinfo?(bram)
Flags: needinfo?(aalhazwani)
> Two questions for you:
> 1. Is there a space for the longer string, or should we stick to the shorter
> one?

I believe so. You can easily fit a long string on two rows. I saw it somewhere but I cannot find it right now. Lemme look more into it. As long as the string is helpful the shorter the better :) In your shorter version is not clear if the user is currently using the outdated version or not. Would you display this warning only if the user is running the newer version? What happens if they're running the older one? 

> 2. Can we utilise the same yellow exclamation mark icon as “Verify your
> account”, or should we come up with our own?

I would say yes, you can use the same one. There's has been some work around badges with Photon. It depends if this patch lands before or after 57. >57 you can use what's already in product. >=57 I can point you to the more recent specs!
Flags: needinfo?(aalhazwani) → needinfo?(bram)
> You can easily fit a long string on two rows.

Great! Then let’s shorten the long string I’ve proposed on comment 10 a bit:

“You have installed an out of date version of Firefox that may cause problems. Uninstall it.”


> I would say yes, you can use the same one.

Thanks for confirming this. Let’s use the yellow exclamation mark icon. For earlier versions that can’t have this UI, we’ll follow the old notification style.


> Would you display this warning only if the user is running the newer version?
> What happens if they're running the older one?

Yes. We’d only display this warning when the user is running the newer version. When you’re running the older one, nothing would happen.

Assumption #1: users install older versions because they wanted to fix a specific problem (let’s say that their favourite add-ons are only available as a legacy version). We think that they would only want to run an old version for a limited time period. Therefore, sooner or later, they will run the newer version, see the notification and click it.

Assumption #2: if users run older versions, see the notification and click it, we would have to uninstall that version. To uninstall, we would have to quit that version and destroy the user’s current browsing session. This seems needlessly destructive to me. I think we can wait a bit until they run the newer version before offering this notification.
Flags: needinfo?(bram)
Bram, apologies for the delay on this, I just came back from parental leave last week.
A few comments:
- I agree with only displaying the message when users run the newer version.  
For info a tiny share of installs relates to installing older versions than the current one, we want to fix this (it should be technically impossible when using the stub) with https://bugzilla.mozilla.org/show_bug.cgi?id=1375508. https://sql.telemetry.mozilla.org/queries/3990#table shows the share of installs that relate to installing older versions. 
- “You have installed an out of date version of Firefox that may cause problems. Uninstall it.” sounds to me like I just installed it. "An out of date version of Firefox is installed on this computer and may cause problems. Uninstall it.” sounds more suitable to me but I'm not a native english speaker so not sure my opinion counts that much!
- The link https://screenshots.firefox.com/IW1Om3dmAmMuIBSD/mozilla.invisionapp.com has expired, could you please attch the proposed UI to the bug?
Flags: needinfo?(rtestard)
Marking now as enhancement so it gets triaged with other Firefox enhancements
Severity: normal → enhancement
Bram, the link https://screenshots.firefox.com/IW1Om3dmAmMuIBSD/mozilla.invisionapp.com has expired, could you please attach the proposed UI to the bug? 
Bug 1404344 is looking at a tactical fix for this in 57 where we fear some users may switch back to 56 after the 57 gets rolled-out and we should consider this bug as the longer term solution for users who downgrade while staying on the release channel.
Flags: needinfo?(bram)
(In reply to Romain Testard [:RT] from comment #15)
> Bram, the link
> https://screenshots.firefox.com/IW1Om3dmAmMuIBSD/mozilla.invisionapp.com has
> expired, could you please attach the proposed UI to the bug? 

Sorry for the long overdue reply, Romain. Attached is the visual mockup – although note that the copy should occupy two lines and say:

“An out of date copy of Firefox is detected. Uninstall it.”

I took your suggestion as a basis, and shortened it to fit two lines. Additionally, I replaced the word “version” with “copy”. This should help clarify that the version that the user is about to uninstall is not the current one that she has running.

How does it sound?
Flags: needinfo?(bram)
Flags: needinfo?(rtestard)
(In reply to Bram Pitoyo [:bram] from comment #16)
> How does it sound?
It looks good now thanks!
FYI I'm getting updated data on downgrades to help validate our approach is right.
Flags: needinfo?(rtestard)
When that data comes in, I’d love to learn more about it. Maybe there’s a better approach to our current one, that we haven’t thought of yet.
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: