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

Side by Side Diff: cloud_print/virtual_driver/win/install/setup.cc

Issue 18286004: Move PathExists to base namespace. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 5 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 <comdef.h> 5 #include <comdef.h>
6 #include <iomanip> 6 #include <iomanip>
7 #include <windows.h> 7 #include <windows.h>
8 #include <winspool.h> 8 #include <winspool.h>
9 #include <setupapi.h> // Must be included after windows.h 9 #include <setupapi.h> // Must be included after windows.h
10 10
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 return HRESULT_FROM_WIN32(ERROR_PATH_NOT_FOUND); 109 return HRESULT_FROM_WIN32(ERROR_PATH_NOT_FOUND);
110 } 110 }
111 if (install) { 111 if (install) {
112 base::FilePath source_path = 112 base::FilePath source_path =
113 install_path.Append(GetPortMonitorDllName()); 113 install_path.Append(GetPortMonitorDllName());
114 if (!base::CopyFile(source_path, target_path)) { 114 if (!base::CopyFile(source_path, target_path)) {
115 LOG(ERROR) << "Unable copy port monitor dll from " << 115 LOG(ERROR) << "Unable copy port monitor dll from " <<
116 source_path.value() << " to " << target_path.value(); 116 source_path.value() << " to " << target_path.value();
117 return GetLastHResult(); 117 return GetLastHResult();
118 } 118 }
119 } else if (!file_util::PathExists(target_path)) { 119 } else if (!base::PathExists(target_path)) {
120 // Already removed. Just "succeed" silently. 120 // Already removed. Just "succeed" silently.
121 return S_OK; 121 return S_OK;
122 } 122 }
123 123
124 base::FilePath regsvr32_path = GetNativeSystemPath(L"regsvr32.exe"); 124 base::FilePath regsvr32_path = GetNativeSystemPath(L"regsvr32.exe");
125 if (regsvr32_path.empty()) { 125 if (regsvr32_path.empty()) {
126 LOG(ERROR) << "Can't find regsvr32.exe."; 126 LOG(ERROR) << "Can't find regsvr32.exe.";
127 return HRESULT_FROM_WIN32(ERROR_PATH_NOT_FOUND); 127 return HRESULT_FROM_WIN32(ERROR_PATH_NOT_FOUND);
128 } 128 }
129 129
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
230 package_path = package_path.Append(L"Driver Cache\\i386\\sp3.cab"); 230 package_path = package_path.Append(L"Driver Cache\\i386\\sp3.cab");
231 SetupIterateCabinet(package_path.value().c_str(), 0, &CabinetCallback, 231 SetupIterateCabinet(package_path.value().c_str(), 0, &CabinetCallback,
232 &base::FilePath(destination)); 232 &base::FilePath(destination));
233 233
234 // Copy the rest from the driver cache or system dir. 234 // Copy the rest from the driver cache or system dir.
235 base::FilePath driver_cache_path; 235 base::FilePath driver_cache_path;
236 PathService::Get(base::DIR_WINDOWS, &driver_cache_path); 236 PathService::Get(base::DIR_WINDOWS, &driver_cache_path);
237 driver_cache_path = driver_cache_path.Append(L"Driver Cache\\i386"); 237 driver_cache_path = driver_cache_path.Append(L"Driver Cache\\i386");
238 for (size_t i = 0; i < arraysize(kDependencyList); ++i) { 238 for (size_t i = 0; i < arraysize(kDependencyList); ++i) {
239 base::FilePath dst_path = destination.Append(kDependencyList[i]); 239 base::FilePath dst_path = destination.Append(kDependencyList[i]);
240 if (!file_util::PathExists(dst_path)) { 240 if (!base::PathExists(dst_path)) {
241 base::FilePath src_path = driver_cache_path.Append(kDependencyList[i]); 241 base::FilePath src_path = driver_cache_path.Append(kDependencyList[i]);
242 if (!file_util::PathExists(src_path)) 242 if (!base::PathExists(src_path))
243 src_path = GetSystemPath(kDependencyList[i]); 243 src_path = GetSystemPath(kDependencyList[i]);
244 base::CopyFile(src_path, dst_path); 244 base::CopyFile(src_path, dst_path);
245 } 245 }
246 } 246 }
247 } 247 }
248 } 248 }
249 249
250 HRESULT InstallDriver(const base::FilePath& install_path) { 250 HRESULT InstallDriver(const base::FilePath& install_path) {
251 base::ScopedTempDir temp_path; 251 base::ScopedTempDir temp_path;
252 if (!temp_path.CreateUniqueTempDir()) 252 if (!temp_path.CreateUniqueTempDir())
253 return HRESULT_FROM_WIN32(ERROR_CANNOT_MAKE); 253 return HRESULT_FROM_WIN32(ERROR_CANNOT_MAKE);
254 ReadyDriverDependencies(temp_path.path()); 254 ReadyDriverDependencies(temp_path.path());
255 255
256 std::vector<string16> dependent_array; 256 std::vector<string16> dependent_array;
257 // Add all files. AddPrinterDriverEx will removes unnecessary. 257 // Add all files. AddPrinterDriverEx will removes unnecessary.
258 for (size_t i = 0; i < arraysize(kDependencyList); ++i) { 258 for (size_t i = 0; i < arraysize(kDependencyList); ++i) {
259 base::FilePath file_path = temp_path.path().Append(kDependencyList[i]); 259 base::FilePath file_path = temp_path.path().Append(kDependencyList[i]);
260 if (file_util::PathExists(file_path)) 260 if (base::PathExists(file_path))
261 dependent_array.push_back(file_path.value()); 261 dependent_array.push_back(file_path.value());
262 else 262 else
263 LOG(WARNING) << "File is missing: " << file_path.BaseName().value(); 263 LOG(WARNING) << "File is missing: " << file_path.BaseName().value();
264 } 264 }
265 265
266 // Set up paths for the files we depend on. 266 // Set up paths for the files we depend on.
267 base::FilePath data_file = install_path.Append(kDataFileName); 267 base::FilePath data_file = install_path.Append(kDataFileName);
268 base::FilePath xps_path = temp_path.path().Append(kDriverName); 268 base::FilePath xps_path = temp_path.path().Append(kDriverName);
269 base::FilePath ui_path = temp_path.path().Append(kUiDriverName); 269 base::FilePath ui_path = temp_path.path().Append(kUiDriverName);
270 base::FilePath ui_help_path = temp_path.path().Append(kHelpName); 270 base::FilePath ui_help_path = temp_path.path().Append(kHelpName);
271 271
272 if (!file_util::PathExists(xps_path)) { 272 if (!base::PathExists(xps_path)) {
273 SetGoogleUpdateError(kGoogleUpdateProductId, 273 SetGoogleUpdateError(kGoogleUpdateProductId,
274 LoadLocalString(IDS_ERROR_NO_XPS)); 274 LoadLocalString(IDS_ERROR_NO_XPS));
275 return HRESULT_FROM_WIN32(ERROR_BAD_DRIVER); 275 return HRESULT_FROM_WIN32(ERROR_BAD_DRIVER);
276 } 276 }
277 277
278 DRIVER_INFO_6 driver_info = {0}; 278 DRIVER_INFO_6 driver_info = {0};
279 // Set up supported print system version. Must be 3. 279 // Set up supported print system version. Must be 3.
280 driver_info.cVersion = 3; 280 driver_info.cVersion = 3;
281 281
282 // None of the print API structures likes constant strings even though they 282 // None of the print API structures likes constant strings even though they
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after
543 LOG(INFO) << _com_error(retval).ErrorMessage() << " HRESULT=0x" << 543 LOG(INFO) << _com_error(retval).ErrorMessage() << " HRESULT=0x" <<
544 std::setbase(16) << retval; 544 std::setbase(16) << retval;
545 545
546 // Installer is silent by default as required by Google Update. 546 // Installer is silent by default as required by Google Update.
547 if (CommandLine::ForCurrentProcess()->HasSwitch("verbose")) { 547 if (CommandLine::ForCurrentProcess()->HasSwitch("verbose")) {
548 cloud_print::DisplayWindowsMessage(NULL, retval, 548 cloud_print::DisplayWindowsMessage(NULL, retval,
549 cloud_print::LoadLocalString(IDS_DRIVER_NAME)); 549 cloud_print::LoadLocalString(IDS_DRIVER_NAME));
550 } 550 }
551 return retval; 551 return retval;
552 } 552 }
OLDNEW
« no previous file with comments | « cloud_print/service/win/service_listener.cc ('k') | cloud_print/virtual_driver/win/port_monitor/port_monitor.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698