You are currently viewing a snapshot of taken on April 21, 2008. Most of this content is highly out of date (some pages haven't been updated since the project began in 1998) and exists for historical purposes only. If there are any pages on this archive site that you think should be added back to, please file a bug.

Mach V Engineering Plan for Sidebar

Samir Gehani <>
$Id: machv-sidebar.html,v 1.3 2001/10/19 19:02:50 Exp $

Item Number
Section E: My Sidebar
Tab Persistence When Closed
  • Ability to persist tabs in the background once another tab is selected.
3 days

  1. Add new nsISidebar.addPersistentPanel() API implementation.
  2. Add security dialogs.
Easier Close/Reopen Functionality
  • End user feedback suggests that the "grippy" is hard to use, not very discoverable
  • Update: UE (a. k. a., German) says "put an 'x' in the top right corner and change the arrow pointing right next to the 'Tabs' item to pioint down. Now make the 'Tabs' flyout open down instead of right.
3 days

  1. Add 'x' icon to top right corner. (Need icon for 'x' and down arrow from UE.)
  2. Move 'Tabs' flyout and change arrow orientation.
Add Stop Button
  • Button next to "Loading" message that allows user to stop loading a tab
5 days

(Stop button exists but is commented out: probably due to hairy bug that needs investigation. Possible thread and perisstnce interplay.)

2 days:
  1. Unhide stop button item in XUL.
  2. Fix bitrot of stop code.
3 days:
  1. Investigate former mentioned hairy issues with stop button.
  2. Address stop button and persistent tab interplay.
Polish Context Menu Options
  • Need to improve context menu in sidebar to make more sense for sidebar specific actions - currently implemented in tab headers, but the content window menu options are basically the same as the main browser window. Should include things like:
    • Hide Tab
    • Customize Sidebar
    • Refresh
    • Others?
  • Update: See context menus proposal .
5 days

  1. Estimate 1+ days for each menu option to hook up to what seems like existing functionality. (Currently expect about 4 items so 4 * 1+ =~ 5 days)
  2. New options requireing new functionality will take longer.
  3. Need definitive list.
Visual Indication of New Tab Content
  • Allow visual cue that alerts user that a My Sidebar Tab has new/updated content (ex: CNN tab updates it's news stories)
  • Similar code already used in Bookmarks Update possibly?
  • Update: Still fleshing out engineering feasibility given new knowledge that dynamic content contains no valid Last-Modified HTTP entity header in the response.
5 days

2 days:
  1. Use a highlighting box that is displayed when content is updated.
  2. Clear indication that user has seen updated content (maybe by clicking in tab?).
3 days:
  1. Develop content update mechanism and hook into it.
Add Ability to put Icon in Tab Header
  • To enable users to more quickly identify specific tabs
    • Example: Magnifying glass on Search tab
  • Start with client side tabs
  • Add tabs possibly
  • Consider allowing external tabs to do this as well
3 days

  1. Add ability by pointing to an icon, similar to search results in xul template.
  2. Then chase appropriate folks to get icons.
Drag and Drop Re-Ordering of Sidebar Panels
  • Allow users to re-organize Sidebar by dragging and dropping panels up or down 
  • Update: Out for Mach V
4 days

3 days:
  1. Imlpement parametrized ondraggesture handler in template of sidebar tabs.
  2. Implement pamaterized ondragdrop handler in template of sidebar tabs.
1 day:
  1. Visual reordering as dragged tab moves vertically to indicate definitive target drop position.

Reconciliation of current-panel-list
  • Infrastructure for installing chrome panels.
  • Infrastructure for locale-switching to switch region-sensitive panels.
  • Infrastructure for expiration of panels.
  • Handle absent local panels.
  • See: Dynamic reconciliation of the current-panel-list

8 days

4 days:
  1. Reconciliation of panels.rdf every browser statrup using timestamp comparison against last-reconciled-* nodes.
  2. New APIs for XPInstall to call to register a panel -- APIs not exposed in sidebar.window.
4 days:
  1. Locale-switching selection of panels to toggle and corresponding UI update.
  2. Act on absent local panels by obeying the absent arc action (ignore|remove).
  3. Support expiration by checks at browser statrup and setting up timeouts for subsequent checks. ???  Expiration is bad UE!

Convert both customize dialog <tree/> s to <outliner/>s
  • My tabs tree
  • Available tabs tree
  • This should fix some UI bugs (non-perf) in the customize dialog per Matt.
6 days

4 days:
  1. Convert available tabs tree.
  2. Iron out issues with nested folders.

2 days:
  1. Convert my tabs unnested tree.

38 days