Index: chrome/service/service_process.cc |
diff --git a/chrome/service/service_process.cc b/chrome/service/service_process.cc |
index e5e04944bd858978fc3c38ac0abac6b0f5fed6de..8fc8e95de3187ddbeea61e139bbbe6747a36c172 100644 |
--- a/chrome/service/service_process.cc |
+++ b/chrome/service/service_process.cc |
@@ -192,6 +192,16 @@ bool ServiceProcess::Initialize(MessageLoopForUI* message_loop, |
if (cloud_print_proxy_enabled) { |
GetCloudPrintProxy()->EnableForUser(lsid); |
} |
+ // Enable Virtual Printer Driver if needed. |
+ bool virtual_printer_driver_enabled = false; |
+ service_prefs_->GetBoolean(prefs::kVirtualPrinterDriverEnabled, |
+ &virtual_printer_driver_enabled); |
+ |
+ if (virtual_printer_driver_enabled) { |
+ // Register the fact that there is at least one |
+ // service needing the process. |
+ OnServiceEnabled(); |
+ } |
VLOG(1) << "Starting Service Process IPC Server"; |
ipc_server_.reset(new ServiceIPCServer( |
@@ -272,6 +282,20 @@ void ServiceProcess::OnCloudPrintProxyDisabled(bool persist_state) { |
OnServiceDisabled(); |
} |
+void ServiceProcess::EnableVirtualPrintDriver() { |
+ OnServiceEnabled(); |
+ // Save the preference that we have enabled the virtual driver. |
+ service_prefs_->SetBoolean(prefs::kVirtualPrinterDriverEnabled, true); |
+ service_prefs_->WritePrefs(); |
+} |
+ |
+void ServiceProcess::DisableVirtualPrintDriver() { |
+ OnServiceDisabled(); |
+ // Save the preference that we have disabled the virtual driver. |
+ service_prefs_->SetBoolean(prefs::kVirtualPrinterDriverEnabled, false); |
+ service_prefs_->WritePrefs(); |
+} |
+ |
ServiceURLRequestContextGetter* |
ServiceProcess::GetServiceURLRequestContextGetter() { |
DCHECK(request_context_getter_.get()); |