Chromium Code Reviews| Index: chrome/installer/mac/app/README.md |
| diff --git a/chrome/installer/mac/app/README.md b/chrome/installer/mac/app/README.md |
| index 28beec43cf94f99155e11b86ba173e15e6acd043..682ab89bae4d052830eacf7248e470c98854143d 100644 |
| --- a/chrome/installer/mac/app/README.md |
| +++ b/chrome/installer/mac/app/README.md |
| @@ -1,9 +1,13 @@ |
| # Chrome Installer for Mac -- the repository! |
| +This Mac app installs Chrome on the machine it's run on. It's meant to be the |
| +Mac app the user first downloads when he/she clicks 'Download Chrome' on a Mac |
|
Elly Fong-Jones
2016/08/30 15:09:45
he/she -> they :) we use singular they chromium-wi
Anna Zeng
2016/08/30 15:16:21
Done.
|
| +machine. After the user runs the app, Chrome would launch directly after |
| +installation completes successfully. |
| + |
| ## The 10,000 Foot View |
| -This Mac app installs Chrome on the machine it's run on. To do so, it breaks |
| -down installation into the following basic steps: |
| +The installer breaks down its task into the following steps: |
| 1. __OmahaCommunication__: Ask Omaha for a URL of the most recent compatible |
| copy of the Google Chrome disk image in Google's servers. |
| @@ -38,29 +42,136 @@ default) immediately, then waits until the installer has progressed to step 4 |
| ## The Class Breakdown |
| - AppDelegate | Controls the flow of the program |
| - AuthorizedInstall | Attempts authorization to add Chrome to |
| - | Applications folder and adjust permissions as root |
| - Downloader | Downloads GoogleChrome.dmg from Omaha Servers |
| - InstallerWindowController | Controls the user interface |
| - OmahaCommunication | Talks with Omaha Servers to get URL of disk image |
| - OmahaXMLParser | Extracts URLs from Omaha's XML response. |
| - OmahaXMLRequest | Creates an XML request to send to Omaha. |
| - SystemInfo | Provides system information to help craft the XML |
| - | request for Omaha. |
| - Unpacker | Mounts the disk image and controls the temporary |
| - | directory that abstracts the installer's |
| - | file-manipulating activity from the user. |
| +| Class | Role | |
| +|----------------------------|----------------------------------------------------| |
| +| AppDelegate | Controls the flow of the program | |
| +| AuthorizedInstall | Attempts authorization to add Chrome to the Applications folder and adjust permissions as root | |
| +| Downloader | Downloads GoogleChrome.dmg from Omaha servers | |
| +| InstallerWindowController | Controls the user interface | |
| +| OmahaCommunication | Talks with Omaha Servers to get URL of disk image | |
| +| OmahaXMLParser | Extracts URLs from Omaha's XML response | |
| +| OmahaXMLRequest | Creates an XML request to send to Omaha | |
| +| SystemInfo | Provides system information to help craft the XML request for Omaha | |
| +| Unpacker | Mounts the disk image and controls the temporary directory that abstracts the installer's file-manipulating activity from the user | |
| ## The Future |
| Here lies a list of hopes and dreams: |
| - * Implement resumable downloads. |
| - * Add in adequate testing using a local test server. |
| - * Include basic error recovery attempts -- say, if during a download a URL |
| - does not provide a valid disk image, the installer can try re-downloading |
| - the disk image from another URL. |
| - * Manage potential conflicts, in the case that Google Chrome already exists in |
| - the Applications folder when the installer is run. |
| - * Trash the installer application after it has completed running. |
| +* Implement resumable downloads. |
| +* Add in adequate testing using a local test server. |
| +* Include basic error recovery attempts -- say, if during a download a URL |
| + does not provide a valid disk image, the installer can try re-downloading |
| + the disk image from another URL. |
| +* Manage potential conflicts, in the case that Google Chrome already exists in |
| + the Applications folder when the installer is run. |
| +* Trash the installer application after it has completed running. |
| + |
| +## Contacts |
| + |
| +This was initially an intern project of zengster@ and ivanhernandez@, who worked |
| +under the guidance of hosts ellyjones@ and mark@, with plenty of involvement |
| +with sdy@. Any thoughts should be directed to ellyjones@, mark@, and/or sdy@. |
|
Elly Fong-Jones
2016/08/30 15:09:45
This doesn't need to / shouldn't go in the README
Anna Zeng
2016/08/30 15:16:21
Done.
|
| + |
| +## Diagram Appendix |
| + |
| +### Task Flow |
| + |
| +``` |
| + 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 | |
| + | | |
| + +--------------------------------------+ |
| +``` |
| + |
| +### Class Heirarchy |
| + |
| +``` |
| + Users |
| + |
| + ^ + |
| + | | |
| + | | |
| ++-------------------------------+-----v--------------------------------+ |
| +| | |
| +| InstallerWindowController | |
| +| | |
| ++-------+------^------------+---^--------+----^---------+---------^----+ |
| + | | | | | | | | |
| + | | | | | | | | |
| + | | | | | | | | |
| ++-------v------+------------v---+--------v----+---------v---------+----+ |
| +| | |
| +| AppDelegate | |
| +| | |
| ++-------+------^------------+---^--------+----^---------+---------^----+ |
| + | | | | | | | | |
| + | | | | | | | | |
| + | | | | | | | | |
| ++-------v------+-----+ +----v---+---+ +--v----+--+ +----v---------+----+ |
| +| | | | | | | | |
| +| OmahaCommunication | | Downloader | | Unpacker | | AuthorizedInstall | |
| +| | | | | | | | |
| ++-------^------^-----+ +------------+ +----------+ +---------^---------+ |
| + | | | |
| + | +------------+ | |
| + | | | |
| ++-------+---------+ +-------+--------+ +--------+--------+ |
| +| | | | | | |
| +| OmahaXMLRequest | | OmahaXMLParser | | copy_to_disk.sh | |
| +| | | | | | |
| ++-------^---------+ +----------------+ +-----------------+ |
| + | |
| + | |
| + | |
| + +-----+------+ |
| + | | |
| + | SystemInfo | |
| + | | |
| + +------------+ |
| +``` |