OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1998, 1999 Torben Weis <weis@kde.org> | 2 * Copyright (C) 1998, 1999 Torben Weis <weis@kde.org> |
3 * 1999 Lars Knoll <knoll@kde.org> | 3 * 1999 Lars Knoll <knoll@kde.org> |
4 * 1999 Antti Koivisto <koivisto@kde.org> | 4 * 1999 Antti Koivisto <koivisto@kde.org> |
5 * 2000 Simon Hausmann <hausmann@kde.org> | 5 * 2000 Simon Hausmann <hausmann@kde.org> |
6 * 2000 Stefan Schimanski <1Stein@gmx.de> | 6 * 2000 Stefan Schimanski <1Stein@gmx.de> |
7 * 2001 George Staikos <staikos@kde.org> | 7 * 2001 George Staikos <staikos@kde.org> |
8 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r
ights reserved. | 8 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r
ights reserved. |
9 * Copyright (C) 2005 Alexey Proskuryakov <ap@nypop.com> | 9 * Copyright (C) 2005 Alexey Proskuryakov <ap@nypop.com> |
10 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) | 10 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) |
(...skipping 350 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
361 | 361 |
362 // All done if detaching the subframes brought about a detach of this frame
also. | 362 // All done if detaching the subframes brought about a detach of this frame
also. |
363 if (!client()) | 363 if (!client()) |
364 return; | 364 return; |
365 | 365 |
366 // stopAllLoaders() needs to be called after detachChildren(), because detac
hChildren() | 366 // stopAllLoaders() needs to be called after detachChildren(), because detac
hChildren() |
367 // will trigger the unload event handlers of any child frames, and those eve
nt | 367 // will trigger the unload event handlers of any child frames, and those eve
nt |
368 // handlers might start a new subresource load in this frame. | 368 // handlers might start a new subresource load in this frame. |
369 m_loader.stopAllLoaders(); | 369 m_loader.stopAllLoaders(); |
370 m_loader.detach(); | 370 m_loader.detach(); |
371 document()->detachLayoutTree(); | 371 document()->shutdown(); |
372 // This is the earliest that scripting can be disabled: | 372 // This is the earliest that scripting can be disabled: |
373 // - FrameLoader::detach() can fire XHR abort events | 373 // - FrameLoader::detach() can fire XHR abort events |
374 // - Document::detachLayoutTree()'s deferred widget updates can run script. | 374 // - Document::shutdown()'s deferred widget updates can run script. |
375 ScriptForbiddenScope forbidScript; | 375 ScriptForbiddenScope forbidScript; |
376 m_loader.clear(); | 376 m_loader.clear(); |
377 if (!client()) | 377 if (!client()) |
378 return; | 378 return; |
379 | 379 |
380 client()->willBeDetached(); | 380 client()->willBeDetached(); |
381 // Notify ScriptController that the frame is closing, since its cleanup ends
up calling | 381 // Notify ScriptController that the frame is closing, since its cleanup ends
up calling |
382 // back to FrameLoaderClient via WindowProxy. | 382 // back to FrameLoaderClient via WindowProxy. |
383 script().clearForClose(); | 383 script().clearForClose(); |
384 setView(nullptr); | 384 setView(nullptr); |
(...skipping 477 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
862 m_frame->client()->frameBlameContext()->Enter(); | 862 m_frame->client()->frameBlameContext()->Enter(); |
863 } | 863 } |
864 | 864 |
865 ScopedFrameBlamer::~ScopedFrameBlamer() | 865 ScopedFrameBlamer::~ScopedFrameBlamer() |
866 { | 866 { |
867 if (m_frame && m_frame->client() && m_frame->client()->frameBlameContext()) | 867 if (m_frame && m_frame->client() && m_frame->client()->frameBlameContext()) |
868 m_frame->client()->frameBlameContext()->Leave(); | 868 m_frame->client()->frameBlameContext()->Leave(); |
869 } | 869 } |
870 | 870 |
871 } // namespace blink | 871 } // namespace blink |
OLD | NEW |