B.I.R.C.H. stands for B
uilt I
n R
ecommendations for CH
romeOS.
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.