OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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" |
(...skipping 16 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 query_component_build_ = false; | 39 query_component_build_ = false; |
41 } | 40 } |
42 | 41 |
43 bool Configuration::Initialize() { | 42 bool Configuration::Initialize() { |
44 return InitializeFromCommandLine(::GetCommandLine()); | 43 return InitializeFromCommandLine(::GetCommandLine()); |
45 } | 44 } |
46 | 45 |
47 // This is its own function so that unit tests can provide their own command | 46 // This is its own function so that unit tests can provide their own command |
48 // lines. |command_line| is shared with this instance in the sense that this | 47 // lines. |command_line| is shared with this instance in the sense that this |
49 // instance may refer to it at will throughout its lifetime, yet it will | 48 // instance may refer to it at will throughout its lifetime, yet it will |
50 // not release it. | 49 // not release it. |
51 bool Configuration::InitializeFromCommandLine(const wchar_t* command_line) { | 50 bool Configuration::InitializeFromCommandLine(const wchar_t* command_line) { |
52 Clear(); | 51 Clear(); |
53 | 52 |
54 command_line_ = command_line; | 53 command_line_ = command_line; |
55 args_ = ::CommandLineToArgvW(command_line_, &argument_count_); | 54 args_ = ::CommandLineToArgvW(command_line_, &argument_count_); |
56 if (args_ != NULL) { | 55 if (args_ != NULL) { |
57 for (int i = 1; i < argument_count_; ++i) { | 56 for (int i = 1; i < argument_count_; ++i) { |
58 if (0 == ::lstrcmpi(args_[i], L"--chrome-sxs")) | 57 if (0 == ::lstrcmpi(args_[i], L"--chrome-sxs")) |
59 chrome_app_guid_ = google_update::kSxSAppGuid; | 58 chrome_app_guid_ = google_update::kSxSAppGuid; |
60 else if (0 == ::lstrcmpi(args_[i], L"--chrome")) | 59 else if (0 == ::lstrcmpi(args_[i], L"--chrome")) |
61 has_chrome_ = true; | 60 has_chrome_ = true; |
62 else if (0 == ::lstrcmpi(args_[i], L"--chrome-frame")) | 61 else if (0 == ::lstrcmpi(args_[i], L"--chrome-frame")) |
63 has_chrome_frame_ = true; | 62 has_chrome_frame_ = true; |
64 else if ((0 == ::lstrcmpi(args_[i], L"--app-host")) || | |
65 (0 == ::lstrcmpi(args_[i], L"--app-launcher"))) | |
66 has_app_host_ = true; | |
67 else if (0 == ::lstrcmpi(args_[i], L"--multi-install")) | 63 else if (0 == ::lstrcmpi(args_[i], L"--multi-install")) |
68 is_multi_install_ = true; | 64 is_multi_install_ = true; |
69 else if (0 == ::lstrcmpi(args_[i], L"--system-level")) | 65 else if (0 == ::lstrcmpi(args_[i], L"--system-level")) |
70 is_system_level_ = true; | 66 is_system_level_ = true; |
71 else if (0 == ::lstrcmpi(args_[i], L"--cleanup")) | 67 else if (0 == ::lstrcmpi(args_[i], L"--cleanup")) |
72 operation_ = CLEANUP; | 68 operation_ = CLEANUP; |
73 else if (0 == ::lstrcmpi(args_[i], L"--query-component-build")) | 69 else if (0 == ::lstrcmpi(args_[i], L"--query-component-build")) |
74 query_component_build_ = true; | 70 query_component_build_ = true; |
75 } | 71 } |
76 | 72 |
77 // Single-install defaults to Chrome. | 73 // Single-install defaults to Chrome. |
78 if (!is_multi_install_) | 74 if (!is_multi_install_) |
79 has_chrome_ = !(has_chrome_frame_ || has_app_host_); | 75 has_chrome_ = !has_chrome_frame_; |
80 } | 76 } |
| 77 |
81 return args_ != NULL; | 78 return args_ != NULL; |
82 } | 79 } |
83 | 80 |
84 } // namespace mini_installer | 81 } // namespace mini_installer |
OLD | NEW |