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 593 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
604 return frame() ? frame()->page() : nullptr; | 604 return frame() ? frame()->page() : nullptr; |
605 } | 605 } |
606 | 606 |
607 void LocalDOMWindow::willDetachFrameHost() | 607 void LocalDOMWindow::willDetachFrameHost() |
608 { | 608 { |
609 frame()->host()->eventHandlerRegistry().didRemoveAllEventHandlers(*this); | 609 frame()->host()->eventHandlerRegistry().didRemoveAllEventHandlers(*this); |
610 frame()->host()->consoleMessageStorage().frameWindowDiscarded(this); | 610 frame()->host()->consoleMessageStorage().frameWindowDiscarded(this); |
611 LocalDOMWindow::notifyContextDestroyed(); | 611 LocalDOMWindow::notifyContextDestroyed(); |
612 } | 612 } |
613 | 613 |
614 void LocalDOMWindow::willDestroyDocumentInFrame() | |
615 { | |
616 for (const auto& domWindowProperty : m_properties) | |
617 domWindowProperty->willDestroyGlobalObjectInFrame(); | |
618 } | |
619 | |
620 void LocalDOMWindow::willDetachDocumentFromFrame() | |
621 { | |
622 for (const auto& domWindowProperty : m_properties) | |
623 domWindowProperty->willDetachGlobalObjectFromFrame(); | |
624 } | |
625 | |
626 void LocalDOMWindow::registerProperty(DOMWindowProperty* property) | |
627 { | |
628 m_properties.add(property); | |
629 } | |
630 | |
631 void LocalDOMWindow::unregisterProperty(DOMWindowProperty* property) | |
632 { | |
633 m_properties.remove(property); | |
634 } | |
635 | |
636 void LocalDOMWindow::reset() | 614 void LocalDOMWindow::reset() |
637 { | 615 { |
638 willDestroyDocumentInFrame(); | 616 DOMWindow::reset(); |
639 m_properties.clear(); | |
640 | 617 |
641 m_screen = nullptr; | 618 m_screen = nullptr; |
642 m_history = nullptr; | 619 m_history = nullptr; |
643 m_locationbar = nullptr; | 620 m_locationbar = nullptr; |
644 m_menubar = nullptr; | 621 m_menubar = nullptr; |
645 m_personalbar = nullptr; | 622 m_personalbar = nullptr; |
646 m_scrollbars = nullptr; | 623 m_scrollbars = nullptr; |
647 m_statusbar = nullptr; | 624 m_statusbar = nullptr; |
648 m_toolbar = nullptr; | 625 m_toolbar = nullptr; |
649 m_console = nullptr; | 626 m_console = nullptr; |
650 m_navigator = nullptr; | 627 m_navigator = nullptr; |
651 m_performance = nullptr; | 628 m_performance = nullptr; |
652 m_location = nullptr; | |
653 m_media = nullptr; | 629 m_media = nullptr; |
654 m_applicationCache = nullptr; | 630 m_applicationCache = nullptr; |
655 #if ENABLE(ASSERT) | 631 #if ENABLE(ASSERT) |
656 m_hasBeenReset = true; | 632 m_hasBeenReset = true; |
657 #endif | 633 #endif |
658 | 634 |
659 LocalDOMWindow::notifyContextDestroyed(); | 635 LocalDOMWindow::notifyContextDestroyed(); |
660 } | 636 } |
661 | 637 |
662 void LocalDOMWindow::sendOrientationChangeEvent() | 638 void LocalDOMWindow::sendOrientationChangeEvent() |
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
782 return m_navigator.get(); | 758 return m_navigator.get(); |
783 } | 759 } |
784 | 760 |
785 Performance* LocalDOMWindow::performance() const | 761 Performance* LocalDOMWindow::performance() const |
786 { | 762 { |
787 if (!m_performance) | 763 if (!m_performance) |
788 m_performance = Performance::create(frame()); | 764 m_performance = Performance::create(frame()); |
789 return m_performance.get(); | 765 return m_performance.get(); |
790 } | 766 } |
791 | 767 |
792 Location* LocalDOMWindow::location() const | |
793 { | |
794 if (!m_location) | |
795 m_location = Location::create(frame()); | |
796 return m_location.get(); | |
797 } | |
798 | |
799 void LocalDOMWindow::postMessage(PassRefPtr<SerializedScriptValue> message, cons
t MessagePortArray* ports, const String& targetOrigin, LocalDOMWindow* source, E
xceptionState& exceptionState) | 768 void LocalDOMWindow::postMessage(PassRefPtr<SerializedScriptValue> message, cons
t MessagePortArray* ports, const String& targetOrigin, LocalDOMWindow* source, E
xceptionState& exceptionState) |
800 { | 769 { |
801 if (!isCurrentlyDisplayedInFrame()) | 770 if (!isCurrentlyDisplayedInFrame()) |
802 return; | 771 return; |
803 | 772 |
804 Document* sourceDocument = source->document(); | 773 Document* sourceDocument = source->document(); |
805 | 774 |
806 // Compute the target origin. We need to do this synchronously in order | 775 // Compute the target origin. We need to do this synchronously in order |
807 // to generate the SyntaxError exception correctly. | 776 // to generate the SyntaxError exception correctly. |
808 RefPtr<SecurityOrigin> target; | 777 RefPtr<SecurityOrigin> target; |
(...skipping 1018 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1827 visitor->trace(m_screen); | 1796 visitor->trace(m_screen); |
1828 visitor->trace(m_history); | 1797 visitor->trace(m_history); |
1829 visitor->trace(m_locationbar); | 1798 visitor->trace(m_locationbar); |
1830 visitor->trace(m_menubar); | 1799 visitor->trace(m_menubar); |
1831 visitor->trace(m_personalbar); | 1800 visitor->trace(m_personalbar); |
1832 visitor->trace(m_scrollbars); | 1801 visitor->trace(m_scrollbars); |
1833 visitor->trace(m_statusbar); | 1802 visitor->trace(m_statusbar); |
1834 visitor->trace(m_toolbar); | 1803 visitor->trace(m_toolbar); |
1835 visitor->trace(m_console); | 1804 visitor->trace(m_console); |
1836 visitor->trace(m_navigator); | 1805 visitor->trace(m_navigator); |
1837 visitor->trace(m_location); | |
1838 visitor->trace(m_media); | 1806 visitor->trace(m_media); |
1839 visitor->trace(m_applicationCache); | 1807 visitor->trace(m_applicationCache); |
1840 visitor->trace(m_performance); | 1808 visitor->trace(m_performance); |
1841 visitor->trace(m_css); | 1809 visitor->trace(m_css); |
1842 visitor->trace(m_eventQueue); | 1810 visitor->trace(m_eventQueue); |
1843 visitor->trace(m_postMessageTimers); | 1811 visitor->trace(m_postMessageTimers); |
1844 HeapSupplementable<LocalDOMWindow>::trace(visitor); | 1812 HeapSupplementable<LocalDOMWindow>::trace(visitor); |
1845 #endif | 1813 #endif |
1846 DOMWindow::trace(visitor); | 1814 DOMWindow::trace(visitor); |
1847 LifecycleContext<LocalDOMWindow>::trace(visitor); | 1815 LifecycleContext<LocalDOMWindow>::trace(visitor); |
1848 } | 1816 } |
1849 | 1817 |
1850 LocalFrame* LocalDOMWindow::frame() const | 1818 LocalFrame* LocalDOMWindow::frame() const |
1851 { | 1819 { |
1852 return m_frameObserver->frame(); | 1820 return m_frameObserver->frame(); |
1853 } | 1821 } |
1854 | 1822 |
1855 v8::Handle<v8::Object> LocalDOMWindow::wrap(v8::Handle<v8::Object> creationConte
xt, v8::Isolate* isolate) | 1823 v8::Handle<v8::Object> LocalDOMWindow::wrap(v8::Handle<v8::Object> creationConte
xt, v8::Isolate* isolate) |
1856 { | 1824 { |
1857 ASSERT_NOT_REACHED(); // LocalDOMWindow has [Custom=ToV8]. | 1825 ASSERT_NOT_REACHED(); // LocalDOMWindow has [Custom=ToV8]. |
1858 return v8::Handle<v8::Object>(); | 1826 return v8::Handle<v8::Object>(); |
1859 } | 1827 } |
1860 | 1828 |
1861 } // namespace blink | 1829 } // namespace blink |
OLD | NEW |