Index: cc/surfaces/local_frame_id.h |
diff --git a/cc/surfaces/local_frame_id.h b/cc/surfaces/local_frame_id.h |
index 3c11b0d11072a7a7668789214f6e9ce5c5a707e3..c3ac7822b799beabe209e42bdc1329cff3e045a3 100644 |
--- a/cc/surfaces/local_frame_id.h |
+++ b/cc/surfaces/local_frame_id.h |
@@ -10,24 +10,27 @@ |
#include "base/hash.h" |
#include "base/strings/stringprintf.h" |
+#include "base/unguessable_token.h" |
namespace cc { |
class LocalFrameId { |
public: |
- constexpr LocalFrameId() : local_id_(0), nonce_(0) {} |
+ constexpr LocalFrameId() : local_id_(0) {} |
constexpr LocalFrameId(const LocalFrameId& other) |
: local_id_(other.local_id_), nonce_(other.nonce_) {} |
- constexpr LocalFrameId(uint32_t local_id, uint64_t nonce) |
+ constexpr LocalFrameId(uint32_t local_id, const base::UnguessableToken& nonce) |
: local_id_(local_id), nonce_(nonce) {} |
- constexpr bool is_valid() const { return local_id_ != 0 && nonce_ != 0; } |
+ constexpr bool is_valid() const { |
+ return local_id_ != 0 && !nonce_.is_empty(); |
+ } |
constexpr uint32_t local_id() const { return local_id_; } |
- constexpr uint64_t nonce() const { return nonce_; } |
+ constexpr const base::UnguessableToken& nonce() const { return nonce_; } |
bool operator==(const LocalFrameId& other) const { |
return local_id_ == other.local_id_ && nonce_ == other.nonce_; |
@@ -40,16 +43,19 @@ class LocalFrameId { |
std::tie(other.local_id_, other.nonce_); |
} |
- size_t hash() const { return base::HashInts(local_id_, nonce_); } |
+ size_t hash() const { |
+ return base::HashInts( |
+ local_id_, static_cast<uint64_t>(base::UnguessableTokenHash()(nonce_))); |
+ } |
std::string ToString() const { |
- return base::StringPrintf("LocalFrameId(%d, %" PRIu64 ")", local_id_, |
- nonce_); |
+ return base::StringPrintf("LocalFrameId(%d, %s" PRIu64 ")", local_id_, |
+ nonce_.ToString().c_str()); |
} |
private: |
uint32_t local_id_; |
- uint64_t nonce_; |
+ base::UnguessableToken nonce_; |
}; |
struct LocalFrameIdHash { |