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

Side by Side Diff: omaha_request_params.h

Issue 4103002: AU: Implement switching of tracks through SetTrack. (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/update_engine.git
Patch Set: review comments Created 10 years, 1 month 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 | Annotate | Revision Log
« no previous file with comments | « dbus_service.cc ('k') | omaha_request_params.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium OS Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium OS 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 #ifndef CHROMEOS_PLATFORM_UPDATE_ENGINE_OMAHA_REQUEST_PARAMS_H__ 5 #ifndef CHROMEOS_PLATFORM_UPDATE_ENGINE_OMAHA_REQUEST_PARAMS_H__
6 #define CHROMEOS_PLATFORM_UPDATE_ENGINE_OMAHA_REQUEST_PARAMS_H__ 6 #define CHROMEOS_PLATFORM_UPDATE_ENGINE_OMAHA_REQUEST_PARAMS_H__
7 7
8 #include <string> 8 #include <string>
9 9
10 #include "base/basictypes.h" 10 #include <base/basictypes.h>
11 #include <gtest/gtest_prod.h> // for FRIEND_TEST
11 12
12 // This gathers local system information and prepares info used by the 13 // This gathers local system information and prepares info used by the
13 // Omaha request action. 14 // Omaha request action.
14 15
15 namespace chromeos_update_engine { 16 namespace chromeos_update_engine {
16 17
17 // This struct encapsulates the data Omaha gets for the request. 18 // This struct encapsulates the data Omaha gets for the request.
18 // These strings in this struct should not be XML escaped. 19 // These strings in this struct should not be XML escaped.
19 struct OmahaRequestParams { 20 struct OmahaRequestParams {
20 OmahaRequestParams() 21 OmahaRequestParams()
(...skipping 27 matching lines...) Expand all
48 std::string os_board; 49 std::string os_board;
49 std::string app_id; 50 std::string app_id;
50 std::string app_version; 51 std::string app_version;
51 std::string app_lang; 52 std::string app_lang;
52 std::string app_track; 53 std::string app_track;
53 std::string hardware_class; // Hardware Qualification ID of the client 54 std::string hardware_class; // Hardware Qualification ID of the client
54 bool delta_okay; // If this client can accept a delta 55 bool delta_okay; // If this client can accept a delta
55 56
56 std::string update_url; 57 std::string update_url;
57 58
59 static const char kUpdateTrackKey[];
60
58 // Suggested defaults 61 // Suggested defaults
59 static const char* const kAppId; 62 static const char* const kAppId;
60 static const char* const kOsPlatform; 63 static const char* const kOsPlatform;
61 static const char* const kOsVersion; 64 static const char* const kOsVersion;
62 static const char* const kUpdateUrl; 65 static const char* const kUpdateUrl;
63 }; 66 };
64 67
65 class OmahaRequestDeviceParams : public OmahaRequestParams { 68 class OmahaRequestDeviceParams : public OmahaRequestParams {
66 public: 69 public:
67 OmahaRequestDeviceParams() {} 70 OmahaRequestDeviceParams();
68 71
69 // Initializes all the data in the object. Non-empty 72 // Initializes all the data in the object. Non-empty
70 // |in_app_version| or |in_update_url| prevents automatic detection 73 // |in_app_version| or |in_update_url| prevents automatic detection
71 // of the parameter. Returns true on success, false otherwise. 74 // of the parameter. Returns true on success, false otherwise.
72 bool Init(const std::string& in_app_version, 75 bool Init(const std::string& in_app_version,
73 const std::string& in_update_url); 76 const std::string& in_update_url);
74 77
78 // Permanently changes the release track to |track|. Returns true on success,
79 // false otherwise.
80 bool SetTrack(const std::string& track);
81 static bool SetDeviceTrack(const std::string& track);
82
75 // For unit-tests. 83 // For unit-tests.
76 void set_root(const std::string& root) { root_ = root; } 84 void set_root(const std::string& root) { root_ = root; }
77 85
86 // Force build type for testing purposes.
87 void SetBuildTypeOfficial(bool is_official);
88
78 private: 89 private:
90 FRIEND_TEST(OmahaRequestDeviceParamsTest, IsValidTrackTest);
91
92 // Use a validator that is a non-static member of this class so that its
93 // inputs can be mocked in unit tests (e.g., build type for IsValidTrack).
94 typedef bool(OmahaRequestDeviceParams::*ValueValidator)(
95 const std::string&) const;
96
97 // Returns true if this is an official build, false otherwise.
98 bool IsOfficialBuild() const;
99
100 // Returns true if |track| is a valid track, false otherwise. This method
101 // restricts the track value only if the image is official (see
102 // IsOfficialBuild).
103 bool IsValidTrack(const std::string& track) const;
104
79 // Fetches the value for a given key from 105 // Fetches the value for a given key from
80 // /mnt/stateful_partition/etc/lsb-release if possible. Failing that, 106 // /mnt/stateful_partition/etc/lsb-release if possible. Failing that, it looks
81 // it looks for the key in /etc/lsb-release. 107 // for the key in /etc/lsb-release. If |validator| is non-NULL, uses it to
108 // validate and ignore invalid valies.
82 std::string GetLsbValue(const std::string& key, 109 std::string GetLsbValue(const std::string& key,
83 const std::string& default_value) const; 110 const std::string& default_value,
111 ValueValidator validator) const;
84 112
85 // Gets the machine type (e.g. "i686"). 113 // Gets the machine type (e.g. "i686").
86 std::string GetMachineType() const; 114 std::string GetMachineType() const;
87 115
88 // Returns the hardware qualification ID of the system, or empty 116 // Returns the hardware qualification ID of the system, or empty
89 // string if the HWID is unavailable. 117 // string if the HWID is unavailable.
90 std::string GetHardwareClass() const; 118 std::string GetHardwareClass() const;
91 119
92 // When reading files, prepend root_ to the paths. Useful for testing. 120 // When reading files, prepend root_ to the paths. Useful for testing.
93 std::string root_; 121 std::string root_;
94 122
123 // Force build type for testing purposes.
124 bool force_build_type_;
125 bool forced_official_build_;
126
95 DISALLOW_COPY_AND_ASSIGN(OmahaRequestDeviceParams); 127 DISALLOW_COPY_AND_ASSIGN(OmahaRequestDeviceParams);
96 }; 128 };
97 129
98 } // namespace chromeos_update_engine 130 } // namespace chromeos_update_engine
99 131
100 #endif // CHROMEOS_PLATFORM_UPDATE_ENGINE_OMAHA_REQUEST_PARAMS_H__ 132 #endif // CHROMEOS_PLATFORM_UPDATE_ENGINE_OMAHA_REQUEST_PARAMS_H__
OLDNEW
« no previous file with comments | « dbus_service.cc ('k') | omaha_request_params.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698