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 702 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
713 if (l->renderer()->isRenderView()) { | 713 if (l->renderer()->isRenderView()) { |
714 RenderView* renderView = toRenderView(l->renderer()); | 714 RenderView* renderView = toRenderView(l->renderer()); |
715 writeRenderNamedFlowThreads(ts, renderView, rootLayer, paintDirtyRect, i
ndent, behavior); | 715 writeRenderNamedFlowThreads(ts, renderView, rootLayer, paintDirtyRect, i
ndent, behavior); |
716 } | 716 } |
717 } | 717 } |
718 | 718 |
719 static String nodePosition(Node* node) | 719 static String nodePosition(Node* node) |
720 { | 720 { |
721 StringBuilder result; | 721 StringBuilder result; |
722 | 722 |
723 Element* body = node->document()->body(); | 723 Element* body = node->document().body(); |
724 Node* parent; | 724 Node* parent; |
725 for (Node* n = node; n; n = parent) { | 725 for (Node* n = node; n; n = parent) { |
726 parent = n->parentOrShadowHostNode(); | 726 parent = n->parentOrShadowHostNode(); |
727 if (n != node) | 727 if (n != node) |
728 result.appendLiteral(" of "); | 728 result.appendLiteral(" of "); |
729 if (parent) { | 729 if (parent) { |
730 if (body && n == body) { | 730 if (body && n == body) { |
731 // We don't care what offset body may be in the document. | 731 // We don't care what offset body may be in the document. |
732 result.appendLiteral("body"); | 732 result.appendLiteral("body"); |
733 break; | 733 break; |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
798 printContext.begin(toRenderBox(renderer)->width()); | 798 printContext.begin(toRenderBox(renderer)->width()); |
799 | 799 |
800 return externalRepresentation(toRenderBox(renderer), behavior); | 800 return externalRepresentation(toRenderBox(renderer), behavior); |
801 } | 801 } |
802 | 802 |
803 String externalRepresentation(Element* element, RenderAsTextBehavior behavior) | 803 String externalRepresentation(Element* element, RenderAsTextBehavior behavior) |
804 { | 804 { |
805 // Doesn't support printing mode. | 805 // Doesn't support printing mode. |
806 ASSERT(!(behavior & RenderAsTextPrintingMode)); | 806 ASSERT(!(behavior & RenderAsTextPrintingMode)); |
807 if (!(behavior & RenderAsTextDontUpdateLayout)) | 807 if (!(behavior & RenderAsTextDontUpdateLayout)) |
808 element->document()->updateLayout(); | 808 element->document().updateLayout(); |
809 | 809 |
810 RenderObject* renderer = element->renderer(); | 810 RenderObject* renderer = element->renderer(); |
811 if (!renderer || !renderer->isBox()) | 811 if (!renderer || !renderer->isBox()) |
812 return String(); | 812 return String(); |
813 | 813 |
814 return externalRepresentation(toRenderBox(renderer), behavior | RenderAsText
ShowAllLayers); | 814 return externalRepresentation(toRenderBox(renderer), behavior | RenderAsText
ShowAllLayers); |
815 } | 815 } |
816 | 816 |
817 static void writeCounterValuesFromChildren(TextStream& stream, RenderObject* par
ent, bool& isFirstCounter) | 817 static void writeCounterValuesFromChildren(TextStream& stream, RenderObject* par
ent, bool& isFirstCounter) |
818 { | 818 { |
819 for (RenderObject* child = parent->firstChild(); child; child = child->nextS
ibling()) { | 819 for (RenderObject* child = parent->firstChild(); child; child = child->nextS
ibling()) { |
820 if (child->isCounter()) { | 820 if (child->isCounter()) { |
821 if (!isFirstCounter) | 821 if (!isFirstCounter) |
822 stream << " "; | 822 stream << " "; |
823 isFirstCounter = false; | 823 isFirstCounter = false; |
824 String str(toRenderText(child)->text()); | 824 String str(toRenderText(child)->text()); |
825 stream << str; | 825 stream << str; |
826 } | 826 } |
827 } | 827 } |
828 } | 828 } |
829 | 829 |
830 String counterValueForElement(Element* element) | 830 String counterValueForElement(Element* element) |
831 { | 831 { |
832 // Make sure the element is not freed during the layout. | 832 // Make sure the element is not freed during the layout. |
833 RefPtr<Element> elementRef(element); | 833 RefPtr<Element> elementRef(element); |
834 element->document()->updateLayout(); | 834 element->document().updateLayout(); |
835 TextStream stream; | 835 TextStream stream; |
836 bool isFirstCounter = true; | 836 bool isFirstCounter = true; |
837 // The counter renderers should be children of :before or :after pseudo-elem
ents. | 837 // The counter renderers should be children of :before or :after pseudo-elem
ents. |
838 if (RenderObject* before = element->pseudoElementRenderer(BEFORE)) | 838 if (RenderObject* before = element->pseudoElementRenderer(BEFORE)) |
839 writeCounterValuesFromChildren(stream, before, isFirstCounter); | 839 writeCounterValuesFromChildren(stream, before, isFirstCounter); |
840 if (RenderObject* after = element->pseudoElementRenderer(AFTER)) | 840 if (RenderObject* after = element->pseudoElementRenderer(AFTER)) |
841 writeCounterValuesFromChildren(stream, after, isFirstCounter); | 841 writeCounterValuesFromChildren(stream, after, isFirstCounter); |
842 return stream.release(); | 842 return stream.release(); |
843 } | 843 } |
844 | 844 |
845 String markerTextForListItem(Element* element) | 845 String markerTextForListItem(Element* element) |
846 { | 846 { |
847 // Make sure the element is not freed during the layout. | 847 // Make sure the element is not freed during the layout. |
848 RefPtr<Element> elementRef(element); | 848 RefPtr<Element> elementRef(element); |
849 element->document()->updateLayout(); | 849 element->document().updateLayout(); |
850 | 850 |
851 RenderObject* renderer = element->renderer(); | 851 RenderObject* renderer = element->renderer(); |
852 if (!renderer || !renderer->isListItem()) | 852 if (!renderer || !renderer->isListItem()) |
853 return String(); | 853 return String(); |
854 | 854 |
855 return toRenderListItem(renderer)->markerText(); | 855 return toRenderListItem(renderer)->markerText(); |
856 } | 856 } |
857 | 857 |
858 } // namespace WebCore | 858 } // namespace WebCore |
OLD | NEW |