Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(256)

Side by Side Diff: Source/core/frame/LocalDOMWindow.h

Issue 901903002: [WIP]Issue FrameDestructionObserver::frameDestroyed() notification on detach. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Too strong; clear supplements map only Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « Source/core/frame/FrameDestructionObserver.cpp ('k') | Source/core/frame/LocalDOMWindow.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 218 matching lines...) Expand 10 before | Expand all | Expand 10 after
229 public: 229 public:
230 static PassOwnPtrWillBeRawPtr<WindowFrameObserver> create(LocalDOMWindow *, LocalFrame&); 230 static PassOwnPtrWillBeRawPtr<WindowFrameObserver> create(LocalDOMWindow *, LocalFrame&);
231 231
232 virtual void trace(Visitor*) override; 232 virtual void trace(Visitor*) override;
233 233
234 private: 234 private:
235 WindowFrameObserver(LocalDOMWindow*, LocalFrame&); 235 WindowFrameObserver(LocalDOMWindow*, LocalFrame&);
236 236
237 // FrameDestructionObserver overrides: 237 // FrameDestructionObserver overrides:
238 void willDetachFrameHost() override; 238 void willDetachFrameHost() override;
239 void frameDestroyed() override;
239 240
240 RawPtrWillBeMember<LocalDOMWindow> m_window; 241 RawPtrWillBeMember<LocalDOMWindow> m_window;
241 }; 242 };
242 friend WTF::OwnedPtrDeleter<WindowFrameObserver>; 243 friend WTF::OwnedPtrDeleter<WindowFrameObserver>;
243 244
244 explicit LocalDOMWindow(LocalFrame&); 245 explicit LocalDOMWindow(LocalFrame&);
245 246
246 Page* page(); 247 Page* page();
247 248
248 void clearDocument(); 249 void clearDocument();
249 void willDestroyDocumentInFrame(); 250 void willDestroyDocumentInFrame();
250 251
251 // FIXME: Oilpan: the need for this internal method will fall 252 // FIXME: Oilpan: the need for this internal method will fall
252 // away when EventTargets are no longer using refcounts and 253 // away when EventTargets are no longer using refcounts and
253 // window properties are also on the heap. Inline the minimal 254 // window properties are also on the heap. Inline the minimal
254 // do-not-broadcast handling then and remove the enum + 255 // do-not-broadcast handling then and remove the enum +
255 // removeAllEventListenersInternal(). 256 // removeAllEventListenersInternal().
256 enum BroadcastListenerRemoval { 257 enum BroadcastListenerRemoval {
257 DoNotBroadcastListenerRemoval, 258 DoNotBroadcastListenerRemoval,
258 DoBroadcastListenerRemoval 259 DoBroadcastListenerRemoval
259 }; 260 };
260 261
261 void willDetachFrameHost(); 262 void willDetachFrameHost();
263 void frameDestroyed();
262 void removeAllEventListenersInternal(BroadcastListenerRemoval); 264 void removeAllEventListenersInternal(BroadcastListenerRemoval);
263 265
264 OwnPtrWillBeMember<WindowFrameObserver> m_frameObserver; 266 OwnPtrWillBeMember<WindowFrameObserver> m_frameObserver;
265 RefPtrWillBeMember<Document> m_document; 267 RefPtrWillBeMember<Document> m_document;
266 268
267 bool m_shouldPrintWhenFinishedLoading; 269 bool m_shouldPrintWhenFinishedLoading;
268 #if ENABLE(ASSERT) 270 #if ENABLE(ASSERT)
269 bool m_hasBeenReset; 271 bool m_hasBeenReset;
270 #endif 272 #endif
271 273
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
307 } 309 }
308 310
309 inline String LocalDOMWindow::defaultStatus() const 311 inline String LocalDOMWindow::defaultStatus() const
310 { 312 {
311 return m_defaultStatus; 313 return m_defaultStatus;
312 } 314 }
313 315
314 } // namespace blink 316 } // namespace blink
315 317
316 #endif // LocalDOMWindow_h 318 #endif // LocalDOMWindow_h
OLDNEW
« no previous file with comments | « Source/core/frame/FrameDestructionObserver.cpp ('k') | Source/core/frame/LocalDOMWindow.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698