Exposed Errors Main Logic +--------------------------------------+ | | | Request authentication from users | | | +------------------+-------------------+ | +------------------v-------------------+ | | +--------+ Ask Omaha for appropriate Chrome app | v | | +------------------+-------------------+ Network Error | +------------------v-------------------+ ^ | | +--------+ Parse the response from Omaha | | | +------------------+-------------------+ | +------------------v-------------------+ | | Download Error <-+ Download the Chrome disk image | | | +------------------+-------------------+ | +------------------v-------------------+ | | +--------+ Mount the disk image | v | | +------------------+-------------------+ Install Error | +------------------v-------------------+ ^ | | +--------+ Install & Configure Chrome app | | | +------------------+-------------------+ | +------------------v-------------------+ | | | Unmount disk image +-> If unmount fails, system | | restart can resolve this. +------------------+-------------------+ | +------------------v-------------------+ | | Launch Error <-+ Launch Chrome | | | +--------------------------------------+
Users ^ + | | | | +-------------------------------+-----v--------------------------------+ | | | InstallerWindowController | | | +-------+------^------------+---^--------+----^---------+---------^----+ | | | | | | | | | | | | | | | | | | | | | | | | +-------v------+------------v---+--------v----+---------v---------+----+ | | | AppDelegate | | | +-------+------^------------+---^--------+----^---------+---------^----+ | | | | | | | | | | | | | | | | | | | | | | | | +-------v------+-----+ +----v---+---+ +--v----+--+ +----v---------+----+ | | | | | | | | | OmahaCommunication | | Downloader | | Unpacker | | AuthorizedInstall | | | | | | | | | +-------^------^-----+ +------------+ +----------+ +---------^---------+ | | | | +------------+ | | | | +-------+---------+ +-------+--------+ +--------+--------+ | | | | | | | OmahaXMLRequest | | OmahaXMLParser | | copy_to_disk.sh | | | | | | | +-------^---------+ +----------------+ +-----------------+ | | | +-----+------+ | | | SystemInfo | | | +------------+