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 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
137 { | 137 { |
138 visitor->trace(m_window); | 138 visitor->trace(m_window); |
139 FrameDestructionObserver::trace(visitor); | 139 FrameDestructionObserver::trace(visitor); |
140 } | 140 } |
141 | 141 |
142 void LocalDOMWindow::WindowFrameObserver::willDetachFrameHost() | 142 void LocalDOMWindow::WindowFrameObserver::willDetachFrameHost() |
143 { | 143 { |
144 m_window->willDetachFrameHost(); | 144 m_window->willDetachFrameHost(); |
145 } | 145 } |
146 | 146 |
147 void LocalDOMWindow::WindowFrameObserver::frameDestroyed() | |
148 { | |
149 m_window->frameDestroyed(); | |
150 FrameDestructionObserver::frameDestroyed(); | |
151 } | |
152 | |
153 class PostMessageTimer final : public NoBaseWillBeGarbageCollectedFinalized<Post
MessageTimer>, public SuspendableTimer { | 147 class PostMessageTimer final : public NoBaseWillBeGarbageCollectedFinalized<Post
MessageTimer>, public SuspendableTimer { |
154 WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(PostMessageTimer); | 148 WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(PostMessageTimer); |
155 public: | 149 public: |
156 PostMessageTimer(LocalDOMWindow& window, PassRefPtr<SerializedScriptValue> m
essage, const String& sourceOrigin, PassRefPtrWillBeRawPtr<LocalDOMWindow> sourc
e, PassOwnPtr<MessagePortChannelArray> channels, SecurityOrigin* targetOrigin, P
assRefPtrWillBeRawPtr<ScriptCallStack> stackTrace, UserGestureToken* userGesture
Token) | 150 PostMessageTimer(LocalDOMWindow& window, PassRefPtr<SerializedScriptValue> m
essage, const String& sourceOrigin, PassRefPtrWillBeRawPtr<LocalDOMWindow> sourc
e, PassOwnPtr<MessagePortChannelArray> channels, SecurityOrigin* targetOrigin, P
assRefPtrWillBeRawPtr<ScriptCallStack> stackTrace, UserGestureToken* userGesture
Token) |
157 : SuspendableTimer(window.document()) | 151 : SuspendableTimer(window.document()) |
158 , m_window(&window) | 152 , m_window(&window) |
159 , m_message(message) | 153 , m_message(message) |
160 , m_origin(sourceOrigin) | 154 , m_origin(sourceOrigin) |
161 , m_source(source) | 155 , m_source(source) |
162 , m_channels(channels) | 156 , m_channels(channels) |
(...skipping 430 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
593 return frame() ? frame()->page() : nullptr; | 587 return frame() ? frame()->page() : nullptr; |
594 } | 588 } |
595 | 589 |
596 void LocalDOMWindow::willDetachFrameHost() | 590 void LocalDOMWindow::willDetachFrameHost() |
597 { | 591 { |
598 frame()->host()->eventHandlerRegistry().didRemoveAllEventHandlers(*this); | 592 frame()->host()->eventHandlerRegistry().didRemoveAllEventHandlers(*this); |
599 frame()->host()->consoleMessageStorage().frameWindowDiscarded(this); | 593 frame()->host()->consoleMessageStorage().frameWindowDiscarded(this); |
600 LocalDOMWindow::notifyContextDestroyed(); | 594 LocalDOMWindow::notifyContextDestroyed(); |
601 } | 595 } |
602 | 596 |
603 void LocalDOMWindow::frameDestroyed() | |
604 { | |
605 willDestroyDocumentInFrame(); | |
606 m_properties.clear(); | |
607 } | |
608 | |
609 void LocalDOMWindow::willDestroyDocumentInFrame() | 597 void LocalDOMWindow::willDestroyDocumentInFrame() |
610 { | 598 { |
611 for (const auto& domWindowProperty : m_properties) | 599 for (const auto& domWindowProperty : m_properties) |
612 domWindowProperty->willDestroyGlobalObjectInFrame(); | 600 domWindowProperty->willDestroyGlobalObjectInFrame(); |
613 } | 601 } |
614 | 602 |
615 void LocalDOMWindow::willDetachDocumentFromFrame() | 603 void LocalDOMWindow::willDetachDocumentFromFrame() |
616 { | 604 { |
617 for (const auto& domWindowProperty : m_properties) | 605 for (const auto& domWindowProperty : m_properties) |
618 domWindowProperty->willDetachGlobalObjectFromFrame(); | 606 domWindowProperty->willDetachGlobalObjectFromFrame(); |
619 } | 607 } |
620 | 608 |
621 void LocalDOMWindow::registerProperty(DOMWindowProperty* property) | 609 void LocalDOMWindow::registerProperty(DOMWindowProperty* property) |
622 { | 610 { |
623 m_properties.add(property); | 611 m_properties.add(property); |
624 } | 612 } |
625 | 613 |
626 void LocalDOMWindow::unregisterProperty(DOMWindowProperty* property) | 614 void LocalDOMWindow::unregisterProperty(DOMWindowProperty* property) |
627 { | 615 { |
628 m_properties.remove(property); | 616 m_properties.remove(property); |
629 } | 617 } |
630 | 618 |
631 void LocalDOMWindow::reset() | 619 void LocalDOMWindow::reset() |
632 { | 620 { |
633 frameDestroyed(); | 621 willDestroyDocumentInFrame(); |
| 622 m_properties.clear(); |
634 | 623 |
635 m_screen = nullptr; | 624 m_screen = nullptr; |
636 m_history = nullptr; | 625 m_history = nullptr; |
637 m_locationbar = nullptr; | 626 m_locationbar = nullptr; |
638 m_menubar = nullptr; | 627 m_menubar = nullptr; |
639 m_personalbar = nullptr; | 628 m_personalbar = nullptr; |
640 m_scrollbars = nullptr; | 629 m_scrollbars = nullptr; |
641 m_statusbar = nullptr; | 630 m_statusbar = nullptr; |
642 m_toolbar = nullptr; | 631 m_toolbar = nullptr; |
643 m_console = nullptr; | 632 m_console = nullptr; |
(...skipping 1214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1858 return m_frameObserver->frame(); | 1847 return m_frameObserver->frame(); |
1859 } | 1848 } |
1860 | 1849 |
1861 v8::Handle<v8::Object> LocalDOMWindow::wrap(v8::Handle<v8::Object> creationConte
xt, v8::Isolate* isolate) | 1850 v8::Handle<v8::Object> LocalDOMWindow::wrap(v8::Handle<v8::Object> creationConte
xt, v8::Isolate* isolate) |
1862 { | 1851 { |
1863 ASSERT_NOT_REACHED(); // LocalDOMWindow has [Custom=ToV8]. | 1852 ASSERT_NOT_REACHED(); // LocalDOMWindow has [Custom=ToV8]. |
1864 return v8::Handle<v8::Object>(); | 1853 return v8::Handle<v8::Object>(); |
1865 } | 1854 } |
1866 | 1855 |
1867 } // namespace blink | 1856 } // namespace blink |
OLD | NEW |