diff options
author | vitalybuka@chromium.org <vitalybuka@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-24 02:37:55 +0000 |
---|---|---|
committer | vitalybuka@chromium.org <vitalybuka@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-24 02:37:55 +0000 |
commit | f9cd748bf5dd156b2ca9c2132fb483bd1c41b349 (patch) | |
tree | cef5ec1bcb091f4a849d0740998e470feac363ee /cloud_print/service | |
parent | 1ff45cedb37e47db52d01e9906c083d0ec460587 (diff) | |
download | chromium_src-f9cd748bf5dd156b2ca9c2132fb483bd1c41b349.zip chromium_src-f9cd748bf5dd156b2ca9c2132fb483bd1c41b349.tar.gz chromium_src-f9cd748bf5dd156b2ca9c2132fb483bd1c41b349.tar.bz2 |
Exctracted small setup executable.
R=gene
Review URL: https://chromiumcodereview.appspot.com/14098008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@196007 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cloud_print/service')
-rw-r--r-- | cloud_print/service/service.gyp | 27 | ||||
-rw-r--r-- | cloud_print/service/win/chrome_launcher.cc | 15 | ||||
-rw-r--r-- | cloud_print/service/win/chrome_launcher.h | 3 | ||||
-rw-r--r-- | cloud_print/service/win/cloud_print_service_config.cc | 5 | ||||
-rw-r--r-- | cloud_print/service/win/cloud_print_service_setup_exe.ver | 3 | ||||
-rw-r--r-- | cloud_print/service/win/installer.cc | 7 | ||||
-rw-r--r-- | cloud_print/service/win/service_controller.cc | 4 | ||||
-rw-r--r-- | cloud_print/service/win/service_utils.cc | 11 | ||||
-rw-r--r-- | cloud_print/service/win/service_utils.h | 3 |
9 files changed, 55 insertions, 23 deletions
diff --git a/cloud_print/service/service.gyp b/cloud_print/service/service.gyp index 17384c7..966dae6 100644 --- a/cloud_print/service/service.gyp +++ b/cloud_print/service/service.gyp @@ -124,8 +124,6 @@ 'sources': [ '<(SHARED_INTERMEDIATE_DIR)/cloud_print/cloud_print_service_config_exe_version.rc', 'win/cloud_print_service_config.cc', - 'win/installer.cc', - 'win/installer.h', ], 'includes': [ 'win/service_resources.gypi' @@ -151,5 +149,30 @@ }, }, }, + { + 'target_name': 'cloud_print_service_setup', + 'type': 'executable', + 'sources': [ + '<(SHARED_INTERMEDIATE_DIR)/cloud_print/cloud_print_service_setup_exe_version.rc', + 'win/installer.cc', + 'win/installer.h', + ], + 'includes': [ + 'win/service_resources.gypi' + ], + 'dependencies': [ + '<(DEPTH)/cloud_print/common/common.gyp:cloud_print_install_lib', + 'cloud_print_service_lib', + ], + 'msvs_settings': { + 'VCLinkerTool': { + 'SubSystem': '1', # Set /SUBSYSTEM:CONSOLE + 'UACExecutionLevel': '2', # /level='requireAdministrator' + 'AdditionalDependencies': [ + 'secur32.lib', + ], + }, + }, + }, ], } diff --git a/cloud_print/service/win/chrome_launcher.cc b/cloud_print/service/win/chrome_launcher.cc index 6c5bbc5..aa35817 100644 --- a/cloud_print/service/win/chrome_launcher.cc +++ b/cloud_print/service/win/chrome_launcher.cc @@ -22,6 +22,7 @@ #include "chrome/installer/launcher_support/chrome_launcher_support.h" #include "cloud_print/common/win/cloud_print_utils.h" #include "cloud_print/service/service_constants.h" +#include "cloud_print/service/win/service_utils.h" #include "google_apis/gaia/gaia_urls.h" #include "googleurl/src/gurl.h" #include "net/base/url_util.h" @@ -183,7 +184,7 @@ void ChromeLauncher::Run() { if (!chrome_path.empty()) { CommandLine cmd(chrome_path); - CopySwitchesFromCurrent(&cmd); + CopyChromeSwitchesFromCurrentProcess(&cmd); // Required switches. cmd.AppendSwitchASCII(switches::kProcessType, switches::kServiceProcess); @@ -231,16 +232,6 @@ void ChromeLauncher::Run() { } } -void ChromeLauncher::CopySwitchesFromCurrent(CommandLine* destination) { - static const char* const kSwitchesToCopy[] = { - switches::kEnableLogging, - switches::kV, - }; - destination->CopySwitchesFrom(*CommandLine::ForCurrentProcess(), - kSwitchesToCopy, - arraysize(kSwitchesToCopy)); -} - std::string ChromeLauncher::CreateServiceStateFile( const std::string& proxy_id, const std::vector<std::string>& printers) { @@ -274,7 +265,7 @@ std::string ChromeLauncher::CreateServiceStateFile( } CommandLine cmd(chrome_path); - CopySwitchesFromCurrent(&cmd); + CopyChromeSwitchesFromCurrentProcess(&cmd); cmd.AppendSwitchPath(switches::kUserDataDir, temp_user_data.path()); cmd.AppendSwitchPath(switches::kCloudPrintSetupProxy, printers_file); cmd.AppendSwitch(switches::kNoServiceAutorun); diff --git a/cloud_print/service/win/chrome_launcher.h b/cloud_print/service/win/chrome_launcher.h index 837b53b..57c92e6 100644 --- a/cloud_print/service/win/chrome_launcher.h +++ b/cloud_print/service/win/chrome_launcher.h @@ -26,9 +26,6 @@ class ChromeLauncher : public base::DelegateSimpleThread::Delegate { virtual void Run() OVERRIDE; - // Copy additional chrome switches. - static void CopySwitchesFromCurrent(CommandLine* destination); - static std::string CreateServiceStateFile( const std::string& proxy_id, const std::vector<std::string>& printers); diff --git a/cloud_print/service/win/cloud_print_service_config.cc b/cloud_print/service/win/cloud_print_service_config.cc index 84598b5..059d89d 100644 --- a/cloud_print/service/win/cloud_print_service_config.cc +++ b/cloud_print/service/win/cloud_print_service_config.cc @@ -17,7 +17,6 @@ #include "cloud_print/resources.h" #include "cloud_print/service/service_state.h" #include "cloud_print/service/win/chrome_launcher.h" -#include "cloud_print/service/win/installer.h" #include "cloud_print/service/win/service_controller.h" #include "cloud_print/service/win/service_utils.h" #include "cloud_print/service/win/setup_listener.h" @@ -428,10 +427,6 @@ int WINAPI WinMain(__in HINSTANCE hInstance, base::AtExitManager at_exit; CommandLine::Init(0, NULL); - HRESULT result = ProcessInstallerSwitches(); - if (result != S_FALSE) - return result; - MessageLoopForUI loop; scoped_refptr<SetupDialog> dialog(new SetupDialog()); dialog->Create(NULL); diff --git a/cloud_print/service/win/cloud_print_service_setup_exe.ver b/cloud_print/service/win/cloud_print_service_setup_exe.ver new file mode 100644 index 0000000..4e283e3 --- /dev/null +++ b/cloud_print/service/win/cloud_print_service_setup_exe.ver @@ -0,0 +1,3 @@ +INTERNAL_NAME=cloud_print_service_setup.exe +ORIGINAL_FILENAME=cloud_print_service_setup.exe +FILETYPE=0x1L diff --git a/cloud_print/service/win/installer.cc b/cloud_print/service/win/installer.cc index c82b1c8..662a44b 100644 --- a/cloud_print/service/win/installer.cc +++ b/cloud_print/service/win/installer.cc @@ -6,6 +6,7 @@ #include <winerror.h> +#include "base/at_exit.h" #include "base/command_line.h" #include "base/file_util.h" #include "base/path_service.h" @@ -13,6 +14,7 @@ #include "base/win/shortcut.h" #include "cloud_print/common/win/cloud_print_utils.h" #include "cloud_print/common/win/install_utils.h" +#include "cloud_print/resources.h" #include "cloud_print/service/service_constants.h" #include "cloud_print/service/service_switches.h" #include "cloud_print/service/win/service_controller.h" @@ -123,3 +125,8 @@ HRESULT ProcessInstallerSwitches() { return S_FALSE; } +int main(int argc, char** argv) { + CommandLine::Init(argc, argv); + base::AtExitManager at_exit; + return ProcessInstallerSwitches(); +} diff --git a/cloud_print/service/win/service_controller.cc b/cloud_print/service/win/service_controller.cc index 3b748d1..19ffc6e 100644 --- a/cloud_print/service/win/service_controller.cc +++ b/cloud_print/service/win/service_controller.cc @@ -19,6 +19,7 @@ #include "cloud_print/service/service_switches.h" #include "cloud_print/service/win/chrome_launcher.h" #include "cloud_print/service/win/local_security_policy.h" +#include "cloud_print/service/win/service_utils.h" namespace { @@ -170,7 +171,8 @@ HRESULT ServiceController::InstallService(const string16& user, command_line.AppendSwitch(switches::kEnableLogging); command_line.AppendSwitchASCII(switches::kV, "1"); } - ChromeLauncher::CopySwitchesFromCurrent(&command_line); + + CopyChromeSwitchesFromCurrentProcess(&command_line); LocalSecurityPolicy local_security_policy; if (local_security_policy.Open()) { diff --git a/cloud_print/service/win/service_utils.cc b/cloud_print/service/win/service_utils.cc index 715cb57..fd988f4 100644 --- a/cloud_print/service/win/service_utils.cc +++ b/cloud_print/service/win/service_utils.cc @@ -7,7 +7,9 @@ #include <windows.h> #include <security.h> // NOLINT +#include "base/command_line.h" #include "base/string_util.h" +#include "chrome/common/chrome_switches.h" string16 GetLocalComputerName() { DWORD size = 0; @@ -44,4 +46,13 @@ string16 GetCurrentUserName() { return result; } +void CopyChromeSwitchesFromCurrentProcess(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/service_utils.h b/cloud_print/service/win/service_utils.h index ca5efb1..b75479e 100644 --- a/cloud_print/service/win/service_utils.h +++ b/cloud_print/service/win/service_utils.h @@ -5,10 +5,13 @@ #ifndef CLOUD_PRINT_SERVICE_SERVICE_UTILS_H_ #define CLOUD_PRINT_SERVICE_SERVICE_UTILS_H_ +class CommandLine; + #include "base/string16.h" string16 ReplaceLocalHostInName(const string16& user_name); string16 GetCurrentUserName(); +void CopyChromeSwitchesFromCurrentProcess(CommandLine* destination); #endif // CLOUD_PRINT_SERVICE_SERVICE_UTILS_H_ |