tree: b7041072683bf5a4f4278a3498f1d46205176c2a [path history] [tgz]
  1. birch_client.h
  2. birch_coral_grouped_icon_image.cc
  3. birch_coral_grouped_icon_image.h
  4. birch_coral_item.cc
  5. birch_coral_item.h
  6. birch_coral_provider.cc
  7. birch_coral_provider.h
  8. birch_data_provider.cc
  9. birch_data_provider.h
  10. birch_icon_cache.cc
  11. birch_icon_cache.h
  12. birch_icon_cache_unittest.cc
  13. birch_item.cc
  14. birch_item.h
  15. birch_item_remover.cc
  16. birch_item_remover.h
  17. birch_item_remover_unittest.cc
  18. birch_item_unittest.cc
  19. birch_model.cc
  20. birch_model.h
  21. birch_model_unittest.cc
  22. birch_ranker.cc
  23. birch_ranker.h
  24. birch_ranker_unittest.cc
  25. birch_weather_provider.cc
  26. birch_weather_provider.h
  27. birch_weather_provider_unittest.cc
  28. BUILD.gn
  29. coral_constants.h
  30. coral_item_remover.cc
  31. coral_item_remover.h
  32. coral_item_remover_unittest.cc
  33. coral_util.cc
  34. coral_util.h
  35. DEPS
  36. OWNERS
  37. README.md
  38. removed_items.proto
  39. stub_birch_client.cc
  40. stub_birch_client.h
  41. test_birch_client.cc
  42. test_birch_client.h
ash/birch/README.md

Birch

B.I.R.C.H. stands for Built In Recommendations for CHromeOS.

Birch is the system which fetches, stores, and displays suggestion chips as part of informed restore as well as overview mode of the ChromeOS System UI.

The UX goal is to get the user back into a task that they might be interested in after pausing their session for some reason.

Suggestion Types

The following is a list of suggestions types that can be shown by birch UI.

  • Calendar events
  • Calendar file attachments
  • Recent tabs from another device
  • Recent Drive files
  • Last active tab
  • Most visited tab
  • Self Share (Tab shared from another device)
  • Lost Media (Tab with media currently playing)
  • Release notes
  • Weather

The user can customize which suggestion types are shown via context menu.

Data Flow

When birch data is needed, a data fetch request is sent to the BirchModel via RequestBirchDataFetch(). The BirchModel will then request data from each BirchDataProvider. Data providers then send birch items back to the model to be stored. Once all items have been fetched, or the data fetch timeout has expired, the requester is notified. At this point the requester can get the top items from the model to display in the UI via GetItemsForDisplay().

Many data providers fetch data utilizing the user's Chrome browser profile, and so are created and owned by the BirchKeyedService in /chrome/browser/ui/ash/birch.

In the UI, a birch suggestion is displayed as a BirchChipButton.

Ranker

The BirchRanker assigns a numeric rank to each BirchItem for ordering in the system UI. The top four items are chosen for display in the UI.

Item Remover

The BirchItemRemover will remove and keep track of items specifically hidden by the user via the BirchChipButton's context menu. These items will not be shown to the user again.

The following item types cannot be removed by the item remover. Weather and lost media items can instead be hidden by customizing the shown suggestion types using the birch context menu.

  • Release Notes
  • Weather
  • Lost Media