Open Bug 1088212 Opened 10 years ago Updated 4 years ago

Modify out-of-date Firefox redirect on /whatsnew & /firstrun

Categories

(www.mozilla.org :: Bedrock, defect)

Production
x86
macOS
defect
Not set
normal

Tracking

(Not tracked)

REOPENED

People

(Reporter: cmore, Unassigned)

References

(Blocks 1 open bug)

Details

(Whiteboard: [kb=1560825] )

Attachments

(1 file)

Currently on Bedrock, if an out-of-date Firefox visitor views /whatsnew or /firstrun, we redirect them to /firefox/new/ via this code:

https://github.com/mozilla/bedrock/blob/master/bedrock/firefox/views.py#L369

While the intention is good, it is not an ideal user experience.

Imagine this scenario:

1) User is running Firefox 33.0.
2) Firefox 33.0.1 is released
3) User Firefox browser starts downloading 33.0.1
4) In the meantime, 33.0.2 is released.
5) User restarts their 33.0.1 browser and the whatsnew page is popped.
6) 33.0.1 < 33.0.2, i.e. out-of-date, and they get redirected back to /firefox/new/
7) They are told their browser is out of date.
8) They manually download Firefox to get 33.0.2.

The same thing could happen with minor releases like with 33.1. Given that Firefox users have to update every incremental release, considering slightly out-of-date firefox users to be really out-of-date is probably not the best experience.

What does everyone think about only redirecting Firefox users on /whatsnew or /firstrun when they are more than 3 major versions old? i.e.  (if usersVersion < CurrentMajorVersion-3 then redirect firefox.new)

Code that determines what is new:

https://github.com/mozilla/bedrock/blob/master/bedrock/firefox/utils.py

"user_int >= latest_int"

The complexity here is that we still want to tell users on /firefox/new that there is a newer version available, but just not redirect them. 

Let's discuss what is the best way of handling them. Could be to just not pop the whatsnew page as often and that's a product change and not a bedrock change.
Let's discuss pros/cons of how to best handle these out-of-date redirects. They have been catching lots of users who are almost nearly up-to-date and asking them to re-download is not ideal. It does catch old version well, but asking Firefox 32 users to re-download manually just as they uploaded to 32.0.3 via a silent update is not the best.
We could match the behavior of the updated tabzilla upgrade bar. But I don't think it works the way you say. The site has no way to know if a user has 33.0.1 or 33.0.4. We only get major version. So a user should not be sent to firefox/new/ if they have any version of 33. If they are then we have bug and should find the cause.
(In reply to Paul McLanahan [:pmac] from comment #2)
> We could match the behavior of the updated tabzilla upgrade bar. But I don't
> think it works the way you say. The site has no way to know if a user has
> 33.0.1 or 33.0.4. We only get major version. So a user should not be sent to
> firefox/new/ if they have any version of 33. If they are then we have bug
> and should find the cause.

Good point on what we can see via the user agent and only major versions. I verified with the GA data that it is major versions and this scenario only got amplified because of the multiple chemspills. 

Here is a scenario that looks to be happening:

1) User is running Firefox 32.0.2
2) Silent update updates them to 32.0.3
3) User restarts
4) Whatsnew page opens
5) Since 32.0.3 < 33.0, user is redirected to /firefox/new/
6) /firefox/new/ tells them they are out of date and to re-download to Firefox

