diff options
author | vitalybuka@chromium.org <vitalybuka@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-29 00:56:56 +0000 |
---|---|---|
committer | vitalybuka@chromium.org <vitalybuka@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-29 00:56:56 +0000 |
commit | c5a726b3541cdb5ab7e4f90da45c9bbbd3f6b4d3 (patch) | |
tree | b2564d1f3895e5c857bde6c13d54d828e39c3a51 /cloud_print/virtual_driver | |
parent | d239230b4be699a6e1e124e761b585692d54e140 (diff) | |
download | chromium_src-c5a726b3541cdb5ab7e4f90da45c9bbbd3f6b4d3.zip chromium_src-c5a726b3541cdb5ab7e4f90da45c9bbbd3f6b4d3.tar.gz chromium_src-c5a726b3541cdb5ab7e4f90da45c9bbbd3f6b4d3.tar.bz2 |
Disable cache in PathService.
Google Cloud Printer implements port monitor. It's DLL that loaded into windows Spooler service (spoolsv.exe). Port monitor saves printed document to temp file and then runs Chrome.exe to send this file to cloud print.
spoolsv.exe always runs as SYSTEM, but threads that call port monitor is executed as user, that spooled print jobs.
Port monitor should be able to find Chrome.exe for different user. Now port monitor uses chrome_launcher_support::GetAnyChromePath(), which uses PathService, is to find chrome.
If cache is enabled, port monitor will always use paths generated for the first users.
BUG=170300
Review URL: https://chromiumcodereview.appspot.com/12079030
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@179234 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cloud_print/virtual_driver')
-rw-r--r-- | cloud_print/virtual_driver/win/port_monitor/port_monitor.cc | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/cloud_print/virtual_driver/win/port_monitor/port_monitor.cc b/cloud_print/virtual_driver/win/port_monitor/port_monitor.cc index ba6b959..0f99033 100644 --- a/cloud_print/virtual_driver/win/port_monitor/port_monitor.cc +++ b/cloud_print/virtual_driver/win/port_monitor/port_monitor.cc @@ -614,6 +614,8 @@ MONITOR2* WINAPI InitializePrintMonitor2(MONITORINIT*, if (!cloud_print::kIsUnittest) { // Unit tests set up their own AtExitManager monitor_data->at_exit_manager = new base::AtExitManager(); + // Single spooler.exe handles all users. + PathService::DisableCache(); } } else { SetLastError(ERROR_INVALID_PARAMETER); |