Skip to content

Should we fix Personas?

This post is about Personas, also known as lightweight themes, not Browser ID, now known as Persona (naming is fun!). Also, these are just my thoughts, not an official position of Mozilla or the Add-ons Team.

I think we skipped a step when we graduated Personas from Mozilla Labs and implemented them as a Firefox feature. Personas have always felt like an incomplete idea, which has lead to some quality, performance and openness problems. High performance on Firefox is a top priority for Mozilla, and Personas are extremely popular, so I think revisiting the Personas feature would benefit Firefox users greatly.

The Problems

All of the problems are rooted in the feature’s simplistic design. A Persona consists of 2 images, one for the header and one for the footer.

Window width can be arbitrarily large depending on screen(s) resolution, and the header area can be variably tall depending on how many toolbars are active. This led to the decision of requiring Persona images to be excessively large in order to cover all use cases. The header is required to be 3000px wide x 200px high, and the footer 3000px wide x 100px high! Click on the example below to get an idea (you’ll need to use the magnifier to see its actual size).

Persona Header

This creates a number of problems:

  1. Performance problems. Decoding these massive image files can introduce a non-trivial delay in Firefox startup time.
  2. Poor image area management. It’s very common to see designs that are almost completely hidden height-wise, or designs that look good in the browser but look really strange on the Personas site and AMO (we got a ton of complaints about that one). Designers have to figure out ways to pad their images so they don’t look bad. In the example above I decided to be lazy and went with a plain white.
  3. No flexibility. There’s no way for designers to control how the image is displayed in different screen sizes or toolbar configurations. It’s also not possible to tile backgrounds.
  4. Limited distribution outside of Mozilla properties. Personas can’t be easily packaged up and distributed outside of getpersonas.com or addons.mozilla.org. There are ways to set up a Personas repository, but it isn’t easy for casual designers who might want to share their creations with their friends. This puts us in a position where we’re almost the sole arbiters for Personas designs, and our policies become the world’s policies.

The Solution?

I think Personas should behave more like add-ons:

  • Have a package (xpi?) that holds the images and a manifest (install.rdf? json?).
  • The images can have predetermined names, like header.png, header-background.jpg, etc. to avoid having the declare them in the manifest.
  • A Persona can have as little as one header image (the only required one), and as much as 4 images: header, header background, footer, footer background. The idea here is that the background is tiled by default, and the foreground image can be small and transparent, giving designers much greater flexibility.
  • The manifest can have basic metadata (name, designer, homepage) and a few additional image positioning features, like allowing the header foreground image to be proportional to the displayed area instead of being cropped, allowing the background to be stretched instead of tiled, or making the background a solid color or fade using CSS.

This would allow designers to submit much smaller images that would look better in most configurations. It wouldn’t break backward compatibility because we can just package existing Personas in the new format. Most importantly, we don’t need to make things difficult for designers. We can use the same image upload form that we currently have and create the package server-side, eventually extending the form to support the new features. Finally, it would allow designers to package their Personas and share them with others without having to go through our site.

This, of course, requires lots of work in the Add-ons Manager and our Personas properties. It’s worth thinking about, though, specially because of the potential performance gain, which could be substantial. Perhaps it’s a good project for the next GSOC?

