| Index: Source/modules/webmidi/MIDIAccessInitializer.cpp
 | 
| diff --git a/Source/modules/webmidi/MIDIAccessInitializer.cpp b/Source/modules/webmidi/MIDIAccessInitializer.cpp
 | 
| index ab06279ec9ca7922917f6431fef44fc8e3c76812..5352b3baa419df5f024dbd52e45bc7455525fde6 100644
 | 
| --- a/Source/modules/webmidi/MIDIAccessInitializer.cpp
 | 
| +++ b/Source/modules/webmidi/MIDIAccessInitializer.cpp
 | 
| @@ -27,14 +27,12 @@ MIDIAccessInitializer::MIDIAccessInitializer(ScriptState* scriptState, const MID
 | 
|      , m_sysexPermissionResolved(false)
 | 
|  {
 | 
|  #if ENABLE(OILPAN)
 | 
| -    // A prefinalizer has already been registered (as a LifecycleObserver);
 | 
| -    // remove it and register a combined one, as the infrastructure doesn't
 | 
| +#if ENABLE(ASSERT)
 | 
| +    // A prefinalizer has already been registered for ScriptPromiseResolver;
 | 
| +    // remove it and register a combined one as the infrastructure doesn't
 | 
|      // support multiple prefinalizers for an object.
 | 
| -    //
 | 
| -    // FIXME: Oilpan: remove LifecycleObserver's need for a prefinalizer,
 | 
| -    // and as a consequence, this unregistration step. If the former is independently
 | 
| -    // removed, the unregisterPreFinalizer() call will assert.
 | 
| -    ThreadState::current()->unregisterPreFinalizer(*static_cast<LifecycleObserver*>(this));
 | 
| +    ThreadState::current()->unregisterPreFinalizer(*static_cast<ScriptPromiseResolver*>(this));
 | 
| +#endif
 | 
|      ThreadState::current()->registerPreFinalizer(*this);
 | 
|  #endif
 | 
|      if (options.hasSysex())
 | 
| @@ -51,6 +49,7 @@ MIDIAccessInitializer::~MIDIAccessInitializer()
 | 
|  void MIDIAccessInitializer::contextDestroyed()
 | 
|  {
 | 
|      dispose();
 | 
| +    LifecycleObserver::contextDestroyed();
 | 
|  }
 | 
|  
 | 
|  void MIDIAccessInitializer::dispose()
 | 
| @@ -70,10 +69,8 @@ void MIDIAccessInitializer::dispose()
 | 
|      }
 | 
|  
 | 
|      m_hasBeenDisposed = true;
 | 
| -
 | 
| -#if ENABLE(OILPAN)
 | 
| -    // Delegate to LifecycleObserver's prefinalizer.
 | 
| -    LifecycleObserver::dispose();
 | 
| +#if ENABLE(OILPAN) && ENABLE(ASSERT)
 | 
| +    ScriptPromiseResolver::dispose();
 | 
|  #endif
 | 
|  }
 | 
|  
 | 
| 
 |