summaryrefslogtreecommitdiff
path: root/chromium/docs/website/site/developers/installer/index.md
blob: 723335b4c967c3ff1f244d15ae6cc3113ee55f36 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
---
breadcrumbs:
- - /developers
  - For Developers
page_name: installer
title: A short trip through the Chromium installer's mind!
---

## Installed components

*   [Registry entries](/developers/installer#reg)
*   [Shortcuts](/developers/installer#shortcuts)

### Registry Entries

Syntax:

<variable to be defined later>

{for all things matching this definition}

\[RegistryValue\]

(Wow6432Node\\) -- Only on 64-bit versions of Windows.

Entry types:

*   *AppId entries* (Windows 8+ only):
    *   <root>\\Software\\Classes\\Chromium<suffix>
                ([AppUserModelId on
                MSDN](http://msdn.microsoft.com/library/windows/desktop/dd378459.aspx))
*   *ProgId entries*:
    *   <root>\\Software\\Classes\\ChromiumHTM<suffix>
                ([ProgId on
                MSDN](http://msdn.microsoft.com/en-us/library/aa911706.aspx))
*   *DelegateExecute COM registration entries* (Windows 8+ only):
    *   <root>\\Software\\Classes\\(Wow6432Node\\)CLSID\\{A2DF06F9-A21A-44A8-8A99-8B9C84F29160}
*   *App Registration entries*:
    *   <root>\\Software\\Microsoft\\Windows\\CurrentVersion\\App
                Paths\\chrome.exe (for ShellExecute to be able to find
                chrome.exe without needing to modify PATH;
                [MSDN](http://msdn.microsoft.com/library/windows/desktop/ee872121.aspx#appPaths)).
    *   <root>\\Software\\{file_assoc}\\OpenWithProgids\[ChromiumHTML<suffix>\]
                (to show up in "Open With" in the context menu for supported
                file types;
                [MSDN](http://msdn.microsoft.com/library/bb166549.aspx)).
*   *Shell Integration entries* (can only be registered in
            <root>==HKLM pre-Win8):
    *   <root>\\Software\\Clients\\StartMenuInternet\\Chromium<suffix>
                ([StartMenuInternet on
                MSDN](http://msdn.microsoft.com/library/windows/desktop/dd203067.aspx#internet))
        *   Capabilities (URL + File Associations) and other information
                    (put under this entry, but could theoretically be anywhere
                    in the registry;
                    [MSDN](http://msdn.microsoft.com/library/windows/desktop/cc144154.aspx#registration)).
    *   <root>\\Software\\RegisteredApplications\[Chromium<suffix>\]
                (to appear in "Default Programs" and have the ability to become
                default browser;
                [MSDN](http://msdn.microsoft.com/library/windows/desktop/cc144154.aspx#RegisteredApplications)).
*   *XP-style default browser entries*:
    *   <root>\\Software\\Classes\\{file_association |
                protocol_association}\[Default\] = ChromiumHTM<suffix>
        *   These are not necessary post-XP to be the default browser,
                    but many programs are still hardcoded to lookup these
                    values.
*   *Protocol specific entries*:
    *   <root>\\Software\\Client\\StartMenuInternet\\Chromium<suffix>\\Capabilities\\URLAssociations\[<protocol>\]
*   *Active Setup entries* (Google Chrome system-level installs only --
            [Active Setup design
            doc](https://docs.google.com/a/google.com/document/d/1yQdG1wMDKi_lf0i8bk6P2_BWqudRb-ap6Y2C5f1RO2w/edit)):
    *   HKEY_LOCAL_MACHINE\\Software\\(Wow6432Node\\)Microsoft\\Active
                Setup\\Installed
                Components\\{8A69D345-D564-463c-AFF1-A69D9E530F96}
*   *Uninstall entries*:
    *   <root>\\Software\\(Wow6432Node\\)Microsoft\\Windows\\CurrentVersion\\Uninstall\\Chromium
                (to show up in "Programs and Features" or "Add or Remove
                Programs" in the Control Panel)

Note: <root>\\Software\\Classes is also known as
[HKEY_CLASSES_ROOT](http://msdn.microsoft.com/library/windows/desktop/ms724475.aspx)

For *Google Chrome* replace the following values as indicated:

*   Chromium --> Chrome (except for Protocol specific entries and
            Uninstall entries)
*   Chromium --> Google Chrome (for Protocol specific entries and
            Uninstall entries)
*   ChromiumHTM --> ChromeHTML
*   StartMenuInternet\\Chromium --> StartMenuInternet\\Google Chrome
*   {A2DF06F9-A21A-44A8-8A99-8B9C84F29160} -->
            {5C65F4B0-3651-4514-B207-D10CB699B14B}

#### System-level installs

*   <suffix> = ""
*   At Install:
    *   All entry types fully registered in <root> =
                HKEY_LOCAL_MACHINE
    *   If making Chromium default machine-wide:
        *   Register *XP-style default browser entries* in
                    <root>=HKEY_CURRENT_USER
*   + When making Chromium default for a user:
    *   Register *XP-style default browser entries* in
                <root>=HKEY_CURRENT_USER
    *   (on top of incanting Windows into making Chromium the default
                browser, but that doesn't require any further registrations
                post-XP).
*   + When making Chrome the default handler for some protocol:
    *   Register *protocol specific entries* with
                <root>=HKEY_LOCAL_MACHINE if not already registered
                (requires UAC)
    *   Register *XP-style default entries* for this protocol with
                <root>=HKEY_CURRENT_USER

#### User-level installs

*   <suffix> = .<base32 encoding of the md5 hash of the user’s
            SID> (which is always 26 characters (27 with the dot))
    *   Exception (for backward compatibility with old registration
                schemas):
        *   <suffix> = <none> if the user already has the
                    unsuffixed registration in HKLM from the old-style
                    registrations.
        *   <suffix> = .<username> if the user already has
                    the username suffixed registration in HKLM from the
                    old-style registrations.
        *   Note: *AppId Entries* are always suffixed with the new-style
                    suffixed (as they were introduced after the registration
                    schema changes).
*   At install:
    *   Install *AppId, ProgId, and App Registration entries* in
                <root>=HKEY_CURRENT_USER.
    *   On Windows 8+ also install *Shell Integration entries in*
                <root>=HKEY_CURRENT_USER.
    *   Before Windows 8, if |elevate_if_not_admin| (which is true when
                triggering the "make chromium default" flow):
        *   Elevate (UAC) and register all entry types in
                    <root>=HKEY_LOCAL_MACHINE.
*   When making Chromium default:
    *   If some registration are missing (i.e. *Shell Integration
                entries* before Windows 8 if the user has not yet elevated
                Chromium to complete registration):
        *   Elevate (UAC) and register all entry types in
                    <root>=HKEY_LOCAL_MACHINE.
    *   Register *XP-style default browser entries* in
                <root>=HKEY_CURRENT_USER
*   When making Chrome the default handler for some protocol:
    *   Register *protocol specific entries* with
                <root>=HKEY_LOCAL_MACHINE (HKEY_CURRENT_USER on Win8+) if
                not already registered (requires UAC before Win8)
    *   Register *XP-style default entries* for this protocol with
                <root>=HKEY_CURRENT_USER

### Shortcuts

#### User-level installs

*   At install:
    *   Create Start Menu shortcut (Start Screen on Win8)
        C:\\Users\\<username>\\AppData\\Roaming\\Microsoft\\Windows\\Start
        Menu\\Programs\\Chromium\\Chromium.lnk
    *   Pin shortcut to taskbar (Windows 7+)
        C:\\Users\\<username>\\AppData\\Roaming\\Microsoft\\Internet
        Explorer\\Quick Launch\\User Pinned\\TaskBar
    *   Create desktop shortcut
        C:\\Users\\<username>\\Desktop
    *   Create Quick Launch shortcut
        C:\\Users\\<username>\\AppData\\Roaming\\Microsoft\\Internet
        Explorer\\Quick Launch

#### System-level installs

*   At install:
    *   Create all-users Start Menu shortcut (in Win8 this will only
                show on the Start Screen for the user running the install (i.e.,
                not for new users); Microsoft claims that this is by design).
        C:\\ProgramData\\Microsoft\\Windows\\Start
        Menu\\Programs\\Chromium\\Chromium.lnk)
    *   Create all-users Desktop shortcut (shows on every user’s
                Desktop, but if any user deletes it, it’s gone for all...)
        C:\\Users\\Public\\Desktop\\Chromium.lnk
*   At install (if the installer is running in a given user's context;
            i.e., not for the MSI which runs as SYSTEM):
    *   Create per-user Quick Launch shortcut
        C:\\Users\\<username>\\AppData\\Roaming\\Microsoft\\Internet
        Explorer\\Quick Launch
    *   Pin shortcut to taskbar (WIndows 7+)
        C:\\Users\\<username>\\AppData\\Roaming\\Microsoft\\Internet
        Explorer\\Quick Launch\\User Pinned\\TaskBar
*   Upon the next login of each other user (when *Active Setup* triggers
            Chromium's *Active Setup* for that user and **only if** that user
            has yet to run Chrome on this machine):
    *   Create per-user shortcuts that do not have a matching all-users
                shortcut.
        *   Per-user Quick Launch shortcut.
        *   Pin shortcut to taskbar (Windows 7+).
        *   Per-user desktop shortcut (if the all-users Desktop shortcut
                    is absent).
        *   Per-user Start Menu shortcut (if the all-users Start Menu
                    shortcut is absent).

**Master Preferences**

*   do_not_create_desktop_shortcut: Prevents creation of the Desktop
            shortcut in all scenarios above (including Active Setup).
*   do_not_create_quick_launch_shortcut: Prevents creation of the Quick
            Launch shortcut (Windows XP only) in all scenarios above (including
            Active Setup).
*   do_not_create_taskbar_shortcut: Prevents creation of the taskbar pin
            (Windows 7+) in all scenarios above (including Active Setup).
*   do_not_create_any_shortcuts: Supersedes any other preference and
            prevents creation of all shortcuts in all scenarios above (including
            Active Setup).

For *Google Chrome* replace *Chromium* by *Google Chrome* above.