OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2006, 2007, 2009, 2010 Apple Inc. All rights reserved. | 2 * Copyright (C) 2006, 2007, 2009, 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 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
56 | 56 |
57 enum PageshowEventPersistence { | 57 enum PageshowEventPersistence { |
58 PageshowEventNotPersisted = 0, | 58 PageshowEventNotPersisted = 0, |
59 PageshowEventPersisted = 1 | 59 PageshowEventPersisted = 1 |
60 }; | 60 }; |
61 | 61 |
62 // Note: if you're thinking of returning something DOM-related by reference, | 62 // Note: if you're thinking of returning something DOM-related by reference, |
63 // please ping dcheng@chromium.org first. You probably don't want to do that. | 63 // please ping dcheng@chromium.org first. You probably don't want to do that. |
64 class LocalDOMWindow final : public DOMWindow, public WillBeHeapSupplementable<L
ocalDOMWindow>, public DOMWindowLifecycleNotifier { | 64 class LocalDOMWindow final : public DOMWindow, public WillBeHeapSupplementable<L
ocalDOMWindow>, public DOMWindowLifecycleNotifier { |
65 WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(LocalDOMWindow); | 65 WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(LocalDOMWindow); |
| 66 WILL_BE_USING_PRE_FINALIZER(LocalDOMWindow, dispose); |
66 public: | 67 public: |
67 static PassRefPtrWillBeRawPtr<Document> createDocument(const String& mimeTyp
e, const DocumentInit&, bool forceXHTML); | 68 static PassRefPtrWillBeRawPtr<Document> createDocument(const String& mimeTyp
e, const DocumentInit&, bool forceXHTML); |
68 static PassRefPtrWillBeRawPtr<LocalDOMWindow> create(LocalFrame& frame) | 69 static PassRefPtrWillBeRawPtr<LocalDOMWindow> create(LocalFrame& frame) |
69 { | 70 { |
70 return adoptRefWillBeNoop(new LocalDOMWindow(frame)); | 71 return adoptRefWillBeNoop(new LocalDOMWindow(frame)); |
71 } | 72 } |
72 virtual ~LocalDOMWindow(); | 73 virtual ~LocalDOMWindow(); |
| 74 void dispose(); |
73 | 75 |
74 PassRefPtrWillBeRawPtr<Document> installNewDocument(const String& mimeType,
const DocumentInit&, bool forceXHTML = false); | 76 PassRefPtrWillBeRawPtr<Document> installNewDocument(const String& mimeType,
const DocumentInit&, bool forceXHTML = false); |
75 | 77 |
76 // EventTarget overrides: | 78 // EventTarget overrides: |
77 virtual const AtomicString& interfaceName() const override; | 79 virtual const AtomicString& interfaceName() const override; |
78 virtual ExecutionContext* executionContext() const override; | 80 virtual ExecutionContext* executionContext() const override; |
79 virtual LocalDOMWindow* toDOMWindow() override; | 81 virtual LocalDOMWindow* toDOMWindow() override; |
80 | 82 |
81 // DOMWindow overrides: | 83 // DOMWindow overrides: |
82 DECLARE_VIRTUAL_TRACE(); | 84 DECLARE_VIRTUAL_TRACE(); |
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
236 }; | 238 }; |
237 friend WTF::OwnedPtrDeleter<WindowFrameObserver>; | 239 friend WTF::OwnedPtrDeleter<WindowFrameObserver>; |
238 | 240 |
239 explicit LocalDOMWindow(LocalFrame&); | 241 explicit LocalDOMWindow(LocalFrame&); |
240 | 242 |
241 Page* page(); | 243 Page* page(); |
242 | 244 |
243 void clearDocument(); | 245 void clearDocument(); |
244 void willDestroyDocumentInFrame(); | 246 void willDestroyDocumentInFrame(); |
245 | 247 |
246 // FIXME: Oilpan: the need for this internal method will fall | |
247 // away when EventTargets are no longer using refcounts and | |
248 // window properties are also on the heap. Inline the minimal | |
249 // do-not-broadcast handling then and remove the enum + | |
250 // removeAllEventListenersInternal(). | |
251 enum BroadcastListenerRemoval { | |
252 DoNotBroadcastListenerRemoval, | |
253 DoBroadcastListenerRemoval | |
254 }; | |
255 | |
256 void willDetachFrameHost(); | 248 void willDetachFrameHost(); |
257 void frameDestroyed(); | 249 void frameDestroyed(); |
258 void removeAllEventListenersInternal(BroadcastListenerRemoval); | |
259 | 250 |
260 OwnPtrWillBeMember<WindowFrameObserver> m_frameObserver; | 251 OwnPtrWillBeMember<WindowFrameObserver> m_frameObserver; |
261 RefPtrWillBeMember<Document> m_document; | 252 RefPtrWillBeMember<Document> m_document; |
262 | 253 |
263 bool m_shouldPrintWhenFinishedLoading; | 254 bool m_shouldPrintWhenFinishedLoading; |
264 #if ENABLE(ASSERT) | 255 #if ENABLE(ASSERT) |
265 bool m_hasBeenReset; | 256 bool m_hasBeenReset; |
266 #endif | 257 #endif |
267 | 258 |
268 WillBeHeapHashSet<RawPtrWillBeWeakMember<DOMWindowProperty>> m_properties; | 259 WillBeHeapHashSet<RawPtrWillBeWeakMember<DOMWindowProperty>> m_properties; |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
300 } | 291 } |
301 | 292 |
302 inline String LocalDOMWindow::defaultStatus() const | 293 inline String LocalDOMWindow::defaultStatus() const |
303 { | 294 { |
304 return m_defaultStatus; | 295 return m_defaultStatus; |
305 } | 296 } |
306 | 297 |
307 } // namespace blink | 298 } // namespace blink |
308 | 299 |
309 #endif // LocalDOMWindow_h | 300 #endif // LocalDOMWindow_h |
OLD | NEW |