Index: chrome/service/service_process.cc |
diff --git a/chrome/service/service_process.cc b/chrome/service/service_process.cc |
index e5e04944bd858978fc3c38ac0abac6b0f5fed6de..e9ddb31a75d9778b59e5cb85d32d5a62b2c2e203 100644 |
--- a/chrome/service/service_process.cc |
+++ b/chrome/service/service_process.cc |
@@ -192,6 +192,14 @@ 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) { |
+ EnableVirtualPrintDriver(); |
+ } |
VLOG(1) << "Starting Service Process IPC Server"; |
ipc_server_.reset(new ServiceIPCServer( |
@@ -272,6 +280,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()); |