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 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
96 void Frame::trace(Visitor* visitor) | 96 void Frame::trace(Visitor* visitor) |
97 { | 97 { |
98 visitor->trace(m_treeNode); | 98 visitor->trace(m_treeNode); |
99 visitor->trace(m_host); | 99 visitor->trace(m_host); |
100 visitor->trace(m_owner); | 100 visitor->trace(m_owner); |
101 visitor->trace(m_domWindow); | 101 visitor->trace(m_domWindow); |
102 } | 102 } |
103 | 103 |
104 void Frame::detach() | 104 void Frame::detach() |
105 { | 105 { |
106 // client() should never be null because that means we somehow re-entered | |
107 // the frame detach code... but it is sometimes. | |
108 // FIXME: Understand why this is happening so we can document this insanity. | |
109 // http://crbug.com/371084 is a probable explanation. | |
110 if (!client()) | |
111 return; | |
haraken
2014/10/16 00:59:27
Shall we add ASSERT(client())?
dcheng
2014/10/16 01:21:32
Done.
| |
112 // After this, we must no longer talk to the client since this clears | 106 // After this, we must no longer talk to the client since this clears |
113 // its owning reference back to our owning LocalFrame. | 107 // its owning reference back to our owning LocalFrame. |
114 m_client->detached(); | 108 m_client->detached(); |
115 m_client = nullptr; | 109 m_client = nullptr; |
116 m_host = nullptr; | 110 m_host = nullptr; |
117 } | 111 } |
118 | 112 |
119 void Frame::detachChildren() | 113 void Frame::detachChildren() |
120 { | 114 { |
121 typedef WillBeHeapVector<RefPtrWillBeMember<Frame> > FrameVector; | 115 typedef WillBeHeapVector<RefPtrWillBeMember<Frame> > FrameVector; |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
223 } | 217 } |
224 m_owner = nullptr; | 218 m_owner = nullptr; |
225 } | 219 } |
226 | 220 |
227 HTMLFrameOwnerElement* Frame::deprecatedLocalOwner() const | 221 HTMLFrameOwnerElement* Frame::deprecatedLocalOwner() const |
228 { | 222 { |
229 return m_owner && m_owner->isLocal() ? toHTMLFrameOwnerElement(m_owner) : 0; | 223 return m_owner && m_owner->isLocal() ? toHTMLFrameOwnerElement(m_owner) : 0; |
230 } | 224 } |
231 | 225 |
232 } // namespace blink | 226 } // namespace blink |
OLD | NEW |