OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/installer/mini_installer/configuration.h" | 5 #include "chrome/installer/mini_installer/configuration.h" |
6 | 6 |
7 #include <windows.h> | 7 #include <windows.h> |
8 #include <shellapi.h> // NOLINT | 8 #include <shellapi.h> // NOLINT |
9 | 9 |
10 #include "chrome/installer/mini_installer/appid.h" | 10 #include "chrome/installer/mini_installer/appid.h" |
11 | 11 |
(...skipping 15 matching lines...) Expand all Loading... |
27 if (args_ != NULL) { | 27 if (args_ != NULL) { |
28 ::LocalFree(args_); | 28 ::LocalFree(args_); |
29 args_ = NULL; | 29 args_ = NULL; |
30 } | 30 } |
31 chrome_app_guid_ = google_update::kAppGuid; | 31 chrome_app_guid_ = google_update::kAppGuid; |
32 command_line_ = NULL; | 32 command_line_ = NULL; |
33 operation_ = INSTALL_PRODUCT; | 33 operation_ = INSTALL_PRODUCT; |
34 argument_count_ = 0; | 34 argument_count_ = 0; |
35 has_chrome_ = false; | 35 has_chrome_ = false; |
36 has_chrome_frame_ = false; | 36 has_chrome_frame_ = false; |
37 has_app_host_ = false; | |
38 is_multi_install_ = false; | 37 is_multi_install_ = false; |
39 is_system_level_ = false; | 38 is_system_level_ = false; |
40 } | 39 } |
41 | 40 |
42 bool Configuration::Initialize() { | 41 bool Configuration::Initialize() { |
43 return InitializeFromCommandLine(::GetCommandLine()); | 42 return InitializeFromCommandLine(::GetCommandLine()); |
44 } | 43 } |
45 | 44 |
46 // This is its own function so that unit tests can provide their own command | 45 // This is its own function so that unit tests can provide their own command |
47 // lines. |command_line| is shared with this instance in the sense that this | 46 // lines. |command_line| is shared with this instance in the sense that this |
48 // instance may refer to it at will throughout its lifetime, yet it will | 47 // instance may refer to it at will throughout its lifetime, yet it will |
49 // not release it. | 48 // not release it. |
50 bool Configuration::InitializeFromCommandLine(const wchar_t* command_line) { | 49 bool Configuration::InitializeFromCommandLine(const wchar_t* command_line) { |
51 Clear(); | 50 Clear(); |
52 | 51 |
53 command_line_ = command_line; | 52 command_line_ = command_line; |
54 args_ = ::CommandLineToArgvW(command_line_, &argument_count_); | 53 args_ = ::CommandLineToArgvW(command_line_, &argument_count_); |
55 if (args_ != NULL) { | 54 if (args_ != NULL) { |
56 for (int i = 1; i < argument_count_; ++i) { | 55 for (int i = 1; i < argument_count_; ++i) { |
57 if (0 == ::lstrcmpi(args_[i], L"--chrome-sxs")) | 56 if (0 == ::lstrcmpi(args_[i], L"--chrome-sxs")) |
58 chrome_app_guid_ = google_update::kSxSAppGuid; | 57 chrome_app_guid_ = google_update::kSxSAppGuid; |
59 else if (0 == ::lstrcmpi(args_[i], L"--chrome")) | 58 else if (0 == ::lstrcmpi(args_[i], L"--chrome")) |
60 has_chrome_ = true; | 59 has_chrome_ = true; |
61 else if (0 == ::lstrcmpi(args_[i], L"--chrome-frame")) | 60 else if (0 == ::lstrcmpi(args_[i], L"--chrome-frame")) |
62 has_chrome_frame_ = true; | 61 has_chrome_frame_ = true; |
63 else if (0 == ::lstrcmpi(args_[i], L"--app-host")) | |
64 has_app_host_ = true; | |
65 else if (0 == ::lstrcmpi(args_[i], L"--multi-install")) | 62 else if (0 == ::lstrcmpi(args_[i], L"--multi-install")) |
66 is_multi_install_ = true; | 63 is_multi_install_ = true; |
67 else if (0 == ::lstrcmpi(args_[i], L"--system-level")) | 64 else if (0 == ::lstrcmpi(args_[i], L"--system-level")) |
68 is_system_level_ = true; | 65 is_system_level_ = true; |
69 else if (0 == ::lstrcmpi(args_[i], L"--cleanup")) | 66 else if (0 == ::lstrcmpi(args_[i], L"--cleanup")) |
70 operation_ = CLEANUP; | 67 operation_ = CLEANUP; |
71 } | 68 } |
72 | 69 |
73 // Single-install defaults to Chrome. | 70 // Single-install is either Chrome or Chrome Frame. |
74 if (!is_multi_install_) | 71 if (!is_multi_install_) |
75 has_chrome_ = !(has_chrome_frame_ || has_app_host_); | 72 has_chrome_ = !has_chrome_frame_; |
76 } | 73 } |
77 return args_ != NULL; | 74 return args_ != NULL; |
78 } | 75 } |
79 | 76 |
80 } // namespace mini_installer | 77 } // namespace mini_installer |
OLD | NEW |