summaryrefslogtreecommitdiffstats
path: root/chrome/service/service_process.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/service/service_process.cc')
-rw-r--r--chrome/service/service_process.cc24
1 files changed, 24 insertions, 0 deletions
diff --git a/chrome/service/service_process.cc b/chrome/service/service_process.cc
index e5e0494..8fc8e95 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());