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

Issue 10399041: Make setup.exe compatible with the component build (2nd try). (Closed)

Created:
8 years, 7 months ago by gab
Modified:
8 years, 7 months ago
CC:
chromium-reviews, grt+watch_chromium.org, pam+watch_chromium.org
Visibility:
Public.

Description

Make setup.exe compatible with the component build. The problem with the current component build is that chrome.exe and setup.exe only know to look for DLLs like base.dll in the current directory (except chrome.dll for which they're hardcoded to know where to look). On an install those DLLs are in the version directory so chrome.exe and setup.exe fail to run not finding required DLLs... To fix this we generate config files (to point in the version directory) and manifests (to list all the DLL dependencies explicitly) to be installed beside the exes. Each DLL also has a manifest in the version directory to give it an "assemblyIdentity" (i.e. a unique name which is referred to as a dependency by each exe's manifest). These manifests are called "assembly manifest" and do NOT interfere with the private manifest possibly embedded in each DLL (details here http://msdn.microsoft.com/en-us/library/windows/desktop/aa374219(v=vs.85).aspx) <dependency> tags then need to be added to chrome.exe.manifest and setup.exe.manifest for each DLL in the version directory it will use (to be safe we make add an entry for all DLLs as there is no downside to referring an unused DLL). In this step, we augment the manifests generated by the build instead of creating new one to make sure any property passed on by the build is kept and that we are only *adding* new functionality without hindering current behavior. NOTE: This CL doesn't make mini_installer.exe compatible with the component build yet (as mini_installer runs setup.exe right after extracting it and without any other DLLs/manifests beside it). However it is now possible to use setup.exe (which takes the exact same parameters as mini_installer.exe) from the build output directory with a component build :)!!! BUG=127233 TEST=Turn on component build with gyp config "component=shared_libary" and make sure we can install chrome with the generated setup.exe. Make sure we can run the installed Chrome. Make sure we can uninstall the installed Chrome (i.e. that setup.exe in <version_dir>/Installer is able to find its DLLs). Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=137722

Patch Set 1 #

Patch Set 2 : augment the existing manifests instead of creating new ones #

Patch Set 3 : use a genexp+str.find() to find the insert_index #

Total comments: 1
Unified diffs Side-by-side diffs Delta from patch set Stats (+169 lines, -2 lines) Patch
M chrome/chrome_exe.gypi View 1 2 1 chunk +7 lines, -0 lines 0 comments Download
M chrome/chrome_installer.gypi View 1 1 chunk +7 lines, -0 lines 0 comments Download
M chrome/installer/mini_installer.gyp View 2 chunks +10 lines, -0 lines 0 comments Download
M chrome/installer/setup/install_worker.cc View 1 chunk +20 lines, -0 lines 0 comments Download
M chrome/tools/build/win/create_installer_archive.py View 1 2 4 chunks +125 lines, -2 lines 1 comment Download

Messages

Total messages: 7 (0 generated)
gab
Switched things around, the only difference as far as the build output is concerned now ...
8 years, 7 months ago (2012-05-16 06:13:40 UTC) #1
gab
On 2012/05/16 06:13:40, gab wrote: > Switched things around, the only difference as far as ...
8 years, 7 months ago (2012-05-16 06:27:54 UTC) #2
gab
On 2012/05/16 06:27:54, gab wrote: > On 2012/05/16 06:13:40, gab wrote: > > Switched things ...
8 years, 7 months ago (2012-05-16 06:35:50 UTC) #3
gab
https://chromiumcodereview.appspot.com/10399041/diff/8002/chrome/tools/build/win/create_installer_archive.py File chrome/tools/build/win/create_installer_archive.py (right): https://chromiumcodereview.appspot.com/10399041/diff/8002/chrome/tools/build/win/create_installer_archive.py#newcode326 chrome/tools/build/win/create_installer_archive.py:326: if s.find(insert_before) != -1), -1) I now use a ...
8 years, 7 months ago (2012-05-16 21:50:21 UTC) #4
robertshield
lgtm
8 years, 7 months ago (2012-05-17 16:32:55 UTC) #5
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/gab@chromium.org/10399041/8002
8 years, 7 months ago (2012-05-17 18:41:00 UTC) #6
commit-bot: I haz the power
8 years, 7 months ago (2012-05-17 20:15:13 UTC) #7
Change committed as 137722

Powered by Google App Engine
This is Rietveld 408576698