OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2006, 2007, 2009 Apple Inc. All rights reserved. | 2 * Copyright (C) 2006, 2007, 2009 Apple Inc. All rights reserved. |
3 * | 3 * |
4 * This library is free software; you can redistribute it and/or | 4 * This library is free software; you can redistribute it and/or |
5 * modify it under the terms of the GNU Library General Public | 5 * modify it under the terms of the GNU Library General Public |
6 * License as published by the Free Software Foundation; either | 6 * License as published by the Free Software Foundation; either |
7 * version 2 of the License, or (at your option) any later version. | 7 * version 2 of the License, or (at your option) any later version. |
8 * | 8 * |
9 * This library is distributed in the hope that it will be useful, | 9 * This library is distributed in the hope that it will be useful, |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
174 | 174 |
175 void HTMLFrameOwnerElement::disconnectContentFrame() | 175 void HTMLFrameOwnerElement::disconnectContentFrame() |
176 { | 176 { |
177 // FIXME: Currently we don't do this in removedFrom because this causes an | 177 // FIXME: Currently we don't do this in removedFrom because this causes an |
178 // unload event in the subframe which could execute script that could then | 178 // unload event in the subframe which could execute script that could then |
179 // reach up into this document and then attempt to look back down. We should | 179 // reach up into this document and then attempt to look back down. We should |
180 // see if this behavior is really needed as Gecko does not allow this. | 180 // see if this behavior is really needed as Gecko does not allow this. |
181 if (RefPtrWillBeRawPtr<Frame> frame = contentFrame()) { | 181 if (RefPtrWillBeRawPtr<Frame> frame = contentFrame()) { |
182 frame->detach(FrameDetachType::Remove); | 182 frame->detach(FrameDetachType::Remove); |
183 } | 183 } |
184 #if ENABLE(OILPAN) | |
185 // Oilpan: a plugin container must be explicitly disposed before it | |
186 // is swept and finalized. This is because the underlying plugin needs | |
187 // to be able to access a fully-functioning frame (and all it refers | |
188 // to) while it destructs and cleans out its resources. | |
189 if (m_widget) { | |
190 m_widget->dispose(); | |
191 m_widget = nullptr; | |
192 } | |
193 #endif | |
194 } | 184 } |
195 | 185 |
196 HTMLFrameOwnerElement::~HTMLFrameOwnerElement() | 186 HTMLFrameOwnerElement::~HTMLFrameOwnerElement() |
197 { | 187 { |
198 // An owner must by now have been informed of detachment | 188 // An owner must by now have been informed of detachment |
199 // when the frame was closed. | 189 // when the frame was closed. |
200 ASSERT(!m_contentFrame); | 190 ASSERT(!m_contentFrame); |
201 } | 191 } |
202 | 192 |
203 Document* HTMLFrameOwnerElement::contentDocument() const | 193 Document* HTMLFrameOwnerElement::contentDocument() const |
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
318 DEFINE_TRACE(HTMLFrameOwnerElement) | 308 DEFINE_TRACE(HTMLFrameOwnerElement) |
319 { | 309 { |
320 visitor->trace(m_contentFrame); | 310 visitor->trace(m_contentFrame); |
321 visitor->trace(m_widget); | 311 visitor->trace(m_widget); |
322 HTMLElement::trace(visitor); | 312 HTMLElement::trace(visitor); |
323 FrameOwner::trace(visitor); | 313 FrameOwner::trace(visitor); |
324 } | 314 } |
325 | 315 |
326 | 316 |
327 } // namespace blink | 317 } // namespace blink |
OLD | NEW |