OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2004, 2006, 2007 Apple Inc. All rights reserved. | 2 * Copyright (C) 2004, 2006, 2007 Apple Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
(...skipping 523 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
534 continue; | 534 continue; |
535 write(ts, *child, indent + 1, behavior); | 535 write(ts, *child, indent + 1, behavior); |
536 } | 536 } |
537 | 537 |
538 if (o.isLayoutPart()) { | 538 if (o.isLayoutPart()) { |
539 Widget* widget = toLayoutPart(o).widget(); | 539 Widget* widget = toLayoutPart(o).widget(); |
540 if (widget && widget->isFrameView()) { | 540 if (widget && widget->isFrameView()) { |
541 FrameView* view = toFrameView(widget); | 541 FrameView* view = toFrameView(widget); |
542 LayoutView* root = view->layoutView(); | 542 LayoutView* root = view->layoutView(); |
543 if (root) { | 543 if (root) { |
544 root->document().updateLayout(); | 544 root->document().updateStyleAndLayout(); |
545 PaintLayer* layer = root->layer(); | 545 PaintLayer* layer = root->layer(); |
546 if (layer) | 546 if (layer) |
547 LayoutTreeAsText::writeLayers(ts, layer, layer, layer->rect(
), indent + 1, behavior); | 547 LayoutTreeAsText::writeLayers(ts, layer, layer, layer->rect(
), indent + 1, behavior); |
548 } | 548 } |
549 } | 549 } |
550 } | 550 } |
551 } | 551 } |
552 | 552 |
553 enum LayerPaintPhase { | 553 enum LayerPaintPhase { |
554 LayerPaintPhaseAll = 0, | 554 LayerPaintPhaseAll = 0, |
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
779 | 779 |
780 PaintLayer* layer = layoutObject->layer(); | 780 PaintLayer* layer = layoutObject->layer(); |
781 LayoutTreeAsText::writeLayers(ts, layer, layer, layer->rect(), 0, behavior,
markedLayer); | 781 LayoutTreeAsText::writeLayers(ts, layer, layer, layer->rect(), 0, behavior,
markedLayer); |
782 writeSelection(ts, layoutObject); | 782 writeSelection(ts, layoutObject); |
783 return ts.release(); | 783 return ts.release(); |
784 } | 784 } |
785 | 785 |
786 String externalRepresentation(LocalFrame* frame, LayoutAsTextBehavior behavior,
const PaintLayer* markedLayer) | 786 String externalRepresentation(LocalFrame* frame, LayoutAsTextBehavior behavior,
const PaintLayer* markedLayer) |
787 { | 787 { |
788 if (!(behavior & LayoutAsTextDontUpdateLayout)) | 788 if (!(behavior & LayoutAsTextDontUpdateLayout)) |
789 frame->document()->updateLayout(); | 789 frame->document()->updateStyleAndLayout(); |
790 | 790 |
791 LayoutObject* layoutObject = frame->contentLayoutObject(); | 791 LayoutObject* layoutObject = frame->contentLayoutObject(); |
792 if (!layoutObject || !layoutObject->isBox()) | 792 if (!layoutObject || !layoutObject->isBox()) |
793 return String(); | 793 return String(); |
794 | 794 |
795 PrintContext printContext(frame); | 795 PrintContext printContext(frame); |
796 if (behavior & LayoutAsTextPrintingMode) { | 796 if (behavior & LayoutAsTextPrintingMode) { |
797 FloatSize size(toLayoutBox(layoutObject)->size()); | 797 FloatSize size(toLayoutBox(layoutObject)->size()); |
798 printContext.begin(size.width(), size.height()); | 798 printContext.begin(size.width(), size.height()); |
799 } | 799 } |
800 | 800 |
801 return externalRepresentation(toLayoutBox(layoutObject), behavior, markedLay
er); | 801 return externalRepresentation(toLayoutBox(layoutObject), behavior, markedLay
er); |
802 } | 802 } |
803 | 803 |
804 String externalRepresentation(Element* element, LayoutAsTextBehavior behavior) | 804 String externalRepresentation(Element* element, LayoutAsTextBehavior behavior) |
805 { | 805 { |
806 // Doesn't support printing mode. | 806 // Doesn't support printing mode. |
807 ASSERT(!(behavior & LayoutAsTextPrintingMode)); | 807 ASSERT(!(behavior & LayoutAsTextPrintingMode)); |
808 if (!(behavior & LayoutAsTextDontUpdateLayout)) | 808 if (!(behavior & LayoutAsTextDontUpdateLayout)) |
809 element->document().updateLayout(); | 809 element->document().updateStyleAndLayout(); |
810 | 810 |
811 LayoutObject* layoutObject = element->layoutObject(); | 811 LayoutObject* layoutObject = element->layoutObject(); |
812 if (!layoutObject || !layoutObject->isBox()) | 812 if (!layoutObject || !layoutObject->isBox()) |
813 return String(); | 813 return String(); |
814 | 814 |
815 return externalRepresentation(toLayoutBox(layoutObject), behavior | LayoutAs
TextShowAllLayers); | 815 return externalRepresentation(toLayoutBox(layoutObject), behavior | LayoutAs
TextShowAllLayers); |
816 } | 816 } |
817 | 817 |
818 static void writeCounterValuesFromChildren(TextStream& stream, LayoutObject* par
ent, bool& isFirstCounter) | 818 static void writeCounterValuesFromChildren(TextStream& stream, LayoutObject* par
ent, bool& isFirstCounter) |
819 { | 819 { |
820 for (LayoutObject* child = parent->slowFirstChild(); child; child = child->n
extSibling()) { | 820 for (LayoutObject* child = parent->slowFirstChild(); child; child = child->n
extSibling()) { |
821 if (child->isCounter()) { | 821 if (child->isCounter()) { |
822 if (!isFirstCounter) | 822 if (!isFirstCounter) |
823 stream << " "; | 823 stream << " "; |
824 isFirstCounter = false; | 824 isFirstCounter = false; |
825 String str(toLayoutText(child)->text()); | 825 String str(toLayoutText(child)->text()); |
826 stream << str; | 826 stream << str; |
827 } | 827 } |
828 } | 828 } |
829 } | 829 } |
830 | 830 |
831 String counterValueForElement(Element* element) | 831 String counterValueForElement(Element* element) |
832 { | 832 { |
833 element->document().updateLayout(); | 833 element->document().updateStyleAndLayout(); |
834 TextStream stream; | 834 TextStream stream; |
835 bool isFirstCounter = true; | 835 bool isFirstCounter = true; |
836 // The counter layoutObjects should be children of :before or :after pseudo-
elements. | 836 // The counter layoutObjects should be children of :before or :after pseudo-
elements. |
837 if (LayoutObject* before = element->pseudoElementLayoutObject(PseudoIdBefore
)) | 837 if (LayoutObject* before = element->pseudoElementLayoutObject(PseudoIdBefore
)) |
838 writeCounterValuesFromChildren(stream, before, isFirstCounter); | 838 writeCounterValuesFromChildren(stream, before, isFirstCounter); |
839 if (LayoutObject* after = element->pseudoElementLayoutObject(PseudoIdAfter)) | 839 if (LayoutObject* after = element->pseudoElementLayoutObject(PseudoIdAfter)) |
840 writeCounterValuesFromChildren(stream, after, isFirstCounter); | 840 writeCounterValuesFromChildren(stream, after, isFirstCounter); |
841 return stream.release(); | 841 return stream.release(); |
842 } | 842 } |
843 | 843 |
844 String markerTextForListItem(Element* element) | 844 String markerTextForListItem(Element* element) |
845 { | 845 { |
846 element->document().updateLayout(); | 846 element->document().updateStyleAndLayout(); |
847 | 847 |
848 LayoutObject* layoutObject = element->layoutObject(); | 848 LayoutObject* layoutObject = element->layoutObject(); |
849 if (!layoutObject || !layoutObject->isListItem()) | 849 if (!layoutObject || !layoutObject->isListItem()) |
850 return String(); | 850 return String(); |
851 | 851 |
852 return toLayoutListItem(layoutObject)->markerText(); | 852 return toLayoutListItem(layoutObject)->markerText(); |
853 } | 853 } |
854 | 854 |
855 } // namespace blink | 855 } // namespace blink |
OLD | NEW |