| Index: third_party/WebKit/Source/platform/Supplementable.h
|
| diff --git a/third_party/WebKit/Source/platform/Supplementable.h b/third_party/WebKit/Source/platform/Supplementable.h
|
| index 487873705cf0e96439468a31084aa8268612a03a..ba2aa152ff60f429702d2561f179145d764c2e67 100644
|
| --- a/third_party/WebKit/Source/platform/Supplementable.h
|
| +++ b/third_party/WebKit/Source/platform/Supplementable.h
|
| @@ -93,6 +93,12 @@ class Supplementable;
|
| template<typename T>
|
| class Supplement : public GarbageCollectedMixin {
|
| public:
|
| + // TODO(haraken): Remove the default constructor.
|
| + // All Supplement objects should be instantiated with m_host.
|
| + Supplement() { }
|
| + explicit Supplement(T& host) : m_host(&host) { }
|
| + T* host() const { return m_host; }
|
| +
|
| static void provideTo(Supplementable<T>& host, const char* key, Supplement<T>* supplement)
|
| {
|
| host.provideSupplement(key, supplement);
|
| @@ -108,7 +114,13 @@ public:
|
| return host ? host->requireSupplement(key) : 0;
|
| }
|
|
|
| - DEFINE_INLINE_VIRTUAL_TRACE() { }
|
| + DEFINE_INLINE_VIRTUAL_TRACE()
|
| + {
|
| + visitor->trace(m_host);
|
| + }
|
| +
|
| +private:
|
| + WeakMember<T> m_host;
|
| };
|
|
|
| // Supplementable<T> inherits from GarbageCollectedMixin virtually
|
|
|