Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6370)

Unified Diff: chrome/installer/mac/app/README.md

Issue 2290063002: Added diagrams to installer README (Closed)
Patch Set: Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 |
+ | |
+ +------------+
+```
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698