Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "config.h" | 5 #include "config.h" |
| 6 #include "public/web/WebFrame.h" | 6 #include "public/web/WebFrame.h" |
| 7 | 7 |
| 8 #include "bindings/core/v8/WindowProxyManager.h" | 8 #include "bindings/core/v8/WindowProxyManager.h" |
| 9 #include "core/frame/FrameHost.h" | 9 #include "core/frame/FrameHost.h" |
| 10 #include "core/frame/FrameView.h" | 10 #include "core/frame/FrameView.h" |
| (...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 135 | 135 |
| 136 void WebFrame::setOpener(WebFrame* opener) | 136 void WebFrame::setOpener(WebFrame* opener) |
| 137 { | 137 { |
| 138 if (m_opener) | 138 if (m_opener) |
| 139 m_opener->m_openedFrameTracker->remove(this); | 139 m_opener->m_openedFrameTracker->remove(this); |
| 140 if (opener) | 140 if (opener) |
| 141 opener->m_openedFrameTracker->add(this); | 141 opener->m_openedFrameTracker->add(this); |
| 142 m_opener = opener; | 142 m_opener = opener; |
| 143 } | 143 } |
| 144 | 144 |
| 145 void WebFrame::insertAfter(WebFrame* newChild, WebFrame* previousSibling) | |
| 146 { | |
| 147 newChild->m_parent = this; | |
| 148 | |
| 149 WebFrame* next; | |
| 150 if (!previousSibling) { | |
| 151 // Insert at the beginning if no previous sibling is specified. | |
| 152 next = m_firstChild; | |
| 153 m_firstChild = newChild; | |
| 154 } else { | |
| 155 ASSERT(previousSibling->m_parent == this); | |
| 156 next = previousSibling->m_nextSibling; | |
| 157 previousSibling->m_nextSibling = newChild; | |
| 158 newChild->m_previousSibling = previousSibling; | |
| 159 } | |
| 160 | |
| 161 if (next) { | |
| 162 newChild->m_nextSibling = next; | |
| 163 next->m_previousSibling = newChild; | |
| 164 } else { | |
| 165 m_lastChild = newChild; | |
| 166 } | |
| 167 | |
| 168 toCoreFrame(this)->tree().invalidateScopedChildCount(); | |
| 169 toCoreFrame(this)->host()->incrementSubframeCount(); | |
| 170 } | |
| 171 | |
| 145 void WebFrame::appendChild(WebFrame* child) | 172 void WebFrame::appendChild(WebFrame* child) |
| 146 { | 173 { |
|
dcheng
2015/05/01 23:39:36
Should we re-express this in terms of insertAfter(
alexmos
2015/05/02 00:21:45
Done. Thanks for reminding me to do it! Any thou
dcheng
2015/05/04 17:30:36
The original check was to make sure we didn't acci
alexmos
2015/05/04 21:38:54
Hmm, that doesn't seem to work, because we call in
| |
| 147 // FIXME: Original code asserts that the frames have the same Page. We | 174 // FIXME: Original code asserts that the frames have the same Page. We |
| 148 // should add an equivalent check... figure out what. | 175 // should add an equivalent check... figure out what. |
| 149 child->m_parent = this; | 176 child->m_parent = this; |
| 150 WebFrame* oldLast = m_lastChild; | 177 WebFrame* oldLast = m_lastChild; |
| 151 m_lastChild = child; | 178 m_lastChild = child; |
| 152 | 179 |
| 153 if (oldLast) { | 180 if (oldLast) { |
| 154 child->m_previousSibling = oldLast; | 181 child->m_previousSibling = oldLast; |
| 155 oldLast->m_nextSibling = child; | 182 oldLast->m_nextSibling = child; |
| 156 } else { | 183 } else { |
| (...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 318 bool WebFrame::isFrameAlive(VisitorDispatcher visitor, const WebFrame* frame ) { return isFrameAliveImpl(visitor, frame); } \ | 345 bool WebFrame::isFrameAlive(VisitorDispatcher visitor, const WebFrame* frame ) { return isFrameAliveImpl(visitor, frame); } \ |
| 319 void WebFrame::clearWeakFrames(VisitorDispatcher visitor) { clearWeakFramesI mpl(visitor); } | 346 void WebFrame::clearWeakFrames(VisitorDispatcher visitor) { clearWeakFramesI mpl(visitor); } |
| 320 | 347 |
| 321 DEFINE_VISITOR_METHOD(Visitor*) | 348 DEFINE_VISITOR_METHOD(Visitor*) |
| 322 DEFINE_VISITOR_METHOD(InlinedGlobalMarkingVisitor) | 349 DEFINE_VISITOR_METHOD(InlinedGlobalMarkingVisitor) |
| 323 | 350 |
| 324 #undef DEFINE_VISITOR_METHOD | 351 #undef DEFINE_VISITOR_METHOD |
| 325 #endif | 352 #endif |
| 326 | 353 |
| 327 } // namespace blink | 354 } // namespace blink |
| OLD | NEW |