Firefox/Projects/Reduce Places Views Overhead

From MozillaWiki
Jump to: navigation, search


Sprint lead: Mano Sprinters: mak

The notification methods in the places view api (nsINavHistoryResultViewer) are not as informative as they could be. This forces the concrete view to invalidate much more often then they need to. The result is notable slowness in places organizers and in the sidebars. In addition, some notications are dispatched when they shouldn't (e.g. we invalidate uri-queries on the addition of separators).

In addition to the performance issues, this makes the view api less adaptable to consumers. They will likely swtich to the history and bookmarks observers, which we would like to privatize at some point.

Goals / Use Cases

Part I

  • [DONE] Replace onItemChanged with informative methods and fix browser/ to use them wisely.
  • [DONE] Remove all unnecessary invalidations.
  • [NEEDS INVESTIGATION] Better handling for invalidations on annotations.
  • [DONE?] Make onlyBookmarked queries usable.
  • [DONE] Copy all missing functionality of the old observers to the view interface.

Part II

  • Paging in tree views

Non-Goals in this iteration

  • merge the observer-ifaces with the view interface, or privatize them.
  • change the sql queries or the schema. Here we only fix inefficient usages.