summaryrefslogtreecommitdiffstats
path: root/cloud_print/service
diff options
context:
space:
mode:
authorvitalybuka@chromium.org <vitalybuka@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-27 20:43:02 +0000
committervitalybuka@chromium.org <vitalybuka@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-27 20:43:02 +0000
commit4a51b35c32b07aaea51420aeb2e7636c73c48c3c (patch)
tree042091d0586441f33ba9f41af86d4545ed0b788e /cloud_print/service
parentdc1978a670cfe37a5bf585aa0ebfbe2775205959 (diff)
downloadchromium_src-4a51b35c32b07aaea51420aeb2e7636c73c48c3c.zip
chromium_src-4a51b35c32b07aaea51420aeb2e7636c73c48c3c.tar.gz
chromium_src-4a51b35c32b07aaea51420aeb2e7636c73c48c3c.tar.bz2
Additional command line switches for logging and to disable some components.
BUG= 224219 Review URL: https://chromiumcodereview.appspot.com/13119004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@191013 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cloud_print/service')
-rw-r--r--cloud_print/service/service.gyp1
-rw-r--r--cloud_print/service/win/chrome_launcher.cc27
-rw-r--r--cloud_print/service/win/chrome_launcher.h5
-rw-r--r--cloud_print/service/win/cloud_print_service.cc3
-rw-r--r--cloud_print/service/win/service_controller.cc2
5 files changed, 36 insertions, 2 deletions
diff --git a/cloud_print/service/service.gyp b/cloud_print/service/service.gyp
index 3bce1c5..593222c 100644
--- a/cloud_print/service/service.gyp
+++ b/cloud_print/service/service.gyp
@@ -52,6 +52,7 @@
'defines': ['COMPILE_CONTENT_STATICALLY'],
'dependencies': [
'<(DEPTH)/base/base.gyp:base',
+ '<(DEPTH)/base/base.gyp:base_static',
'<(DEPTH)/build/temp_gyp/googleurl.gyp:googleurl',
'<(DEPTH)/ipc/ipc.gyp:ipc',
'<(DEPTH)/net/net.gyp:net',
diff --git a/cloud_print/service/win/chrome_launcher.cc b/cloud_print/service/win/chrome_launcher.cc
index 98ed5a4..523b72d 100644
--- a/cloud_print/service/win/chrome_launcher.cc
+++ b/cloud_print/service/win/chrome_launcher.cc
@@ -4,6 +4,7 @@
#include "cloud_print/service/win/chrome_launcher.h"
+#include "base/base_switches.h"
#include "base/command_line.h"
#include "base/process.h"
#include "base/process_util.h"
@@ -11,7 +12,6 @@
#include "base/win/scoped_process_information.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/installer/launcher_support/chrome_launcher_support.h"
-#include "cloud_print/service/service_switches.h"
namespace {
@@ -83,8 +83,24 @@ void ChromeLauncher::Run() {
if (!chrome_path.empty()) {
CommandLine cmd(chrome_path);
+ CopySwitchesFromCurrent(&cmd);
+
+ // Required switches.
cmd.AppendSwitchASCII(switches::kProcessType, switches::kServiceProcess);
cmd.AppendSwitchPath(switches::kUserDataDir, user_data_);
+ cmd.AppendSwitch(switches::kNoServiceAutorun);
+
+ // Optional.
+ cmd.AppendSwitch(switches::kAutoLaunchAtStartup);
+ cmd.AppendSwitch(switches::kDisableBackgroundMode);
+ cmd.AppendSwitch(switches::kDisableDefaultApps);
+ cmd.AppendSwitch(switches::kDisableExtensions);
+ cmd.AppendSwitch(switches::kDisableGpu);
+ cmd.AppendSwitch(switches::kDisableSoftwareRasterizer);
+ cmd.AppendSwitch(switches::kDisableSync);
+ cmd.AppendSwitch(switches::kNoFirstRun);
+ cmd.AppendSwitch(switches::kNoStartupWindow);
+
base::win::ScopedHandle chrome_handle;
base::Time started = base::Time::Now();
DWORD thread_id = 0;
@@ -111,4 +127,13 @@ void ChromeLauncher::Run() {
}
}
+void ChromeLauncher::CopySwitchesFromCurrent(CommandLine* destination) {
+ static const char* const kSwitchesToCopy[] = {
+ switches::kEnableLogging,
+ switches::kV,
+ };
+ destination->CopySwitchesFrom(*CommandLine::ForCurrentProcess(),
+ kSwitchesToCopy,
+ arraysize(kSwitchesToCopy));
+}
diff --git a/cloud_print/service/win/chrome_launcher.h b/cloud_print/service/win/chrome_launcher.h
index cf53102..0b29b9a 100644
--- a/cloud_print/service/win/chrome_launcher.h
+++ b/cloud_print/service/win/chrome_launcher.h
@@ -12,6 +12,8 @@
#include "base/memory/scoped_ptr.h"
#include "base/threading/simple_thread.h"
+class CommandLine;
+
class ChromeLauncher : public base::DelegateSimpleThread::Delegate {
public:
explicit ChromeLauncher(const base::FilePath& user_data);
@@ -23,6 +25,9 @@ class ChromeLauncher : public base::DelegateSimpleThread::Delegate {
virtual void Run() OVERRIDE;
+ // Copy additional chrome switches.
+ static void CopySwitchesFromCurrent(CommandLine* destination);
+
private:
base::FilePath user_data_;
base::WaitableEvent stop_event_;
diff --git a/cloud_print/service/win/cloud_print_service.cc b/cloud_print/service/win/cloud_print_service.cc
index 90773cf..9a04f15 100644
--- a/cloud_print/service/win/cloud_print_service.cc
+++ b/cloud_print/service/win/cloud_print_service.cc
@@ -381,7 +381,8 @@ BOOL CloudPrintServiceModule::ConsoleCtrlHandler(DWORD type) {
return TRUE;
}
-int main() {
+int main(int argc, char** argv) {
+ CommandLine::Init(argc, argv);
base::AtExitManager at_exit;
return _AtlModule.WinMain(0);
}
diff --git a/cloud_print/service/win/service_controller.cc b/cloud_print/service/win/service_controller.cc
index 95397ef..0db0726 100644
--- a/cloud_print/service/win/service_controller.cc
+++ b/cloud_print/service/win/service_controller.cc
@@ -13,6 +13,7 @@
#include "base/path_service.h"
#include "base/win/scoped_handle.h"
#include "chrome/common/chrome_switches.h"
+#include "cloud_print/service/win/chrome_launcher.h"
#include "cloud_print/service/win/local_security_policy.h"
namespace {
@@ -132,6 +133,7 @@ HRESULT ServiceController::InstallService(const string16& user,
command_line.AppendSwitch(run_switch);
if (!user_data_dir.empty())
command_line.AppendSwitchPath(switches::kUserDataDir, user_data_dir);
+ ChromeLauncher::CopySwitchesFromCurrent(&command_line);
LocalSecurityPolicy local_security_policy;
if (local_security_policy.Open()) {