| Index: Source/platform/LifecycleNotifier.h
 | 
| diff --git a/Source/platform/LifecycleNotifier.h b/Source/platform/LifecycleNotifier.h
 | 
| index f465555b68199f20cde0ffa1a8b5039b385257bf..44dcf07aa07a67ccd65a54ba279a6a7c0e0ffd09 100644
 | 
| --- a/Source/platform/LifecycleNotifier.h
 | 
| +++ b/Source/platform/LifecycleNotifier.h
 | 
| @@ -48,7 +48,12 @@ public:
 | 
|      // is still valid and safe to use during the notification.
 | 
|      virtual void notifyContextDestroyed();
 | 
|  
 | 
| -    DEFINE_INLINE_VIRTUAL_TRACE() { }
 | 
| +    DEFINE_INLINE_VIRTUAL_TRACE()
 | 
| +    {
 | 
| +#if ENABLE(OILPAN)
 | 
| +        visitor->trace(m_observers);
 | 
| +#endif
 | 
| +    }
 | 
|  
 | 
|      bool isIteratingOverObservers() const { return m_iterating != IteratingNone; }
 | 
|  
 | 
| @@ -68,8 +73,12 @@ protected:
 | 
|      IterationType m_iterating;
 | 
|  
 | 
|  protected:
 | 
| -    using ObserverSet = HashSet<Observer*>;
 | 
| +    using ObserverSet = WillBeHeapHashSet<RawPtrWillBeWeakMember<Observer>>;
 | 
|  
 | 
| +    // FIXME: Oilpan: make LifecycleNotifier<> a GC mixin, somehow. ExecutionContext
 | 
| +    // is the problematic case, as it would then be a class with two GC mixin
 | 
| +    // bases, but cannot itself derive from a GC base class also.
 | 
| +    GC_PLUGIN_IGNORE("467502")
 | 
|      ObserverSet m_observers;
 | 
|  
 | 
|  #if ENABLE(ASSERT)
 | 
| 
 |