{ 12 } Comments

  1. Tomer Cohen | 2012/08/31 at 5:19 PM | Permalink

    Personas always felt broken on RTL UIs, because the area of the rightmost which is most of the times used for the decorations is where you have the buttons on RTL. This and most of the other problems of the current implementation can be easily fixed by CSS.

    A skin can be a packaged extension (xpi) or a link to the CSS which will be used to cache other resources. The skin could consist few media queries making it compatible with every display size, including mobile, and background rules could allow us the make sure the decoration would align and stretched the right way.

  2. Otto de Voogd | 2012/08/31 at 9:46 PM | Permalink

    Those sound like very sensible suggestions.

    Another entirely different issue, as someone who has made some personas, is the discoverability of personas on the getpersonas/amo website. The site also has age bias. When searching on a keyword, the results are listed not by popularity but but age (oldest submission first).

    There’s no way for newer personas to get noticed (other than promoting it somewhere else). Having user comments and ratings could also help here.

  3. Guilherme Souza | 2012/09/01 at 3:14 AM | Permalink

    I agree with Tomer about supporting CSS in order to enable the designer to have full control of the image position and sizing.

    Also, personas should spread to mobile (I suppose it hasn’t yet). Even tough the visible UI while browsing is extremely reduced, it can make some difference while typing the url or selecting another tab (due to more space not occupied by the page itself)

  4. lordblackfox | 2012/09/01 at 3:24 AM | Permalink

    You are right, however, using the term addon is inappropriate imho, “theme” is better. This is significant on the fact that an addon adds a functionality, a theme just affects UI.

  5. jorge | 2012/09/01 at 9:31 AM | Permalink

    @lordblackfox: Actually, we use the term “add-on” to include extensions, themes, language packs, plugins, etc.

  6. jorge | 2012/09/01 at 9:33 AM | Permalink

    @Guilherme Souza: I think that allowing arbitrary CSS would introduce potential problems that don’t exist in the current iteration of Personas. I do think that designers should get more control, but it should still be restricted to the things we know they need to do.

  7. Ken Saunders | 2012/09/01 at 4:08 PM | Permalink

    I agree with you about the issues completely and I was always puzzled by the fact that Personas were so heavily promoted and featured by Mozilla just to have them become barely worth using and creating when the UI was shrunk down obscuring them.
    It was as if two teams were on two different pages.

    I like the idea of allowing some CSS options for designers. Especially killing text-shadow, adjusting opacity of tabs and tab bar, and font color. More often than not, text looks blurry on menu items and tabs with text-shadow.
    I’m not sure about packing them as extensions though.

    Reviewing Personas right now (or at least when I was helping out) is a very easy and basic task. Wouldn’t packaging them put reviewing them on AMO Editors?
    And wouldn’t it open a new door for hackers and security issues?

    How about creating a Persona Generator (official Mozilla or Jorge one) that would generate a restartless add-on? Perhaps something along the lines of the Add-on Packager and Persona Editor combined?

  8. jorge | 2012/09/01 at 4:25 PM | Permalink

    Reviewing Personas right now (or at least when I was helping out) is a very easy and basic task. Wouldn’t packaging them put reviewing them on AMO Editors?

    Not really. As long as we can tell a Persona apart, it can be sent to Personas reviewers to deal with it. I definitely don’t want AMO Editors reviewing Personas.

    And wouldn’t it open a new door for hackers and security issues?

    Not as long as we don’t allow any code in them. The Add-ons Manager would just need to load images (which already happens with Personas) and a few simple metadata bits. Any additional stuff in the package, malicious or not, could be easily detected and/or ignored.

    How about creating a Persona Generator (official Mozilla or Jorge one) that would generate a restartless add-on?

    Packaging Personas as actual extensions does open up all the problems you mention above.

  9. Simon | 2012/09/01 at 5:36 PM | Permalink

    Personally, I don’t see why they even exist as a core part of Firefox. I know one person in an office of 50+ who actually uses themes, yet it’s a feature that’s seen a great deal of attention over the past year or two.

  10. Alfred Kayser | 2012/09/04 at 1:14 AM | Permalink

    The third biggest problem of Persona(s) is that they don’t support Themes.

  11. Michael Kaply | 2012/09/05 at 8:03 AM | Permalink

    I wrote a similar post:

    http://mike.kaply.com/2012/03/06/reimagining-personas-background-themes/

    And even contacted Justin and put together an Etherpad with suggestions, but it never got any traction.

    I even offered to own Personas.

    I think at this point no one really cares, which is sad.

  12. Nem | 2012/09/09 at 10:39 AM | Permalink

    I agree with Tomer about supporting CSS in order to enable the designer to have full control of the image position and sizing.

Post a Comment

Your email is never published nor shared. Required fields are marked *