| OLD | NEW |
| 1 # Chrome Installer for Mac -- the repository! | 1 # Chrome Installer for Mac -- the repository! |
| 2 | 2 |
| 3 This Mac app installs Chrome on the machine it's run on. It's meant to be the | 3 This Mac app installs Chrome on the machine it's run on. It's meant to be the |
| 4 Mac app the user first downloads when they click 'Download Chrome' on a Mac | 4 Mac app the user first downloads when they click 'Download Chrome' on a Mac |
| 5 machine. After the user runs the app, Chrome would launch directly after | 5 machine. After the user runs the app, Chrome would launch directly after |
| 6 installation completes successfully. | 6 installation completes successfully. |
| 7 | 7 |
| 8 ## The 10,000 Foot View | 8 ## The 10,000 Foot View |
| 9 | 9 |
| 10 The installer breaks down its task into the following steps: | 10 The installer breaks down its task into the following steps: |
| 11 | 11 |
| 12 1. __OmahaCommunication__: Ask Omaha for a URL of the most recent compatible | 12 1. __OmahaCommunication__: Ask Omaha for a URL of the most recent compatible |
| 13 copy of the Google Chrome disk image in Google's servers. | 13 copy of the Google Chrome disk image in Google's servers. |
| 14 2. __Downloader__: Download the disk image, via URL from OmahaCommunication. | 14 2. __Downloader__: Download the disk image, via URL from OmahaCommunication. |
| 15 3. __Unpacker__: Mount the disk image and extract the Chrome app bundle. | 15 3. __Unpacker__: Mount the disk image and extract the Chrome app bundle. |
| 16 4. __AuthorizedInstall__: With privilege escalation if able, move the Chrome | 16 4. __AuthorizedInstall__: With privilege escalation if able, move the Chrome |
| 17 app into the Applications folder, set permissions, and hand ownership of | 17 app into the Applications folder, set permissions, and hand ownership of |
| 18 the Chrome app to `root`. | 18 the Chrome app to `root`. |
| 19 5. Launch Chrome & close. | 19 5. Launch Chrome & close. |
| 20 | 20 |
| 21 Each of the above modules are designed to carry one action before returning via | 21 Each of the above modules are designed to carry one action before returning via |
| 22 delegate method. All of these main steps occur on a primary working thread | 22 delegate method. All of these main steps occur on a primary working thread |
| 23 (non-UI), with the exception of `AuthorizedInstall`, which makes use of an | 23 (non-UI), with the exception of `AuthorizedInstall`, which makes use of an |
| 24 authorized-if-able subprocess. | 24 authorized-if-able subprocess. If the user does not provide permission to |
| 25 escalate privileges, `AuthorizedInstall` still does its job, but opts for the |
| 26 User's Applications folder instead of the system Applications folder. |
| 25 | 27 |
| 26 The OmahaXML* classes and SystemInfo class are simply classes to help | 28 The OmahaXML* classes and SystemInfo class are simply classes to help |
| 27 OmahaCommunication do its work. | 29 OmahaCommunication do its work. |
| 28 | 30 |
| 29 The app's UI is made of a single window that has a determinate progress bar | 31 The app's UI is made of a single window that has a determinate progress bar |
| 30 during download, which turns into an indeterminate one during installation. The | 32 during download, which turns into an indeterminate one during installation. The |
| 31 options to set Chrome as a default browser and opt in for user metrics are made | 33 options to set Chrome as a default browser and opt in for user metrics are made |
| 32 available to the user before they launch Chrome. Once Chrome is ready to launch, | 34 available to the user before they launch Chrome. Once Chrome is ready to launch, |
| 33 a Launch button will now be pressable -- this button will trigger Chrome to open | 35 a Launch button will now be pressable -- this button will trigger Chrome to open |
| 34 and the installer app to close its remaining window. In the background, the app | 36 and the installer app to close its remaining window. In the background, the app |
| (...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 166 | | 168 | |
| 167 | | 169 | |
| 168 | | 170 | |
| 169 +-----+------+ | 171 +-----+------+ |
| 170 | | | 172 | | |
| 171 | SystemInfo | | 173 | SystemInfo | |
| 172 | | | 174 | | |
| 173 +------------+ | 175 +------------+ |
| 174 | 176 |
| 175 ``` | 177 ``` |
| OLD | NEW |