Chromium Code Reviews| 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; |
|
sof
2016/07/13 07:20:41
Thinking about this some more, what value does it
haraken
2016/07/13 07:24:26
Many Supplement classes that inherit from DOMWindo
sof
2016/07/13 07:39:41
ok, thanks for clarifying the purpose, i.e., |m_ho
haraken
2016/07/13 07:42:12
Yes, right.
|
| }; |
| // Supplementable<T> inherits from GarbageCollectedMixin virtually |