| 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 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 43 | 43 |
| 44 RenderPart* HTMLFrameOwnerElement::renderPart() const | 44 RenderPart* HTMLFrameOwnerElement::renderPart() const |
| 45 { | 45 { |
| 46 // HTMLObjectElement and HTMLEmbedElement may return arbitrary renderers | 46 // HTMLObjectElement and HTMLEmbedElement may return arbitrary renderers |
| 47 // when using fallback content. | 47 // when using fallback content. |
| 48 if (!renderer() || !renderer()->isRenderPart()) | 48 if (!renderer() || !renderer()->isRenderPart()) |
| 49 return 0; | 49 return 0; |
| 50 return toRenderPart(renderer()); | 50 return toRenderPart(renderer()); |
| 51 } | 51 } |
| 52 | 52 |
| 53 void HTMLFrameOwnerElement::setContentFrame(Frame* frame) | 53 void HTMLFrameOwnerElement::setContentFrame(Frame& frame) |
| 54 { | 54 { |
| 55 // Make sure we will not end up with two frames referencing the same owner e
lement. | 55 // Make sure we will not end up with two frames referencing the same owner e
lement. |
| 56 ASSERT(!m_contentFrame || m_contentFrame->ownerElement() != this); | 56 ASSERT(!m_contentFrame || m_contentFrame->ownerElement() != this); |
| 57 ASSERT(frame); | |
| 58 // Disconnected frames should not be allowed to load. | 57 // Disconnected frames should not be allowed to load. |
| 59 ASSERT(inDocument()); | 58 ASSERT(inDocument()); |
| 60 m_contentFrame = frame; | 59 m_contentFrame = &frame; |
| 61 | 60 |
| 62 for (ContainerNode* node = this; node; node = node->parentOrShadowHostNode()
) | 61 for (ContainerNode* node = this; node; node = node->parentOrShadowHostNode()
) |
| 63 node->incrementConnectedSubframeCount(); | 62 node->incrementConnectedSubframeCount(); |
| 64 } | 63 } |
| 65 | 64 |
| 66 void HTMLFrameOwnerElement::clearContentFrame() | 65 void HTMLFrameOwnerElement::clearContentFrame() |
| 67 { | 66 { |
| 68 if (!m_contentFrame) | 67 if (!m_contentFrame) |
| 69 return; | 68 return; |
| 70 | 69 |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 129 if (contentFrame()) { | 128 if (contentFrame()) { |
| 130 contentFrame()->navigationScheduler().scheduleLocationChange(document().
securityOrigin(), url.string(), parentFrame->loader().outgoingReferrer(), lockBa
ckForwardList); | 129 contentFrame()->navigationScheduler().scheduleLocationChange(document().
securityOrigin(), url.string(), parentFrame->loader().outgoingReferrer(), lockBa
ckForwardList); |
| 131 return true; | 130 return true; |
| 132 } | 131 } |
| 133 | 132 |
| 134 if (!document().securityOrigin()->canDisplay(url)) { | 133 if (!document().securityOrigin()->canDisplay(url)) { |
| 135 FrameLoader::reportLocalLoadFailed(parentFrame.get(), url.string()); | 134 FrameLoader::reportLocalLoadFailed(parentFrame.get(), url.string()); |
| 136 return false; | 135 return false; |
| 137 } | 136 } |
| 138 | 137 |
| 139 if (!SubframeLoadingDisabler::canLoadFrame(this)) | 138 if (!SubframeLoadingDisabler::canLoadFrame(*this)) |
| 140 return false; | 139 return false; |
| 141 | 140 |
| 142 String referrer = SecurityPolicy::generateReferrerHeader(document().referrer
Policy(), url, parentFrame->loader().outgoingReferrer()); | 141 String referrer = SecurityPolicy::generateReferrerHeader(document().referrer
Policy(), url, parentFrame->loader().outgoingReferrer()); |
| 143 RefPtr<Frame> childFrame = parentFrame->loader().client()->createFrame(url,
frameName, referrer, this); | 142 RefPtr<Frame> childFrame = parentFrame->loader().client()->createFrame(url,
frameName, referrer, this); |
| 144 | 143 |
| 145 if (!childFrame) { | 144 if (!childFrame) { |
| 146 parentFrame->loader().checkCompleted(); | 145 parentFrame->loader().checkCompleted(); |
| 147 return false; | 146 return false; |
| 148 } | 147 } |
| 149 | 148 |
| (...skipping 19 matching lines...) Expand all Loading... |
| 169 // FIXME: In this case the Frame will have finished loading before | 168 // FIXME: In this case the Frame will have finished loading before |
| 170 // it's being added to the child list. It would be a good idea to | 169 // it's being added to the child list. It would be a good idea to |
| 171 // create the child first, then invoke the loader separately. | 170 // create the child first, then invoke the loader separately. |
| 172 if (childFrame->loader().state() == FrameStateComplete && !childFrame->loade
r().policyDocumentLoader()) | 171 if (childFrame->loader().state() == FrameStateComplete && !childFrame->loade
r().policyDocumentLoader()) |
| 173 childFrame->loader().checkCompleted(); | 172 childFrame->loader().checkCompleted(); |
| 174 return true; | 173 return true; |
| 175 } | 174 } |
| 176 | 175 |
| 177 | 176 |
| 178 } // namespace WebCore | 177 } // namespace WebCore |
| OLD | NEW |