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

Side by Side Diff: chrome/install_static/product_install_details.cc

Issue 2601443002: Remove multi-install from install_static. (Closed)
Patch Set: rebase onto position 442831 Created 3 years, 11 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/install_static/product_install_details.h" 5 #include "chrome/install_static/product_install_details.h"
6 6
7 #include <windows.h> 7 #include <windows.h>
8 #include <assert.h>
9 8
10 #include <algorithm> 9 #include <algorithm>
11 10
12 #include "chrome/install_static/install_details.h" 11 #include "chrome/install_static/install_details.h"
13 #include "chrome/install_static/install_modes.h" 12 #include "chrome/install_static/install_modes.h"
14 #include "chrome/install_static/install_util.h" 13 #include "chrome/install_static/install_util.h"
15 #include "chrome_elf/nt_registry/nt_registry.h" 14 #include "chrome_elf/nt_registry/nt_registry.h"
16 15
17 namespace install_static { 16 namespace install_static {
18 17
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
112 // Check for a match of the product directory name. 111 // Check for a match of the product directory name.
113 if (_wcsnicmp(&*name, kProductPathName, kProductPathNameLength)) 112 if (_wcsnicmp(&*name, kProductPathName, kProductPathNameLength))
114 return std::wstring(); 113 return std::wstring();
115 114
116 // Return the (possibly empty) suffix betwixt the product name and install 115 // Return the (possibly empty) suffix betwixt the product name and install
117 // binary dir. 116 // binary dir.
118 return std::wstring(&*(name - kProductPathNameLength), 117 return std::wstring(&*(name - kProductPathNameLength),
119 (name - scan) - kProductPathNameLength); 118 (name - scan) - kProductPathNameLength);
120 } 119 }
121 120
122 bool IsMultiInstall(const InstallConstants& mode, bool system_level) {
123 assert(mode.supports_multi_install);
124 std::wstring args;
125 return nt::QueryRegValueSZ(system_level ? nt::HKLM : nt::HKCU, nt::WOW6432,
126 GetClientStateKeyPath(mode.app_guid).c_str(),
127 L"UninstallArguments", &args) &&
128 args.find(L"--multi-install") != std::wstring::npos;
129 }
130
131 std::unique_ptr<PrimaryInstallDetails> MakeProductDetails( 121 std::unique_ptr<PrimaryInstallDetails> MakeProductDetails(
132 const std::wstring& exe_path) { 122 const std::wstring& exe_path) {
133 std::unique_ptr<PrimaryInstallDetails> details(new PrimaryInstallDetails()); 123 std::unique_ptr<PrimaryInstallDetails> details(new PrimaryInstallDetails());
134 124
135 const InstallConstants* mode = FindInstallMode(GetInstallSuffix(exe_path)); 125 const InstallConstants* mode = FindInstallMode(GetInstallSuffix(exe_path));
136 const bool system_level = 126 const bool system_level =
137 mode->supports_system_level && PathIsInProgramFiles(exe_path); 127 mode->supports_system_level && PathIsInProgramFiles(exe_path);
138 const bool multi_install =
139 mode->supports_multi_install && IsMultiInstall(*mode, system_level);
140 128
141 details->set_mode(mode); 129 details->set_mode(mode);
142 details->set_system_level(system_level); 130 details->set_system_level(system_level);
143 details->set_multi_install(multi_install); 131 details->set_channel(DetermineChannel(*mode, system_level));
144 details->set_channel(DetermineChannel(*mode, system_level, multi_install));
145 132
146 return details; 133 return details;
147 } 134 }
148 135
149 } // namespace install_static 136 } // namespace install_static
OLDNEW
« no previous file with comments | « chrome/install_static/product_install_details.h ('k') | chrome/install_static/product_install_details_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698