diff --git base/supports_user_data.h base/supports_user_data.h
index 356c97329b8d..8fce524d7572 100644
--- base/supports_user_data.h
+++ base/supports_user_data.h
@@ -38,9 +38,9 @@ class BASE_EXPORT SupportsUserData {
   // This object will TAKE OWNERSHIP of the given data pointer, and will
   // delete the object if it is changed or the object is destroyed.
   // |key| must not be null--that value is too vulnerable for collision.
-  Data* GetUserData(const void* key) const;
-  void SetUserData(const void* key, std::unique_ptr<Data> data);
-  void RemoveUserData(const void* key);
+  virtual Data* GetUserData(const void* key) const;
+  virtual void SetUserData(const void* key, std::unique_ptr<Data> data);
+  virtual void RemoveUserData(const void* key);
 
   // SupportsUserData is not thread-safe, and on debug build will assert it is
   // only used on one execution sequence. Calling this method allows the caller