OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (C) 2006, 2007, 2008, 2010 Apple Inc. All rights reserved. | 2 * Copyright (C) 2006, 2007, 2008, 2010 Apple Inc. All rights reserved. |
3 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) | 3 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
7 * are met: | 7 * are met: |
8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
(...skipping 471 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
482 enqueuePopstateEvent(stateObject); | 482 enqueuePopstateEvent(stateObject); |
483 else | 483 else |
484 m_pendingStateObject = stateObject; | 484 m_pendingStateObject = stateObject; |
485 } | 485 } |
486 | 486 |
487 DOMWindow::~DOMWindow() | 487 DOMWindow::~DOMWindow() |
488 { | 488 { |
489 ASSERT(m_hasBeenReset); | 489 ASSERT(m_hasBeenReset); |
490 reset(); | 490 reset(); |
491 | 491 |
492 #if ENABLE(OILPAN) | |
493 // Stub out early to prevent Document access in removeAllEventListeners(). | |
494 m_document = nullptr; | |
haraken
2014/05/23 12:23:27
I'm not sure if it's OK to clear m_document here.
sof
2014/05/23 14:29:07
I think we can address that via DOMWindow::clearWe
| |
495 #endif | |
496 | |
492 removeAllEventListeners(); | 497 removeAllEventListeners(); |
493 | 498 |
494 #if ENABLE(OILPAN) | 499 #if ENABLE(OILPAN) |
495 ASSERT(m_document->isDisposed()); | 500 // FIXME: This should be part of ActiveDOM Object shutdown |
501 clearEventQueue(); | |
496 #else | 502 #else |
497 ASSERT(m_document->isStopped()); | 503 ASSERT(m_document->isStopped()); |
504 clearDocument(); | |
498 #endif | 505 #endif |
499 | |
500 clearDocument(); | |
501 } | 506 } |
502 | 507 |
503 const AtomicString& DOMWindow::interfaceName() const | 508 const AtomicString& DOMWindow::interfaceName() const |
504 { | 509 { |
505 return EventTargetNames::DOMWindow; | 510 return EventTargetNames::DOMWindow; |
506 } | 511 } |
507 | 512 |
508 ExecutionContext* DOMWindow::executionContext() const | 513 ExecutionContext* DOMWindow::executionContext() const |
509 { | 514 { |
510 return m_document.get(); | 515 return m_document.get(); |
(...skipping 1357 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1868 return static_cast<DOMWindowLifecycleNotifier&>(LifecycleContext<DOMWindow>: :lifecycleNotifier()); | 1873 return static_cast<DOMWindowLifecycleNotifier&>(LifecycleContext<DOMWindow>: :lifecycleNotifier()); |
1869 } | 1874 } |
1870 | 1875 |
1871 PassOwnPtr<LifecycleNotifier<DOMWindow> > DOMWindow::createLifecycleNotifier() | 1876 PassOwnPtr<LifecycleNotifier<DOMWindow> > DOMWindow::createLifecycleNotifier() |
1872 { | 1877 { |
1873 return DOMWindowLifecycleNotifier::create(this); | 1878 return DOMWindowLifecycleNotifier::create(this); |
1874 } | 1879 } |
1875 | 1880 |
1876 void DOMWindow::trace(Visitor* visitor) | 1881 void DOMWindow::trace(Visitor* visitor) |
1877 { | 1882 { |
1883 visitor->trace(m_document); | |
1878 visitor->trace(m_screen); | 1884 visitor->trace(m_screen); |
1879 visitor->trace(m_history); | 1885 visitor->trace(m_history); |
1880 visitor->trace(m_locationbar); | 1886 visitor->trace(m_locationbar); |
1881 visitor->trace(m_menubar); | 1887 visitor->trace(m_menubar); |
1882 visitor->trace(m_personalbar); | 1888 visitor->trace(m_personalbar); |
1883 visitor->trace(m_scrollbars); | 1889 visitor->trace(m_scrollbars); |
1884 visitor->trace(m_statusbar); | 1890 visitor->trace(m_statusbar); |
1885 visitor->trace(m_toolbar); | 1891 visitor->trace(m_toolbar); |
1886 visitor->trace(m_console); | 1892 visitor->trace(m_console); |
1887 visitor->trace(m_navigator); | 1893 visitor->trace(m_navigator); |
1888 visitor->trace(m_location); | 1894 visitor->trace(m_location); |
1889 visitor->trace(m_media); | 1895 visitor->trace(m_media); |
1890 visitor->trace(m_sessionStorage); | 1896 visitor->trace(m_sessionStorage); |
1891 visitor->trace(m_localStorage); | 1897 visitor->trace(m_localStorage); |
1892 visitor->trace(m_applicationCache); | 1898 visitor->trace(m_applicationCache); |
1893 visitor->trace(m_performance); | 1899 visitor->trace(m_performance); |
1894 visitor->trace(m_css); | 1900 visitor->trace(m_css); |
1895 WillBeHeapSupplementable<DOMWindow>::trace(visitor); | 1901 WillBeHeapSupplementable<DOMWindow>::trace(visitor); |
1896 } | 1902 } |
1897 | 1903 |
1898 } // namespace WebCore | 1904 } // namespace WebCore |
OLD | NEW |