summaryrefslogtreecommitdiffstats
path: root/cloud_print/virtual_driver
diff options
context:
space:
mode:
authorvitalybuka@chromium.org <vitalybuka@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-29 00:56:56 +0000
committervitalybuka@chromium.org <vitalybuka@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-29 00:56:56 +0000
commitc5a726b3541cdb5ab7e4f90da45c9bbbd3f6b4d3 (patch)
treeb2564d1f3895e5c857bde6c13d54d828e39c3a51 /cloud_print/virtual_driver
parentd239230b4be699a6e1e124e761b585692d54e140 (diff)
downloadchromium_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.cc2
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);