ash/birch/README.md
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.
The following is a list of suggestions types that can be shown by birch UI.
The user can customize which suggestion types are shown via context menu.
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.
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.
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.