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 | |
+ | | |
+ +------------+ |
+``` |