Closed Bug 589315 Opened 14 years ago Closed 14 years ago

Speed Up First Run and What's New pages

Categories

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

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: bcutler, Assigned: rik)

References

()

Details

(Keywords: perf, Whiteboard: [perf])

Attachments

(1 file, 5 obsolete files)

Over 90% of users exit before the page finishes loading.  Of those who stick around, 25% wait over 13.2 second for the page to load.

Given the concerns around Firefox's performance, I think we should fix this issue as soon as possible.
Assignee: nobody → morgamic
Status: NEW → ASSIGNED
Attached patch v1, reduces page overhead (obsolete) — Splinter Review
- reduces http requests
- minifies js and css
- moves js to footer

I think the open font thing is cute but it's killing page perf.  Maybe in the future we could ship Firefox with some web fonts?  Something to think about.
Attachment #467980 - Flags: review?(abuchanan)
Attachment #467980 - Flags: feedback?(rdoherty)
Keywords: perf
OS: Mac OS X → All
Hardware: x86 → All
Comment on attachment 467980 [details] [diff] [review]
v1, reduces page overhead

Looks good to me, this will help a lot. In the near future we should sprite the 3 add-on icons and move the the cdn; ssl and 3 dns lookup hurts.
Attachment #467980 - Flags: feedback?(rdoherty) → feedback+
In the future, can we set some threshold for median page load time on the First Run page?  Anything over three seconds seems suboptimal -- it kills engagement with the page and provides a poor first impression of Firefox.
Sure - also seems like something we could automate.
Alex, can you take a look at this?
(In reply to comment #4)
> Sure - also seems like something we could automate.

http://www.theautomatedtester.co.uk/blog/2010/selenium-webtimings-api.html; there might be an easier way, though.
Hmm. If only we had a webapp to test web page speed over time.  What a great idea...
(In reply to comment #7)
> Hmm. If only we had a webapp to test web page speed over time.  What a great
> idea...

ouch
(In reply to comment #8)
> (In reply to comment #7)
> > Hmm. If only we had a webapp to test web page speed over time.  What a great
> > idea...
> 
> ouch

let's just setup showslow :)
Attachment #467980 - Flags: review?(abuchanan) → review?(fwenzel)
Comment on attachment 467980 [details] [diff] [review]
v1, reduces page overhead

hot.
Attachment #467980 - Flags: review?(fwenzel) → review+
would it be possible to get an ETA here?  there's no rush, but we still have painfully slow First Run experience.
Yeah, I'll commit these changes and get it pushed out.  Was waiting on review.
Stephen - how's this work for you?

Today: commit
Mon/Tues: QA
Tues: push to prod
(In reply to comment #13)
> Stephen - how's this work for you?
> 
> Today: commit
> Mon/Tues: QA
> Tues: push to prod

Give the importance of this, that works.  Note to QA: we'll need to re-test the out-of-date Flash and Firefox-version detections.
Patch is bitrotted so I'm fixing the patch before committing on trunk.
thanks guys!
Attached patch v2, unbitrotted for freshness (obsolete) — Splinter Review
It's not different, so checking in.
Attachment #467980 - Attachment is obsolete: true
Maybe an extra line, but:
[morgamic@khan trunk]$ diff -u diff.patch attachment.cgi\?id\=479884 
[morgamic@khan trunk]$ 

Checked in at r75077

[morgamic@khan trunk]$ svn ci
Sending        trunk/en-US/firefox/3.6/firstrun/index.html
Sending        trunk/en-US/newsletter-form.html
Sending        trunk/includes/footers/3.6/portal-pages.inc.php
Sending        trunk/includes/headers/3.6/firstrun.inc.php
Sending        trunk/includes/headers/3.6/portal-pages.inc.php
Sending        trunk/includes/min/groupsConfig.php
Transmitting file data ......
Committed revision 75077.
In the r75077 shuffle, Flash detection broke, and I'm seeing:

Error: gPlatform is not defined
Source File: http://www-trunk.stage.mozilla.com/en-US/firefox/3.6.8/whatsnew/
Line: 33

Error: YAHOO is not defined
Source File: http://www-trunk.stage.mozilla.com/js/detect-flash.js
Line: 6
Ok, thanks.  Looking.
Attached image Screenshot (obsolete) —
Missing promo area (wonder if it's related to the JS errors).
Whiteboard: [perf]
Attached patch Fix JS errors (obsolete) — Splinter Review
This is only fixing JS errors by bringing back the utils and YUI JS in the headers. Other scripts need that inside the page so we can't put them at the bottom yet.
Assignee: morgamic → anthony
Attachment #482744 - Flags: review?(morgamic)
A few notes/ideas for later. I'm just looking at "what's new" so far.

Inlining some JS, CSS and images (data URIs) could save some HTTP requests. Since this is a one stop page, we don't really care about caching those.

The jQuery scripts are event based so they could go at the bottom of the page. They should be inlined too.

The getpersonas.com iframe is not gzipped, we should open a bug to request that.
I'm monitoring those pages on Yottaa to bench the improvements.

Prod What's new : http://www.yottaa.com/url/4cc059b23820766dae00002c
Trunk What's new : http://www.yottaa.com/url/4cc05a063820766dae00002e

Prod First run : http://www.yottaa.com/url/4cc06671abe5cb4cd900001f
Trunk First run : http://www.yottaa.com/url/4cc06664038ade7ff600000a
Comment on attachment 482744 [details] [diff] [review]
Fix JS errors

I already had to fix this locally, and this is the change I made.  Please get this on trunk soon.
Attachment #482744 - Flags: review?(morgamic) → review+
Landed with r76299
Commited r76307

This patch inline some CSS and JS.

This is a work in progress to check that it provides improvements.
Commited r76309, to only include jQuery once.
Commited r76459.

The inlining was super slow on the PHP side. I misused Minify so it was always computing the minifications. This should be fixed.
Commited r76465.

Just a stupid forgotten variable initialization.
Commited r76495

- Switch detect-flash to jQuery and inline it
- Remove YUI
- Smarter groups for Minify
- Fix stumbleupon and reminderfox pages
Commited r76514

Only use firstrun-page.css on whatsnew and firstrun. Optimise images.
Commited r76709.

Inline images.
Commited r76896.

More inlines and force CDN wherever possible.
Attached patch Patch against tags/stage (obsolete) — Splinter Review
Contained in this patch:

- Inline most CSS, JS and images
- Use CDN for resources
- Smaller filesize for images (useless metadata removed)
- Utility functions for inlining
- Get rid of YUI (only detect-flash.js was using it)

Once this patch is reviewed, I'll commit it to stage for QA.
Attachment #479884 - Attachment is obsolete: true
Attachment #479943 - Attachment is obsolete: true
Attachment #482744 - Attachment is obsolete: true
Attachment #488380 - Flags: review?(abuchanan)
Depends on: 609778
Attached patch Patch v2Splinter Review
Again, patch against tags/stage.

This doesn't use mime_content_type as it is deprecated in PHP 5.3.
Attachment #488380 - Attachment is obsolete: true
Attachment #488380 - Flags: review?(abuchanan)
Commited r77706 on stage.
QA :

All pages in those forms have been changed
https://www.authstage.mozilla.com/LOCALE/firefox/3.6.X/whatsnew/
https://www.authstage.mozilla.com/LOCALE/firefox/3.6.X/firstrun/

No changes in behaviour should happen, only faster loading.
Keywords: qawanted
Depends on: 613206
Depends on: 613207
Depends on: 613210
Component: www.mozilla.com → www.mozilla-japan.org
Keywords: push-needed
Component: www.mozilla-japan.org → www.mozilla.com
Is this bug fixed?
I've opened bug 620704 to track the improvements we can do after the redesign.
Status: ASSIGNED → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
Target Milestone: --- → 1.0
Pushed to production

--

r80661 | jlong@mozilla.com | 2011-01-12 16:10:05 -0500 (Wed, 12 Jan 2011) | 1 line

Push out r77706 from stage for bug 589315  (Committing all changes) [Kubla]
Keywords: push-needed
Component: www.mozilla.org/firefox → www.mozilla.org
Component: www.mozilla.org → General
Product: Websites → www.mozilla.org
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: