OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
4 * (C) 2000 Dirk Mueller (mueller@kde.org) | 4 * (C) 2000 Dirk Mueller (mueller@kde.org) |
5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com) | 5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com) |
6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2011 Apple Inc. All rights reserv
ed. | 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2011 Apple Inc. All rights reserv
ed. |
7 * Copyright (C) 2009 Google Inc. All rights reserved. | 7 * Copyright (C) 2009 Google Inc. All rights reserved. |
8 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo
bile.com/) | 8 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo
bile.com/) |
9 * | 9 * |
10 * This library is free software; you can redistribute it and/or | 10 * This library is free software; you can redistribute it and/or |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
45 #include "core/frame/UseCounter.h" | 45 #include "core/frame/UseCounter.h" |
46 #include "core/html/HTMLAnchorElement.h" | 46 #include "core/html/HTMLAnchorElement.h" |
47 #include "core/html/HTMLElement.h" | 47 #include "core/html/HTMLElement.h" |
48 #include "core/html/HTMLHtmlElement.h" | 48 #include "core/html/HTMLHtmlElement.h" |
49 #include "core/html/HTMLTableCellElement.h" | 49 #include "core/html/HTMLTableCellElement.h" |
50 #include "core/html/HTMLTableElement.h" | 50 #include "core/html/HTMLTableElement.h" |
51 #include "core/page/AutoscrollController.h" | 51 #include "core/page/AutoscrollController.h" |
52 #include "core/page/EventHandler.h" | 52 #include "core/page/EventHandler.h" |
53 #include "core/page/Page.h" | 53 #include "core/page/Page.h" |
54 #include "core/paint/ObjectPainter.h" | 54 #include "core/paint/ObjectPainter.h" |
55 #include "core/rendering/FlowThreadController.h" | |
56 #include "core/rendering/HitTestResult.h" | 55 #include "core/rendering/HitTestResult.h" |
57 #include "core/rendering/RenderCounter.h" | 56 #include "core/rendering/RenderCounter.h" |
58 #include "core/rendering/RenderDeprecatedFlexibleBox.h" | 57 #include "core/rendering/RenderDeprecatedFlexibleBox.h" |
59 #include "core/rendering/RenderFlexibleBox.h" | 58 #include "core/rendering/RenderFlexibleBox.h" |
60 #include "core/rendering/RenderFlowThread.h" | 59 #include "core/rendering/RenderFlowThread.h" |
61 #include "core/rendering/RenderGeometryMap.h" | 60 #include "core/rendering/RenderGeometryMap.h" |
62 #include "core/rendering/RenderGrid.h" | 61 #include "core/rendering/RenderGrid.h" |
63 #include "core/rendering/RenderImage.h" | 62 #include "core/rendering/RenderImage.h" |
64 #include "core/rendering/RenderImageResourceStyleImage.h" | 63 #include "core/rendering/RenderImageResourceStyleImage.h" |
65 #include "core/rendering/RenderInline.h" | 64 #include "core/rendering/RenderInline.h" |
(...skipping 553 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
619 } | 618 } |
620 | 619 |
621 return 0; | 620 return 0; |
622 } | 621 } |
623 | 622 |
624 RenderFlowThread* RenderObject::locateFlowThreadContainingBlock() const | 623 RenderFlowThread* RenderObject::locateFlowThreadContainingBlock() const |
625 { | 624 { |
626 ASSERT(flowThreadState() != NotInsideFlowThread); | 625 ASSERT(flowThreadState() != NotInsideFlowThread); |
627 | 626 |
628 // See if we have the thread cached because we're in the middle of layout. | 627 // See if we have the thread cached because we're in the middle of layout. |
629 RenderFlowThread* flowThread = view()->flowThreadController()->currentRender
FlowThread(); | 628 if (LayoutState* layoutState = view()->layoutState()) { |
630 if (flowThread) | 629 if (RenderFlowThread* flowThread = layoutState->flowThread()) |
631 return flowThread; | 630 return flowThread; |
| 631 } |
632 | 632 |
633 // Not in the middle of layout so have to find the thread the slow way. | 633 // Not in the middle of layout so have to find the thread the slow way. |
634 RenderObject* curr = const_cast<RenderObject*>(this); | 634 RenderObject* curr = const_cast<RenderObject*>(this); |
635 while (curr) { | 635 while (curr) { |
636 if (curr->isRenderFlowThread()) | 636 if (curr->isRenderFlowThread()) |
637 return toRenderFlowThread(curr); | 637 return toRenderFlowThread(curr); |
638 curr = curr->containingBlock(); | 638 curr = curr->containingBlock(); |
639 } | 639 } |
640 return 0; | 640 return 0; |
641 } | 641 } |
(...skipping 1751 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2393 if (documentBeingDestroyed()) { | 2393 if (documentBeingDestroyed()) { |
2394 destroy(); | 2394 destroy(); |
2395 return; | 2395 return; |
2396 } | 2396 } |
2397 | 2397 |
2398 RenderObject* destroyRoot = this; | 2398 RenderObject* destroyRoot = this; |
2399 for (RenderObject* destroyRootParent = destroyRoot->parent(); destroyRootPar
ent && destroyRootParent->isAnonymous(); destroyRoot = destroyRootParent, destro
yRootParent = destroyRootParent->parent()) { | 2399 for (RenderObject* destroyRootParent = destroyRoot->parent(); destroyRootPar
ent && destroyRootParent->isAnonymous(); destroyRoot = destroyRootParent, destro
yRootParent = destroyRootParent->parent()) { |
2400 // Anonymous block continuations are tracked and destroyed elsewhere (se
e the bottom of RenderBlock::removeChild) | 2400 // Anonymous block continuations are tracked and destroyed elsewhere (se
e the bottom of RenderBlock::removeChild) |
2401 if (destroyRootParent->isRenderBlock() && toRenderBlock(destroyRootParen
t)->isAnonymousBlockContinuation()) | 2401 if (destroyRootParent->isRenderBlock() && toRenderBlock(destroyRootParen
t)->isAnonymousBlockContinuation()) |
2402 break; | 2402 break; |
2403 // Render flow threads are tracked by the FlowThreadController, so we ca
n't destroy them here. | 2403 // Column spans are tracked elsewhere, so we can't destroy them here. |
2404 // Column spans are tracked elsewhere. | 2404 if (destroyRootParent->isAnonymousColumnSpanBlock()) |
2405 if (destroyRootParent->isRenderFlowThread() || destroyRootParent->isAnon
ymousColumnSpanBlock()) | |
2406 break; | 2405 break; |
2407 | 2406 |
2408 if (destroyRootParent->slowFirstChild() != destroyRoot || destroyRootPar
ent->slowLastChild() != destroyRoot) | 2407 if (destroyRootParent->slowFirstChild() != destroyRoot || destroyRootPar
ent->slowLastChild() != destroyRoot) |
2409 break; // Need to keep the anonymous parent, since it won't become e
mpty by the removal of this renderer. | 2408 break; // Need to keep the anonymous parent, since it won't become e
mpty by the removal of this renderer. |
2410 } | 2409 } |
2411 | 2410 |
2412 destroyRoot->destroy(); | 2411 destroyRoot->destroy(); |
2413 | 2412 |
2414 // WARNING: |this| is deleted here. | 2413 // WARNING: |this| is deleted here. |
2415 } | 2414 } |
(...skipping 702 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3118 { | 3117 { |
3119 if (object1) { | 3118 if (object1) { |
3120 const blink::RenderObject* root = object1; | 3119 const blink::RenderObject* root = object1; |
3121 while (root->parent()) | 3120 while (root->parent()) |
3122 root = root->parent(); | 3121 root = root->parent(); |
3123 root->showRenderTreeAndMark(object1, "*", object2, "-", 0); | 3122 root->showRenderTreeAndMark(object1, "*", object2, "-", 0); |
3124 } | 3123 } |
3125 } | 3124 } |
3126 | 3125 |
3127 #endif | 3126 #endif |
OLD | NEW |