Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / content / public / browser / media_device_id.cc
index 24709b2..65ac7e2 100644 (file)
@@ -6,12 +6,11 @@
 #include "base/logging.h"
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/string_util.h"
-#include "content/public/browser/resource_context.h"
 #include "crypto/hmac.h"
 
 namespace content {
 
-std::string GetHMACForMediaDeviceID(ResourceContext* rc,
+std::string GetHMACForMediaDeviceID(const ResourceContext::SaltCallback& sc,
                                     const GURL& security_origin,
                                     const std::string& raw_unique_id) {
   DCHECK(security_origin.is_valid());
@@ -19,21 +18,21 @@ std::string GetHMACForMediaDeviceID(ResourceContext* rc,
   crypto::HMAC hmac(crypto::HMAC::SHA256);
   const size_t digest_length = hmac.DigestLength();
   std::vector<uint8> digest(digest_length);
-  std::string salt = rc->GetMediaDeviceIDSalt();
+  std::string salt = sc.Run();
   bool result = hmac.Init(security_origin.spec()) &&
       hmac.Sign(raw_unique_id + salt, &digest[0], digest.size());
   DCHECK(result);
   return StringToLowerASCII(base::HexEncode(&digest[0], digest.size()));
 }
 
-bool DoesMediaDeviceIDMatchHMAC(ResourceContext* rc,
+bool DoesMediaDeviceIDMatchHMAC(const ResourceContext::SaltCallback& sc,
                                 const GURL& security_origin,
                                 const std::string& device_guid,
                                 const std::string& raw_unique_id) {
   DCHECK(security_origin.is_valid());
   DCHECK(!raw_unique_id.empty());
   std::string guid_from_raw_device_id =
-      GetHMACForMediaDeviceID(rc, security_origin, raw_unique_id);
+      GetHMACForMediaDeviceID(sc, security_origin, raw_unique_id);
   return guid_from_raw_device_id == device_guid;
 }