| Index: cc/surfaces/surface_id.h | 
| diff --git a/cc/surfaces/surface_id.h b/cc/surfaces/surface_id.h | 
| index 070265a84955d3dee6b1ec29cea952268868e01c..fb58370852c6cb012a1f763332871da16d606b68 100644 | 
| --- a/cc/surfaces/surface_id.h | 
| +++ b/cc/surfaces/surface_id.h | 
| @@ -5,40 +5,13 @@ | 
| #ifndef CC_SURFACES_SURFACE_ID_H_ | 
| #define CC_SURFACES_SURFACE_ID_H_ | 
|  | 
| -#include "base/containers/hash_tables.h" | 
| +#include "base/id_type.h" | 
|  | 
| namespace cc { | 
|  | 
| -struct SurfaceId { | 
| -  SurfaceId() : id(0) {} | 
| -  explicit SurfaceId(uint64_t id) : id(id) {} | 
| - | 
| -  bool is_null() const { return id == 0; } | 
| - | 
| -  uint64_t id; | 
| -}; | 
| - | 
| -inline bool operator==(const SurfaceId& a, const SurfaceId& b) { | 
| -  return a.id == b.id; | 
| -} | 
| - | 
| -inline bool operator!=(const SurfaceId& a, const SurfaceId& b) { | 
| -  return !(a == b); | 
| -} | 
| - | 
| -inline bool operator<(const SurfaceId& a, const SurfaceId& b) { | 
| -  return a.id < b.id; | 
| -} | 
| +class Surface; | 
| +using SurfaceId = base::IdType<Surface, uint64_t, 0>; | 
|  | 
| }  // namespace cc | 
|  | 
| -namespace BASE_HASH_NAMESPACE { | 
| -template <> | 
| -struct hash<cc::SurfaceId> { | 
| -  size_t operator()(cc::SurfaceId key) const { | 
| -    return hash<uint64_t>()(key.id); | 
| -  } | 
| -}; | 
| -}  // namespace BASE_HASH_NAMESPACE | 
| - | 
| #endif  // CC_SURFACES_SURFACE_ID_H_ | 
|  |