| Index: Source/core/frame/DOMWindowProperty.cpp
 | 
| diff --git a/Source/core/frame/DOMWindowProperty.cpp b/Source/core/frame/DOMWindowProperty.cpp
 | 
| index d64c29ae93e6c9337126c51b523faf92cfcf4b4f..c6f25305fff00e31fcb0242026b1fc8a878fc39b 100644
 | 
| --- a/Source/core/frame/DOMWindowProperty.cpp
 | 
| +++ b/Source/core/frame/DOMWindowProperty.cpp
 | 
| @@ -34,39 +34,24 @@ namespace blink {
 | 
|  
 | 
|  DOMWindowProperty::DOMWindowProperty(LocalFrame* frame)
 | 
|      : m_frame(frame)
 | 
| -    , m_associatedDOMWindow(nullptr)
 | 
|  {
 | 
|      // FIXME: For now it *is* acceptable for a DOMWindowProperty to be created with a null frame.
 | 
|      // See fast/dom/navigator-detached-no-crash.html for the recipe.
 | 
|      // We should fix that.  <rdar://problem/11567132>
 | 
| -    if (m_frame) {
 | 
| -        m_associatedDOMWindow = m_frame->domWindow();
 | 
| -        m_associatedDOMWindow->registerProperty(this);
 | 
| -    }
 | 
| +    if (m_frame)
 | 
| +        m_frame->domWindow()->registerProperty(this);
 | 
|  }
 | 
|  
 | 
| -#if !ENABLE(OILPAN)
 | 
| -DOMWindowProperty::~DOMWindowProperty()
 | 
| -{
 | 
| -    if (m_associatedDOMWindow)
 | 
| -        m_associatedDOMWindow->unregisterProperty(this);
 | 
| -
 | 
| -    m_associatedDOMWindow = nullptr;
 | 
| -    m_frame = nullptr;
 | 
| -}
 | 
| -#endif
 | 
| +DEFINE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(DOMWindowProperty);
 | 
|  
 | 
|  void DOMWindowProperty::willDestroyGlobalObjectInFrame()
 | 
|  {
 | 
|      // If the property is getting this callback it must have been created with a LocalFrame/LocalDOMWindow and it should still have them.
 | 
|      ASSERT(m_frame);
 | 
| -    ASSERT(m_associatedDOMWindow);
 | 
|  
 | 
| -    // DOMWindowProperty lifetime isn't tied directly to the LocalDOMWindow itself so it is important that it unregister
 | 
| -    // itself from any LocalDOMWindow it is associated with if that LocalDOMWindow is going away.
 | 
| -    if (m_associatedDOMWindow)
 | 
| -        m_associatedDOMWindow->unregisterProperty(this);
 | 
| -    m_associatedDOMWindow = nullptr;
 | 
| +    // DOMWindowProperty's registered lifetime is controlled by LocalDOMWindow. After
 | 
| +    // the willDestroyGlobalObjectInFrame() notifications, LocalDOMWindow clears out
 | 
| +    // all registrations. Hence no need to unregister.
 | 
|      m_frame = nullptr;
 | 
|  }
 | 
|  
 | 
| @@ -74,12 +59,6 @@ void DOMWindowProperty::willDetachGlobalObjectFromFrame()
 | 
|  {
 | 
|      // If the property is getting this callback it must have been created with a LocalFrame/LocalDOMWindow and it should still have them.
 | 
|      ASSERT(m_frame);
 | 
| -    ASSERT(m_associatedDOMWindow);
 | 
|  }
 | 
|  
 | 
| -void DOMWindowProperty::trace(Visitor* visitor)
 | 
| -{
 | 
| -    visitor->trace(m_associatedDOMWindow);
 | 
| -}
 | 
| -
 | 
| -}
 | 
| +} // namespace blink
 | 
| 
 |