The splash screen hurts perceived startup time performance. The user stares at a splash screen for a few seconds (or longer on some phones) and it can actually make people think Firefox takes longer to start than it really does. One way to counteract this affect is to show whatever bits and pieces of the application we can, as soon as we can, during startup. This patch is a WIP that: * Creates a non-interactive UI very early in the Java process. * The code has to deal with froyo and gingerbread theme differences. I was going to use the res/drawables-v# technique, but the build process (android-resources.mn file) wasn't ideally setup for that, and I plan to do more dynamic tweaks anyway. * Removes extra calls to show the splash screen, One is enough. * Skips this non-interactive UI for honeycomb, since we startup fast enough there and showing a splash/non-interactive UI can actually slow us down a little. To do: * Add the logo to the favicon area * Show some text in the URL area. Maybe a "Starting Firefox..." for simple startups and the URL of a passed intent otherwise. I tested this patch on Nexus ON (gingerbread, hdpi), Droid Pro (froyo, mdpi), Galaxy Tab (froyo, hdpi) and Acer A500 (honeycomb, xdpi). Worked well on all of them.
Mark, can you add splash_v9 and splash_v8 to the patch?
(In reply to Fabrice Desré [:fabrice] from comment #1) > Mark, can you add splash_v9 and splash_v8 to the patch? splash_v8.9.png and splash_v9.9.png is what you should be looking for
First round review. This patch builds on the WIP patch and adds: * Overlays the branded favicon in the right spot * Draws the URL text in the URL bar if we are loading a URL. Stays blank otherwise. Tweaks: * The favicons are stretched smoothly, but Fennec uses crisp * The URL text font is slightly "bolder" than that used in Fennec These might be low priority tweaks and we can work to fix them. Asking for a review to find any big problems.
Alo, we need to clip the text so it doesn't overrun the "url bar". I assume we could do that using StaticLayout.
Comment on attachment 560924 [details] [diff] [review] patch >+ c.drawText(GeckoSurfaceView.mSplashURL, urlOffsetX, urlOffsetY, p); If the URL is long, it will overrun the titlebar. Is there a good way to truncate it?
Attachment #560924 - Flags: review?(mbrubeck) → review+
(In reply to Matt Brubeck (:mbrubeck) from comment #6) > Comment on attachment 560924 [details] [diff] [review] > patch > > >+ c.drawText(GeckoSurfaceView.mSplashURL, urlOffsetX, urlOffsetY, p); > > If the URL is long, it will overrun the titlebar. Is there a good way to > truncate it? Yes. I now use: String url = TextUtils.ellipsize(GeckoSurfaceView.mSplashURL, p, width - urlOffsetX * 2, TextUtils.TruncateAt.END).toString(); c.drawText(url, urlOffsetX, urlOffsetY, p); And it even matches the Gecko ellipsizing
Same as before with the ellipsizing code. Carrying the r+
Matt - Slight change. This patch keeps the old splash screen around and uses it for the long, "new profile" situation, which is slow on slow phones. Madhava and Johnathan noticed the long pause. We don't want to keep the static UI in front of the user and have them think we are hung. If we already have a profile, we use the new static UI splash. interdiff to follow
To help the review
Attachment #561377 - Flags: review?(mbrubeck) → review+
Comment on attachment 561377 [details] [diff] [review] patch 3 You should also remove splash_screen_loading from android_strings.dtd and strings.xml.in.
removed unused string references https://hg.mozilla.org/integration/mozilla-inbound/rev/69d457d5d329
Status: NEW → RESOLVED
Closed: 8 years ago
OS: Linux → Android
Hardware: x86 → ARM
Resolution: --- → FIXED
Target Milestone: --- → Firefox 9
Followup patch to fix the situation where profile is on an sdcard. In that situation, we were always showing the old splash screen. I tweaked the search path to be "just enough" to know if this is a "new profile" startup.
Attachment #561724 - Flags: review?(mbrubeck)
Attachment #561724 - Flags: review?(mbrubeck) → review+
pushed followup to inbound: https://hg.mozilla.org/integration/mozilla-inbound/rev/f829841e6618
Verified fixed on: Mozilla/5.0 (Android;Linux armv7l;rv:9.0a1)Gecko/20110923 Firefox/9.0a1 Fennec/9.0a1 Device: Samsung Galaxy S OS: Android 2.2
Status: RESOLVED → VERIFIED
Comment on attachment 561724 [details] [diff] [review] patch for sdcard profiles https://hg.mozilla.org/mozilla-central/rev/f829841e6618
You need to log in before you can comment on or make changes to this bug.