Do we think it is a good user experience to tell them to re-download once they applied an update when they are only 1 major version behind? Shouldn't they get the update soon via another silent update?
I agree that 2 major versions behind is reasonable and that we don't want them to needlessly download a whole fresh build if they really don't need it and are likely downloading the incremental update at the same time.
Another thing we could do for these 2 pages specifically is tell the user via a message that the version that they're looking at the info for is outdated. I don't think we currently use the version specified in the URL for anything, but could just say "This version of Firefox is not the latest, please update for the most secure software" or something (I'm clearly not the best at the wording).
This screenshot is the top URLs being hit on /firefox/new/ over the past week that coming from the /whatsnew/ redirect. The first column is the page with the ?oldversion parameter and value, the second column is the visitor's current version of Firefox.
Whiteboard: [kb=1560825]
Update! Now that 33.1 is out bedrock knows that 33.1 > 33.0. The issue is that minor versions are not included in the user agent string, thus when you are running 33.1, the website sees it as 33.0 and that appears to be out-of-date. 

Let's remove the redirect all together for now and re-evaluate it later on how to do this better.
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Let's revisit this as it is now explanation about why first runs have been so high since Nov 11th. Previously, users were redirected back to the download page and now they get a first run, which is why my counts have gone up so much.
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
What does everyone think about only redirecting Firefox users who are two major versions old or older back to the download page?
Sounds good to me. I thought we were already doing that, but it seems we're not.
(In reply to Paul McLanahan [:pmac] from comment #11)
> Sounds good to me. I thought we were already doing that, but it seems we're
> not.

In comment 7 I mentioned about just removing the redirect all together until we came up with another idea. Though, I don't know what was wrong with the 2 major versions or older to redirect.
Another idea is that we could only redirect people on pre-fx 29 versions (Australis) and also use the uitour api to see the full version number.
(In reply to Chris More [:cmore] from comment #10)
> What does everyone think about only redirecting Firefox users who are two
> major versions old or older back to the download page?

+1  I prefer this to your suggestion in comment 13.
William is checking out the /firstrun data now and he'll be able to give us the percentages of how many people during a period of time are hitting first run pages that are 2 or more versions old.
Flags: needinfo?(williamr)
(In reply to Chris More [:cmore] from comment #13)
> Another idea is that we could only redirect people on pre-fx 29 versions
> (Australis) and also use the uitour api to see the full version number.

I think it's a good idea to redirect pre-29 versions server-side. The UITour function only works in very recent versions of Firefox. However I don't think it provides the user with a very good experience to redirect on the client side to a different URL (and is also a bit wasteful of their bandwidth). Just my 2 cents.
(In reply to Alex Gibson [:agibson] from comment #16)
> (In reply to Chris More [:cmore] from comment #13)
> > Another idea is that we could only redirect people on pre-fx 29 versions
> > (Australis) and also use the uitour api to see the full version number.
> 
> I think it's a good idea to redirect pre-29 versions server-side. The UITour
> function only works in very recent versions of Firefox. However I don't
> think it provides the user with a very good experience to redirect on the
> client side to a different URL (and is also a bit wasteful of their
> bandwidth). Just my 2 cents.

Not a bad idea. Let's wait for the version breakdown from williamr.
I looked at visits to the firstrun during two time periods, the last 30 days and the last 180 days (GA errored out on longer periods).

Last month, over 1/3 of visits were from a users who is on a version 2 major versions old or older (<35). To see if this happened across other time periods and versions, I looked at the last 180 days and found that 26% of firstrun visits were on a version older than 32 (32 was the current version 180 days ago). 

I haven't yet found any specific versions or locales where large groups of people stay on older versions, though that may be worth exploring more.

Visits to firstrun, 30 days ending March 25, 2015
Current version (36)	24,924,380 (47%)
Recent version (35)	8,485,195 (16%)
Future version (>36)	741,362 (1%)
Old version (<35)	19,499,186 (36%)

Visits to firstrun, 180 days ending March 25, 2015
Current version (32+)	206,193,103 (74%)
Old version (<32)	71,429,328 (26%)

Spreadsheet with the analysis and source data from Google Analytics:
https://docs.google.com/a/mozilla.com/spreadsheet/ccc?key=0AtUzdCTYzxewdHNITXBPU3lhMW1HdmdweWNhT0UxQ3c&usp=sharing

Let me know if I can provide more information or answer other questions.
Flags: needinfo?(williamr)
Thanks, williamR!

This helps a lot and supports the proposal to only direct users who are more than 2 versions old. That will be roughly a quarter to a third of all first run users. This is significant and something we should do.

Alex/Jen: are you fine with proceeding with a redirect from firstrun to /firefox/new/ *only* when the visitor's version is more than 2 major versions old?

Thanks!
Flags: needinfo?(jbertsch)
Flags: needinfo?(agibson)
(In reply to Chris More [:cmore] from comment #19)
> Thanks, williamR!
> 
> This helps a lot and supports the proposal to only direct users who are more
> than 2 versions old. That will be roughly a quarter to a third of all first
> run users. This is significant and something we should do.
> 
> Alex/Jen: are you fine with proceeding with a redirect from firstrun to
> /firefox/new/ *only* when the visitor's version is more than 2 major
> versions old?
> 
> Thanks!

Yes.  Let's do it.
Flags: needinfo?(jbertsch)
Sounds good to me, Chris!

Just to be clear, so are we now talking about redirecting /firstrun users only, and not /whatsnew users?

IIRC, the shared logic under discussion here also applies to users hitting the Hello FTE (i.e. non-Firefox users are redirected to /firefox/new/).

From a long-term technical support perspective, I'd be happy for the redirect to apply to each of these areas of bedrock where UITours and on-boarding are involved. But only as long as people think it also makes sense from a user perspective.
Flags: needinfo?(agibson)
(In reply to Alex Gibson [:agibson] from comment #21)
> Sounds good to me, Chris!
> 
> Just to be clear, so are we now talking about redirecting /firstrun users
> only, and not /whatsnew users?
> 
> IIRC, the shared logic under discussion here also applies to users hitting
> the Hello FTE (i.e. non-Firefox users are redirected to /firefox/new/).
> 
> From a long-term technical support perspective, I'd be happy for the
> redirect to apply to each of these areas of bedrock where UITours and
> on-boarding are involved. But only as long as people think it also makes
> sense from a user perspective.

Alex: I am fine with this logic being applied to firstrun and whatsnew. It was only a month ago that we discovered the cause for firstruns being so high since Nov 11th (the redirect was removed). We are all on the same page that users greater than 2 versions old should get redirected to the download page since those browsers may have vulnerabilities. 

What do you think of this pseudo logic?

If (fx.latestversion - user.fxversion > 2) && (user.version != fx.ESRversion) && (page =~ (firstrun|whatsnew)) then
 redirect(firefox.new)
end if
Flags: needinfo?(agibson)
(In reply to Chris More [:cmore] from comment #22)
> (In reply to Alex Gibson [:agibson] from comment #21)
> > Sounds good to me, Chris!
> > 
> > Just to be clear, so are we now talking about redirecting /firstrun users
> > only, and not /whatsnew users?
> > 
> > IIRC, the shared logic under discussion here also applies to users hitting
> > the Hello FTE (i.e. non-Firefox users are redirected to /firefox/new/).
> > 
> > From a long-term technical support perspective, I'd be happy for the
> > redirect to apply to each of these areas of bedrock where UITours and
> > on-boarding are involved. But only as long as people think it also makes
> > sense from a user perspective.
> 
> Alex: I am fine with this logic being applied to firstrun and whatsnew. It
> was only a month ago that we discovered the cause for firstruns being so
> high since Nov 11th (the redirect was removed). We are all on the same page
> that users greater than 2 versions old should get redirected to the download
> page since those browsers may have vulnerabilities. 
> 
> What do you think of this pseudo logic?
> 
> If (fx.latestversion - user.fxversion > 2) && (user.version !=
> fx.ESRversion) && (page =~ (firstrun|whatsnew)) then
>  redirect(firefox.new)
> end if

I am fine with redirecting users greater than 2 versions old. As discussed we are currently applying whatsnew/firstrun redirect logic server-side, as redirecting on the client is not really ideal for the user.

The only way we can detect ESR versions is in JS though, using the UITour API. So this presents a bit of an issue if you want to bundle this in the logic as well. Personally, I don't feel great about doing client side redirects - I would much rather show the user a message if this is going to be the case, rather than waste their bandwidth and time forcing them elsewhere.
Flags: needinfo?(agibson)
Good point on the ESR and in the client side JS. 

Thoughts everyone on if these redirects catch ESR versions?
:agibson: can you let me know a general time frame on when a PR can be up to be reviewed and we can test out on a demo server? Server-side is fine knowing that we can't detect ESR. thanks.
Flags: needinfo?(agibson)
If we are doing server side I'm guessing Paul might know what needs doing here better than myself.
Flags: needinfo?(agibson) → needinfo?(pmac)
Sure, if we're going to do server I can just take this.
Assignee: nobody → pmac
Flags: needinfo?(pmac)
Since we fixed bug 1321295 there are no User-Agent based redirects on firstrun or whatsnew. These should be added back via client-side JS so that we avoid the caching (or lack thereof) issues that resulted in the need for bug 1321295. Let's revive this bug and implement those redirects here, or if all of the above info is now irrelevant, we should "WONTFIX" this and open a new one.
Assignee: pmac → nobody
Thanks :pmac. We will do some analysis to see how many out-of-date Firefox users are hitting first are and see if it is worthy to do anything here.

Mass-removing myself from cc; search for 12b9dfe4-ece3-40dc-8d23-60e179f64ac1 or any reasonable part thereof, to mass-delete these notifications (and sorry!)

You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: