Index: components/update_client/update_response.cc |
diff --git a/components/update_client/update_response.cc b/components/update_client/update_response.cc |
index 7f6212988716e9c74d332ce18ae9202bc12ffa7f..c2349c11186705eb2112e3071292839a0a7adf6c 100644 |
--- a/components/update_client/update_response.cc |
+++ b/components/update_client/update_response.cc |
@@ -25,34 +25,25 @@ const char UpdateResponse::Result::kCohort[] = "cohort"; |
const char UpdateResponse::Result::kCohortHint[] = "cohorthint"; |
const char UpdateResponse::Result::kCohortName[] = "cohortname"; |
-UpdateResponse::UpdateResponse() { |
-} |
-UpdateResponse::~UpdateResponse() { |
-} |
+UpdateResponse::UpdateResponse() = default; |
+UpdateResponse::~UpdateResponse() = default; |
-UpdateResponse::Results::Results() : daystart_elapsed_seconds(kNoDaystart) { |
-} |
+UpdateResponse::Results::Results() = default; |
UpdateResponse::Results::Results(const Results& other) = default; |
-UpdateResponse::Results::~Results() { |
-} |
+UpdateResponse::Results::~Results() = default; |
-UpdateResponse::Result::Result() {} |
+UpdateResponse::Result::Result() = default; |
UpdateResponse::Result::Result(const Result& other) = default; |
-UpdateResponse::Result::~Result() { |
-} |
+UpdateResponse::Result::~Result() = default; |
-UpdateResponse::Result::Manifest::Manifest() { |
-} |
+UpdateResponse::Result::Manifest::Manifest() = default; |
UpdateResponse::Result::Manifest::Manifest(const Manifest& other) = default; |
-UpdateResponse::Result::Manifest::~Manifest() { |
-} |
+UpdateResponse::Result::Manifest::~Manifest() = default; |
-UpdateResponse::Result::Manifest::Package::Package() : size(0), sizediff(0) { |
-} |
+UpdateResponse::Result::Manifest::Package::Package() = default; |
UpdateResponse::Result::Manifest::Package::Package(const Package& other) = |
default; |
-UpdateResponse::Result::Manifest::Package::~Package() { |
-} |
+UpdateResponse::Result::Manifest::Package::~Package() = default; |
void UpdateResponse::ParseError(const char* details, ...) { |
va_list args; |
@@ -254,6 +245,20 @@ bool ParseUrlsTag(xmlNode* urls, |
return true; |
} |
+// Parses the <actions> tag. It picks up the "run" attribute of the first |
+// "action" element in "actions". |
+void ParseActionsTag(xmlNode* updatecheck, UpdateResponse::Result* result) { |
+ std::vector<xmlNode*> actions = GetChildren(updatecheck, "actions"); |
+ if (actions.empty()) |
+ return; |
+ |
+ std::vector<xmlNode*> action = GetChildren(actions.front(), "action"); |
+ if (action.empty()) |
+ return; |
+ |
+ result->action_run = GetAttribute(action.front(), "run"); |
+} |
+ |
// Parses the <updatecheck> tag. |
bool ParseUpdateCheckTag(xmlNode* updatecheck, |
UpdateResponse::Result* result, |
@@ -265,8 +270,10 @@ bool ParseUpdateCheckTag(xmlNode* updatecheck, |
return false; |
} |
- if (result->status == "noupdate") |
+ if (result->status == "noupdate") { |
+ ParseActionsTag(updatecheck, result); |
return true; |
+ } |
if (result->status == "ok") { |
std::vector<xmlNode*> urls = GetChildren(updatecheck, "urls"); |
@@ -285,6 +292,7 @@ bool ParseUpdateCheckTag(xmlNode* updatecheck, |
return false; |
} |
+ ParseActionsTag(updatecheck, result); |
return ParseManifestTag(manifests[0], result, error); |
} |