diff options
author | vitalybuka@chromium.org <vitalybuka@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-27 20:43:02 +0000 |
---|---|---|
committer | vitalybuka@chromium.org <vitalybuka@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-27 20:43:02 +0000 |
commit | 4a51b35c32b07aaea51420aeb2e7636c73c48c3c (patch) | |
tree | 042091d0586441f33ba9f41af86d4545ed0b788e /cloud_print/service | |
parent | dc1978a670cfe37a5bf585aa0ebfbe2775205959 (diff) | |
download | chromium_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.gyp | 1 | ||||
-rw-r--r-- | cloud_print/service/win/chrome_launcher.cc | 27 | ||||
-rw-r--r-- | cloud_print/service/win/chrome_launcher.h | 5 | ||||
-rw-r--r-- | cloud_print/service/win/cloud_print_service.cc | 3 | ||||
-rw-r--r-- | cloud_print/service/win/service_controller.cc | 2 |
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()) { |