Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(518)

Side by Side Diff: common/install_manifest.h

Issue 624713003: Keep only base/extractor.[cc|h]. (Closed) Base URL: https://chromium.googlesource.com/external/omaha.git@master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « common/goopdate_utils_unittest.cc ('k') | common/lang.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2008-2009 Google Inc.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 // ========================================================================
15
16 // Defines the installation manifest, which is specific to each application and
17 // version. This is a quasi-static data structure returned by the server in
18 // the update response.
19
20 #ifndef OMAHA_COMMON_INSTALL_MANIFEST_H_
21 #define OMAHA_COMMON_INSTALL_MANIFEST_H_
22
23 #include <atlstr.h>
24 #include <vector>
25 #include "base/basictypes.h"
26 #include "omaha/common/const_goopdate.h"
27
28 namespace omaha {
29
30 namespace xml {
31
32 struct InstallPackage {
33 InstallPackage() : is_required(false), size(0) {}
34
35 CString name;
36 CString version;
37 bool is_required;
38 int size;
39 CString hash;
40 };
41
42 struct InstallAction {
43 InstallAction()
44 : install_event(static_cast<InstallEvent>(0)),
45 needs_admin(NEEDS_ADMIN_NO),
46 terminate_all_browsers(false),
47 success_action(SUCCESS_ACTION_DEFAULT) {}
48
49 enum InstallEvent { kPreInstall = 1, kInstall, kUpdate, kPostInstall };
50
51 InstallEvent install_event;
52
53 // Whether the action should be run as admin. This may differ from whether the
54 // app is_machine.
55 // TODO(omaha3): This value is defined in the protocol but not implemented:
56 // * It is not yet set by the XML parser.
57 // * This should probably be renamed run_elevated since it is more likely to
58 // be used to run de-elevated from an elevated Omaha instance.
59 // * What should machine Omaha do if there is no logged in user and the
60 // action cannot be de-elevated?
61 // * This should default to the bundle's is_machine.
62 // * Assert if !is_machine and needs_admin == NEEDS_ADMIN_YES.
63 NeedsAdmin needs_admin;
64
65 // TODO(omaha3): Need some more thinking here. On one hand, overloading this
66 // is tempting. On the other hand, it may be hard to read.
67 // This could also be SuccessfulInstallActions such as "launch_browser", or
68 // "terminate_all_browsers". The program_params in the case of
69 // "launch_browser" would be the URL to navigate to.
70 CString program_to_run;
71 CString program_arguments;
72
73 CString success_url; // URL to launch the browser on success.
74 bool terminate_all_browsers;
75 SuccessfulInstallAction success_action; // Action after install success.
76 };
77
78 // TODO(omaha3): Should all these really be public members?
79 struct InstallManifest {
80 CString name; // TBD.
81 CString version;
82 std::vector<InstallPackage> packages;
83 // TODO(omaha3): Maybe this should be a map or array of kPostInstall + 1 ptrs.
84 std::vector<InstallAction> install_actions;
85 };
86
87 } // namespace xml
88
89 } // namespace omaha
90
91 #endif // OMAHA_COMMON_INSTALL_MANIFEST_H_
OLDNEW
« no previous file with comments | « common/goopdate_utils_unittest.cc ('k') | common/lang.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698