summaryrefslogtreecommitdiffstats
path: root/cloud_print/service
diff options
context:
space:
mode:
authorvitalybuka@chromium.org <vitalybuka@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-04-24 02:37:55 +0000
committervitalybuka@chromium.org <vitalybuka@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-04-24 02:37:55 +0000
commitf9cd748bf5dd156b2ca9c2132fb483bd1c41b349 (patch)
treecef5ec1bcb091f4a849d0740998e470feac363ee /cloud_print/service
parent1ff45cedb37e47db52d01e9906c083d0ec460587 (diff)
downloadchromium_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.gyp27
-rw-r--r--cloud_print/service/win/chrome_launcher.cc15
-rw-r--r--cloud_print/service/win/chrome_launcher.h3
-rw-r--r--cloud_print/service/win/cloud_print_service_config.cc5
-rw-r--r--cloud_print/service/win/cloud_print_service_setup_exe.ver3
-rw-r--r--cloud_print/service/win/installer.cc7
-rw-r--r--cloud_print/service/win/service_controller.cc4
-rw-r--r--cloud_print/service/win/service_utils.cc11
-rw-r--r--cloud_print/service/win/service_utils.h3
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_