update_engine: Make the ChromeOS/AOSP Omaha Client transmit requestid.

As per Omaha's protocol specification, ChromeOS/AOSP
needs to transmit the 'requestid` attribute in the request.
The format of the 'requestid' attribute is sent as GUID version 4.

This change will add the 'requestid' attribute in the omaha request.

BUG=chromium:940505
TEST=cros_workon_make --board=octopus update_engine --test
TEST=/usr/bin/update_engine_client --check_for_update # after bouncing
update-engine + check /var/log/update_engine.log. 'requestid'
attribute will be in the omaha request.

Change-Id: I76f1fe82d1e976b5316b4af9148097f1266dea91
Reviewed-on: https://chromium-review.googlesource.com/1653709
Tested-by: Jae Hoon Kim <kimjae@chromium.org>
Commit-Ready: Jae Hoon Kim <kimjae@chromium.org>
Legacy-Commit-Queue: Commit Bot <commit-bot@chromium.org>
Reviewed-by: Amin Hassani <ahassani@chromium.org>
diff --git a/omaha_request_builder_xml.cc b/omaha_request_builder_xml.cc
index ad7c424..e335c40 100644
--- a/omaha_request_builder_xml.cc
+++ b/omaha_request_builder_xml.cc
@@ -20,6 +20,7 @@
 
 #include <string>
 
+#include <base/guid.h>
 #include <base/logging.h>
 #include <base/strings/string_number_conversions.h>
 #include <base/strings/string_util.h>
@@ -336,8 +337,10 @@
 
   string request_xml = base::StringPrintf(
       "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
-      "<request protocol=\"3.0\" updater=\"%s\" updaterversion=\"%s\""
+      "<request requestid=\"%s\""
+      " protocol=\"3.0\" updater=\"%s\" updaterversion=\"%s\""
       " installsource=\"%s\" ismachine=\"1\">\n%s%s</request>\n",
+      base::GenerateGUID().c_str() /* requestid */,
       constants::kOmahaUpdaterID,
       kOmahaUpdaterVersion,
       params_->interactive() ? "ondemandupdate" : "scheduler",