Firefox/Projects/App Tabs

From MozillaWiki
Jump to: navigation, search

This project covers the design and creation of Firefox App Tabs, small persistent tabs placed to the right of the Home Tab that contain home pages or Web applications that the user very regularly interacts with. App tabs can not be accidentally closed, and they do not get lost when viewing a large number of documents in separate tabs.

  • Project lead: zpao
  • Project members: limi, beltzner, Unfocused
  • Potential reviewers:
  • QA contacts: marcia

Status

  • IN-FLIGHT
  • General tracking in bug 551849
  • First phase of implementation of generic App Tabs almost complete.

Goals

  • Add support for persistent "app tabs" that appear in every window and persist across restarts

Non-Goals

  • The initial project could even just reopen the app in new windows, and evaluate later the "single load" approach if it's hard to do immediately.
  • Rewrite things we can inherit (If add-ons already did those, we can evaluate code and ask author to re-license it).

Timeline/Milestones

  • need new milestones and timeline
  • need some tracking bugs

Delivery Requirements

  • Requires an add-on compatibility changing application version increment
  • Must be complete before the first beta of the target delivery vehicle

Dependencies

none

Design Specification

App Tabs will be locked to the URI of the website that was being viewed when created. Any navigation event to a non-matching eTLD will be forced into a new tab that will open in the tabstrip. App Tabs will be specific to a Window and/or TabCandy group for the time being.

Appearance

App Tabs have no closebutton, and are only slightly wider than a favicon. They always appear to the left hand side of the tabstrip (right side on RTL locales)

Creating an App Tab

  1. Right click on a tab and select a menuItem
  2. Drag a tab to the leftmost point of the tabstrip (need a special visual indicator/preview for this)

Returning to Normal Tab

  1. Right click on a tab and select a menuItem
  2. Drag tab back into tabstrip

Creating new Window

If an App Tab is dragged off the tabstrip, a new window is created with that App Tab

Persistence

  • App Tabs will persist across browser sessions, even if the user's session isn't restored
  • If a session ended with multiple windows with App Tabs in them, the next session will start with those windows containing their App Tabs
    • alternate: session starts with one window that has all the App Tabs in them

Navigation Events

Links in an App Tab will load in the App Tab only if the eTLD of the target matches the eTLD of the App Tab URI, otherwise they will open in a new tab

Bookmarks will load in a new tab

Searches from the searchBar will open in a new tab

Location Bar entry will load in the App Tab only if the eTLD of the URL matches the eTLD of the App Tab URI, otherwise they will open in a new tab

Testing

  • Most of the app tab features should be able to be automatically tested by browser-chrome tests
  • Migration path will likely need manual/mozmill testing unless we invent a new test suite.

Related Projects

  • Home Tab will be implemented as an App Tab
  • New Theme is not required but without switching tabs to be on top the chromeless app-tabs will look pretty strange.

Future Ideas

  • Allow App Tabs to be "global", appearing in all windows
  • Create install experience for App Tabs
    • Allow permissions
    • Local caching of application
    • Notifications & badging
  • Create management UI for install/uninstall as well as options for App Tabs
    • for each app, global vs. per window
    • for each app, security permissions