Perceived Performance: Difference between revisions
Jump to navigation
Jump to search
(→Other) |
|||
Line 52: | Line 52: | ||
* When holding down arrow keys, scroll smoothly and with acceleration. | * When holding down arrow keys, scroll smoothly and with acceleration. | ||
== Too many tabs == | == Too many tabs == | ||
* Use less RAM when many tabs are open | |||
** Warn when too many tabs are open, or when too much RAM has been used. | *Use less RAM when many tabs are open | ||
** Drop the DOM of tabs the user has not interacted with? | **Warn when too many tabs are open, or when too much RAM has been used. | ||
* Make session restore faster with many tabs | **Drop the DOM of tabs the user has not interacted with? (Decrease memory use, increase lag when switching to that tab.) | ||
** Load the frontmost tab on startup before the others (filed as [https://bugzilla.mozilla.org/show_bug.cgi?id=496458 bug 496458]) | *Make session restore faster with many tabs | ||
** On restart, show a list of tabs Firefox can restore, instead of just restoring them. | **Load the frontmost tab on startup before the others (filed as [https://bugzilla.mozilla.org/show_bug.cgi?id=496458 bug 496458]) | ||
** Do something about redundant/irrelevant password prompts for master password ({{bug|348997}}) and http auth | **On restart, show a list of tabs Firefox can restore, instead of just restoring them. (Like we currently do when recovering from a crash.) | ||
* Make it easier to switch tabs among a large number of tabs (how?) | **Do something about redundant/irrelevant password prompts for master password ({{bug|348997}}) and http auth | ||
* Nudge users toward opening fewer tabs | *Make it easier to switch tabs among a large number of tabs (how?) | ||
** Give users a good alternative to ''using open tabs as reminders'', something that works better than bookmarks or copy+pasting URLs into Things | **See [https://bugzilla.mozilla.org/show_bug.cgi?id=505214 bug 505214] – Rejected, but still answers the "how?" question. | ||
*Nudge users toward opening fewer tabs | |||
**Give users a good alternative to ''using open tabs as reminders'', something that works better than bookmarks or copy+pasting URLs into Things | |||
== Back and forward == | == Back and forward == |
Revision as of 10:49, 3 August 2009
The aim for the "Perceived Performance" effort is to identify changes we can make that will make Firefox feel faster — as opposed to the classic optimizations that generally involve rewriting code to make it faster. In these cases, there are definitely elements of code improvement involved, but it's not the main reason why things seem faster.
Add your ideas for things we should look at to make Firefox feel faster below:
Firefox startup
- Startup order, what tasks are performed on startup, and is there anything we can defer in order to make the startup experience faster?
- Implement a preloader in the system tray (this project has been abandoned since 2005 and breaks in FF 3.5). There used to be a preloader in the Mozilla Suite, and you removed it in Firefox :(
- Checkbox: "Start Firefox when I start Windows". So I can turn on my computer, go do something else, and return to find it actually ready.
- Keep firefox running for a moment after close for the set of users who close and reopen the application in order to do a search (because the start page has a search field, and they don't know about the search bar, location bar, or home button).
- A splash screen could alleviate the issue of users not knowing whether their initial double-click to launch Firefox was successful, and inadvertently slowing down startup by making Firefox open two Windows.
Loading web pages
- Web pages that load very slowly
- Faster timeouts on pages that don't load at all
- Time out script loads, especially third-party script loads, more readily than page loads
- Increase the amount of visual change when loading a slow page, for instance transition to a large water mark style throbber that appears in the center of the content area if no information has loaded yet
- Make it clear when a page is loading slowly, so users know they should go to another tab for a while instead of just waiting
- Offer to keep trying for me every few hours
- Offer coral cache link
- Show traceroute results while the page continues to not load
- Give users tools to avoid waiting
- Indicate when a page is going to take a long time to load, so users know they should do something else (like read another tab)
- Nudge users toward using "open link in background tab" more
- Indicate when a tab opened in the background has finished loading
- Promote shortcuts for "open link in background tab" (Cmd+click, middle-click) on first-run page
- Perception of how fast Firefox is working
- Make the throbber faster :p (we honestly do it every release)
- Make the throbber accelerate (aza)
- Change all progress bars in Firefox to use an easing function that automatically biases progress to appear slower at the beginning and faster at the end (aza)
- Use a 1 pixel pulsing progress bar at the bottom of the location bar to denote progress in addition to activity (safari 3 style, but not as heavy).
- More incremental layout
- Perception of when web page is "done" loading or "done enough" for interaction
- De-emphasize the throbber and loading indicators once content is visible
- Reduce amount of info shown in status bar while a page is loading (hostnames from which scripts are being fetched, etc).
- Less incremental layout: except on very slow pages, show content only once layout is stable, so users don't get in the habit of waiting for the activity indicator to go away.
- Optimistic use of cache
- Show cached stylesheets and images in addition to sending a (possibly delayed) if-modified-since request
- Use cached image sizes even when we can't use the actual cached image
- Cache whether the page layout required a scrollbar
- Use cached page to fire off requests for scripts and stylesheets (fewer round-trips needed for initial dipslay of the page)
- Show entire page from cache, and then fade to a copy loaded off of the network once it is ready
- Preload web pages
- Based on time of day
- Based on frequent sequences of clicks
- Based on hovering over links
- Promote AdBlock
Scrolling web pages
- Implement the OS X acceleration model for scrolling on Windows and Linux (bug 462809)
- Use a real time strategy game style scroll box in the content area, so you can quickly move around a page just by moving the mouse
- Make up/down arrow keys scroll by larger increments.
- When holding down arrow keys, scroll smoothly and with acceleration.
Too many tabs
- Use less RAM when many tabs are open
- Warn when too many tabs are open, or when too much RAM has been used.
- Drop the DOM of tabs the user has not interacted with? (Decrease memory use, increase lag when switching to that tab.)
- Make session restore faster with many tabs
- Load the frontmost tab on startup before the others (filed as bug 496458)
- On restart, show a list of tabs Firefox can restore, instead of just restoring them. (Like we currently do when recovering from a crash.)
- Do something about redundant/irrelevant password prompts for master password (bug 348997) and http auth
- Make it easier to switch tabs among a large number of tabs (how?)
- See bug 505214 – Rejected, but still answers the "how?" question.
- Nudge users toward opening fewer tabs
- Give users a good alternative to using open tabs as reminders, something that works better than bookmarks or copy+pasting URLs into Things
Back and forward
- Subtle but smooth graphics accelerated back and forward animations, like a very very slight fade and pane
- Pref to turn off the "disable bfcache if page has unload handler" heuristic. (Opera has a pref like this, but I'm not sure if it disables 'onunload' or breaks the 'nothing can happen after onunload' tradition.)
- Show context menu on mousedown on more platforms (bug 89308)
- Pie context menu (mockup of the interface )
- Show previous page when hovering over the Back command in the context menu, now that Back is not on the way to the other menu items
Awesomebar
- Don't require the user to hit the down arrow in order to access the first result in the awesome bar (complicated, details in bug 410837)
- Give the awesome bar the focus on open so you don't have to focus it yourself before navigating to a particular location
- Don't show the progress spinner for the address bar until 200-300ms have passed (it currently appears instantly, and makes it feel like you're waiting for results).
- Move awesome bar loading to occur before most other async tasks that happen, Almost always when I open a new firefox the urlbar is frozen (I type some chars and nothing is shown). This gives a very slugish impression. (santagada)
Update
- Install updates with a background process so updating doesn't delay the next startup.
- Install add-on updates automatically too.
Other
- Extend the password manager to allow for automatic log ins (with feedback that this is happening)
- bug 223636 covers this for http auth. Or did you mean for password forms in web pages?
- Color change impact when creating a new tab
- Are you talking about the link changing e.g. from blue to purple?
- Switching tabs is not instantaneous when Firefox is busy (e.g. loading complex or multiple web pages)
- Deleting history items has lag. Make them dissapear when delete is pressed, then delete them.
- Closing the (only) Firefox window with the close button ("X" on Windows and Linux, red dot on Mac) is instantaneous, but pressing Ctrl+Q makes Firefox hang completely for a second while still showing the window. Ctrl+Q should also instantly close the (current?) window so it disappears from view before it silently shuts down completely in the background.
- Friendlier looking error pages. Most people blame Firefox and not the site causing an issue when they see an error page. A little style and color psychology might help to ease the frustration that a user is feeling when they can't get to where they are trying to go.
- Smarter text selection. It's difficult to select the text you want, because text selection follows invisible page layout elements rather than the locations of actual text. It takes fitts-law-aggravating pixel precision, and you can't even see what you're aiming for.