OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2009, 2010 Apple Inc. All rights reserved. | 2 * Copyright (C) 2009, 2010 Apple Inc. All rights reserved. |
3 * Copyright (C) Research In Motion Limited 2010. All rights reserved. | 3 * Copyright (C) Research In Motion Limited 2010. All rights reserved. |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
7 * are met: | 7 * are met: |
8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
110 | 110 |
111 if (oldChild->isListItem()) | 111 if (oldChild->isListItem()) |
112 toRenderListItem(oldChild)->updateListMarkerNumbers(); | 112 toRenderListItem(oldChild)->updateListMarkerNumbers(); |
113 | 113 |
114 if (oldChild->isOutOfFlowPositioned() && owner->childrenInline()) | 114 if (oldChild->isOutOfFlowPositioned() && owner->childrenInline()) |
115 owner->dirtyLinesFromChangedChild(oldChild); | 115 owner->dirtyLinesFromChangedChild(oldChild); |
116 | 116 |
117 if (oldChild->isRenderRegion()) | 117 if (oldChild->isRenderRegion()) |
118 toRenderRegion(oldChild)->detachRegion(); | 118 toRenderRegion(oldChild)->detachRegion(); |
119 | 119 |
| 120 if (oldChild->isQuote()) |
| 121 toRenderQuote(oldChild)->detachQuote(); |
| 122 |
120 if (oldChild->inRenderFlowThread()) { | 123 if (oldChild->inRenderFlowThread()) { |
121 if (oldChild->isBox()) | 124 if (oldChild->isBox()) |
122 oldChild->enclosingRenderFlowThread()->removeRenderBoxRegionInfo
(toRenderBox(oldChild)); | 125 oldChild->enclosingRenderFlowThread()->removeRenderBoxRegionInfo
(toRenderBox(oldChild)); |
123 oldChild->enclosingRenderFlowThread()->clearRenderObjectCustomStyle(
oldChild); | 126 oldChild->enclosingRenderFlowThread()->clearRenderObjectCustomStyle(
oldChild); |
124 } | 127 } |
125 | 128 |
126 if (RenderNamedFlowThread* containerFlowThread = renderNamedFlowThreadCo
ntainer(owner)) | 129 if (RenderNamedFlowThread* containerFlowThread = renderNamedFlowThreadCo
ntainer(owner)) |
127 containerFlowThread->removeFlowChild(oldChild); | 130 containerFlowThread->removeFlowChild(oldChild); |
128 | 131 |
129 #if ENABLE(SVG) | 132 #if ENABLE(SVG) |
(...skipping 21 matching lines...) Expand all Loading... |
151 setLastChild(oldChild->previousSibling()); | 154 setLastChild(oldChild->previousSibling()); |
152 | 155 |
153 oldChild->setPreviousSibling(0); | 156 oldChild->setPreviousSibling(0); |
154 oldChild->setNextSibling(0); | 157 oldChild->setNextSibling(0); |
155 oldChild->setParent(0); | 158 oldChild->setParent(0); |
156 | 159 |
157 // rendererRemovedFromTree walks the whole subtree. We can improve performan
ce | 160 // rendererRemovedFromTree walks the whole subtree. We can improve performan
ce |
158 // by skipping this step when destroying the entire tree. | 161 // by skipping this step when destroying the entire tree. |
159 if (!owner->documentBeingDestroyed()) { | 162 if (!owner->documentBeingDestroyed()) { |
160 RenderCounter::rendererRemovedFromTree(oldChild); | 163 RenderCounter::rendererRemovedFromTree(oldChild); |
161 RenderQuote::rendererRemovedFromTree(oldChild); | |
162 } | 164 } |
163 | 165 |
164 if (AXObjectCache::accessibilityEnabled()) | 166 if (AXObjectCache::accessibilityEnabled()) |
165 owner->document()->axObjectCache()->childrenChanged(owner); | 167 owner->document()->axObjectCache()->childrenChanged(owner); |
166 | 168 |
167 return oldChild; | 169 return oldChild; |
168 } | 170 } |
169 | 171 |
170 void RenderObjectChildList::appendChildNode(RenderObject* owner, RenderObject* n
ewChild, bool fullAppend) | 172 void RenderObjectChildList::appendChildNode(RenderObject* owner, RenderObject* n
ewChild, bool fullAppend) |
171 { | 173 { |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
203 | 205 |
204 if (newChild->isListItem()) | 206 if (newChild->isListItem()) |
205 toRenderListItem(newChild)->updateListMarkerNumbers(); | 207 toRenderListItem(newChild)->updateListMarkerNumbers(); |
206 | 208 |
207 if (!newChild->isFloating() && owner->childrenInline()) | 209 if (!newChild->isFloating() && owner->childrenInline()) |
208 owner->dirtyLinesFromChangedChild(newChild); | 210 owner->dirtyLinesFromChangedChild(newChild); |
209 | 211 |
210 if (newChild->isRenderRegion()) | 212 if (newChild->isRenderRegion()) |
211 toRenderRegion(newChild)->attachRegion(); | 213 toRenderRegion(newChild)->attachRegion(); |
212 | 214 |
| 215 // You can't attachQuote() otherwise the quote would be attached too ear
ly |
| 216 // and get the wrong depth since generated content is inserted into anon
ymous |
| 217 // renderers before going into the main render tree. |
| 218 |
213 if (RenderNamedFlowThread* containerFlowThread = renderNamedFlowThreadCo
ntainer(owner)) | 219 if (RenderNamedFlowThread* containerFlowThread = renderNamedFlowThreadCo
ntainer(owner)) |
214 containerFlowThread->addFlowChild(newChild); | 220 containerFlowThread->addFlowChild(newChild); |
215 } | 221 } |
216 | 222 |
217 if (!owner->documentBeingDestroyed()) { | 223 if (!owner->documentBeingDestroyed()) { |
218 RenderCounter::rendererSubtreeAttached(newChild); | 224 RenderCounter::rendererSubtreeAttached(newChild); |
219 RenderQuote::rendererSubtreeAttached(newChild); | |
220 } | 225 } |
221 newChild->setNeedsLayoutAndPrefWidthsRecalc(); // Goes up the containing blo
ck hierarchy. | 226 newChild->setNeedsLayoutAndPrefWidthsRecalc(); // Goes up the containing blo
ck hierarchy. |
222 if (!owner->normalChildNeedsLayout()) | 227 if (!owner->normalChildNeedsLayout()) |
223 owner->setChildNeedsLayout(true); // We may supply the static position f
or an absolute positioned child. | 228 owner->setChildNeedsLayout(true); // We may supply the static position f
or an absolute positioned child. |
224 | 229 |
225 if (AXObjectCache::accessibilityEnabled()) | 230 if (AXObjectCache::accessibilityEnabled()) |
226 owner->document()->axObjectCache()->childrenChanged(owner); | 231 owner->document()->axObjectCache()->childrenChanged(owner); |
227 } | 232 } |
228 | 233 |
229 void RenderObjectChildList::insertChildNode(RenderObject* owner, RenderObject* c
hild, RenderObject* beforeChild, bool fullInsert) | 234 void RenderObjectChildList::insertChildNode(RenderObject* owner, RenderObject* c
hild, RenderObject* beforeChild, bool fullInsert) |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
272 | 277 |
273 if (child->isListItem()) | 278 if (child->isListItem()) |
274 toRenderListItem(child)->updateListMarkerNumbers(); | 279 toRenderListItem(child)->updateListMarkerNumbers(); |
275 | 280 |
276 if (!child->isFloating() && owner->childrenInline()) | 281 if (!child->isFloating() && owner->childrenInline()) |
277 owner->dirtyLinesFromChangedChild(child); | 282 owner->dirtyLinesFromChangedChild(child); |
278 | 283 |
279 if (child->isRenderRegion()) | 284 if (child->isRenderRegion()) |
280 toRenderRegion(child)->attachRegion(); | 285 toRenderRegion(child)->attachRegion(); |
281 | 286 |
| 287 // Calling attachQuote() here would be too early (before anonymous rende
rers are inserted) |
| 288 // see appendChild() for more explanation. |
| 289 |
282 if (RenderNamedFlowThread* containerFlowThread = renderNamedFlowThreadCo
ntainer(owner)) | 290 if (RenderNamedFlowThread* containerFlowThread = renderNamedFlowThreadCo
ntainer(owner)) |
283 containerFlowThread->addFlowChild(child, beforeChild); | 291 containerFlowThread->addFlowChild(child, beforeChild); |
284 } | 292 } |
285 | 293 |
286 if (!owner->documentBeingDestroyed()) { | 294 if (!owner->documentBeingDestroyed()) { |
287 RenderCounter::rendererSubtreeAttached(child); | 295 RenderCounter::rendererSubtreeAttached(child); |
288 RenderQuote::rendererSubtreeAttached(child); | |
289 } | 296 } |
290 child->setNeedsLayoutAndPrefWidthsRecalc(); | 297 child->setNeedsLayoutAndPrefWidthsRecalc(); |
291 if (!owner->normalChildNeedsLayout()) | 298 if (!owner->normalChildNeedsLayout()) |
292 owner->setChildNeedsLayout(true); // We may supply the static position f
or an absolute positioned child. | 299 owner->setChildNeedsLayout(true); // We may supply the static position f
or an absolute positioned child. |
293 | 300 |
294 if (AXObjectCache::accessibilityEnabled()) | 301 if (AXObjectCache::accessibilityEnabled()) |
295 owner->document()->axObjectCache()->childrenChanged(owner); | 302 owner->document()->axObjectCache()->childrenChanged(owner); |
296 } | 303 } |
297 | 304 |
298 static RenderObject* findBeforeAfterParent(RenderObject* object) | 305 static RenderObject* findBeforeAfterParent(RenderObject* object) |
(...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
570 if (!generatedContentContainer) | 577 if (!generatedContentContainer) |
571 return; | 578 return; |
572 | 579 |
573 // Handle placement of run-ins. We do the run-in placement at the end since
generatedContentContainer can get destroyed. | 580 // Handle placement of run-ins. We do the run-in placement at the end since
generatedContentContainer can get destroyed. |
574 RenderObject* generatedContentContainerImmediateParent = generatedContentCon
tainer->parent(); | 581 RenderObject* generatedContentContainerImmediateParent = generatedContentCon
tainer->parent(); |
575 if (generatedContentContainerImmediateParent->isRenderBlock()) | 582 if (generatedContentContainerImmediateParent->isRenderBlock()) |
576 toRenderBlock(generatedContentContainerImmediateParent)->placeRunInIfNee
ded(generatedContentContainer, PlaceGeneratedRunIn); | 583 toRenderBlock(generatedContentContainerImmediateParent)->placeRunInIfNee
ded(generatedContentContainer, PlaceGeneratedRunIn); |
577 } | 584 } |
578 | 585 |
579 } // namespace WebCore | 586 } // namespace WebCore |
OLD | NEW |