OLD | NEW |
| (Empty) |
1 <?xml version="1.0"?> | |
2 <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> | |
3 | |
4 <?define EventSourceName = "chromoting" ?> | |
5 <?define ServiceName = "chromoting" ?> | |
6 | |
7 <!-- TODO(alexeypa): There strings should be localized, | |
8 see http://crbug.com/121785 --> | |
9 <?if $(var.Branding) ~= Chrome ?> | |
10 <?define ChromotingHost = "Chrome Remote Desktop Host" ?> | |
11 <?define ChromotingServiceName = "Chrome Remote Desktop Service" ?> | |
12 <?define ChromotingServiceDescription = "This service enables incoming conne
ctions from Chrome Remote Desktop clients." ?> | |
13 <?define Manufacturer = "Google Inc." ?> | |
14 <?else?> | |
15 <?define ChromotingHost = "Chromoting Host" ?> | |
16 <?define ChromotingServiceName = "Chromoting Service" ?> | |
17 <?define ChromotingServiceDescription = "This service enables incoming conne
ctions from Chromoting clients." ?> | |
18 <?define Manufacturer = "The Chromium Authors" ?> | |
19 <?endif?> | |
20 | |
21 <?define FirewallName = "$(var.ChromotingHost)" ?> | |
22 | |
23 <?define OmahaAppid = "{b210701e-ffc4-49e3-932b-370728c72662}" ?> | |
24 <?define UpgradeCode = "2b21f767-e157-4fa6-963c-55834c1433a6" ?> | |
25 | |
26 <?define ControllerAppid = "{4ff35d5e-d226-4550-9248-03e7779e67de}" ?> | |
27 <?define ControllerBinary = "remoting_host_controller.exe" ?> | |
28 <?define ControllerClass = "ElevatedController Class" ?> | |
29 <?define ControllerClsid = "{430a9403-8176-4733-afdc-0b325a8fda84}" ?> | |
30 <?define ControllerProgid = | |
31 "ChromotingElevatedController.ElevatedController" ?> | |
32 <?define ControllerTypelib = "{9d9a5a2c-576e-4acd-9c75-aabff74b205d}" ?> | |
33 | |
34 <!-- | |
35 The long hex value below is a security descriptor that allows SYSTEM, | |
36 built-in administrators and interactive users to call methods of a COM | |
37 object (COM_RIGHTS_EXECUTE and COM_RIGHTS_EXECUTE_LOCAL). The security | |
38 descriptor was generated from SDDL definition using the PowerShell script | |
39 below: | |
40 | |
41 $sddl = "O:BAG:BAD:(A;;0x3;;;IU)(A;;0x3;;;SY)(A;;0x3;;;BA)" | |
42 $i = ([wmiclass]"Win32_SecurityDescriptorHelper").SDDLToBinarySD($sddl).Bi
narySD | |
43 -join ($i | foreach {$_.ToString("X2")}) | |
44 --> | |
45 <?define ControllerSd = "010004805C0000006C00000000000000140000000200480003000
00000001400030000000101000000000005040000000000140003000000010100000000000512000
00000001800030000000102000000000005200000002002000001020000000000052000000020020
00001020000000000052000000020020000" ?> | |
46 | |
47 <?ifndef FileSource ?> | |
48 <?error FileSource must be defined ?> | |
49 <?endif?> | |
50 | |
51 <?ifndef IconPath ?> | |
52 <?error IconPath must be defined ?> | |
53 <?endif?> | |
54 | |
55 <?ifndef SasDllPath ?> | |
56 <?error SasDllPath must be defined ?> | |
57 <?endif?> | |
58 | |
59 <?ifndef Version ?> | |
60 <?error Version must be defined ?> | |
61 <?endif?> | |
62 | |
63 <Product Id="*" | |
64 Language="1033" | |
65 Manufacturer="$(var.Manufacturer)" | |
66 Name="$(var.ChromotingHost)" | |
67 UpgradeCode="$(var.UpgradeCode)" | |
68 Version="$(var.Version)"> | |
69 | |
70 <Package Comments="$(var.ChromotingHost) Package" | |
71 Compressed="yes" | |
72 Description="$(var.ChromotingHost) Package" | |
73 InstallerVersion="200" | |
74 Manufacturer="$(var.Manufacturer)" | |
75 InstallScope="perMachine"/> | |
76 | |
77 <Condition | |
78 Message="$(var.ChromotingHost) is only supported on Windows XP, Windows Se
rver 2003, or higher."> | |
79 <![CDATA[Installed OR (VersionNT >= 501)]]> | |
80 </Condition> | |
81 | |
82 <MajorUpgrade | |
83 AllowSameVersionUpgrades="yes" | |
84 DowngradeErrorMessage="A later version of [ProductName] is already install
ed. Setup will now exit." | |
85 Schedule="afterInstallInitialize" /> | |
86 | |
87 <Media Id="1" Cabinet="chromoting.cab" EmbedCab="yes"/> | |
88 | |
89 <Directory Id="TARGETDIR" Name="SourceDir"> | |
90 <Directory Id="ProgramFilesFolder"> | |
91 <?ifdef OfficialBuild ?> | |
92 <Directory Id="program_files_google" Name="Google"> | |
93 <Directory Id="chromoting" Name="Chrome Remote Desktop"> | |
94 <Directory Id="binaries" Name="$(var.Version)"/> | |
95 </Directory> | |
96 </Directory> | |
97 <?else?> | |
98 <Directory Id="chromoting" Name="Chromoting"> | |
99 <Directory Id="binaries" Name="$(var.Version)"/> | |
100 </Directory> | |
101 <?endif?> | |
102 </Directory> | |
103 <Directory Id="CommonAppDataFolder"> | |
104 <?ifdef OfficialBuild ?> | |
105 <Directory Id="common_app_data_google" Name="Google"> | |
106 <Directory Id="config_files" Name="Chrome Remote Desktop"/> | |
107 </Directory> | |
108 <?else?> | |
109 <Directory Id="config_files" Name="Chromoting"/> | |
110 <?endif?> | |
111 </Directory> | |
112 </Directory> | |
113 | |
114 <DirectoryRef Id="binaries" FileSource="$(var.FileSource)"> | |
115 <Component Id="sas.dll" Guid="*"> | |
116 <File Id="sas.dll" | |
117 DiskId="1" | |
118 Name="sas.dll" | |
119 Source="$(var.SasDllPath)" | |
120 Vital="yes"/> | |
121 </Component> | |
122 | |
123 <Component Id="remoting_service" Guid="*"> | |
124 <File Id="remoting_service.exe" | |
125 DiskId="1" | |
126 KeyPath="yes" | |
127 Name="remoting_service.exe" | |
128 Vital="yes"/> | |
129 | |
130 <ServiceInstall Id="install_service" | |
131 Type="ownProcess" | |
132 Vital="yes" | |
133 Name="$(var.ServiceName)" | |
134 DisplayName="[chromoting_service_display_name]" | |
135 Description="[chromoting_service_description]" | |
136 Arguments="--host-config="[config_files]host.json&q
uot;" | |
137 Start="demand" | |
138 Account="LocalSystem" | |
139 ErrorControl="ignore" | |
140 Interactive="no" /> | |
141 | |
142 <ServiceControl Id="start_service" | |
143 Stop="both" | |
144 Remove="uninstall" | |
145 Name="$(var.ServiceName)" | |
146 Wait="yes" /> | |
147 </Component> | |
148 | |
149 <Component Id="remoting_me2me_host" Guid="*"> | |
150 <File Id="remoting_me2me_host.exe" | |
151 DiskId="1" | |
152 Name="remoting_me2me_host.exe" | |
153 Vital="yes"/> | |
154 <util:EventSource xmlns:util="http://schemas.microsoft.com/wix/UtilExten
sion" | |
155 Name="$(var.EventSourceName)" | |
156 Log="Application" | |
157 CategoryCount="1" | |
158 CategoryMessageFile="[#remoting_me2me_host.exe]" | |
159 EventMessageFile="[#remoting_me2me_host.exe]" | |
160 SupportsErrors="yes" | |
161 SupportsInformationals="yes"/> | |
162 | |
163 <fire:FirewallException xmlns:fire="http://schemas.microsoft.com/wix/Fir
ewallExtension" | |
164 Id="me2me_firewall_exception" | |
165 IgnoreFailure="yes" | |
166 Name="$(var.FirewallName)" | |
167 Profile="all" | |
168 Program="[#remoting_me2me_host.exe]" | |
169 Scope="any" /> | |
170 </Component> | |
171 | |
172 <?ifdef OfficialBuild ?> | |
173 <Component Id="omaha_registration" Guid="*"> | |
174 <RegistryKey Id="omaha_client_key" | |
175 Root="HKLM" | |
176 Key="SOFTWARE\Google\Update\Clients\$(var.OmahaAppid)" | |
177 Action="create"> | |
178 <RegistryValue Type="string" | |
179 Name="pv" | |
180 Value="$(var.Version)"/> | |
181 | |
182 <RegistryValue Type="string" | |
183 Name="name" | |
184 Value="$(var.ChromotingHost)"/> | |
185 </RegistryKey> | |
186 </Component> | |
187 <?endif?> | |
188 | |
189 <Component Id="service_controller" Guid="*"> | |
190 <File Id="$(var.ControllerBinary)" | |
191 DiskId="1" | |
192 Name="$(var.ControllerBinary)" | |
193 Vital="yes"/> | |
194 | |
195 <RegistryKey Root="HKLM" | |
196 Key="SOFTWARE\Classes"> | |
197 <RegistryKey Key="AppId"> | |
198 <RegistryKey Key="$(var.ControllerAppid)" Action="create"> | |
199 <RegistryValue Type="string" | |
200 Value="ChromotingElevatedController"/> | |
201 <RegistryValue Name="AccessPermission" | |
202 Type="binary" | |
203 Value="$(var.ControllerSd)"/> | |
204 </RegistryKey> | |
205 | |
206 <RegistryKey Key="$(var.ControllerBinary)" Action="create"> | |
207 <RegistryValue Type="string" | |
208 Name="AppID" | |
209 Value="$(var.ControllerAppid)"/> | |
210 </RegistryKey> | |
211 </RegistryKey> | |
212 | |
213 <RegistryKey Key="$(var.ControllerProgid)" Action="create"> | |
214 <RegistryValue Type="string" | |
215 Value="$(var.ControllerClass)"/> | |
216 | |
217 <RegistryKey Key="CLSID" Action="create"> | |
218 <RegistryValue Type="string" | |
219 Value="$(var.ControllerClsid)"/> | |
220 </RegistryKey> | |
221 | |
222 <RegistryKey Key="CurVer" Action="create"> | |
223 <RegistryValue Type="string" | |
224 Value="$(var.ControllerProgid).1"/> | |
225 </RegistryKey> | |
226 </RegistryKey> | |
227 | |
228 <RegistryKey Key="$(var.ControllerProgid).1" Action="create"> | |
229 <RegistryValue Type="string" | |
230 Value="$(var.ControllerClass)"/> | |
231 | |
232 <RegistryKey Key="CLSID" Action="create"> | |
233 <RegistryValue Type="string" | |
234 Value="$(var.ControllerClsid)"/> | |
235 </RegistryKey> | |
236 </RegistryKey> | |
237 | |
238 <RegistryKey Key="CLSID"> | |
239 <RegistryKey Key="$(var.ControllerClsid)" Action="create"> | |
240 <RegistryValue Type="string" | |
241 Value="$(var.ControllerClass)"/> | |
242 | |
243 <RegistryValue Type="string" | |
244 Name="AppID" | |
245 Value="$(var.ControllerAppid)"/> | |
246 | |
247 <RegistryValue Type="string" | |
248 Name="LocalizedString" | |
249 Value="@[#$(var.ControllerBinary)],-100"/> | |
250 | |
251 <RegistryKey Key="LocalServer32" Action="create"> | |
252 <RegistryValue Type="string" | |
253 Value="[#$(var.ControllerBinary)]"/> | |
254 </RegistryKey> | |
255 | |
256 <RegistryKey Key="ProgID" Action="create"> | |
257 <RegistryValue Type="string" | |
258 Value="$(var.ControllerProgid).1"/> | |
259 </RegistryKey> | |
260 | |
261 <RegistryKey Key="TypeLib" Action="create"> | |
262 <RegistryValue Type="string" | |
263 Value="$(var.ControllerTypelib)"/> | |
264 </RegistryKey> | |
265 | |
266 <RegistryKey Key="VersionIndependentProgID" Action="create"> | |
267 <RegistryValue Type="string" | |
268 Value="$(var.ControllerProgid)"/> | |
269 </RegistryKey> | |
270 | |
271 <RegistryKey Key="Elevation" Action="create"> | |
272 <RegistryValue Type="integer" | |
273 Name="Enabled" | |
274 Value="1"/> | |
275 <RegistryValue Type="string" | |
276 Name="IconReference" | |
277 Value="@[#$(var.ControllerBinary)],-101"/> | |
278 </RegistryKey> | |
279 </RegistryKey> | |
280 </RegistryKey> | |
281 | |
282 <RegistryKey Key="Interface"> | |
283 <RegistryKey Key="{655bd819-c08c-4b04-80c2-f160739ff6ef}" | |
284 Action="create"> | |
285 <RegistryKey Key="ProxyStubClsid32" Action="create"> | |
286 <RegistryValue Type="string" | |
287 Value="{00020424-0000-0000-C000-000000000046}"/> | |
288 </RegistryKey> | |
289 | |
290 <RegistryKey Key="TypeLib" Action="create"> | |
291 <RegistryValue Type="string" | |
292 Value="$(var.ControllerTypelib)"/> | |
293 </RegistryKey> | |
294 </RegistryKey> | |
295 | |
296 <RegistryKey Key="{e051a481-6345-4ba1-bdb1-cf7929955268}" | |
297 Action="create"> | |
298 <RegistryKey Key="ProxyStubClsid32" Action="create"> | |
299 <RegistryValue Type="string" | |
300 Value="{00020424-0000-0000-C000-000000000046}"/> | |
301 </RegistryKey> | |
302 | |
303 <RegistryKey Key="TypeLib" Action="create"> | |
304 <RegistryValue Type="string" | |
305 Value="$(var.ControllerTypelib)"/> | |
306 </RegistryKey> | |
307 </RegistryKey> | |
308 </RegistryKey> | |
309 | |
310 <RegistryKey Key="Typelib"> | |
311 <RegistryKey Key="$(var.ControllerTypelib)" Action="create"> | |
312 <RegistryKey Key="1.1" Action="create"> | |
313 <RegistryKey Key="0" Action="create"> | |
314 <RegistryKey Key="win32" Action="create"> | |
315 <RegistryValue Type="string" | |
316 Value="[#$(var.ControllerBinary)]"/> | |
317 </RegistryKey> | |
318 </RegistryKey> | |
319 | |
320 <RegistryKey Key="FLAGS" Action="create"> | |
321 <RegistryValue Type="string" | |
322 Value="0"/> | |
323 </RegistryKey> | |
324 | |
325 <RegistryKey Key="HELPDIR" Action="create"> | |
326 <RegistryValue Type="string" | |
327 Value="[binaries]"/> | |
328 </RegistryKey> | |
329 </RegistryKey> | |
330 </RegistryKey> | |
331 </RegistryKey> | |
332 </RegistryKey> | |
333 | |
334 </Component> | |
335 </DirectoryRef> | |
336 | |
337 <!-- The service is always installed in the stopped state with start type | |
338 set to 'manual'. This becomes a problem when upgrading an existing | |
339 installation that is configured to start the service automatically. | |
340 | |
341 Here we check the startup type before making any changes, then restart | |
342 the service and change its startup type as needed once the installation | |
343 is finished. --> | |
344 <Property Id="CHROMOTING_SERVICE_START_TYPE"> | |
345 <RegistrySearch Id="chromoting_service_start_type" | |
346 Root="HKLM" | |
347 Key="SYSTEM\CurrentControlSet\services\$(var.ServiceName)" | |
348 Name="Start" | |
349 Type="raw" /> | |
350 </Property> | |
351 | |
352 <CustomAction Id="query_auto_start_service" | |
353 Property="auto_start_service" | |
354 Value="[CHROMOTING_SERVICE_START_TYPE]" /> | |
355 | |
356 <CustomAction Id="set_auto_start_service" | |
357 Impersonate="no" | |
358 Execute="deferred" | |
359 Script="jscript"> | |
360 <![CDATA[ | |
361 var controller = new ActiveXObject("$(var.ControllerProgid)"); | |
362 controller.StartDaemon(); | |
363 ]]> | |
364 </CustomAction> | |
365 | |
366 <CustomAction Id="set_service_display_name" | |
367 Property="chromoting_service_display_name" | |
368 Value="@[binaries]remoting_service.exe,-101" /> | |
369 <CustomAction Id="set_service_description" | |
370 Property="chromoting_service_description" | |
371 Value="@[binaries]remoting_service.exe,-102" /> | |
372 | |
373 <!-- XP does not support MUI strings in the service name and description, so | |
374 we fall back to plain strings on XP. --> | |
375 <CustomAction Id="set_service_display_name_xp" | |
376 Property="chromoting_service_display_name" | |
377 Value="$(var.ChromotingServiceName)" /> | |
378 <CustomAction Id="set_service_description_xp" | |
379 Property="chromoting_service_description" | |
380 Value="$(var.ChromotingServiceDescription)" /> | |
381 | |
382 <UIRef Id="WixUI_ErrorProgressText" /> | |
383 | |
384 <Feature Id="chromoting_host" Level="1" Title="$(var.ChromotingHost)"> | |
385 <?ifdef OfficialBuild ?> | |
386 <ComponentRef Id="omaha_registration"/> | |
387 <?endif?> | |
388 <ComponentRef Id="remoting_me2me_host"/> | |
389 <ComponentRef Id="remoting_service"/> | |
390 <ComponentRef Id="sas.dll"/> | |
391 <ComponentRef Id="service_controller"/> | |
392 </Feature> | |
393 | |
394 <!-- Set the icon shown in Add/Remove Programs. --> | |
395 <Icon Id="chromoting.ico" SourceFile="$(var.IconPath)"/> | |
396 <Property Id="ARPPRODUCTICON" Value="chromoting.ico" /> | |
397 | |
398 <InstallExecuteSequence> | |
399 <Custom Action="query_auto_start_service" Before="InstallInitialize"/> | |
400 <Custom Action="set_auto_start_service" After="StartServices"> | |
401 <![CDATA[NOT REMOVE AND (auto_start_service = "#2")]]> | |
402 </Custom> | |
403 | |
404 <!-- Set the serivce name and description --> | |
405 <Custom Action="set_service_display_name_xp" Before="InstallInitialize"> | |
406 <![CDATA[VersionNT < 600]]> | |
407 </Custom> | |
408 <Custom Action="set_service_description_xp" Before="InstallInitialize"> | |
409 <![CDATA[VersionNT < 600]]> | |
410 </Custom> | |
411 <Custom Action="set_service_display_name" Before="InstallInitialize"> | |
412 <![CDATA[VersionNT >= 600]]> | |
413 </Custom> | |
414 <Custom Action="set_service_description" Before="InstallInitialize"> | |
415 <![CDATA[VersionNT >= 600]]> | |
416 </Custom> | |
417 </InstallExecuteSequence> | |
418 </Product> | |
419 </Wix> | |
OLD | NEW |