Closed Bug 1685387 Opened 3 years ago Closed 2 years ago

Update the text on about:restartrequired to account for private windows

Categories

(Firefox :: Session Restore, defect, P3)

defect
Points:
2

Tracking

()

VERIFIED FIXED
98 Branch
Tracking Status
firefox98 --- verified

People

(Reporter: mhoye, Assigned: dao)

References

Details

(Keywords: blocked-ux)

Attachments

(2 files)

We need to reconsider the text in the About:restartrequired page to make it clear that users will lose their private browsing, new tabs can't be opened and so forth. The current text is false and misleading. I propose we replace it with:

Sorry. We just need to do one small thing to keep going.

Your operating system has just updated Nightly in the background. Nightly will need to restart before it can open any new tabs.

Restarting will close any private browsing windows or tabs you have open; if you need to save this work, please do so before restarting.

All the rest of your pages, windows and tabs will be restored quickly, and we apologize for the interruption.

... or something to that effect.

I'm wondering whether we can detect the OS update situation as separate from other cases where we show about:restartrequired.

Molly, AIUI you've recently done some work to improve this situation where Firefox controls the update. Is this as simple as checking for the updater #define so we show a different message for distro-managed builds?

Flags: needinfo?(mhowell)

about:restartrequired, to simplify a bit, occurs when the copy of the browser that exists on disk does not match up with one that is currently running. There are multiple ways that can happen to a running instance:

  1. Our updater has applied an update to that copy, so the instance that's been running is now out of date. We would generally be able to detect that this is what has happened by checking he update history (it wouldn't be prefect, but likely good enough).
  2. A package manager (which may or may not be part of the operating system as the user defines it) has applied an update to that copy, so the instance that's been running is likely now out of date. We cannot in general detect that this is what has happened unless the package manager gives us a way to do so (which presumably would be different for each one), except that we can rule out #1.
  3. The user or a script running on the user's behalf has overwritten that copy for whatever reason, so the instance that's been running is now different (there is no guarantee whether this is an upgrade or a downgrade). We cannot in general detect that this is what has happened (except that we can again rule out #1), because the user can do whatever they want to our files, it's their computer.

To summarize the above, we can tell when our updater has created this situation because it is under our control, but we cannot differentiate between the package manager or other user action, and we cannot be certain that the package manager which has updated us is part of the operating system. Given that uncertainty, I don't feel comfortable endorsing a message within the product which would be read as blaming some other software. I do support the rest of the suggestions to add information about private windows, opening new tabs, etc.

Flags: needinfo?(mhowell)

Given that whenever this happens people assume it's Firefox policy to force a restart, having some indication that it's actually an exceptional situation seems helpful in avoiding furstration/misplaced blame (I've encounted this myself and it is very frustrating). And given it overwhelmingly happens on linux, maybe it's OK to be slightly more technical than we usually would in a user-facing message (I realise this is not appropriate for all linux users, so I'm not suggesting we start mentioning inodes or anything :). Maybe something like:

This Firefox install has been updated by your operating system or by another application. Firefox will need to restart before it can open new tabs

[continue as above]

To get a feel for the scale and context, I ran a few queries on telemetry. This error is too small to show up on the public dashboards, so these require STMO login, I'll try to repeat the relevant data.

These errors went from around 100/day to 2500/day on 2020-12-16 (84.0 was released 2020-12-15), dropping off exponentially after that spike, and then spiking again 2021-01-05 to 2010-01-06 (when 84.0.1 and 84.0.2 were released). Nearly all of these are on Linux (there's a max of 50/day on Mac, 10/day on Windows).

Of the Linux instances reporting the error, distribution_id on 2020-12-16 breaks down as 92% canonical (2366, this is Ubuntu) vs 7% other (177) and < 1% none (22, which would include our builds, using our updater). The breakdown of distinct client IDs on 2020-12-16 by distribution_id is 67% canonical, 25% other, 8% none. Error rates per client ID are 0.001 for canonical, 0.0002 for other, 0.0001 for none. These counts are small, but it does look like it's more likely to have this error on Ubuntu by an order of magnitude, even taking into account how large the Ubuntu population is. This is almost certainly because of the package manager that comes standard with Ubuntu (and which sometimes runs automatically).

Caveat: We don't have telemetry specifically for about:restartrequired, this counts the presence of the dom.contentprocess.buildID_mismatch scalar, which is set when sendToRestartRequiredPage() shows the page the first time by way of DisplayLoadError().

I agree with mhowell that it's not a great idea to call out the package manager in the message, as we can't be certain about the cause, I was just curious to see if we had any statistics to suggest how common this situation is.

Blocks: 1366808
Severity: -- → S2
Keywords: blocked-ux
Priority: -- → P3
Summary: Update the text on about:restartrequired → Update the text on about:restartrequired to account for private browsing
Summary: Update the text on about:restartrequired to account for private browsing → Update the text on about:restartrequired to account for private windows

my version (now): 95.0.1 (64-bit) on Ubuntu
I was about to report this too. Even on a tab in a private window, it shows the message "We will restore all your pages, windows and tabs afterwards, so you can be on your way quickly" - this makes me expect that private windows will also be restored in this particular circumstance, but that is not the case.
Also, I used to be able to continue working with the running browser instance after the update quite normally (mainly just for file: URLs it would tell me restart required) but now it is ubiquitous and the browser isn't usable any more immediately from the install time. I thought I might as well prepare by installing now and restart later, this plan backfired.

Assignee: nobody → dao+bmo
Status: NEW → ASSIGNED
Points: --- → 2

We would only show this warning if there's a private window open at the time of loading about:restartrequired. Also note that I removed "all" from "We will restore all your pages, windows and tabs afterwards, so you can be on your way quickly."

Gijs, would you be able to get someone from UX to look over this?

Flags: needinfo?(gijskruitbosch+bugs)

(In reply to Dão Gottwald [::dao] from comment #8)

Gijs, would you be able to get someone from UX to look over this?

I've pinged folks in #content_design on slack. :-)

Flags: needinfo?(gijskruitbosch+bugs)

Per slack, putting in a needinfo here, with the context I gave before:

There's an about:restartrequired page that's part of Firefox (you can load it yourself by typing that into the URL bar, to see what it's like). It shows up automatically when Firefox's files on the user's machine get changed (usually because another instance of Firefox, or a Linux package manager or similar, has updated Firefox while it was running), and so we prompt the user to restart in order to keep using Firefox. We're trying to update the text to make it clearer that private windows will not be restored. Could someone review Dão's updated copy from comment 8?

Flags: needinfo?(mwalkington)

Romain, are you PM on this? Is this work prioritized, and when would this be shipping? Thank you.

Flags: needinfo?(mwalkington) → needinfo?(rtestard)

I don't think the severity is right here, this does not seem to check the box for "Major functionality/product severely impaired" given this is about at max 2500 users daily every 2 weeks and most of these users won't have private windows.
I think we're in a scenario where criticality is low, Dão's suggestions feels very suitable and content design capacity is not available - i.e we should move forward with Dão's suggestion given it's very unlikely this will be prioritized in the next few months for content design and his proposal is an obvious improvement to the current state.

Severity: S2 → S3
Flags: needinfo?(rtestard)

Thanks, Romain. I'd like to do a minimal copy revision to the message before it goes. Dão, I will post back here soon (maybe today or this week)... does that work?

Flags: needinfo?(dao+bmo)

Proposed edits below. Dão, does this look accurate? (especially the "You'll need to restart to reconcile versions" bit? ... wanting to provide some explanation of Why if we can).

Header: Restart to Keep Using Nightly
Body: Nightly has just been updated in the background. You'll need to restart to reconcile versions. Normal windows and tabs will be quickly restored. Your private windows and tabs won't be restored.
Button: Restart Nightly

(In reply to Romain Testard [:RT] from comment #12)

I don't think the severity is right here, this does not seem to check the box for "Major functionality/product severely impaired" given this is about at max 2500 users daily every 2 weeks and most of these users won't have private windows.
I think we're in a scenario where criticality is low,

I think we need to take impact on individual users into account as well as how widespread it is. Dataloss issues by default should be considered rather severe imho.

(In reply to Meridel [:meridel] from comment #14)

Proposed edits below. Dão, does this look accurate? (especially the "You'll need to restart to reconcile versions" bit? ... wanting to provide some explanation of Why if we can).

Header: Restart to Keep Using Nightly
Body: Nightly has just been updated in the background. You'll need to restart to reconcile versions. Normal windows and tabs will be quickly restored. Your private windows and tabs won't be restored.
Button: Restart Nightly

This looks good to me, except:

  • I think we should keep the body across two lines, otherwise it will stretch and wrap unfavorably.
  • I would still add the warning about private windows only when there are private windows open, but "Normal windows and tabs ..." feels weird without a qualifying sentence, as it wouldn't be entirely clear what "normal" meant. I propose we change this to: "Your windows and tabs will be quickly restored. Private windows and tabs won't be restored."
Flags: needinfo?(dao+bmo)
Attachment #9256808 - Attachment description: WIP: Bug 1685387 - Add warning to about:restartrequired if there are private windows. → WIP: Bug 1685387 - Update the text on about:restartrequired to account for private windows.

Not sure if it's just me, but isn't "reconcile versions" unclear= What does it need to reconcile, and with what?

As far as I understand, we can't update some parts of the browser because they're in use. Not sure how to fit that into the explanation without using jargon though.

So, an update has started but not completed right? If that's the case, I propose this:

Restart to Keep Using Nightly

Nightly started to update in the background. You'll need to restart to finish the update.

Your windows and tabs will be quickly restored, but private ones will not.

Button: Restart Nightly

(In reply to Meridel [:meridel] from comment #17)

So, an update has started but not completed right? If that's the case, I propose this:

Restart to Keep Using Nightly

Nightly started to update in the background.

I'm sorry but I'd really like to avoid the implication that Firefox/Nightly itself made this decision, as that is not the case for the majority of the people seeing this (even if we can't be sure about who/what instigated the update so we want to avoid assigning blame to distros or other things). I realize that in content writing, an active voice is normally preferred, but I think here there is a good reason to be circumspect.

Flags: needinfo?(mwalkington)

No apology necessary but thank you =)

Revised:

Restart to Keep Using Nightly

An update to Nightly started in the background. You'll need to restart to finish the update.

Your windows and tabs will be quickly restored, but private ones will not.

Button: Restart Nightly

Flags: needinfo?(mwalkington)
Attachment #9256808 - Attachment description: WIP: Bug 1685387 - Update the text on about:restartrequired to account for private windows. → Bug 1685387 - Update the text on about:restartrequired to account for private windows. r=gijs
Pushed by dgottwald@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/2bfcd66c1bbf
Update the text on about:restartrequired to account for private windows. r=Gijs,fluent-reviewers
Status: ASSIGNED → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → 98 Branch
See Also: → 1751366
Flags: qe-verify+

The new feature is up to date while running Firefox 98.0b4(20220213185901) and latest Nightly 99.0a1(20220213214259) on Linux(Ubuntu 20.04), macOS Big Sur 11 and Win 10 x64. The text displayed in the about:restartrequired matches the one from comment 19.

Status: RESOLVED → VERIFIED
Flags: qe-verify+
No longer blocks: 1366808
Depends on: 1366808
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: