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 800 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
811 LayoutAsTextBehavior behavior, | 811 LayoutAsTextBehavior behavior, |
812 const PaintLayer* marked_layer) { | 812 const PaintLayer* marked_layer) { |
813 if (!(behavior & kLayoutAsTextDontUpdateLayout)) | 813 if (!(behavior & kLayoutAsTextDontUpdateLayout)) |
814 frame->GetDocument()->UpdateStyleAndLayout(); | 814 frame->GetDocument()->UpdateStyleAndLayout(); |
815 | 815 |
816 LayoutObject* layout_object = frame->ContentLayoutObject(); | 816 LayoutObject* layout_object = frame->ContentLayoutObject(); |
817 if (!layout_object || !layout_object->IsBox()) | 817 if (!layout_object || !layout_object->IsBox()) |
818 return String(); | 818 return String(); |
819 | 819 |
820 PrintContext print_context(frame); | 820 PrintContext print_context(frame); |
821 if (behavior & kLayoutAsTextPrintingMode) { | 821 bool is_text_printing_mode = !!(behavior & kLayoutAsTextPrintingMode); |
| 822 if (is_text_printing_mode) { |
822 FloatSize size(ToLayoutBox(layout_object)->Size()); | 823 FloatSize size(ToLayoutBox(layout_object)->Size()); |
823 print_context.begin(size.Width(), size.Height()); | 824 print_context.begin(size.Width(), size.Height()); |
824 } | 825 } |
825 | 826 |
826 return ExternalRepresentation(ToLayoutBox(layout_object), behavior, | 827 String representation = ExternalRepresentation(ToLayoutBox(layout_object), |
827 marked_layer); | 828 behavior, marked_layer); |
| 829 if (is_text_printing_mode) |
| 830 print_context.end(); |
| 831 return representation; |
828 } | 832 } |
829 | 833 |
830 String ExternalRepresentation(Element* element, LayoutAsTextBehavior behavior) { | 834 String ExternalRepresentation(Element* element, LayoutAsTextBehavior behavior) { |
831 // Doesn't support printing mode. | 835 // Doesn't support printing mode. |
832 DCHECK(!(behavior & kLayoutAsTextPrintingMode)); | 836 DCHECK(!(behavior & kLayoutAsTextPrintingMode)); |
833 if (!(behavior & kLayoutAsTextDontUpdateLayout)) | 837 if (!(behavior & kLayoutAsTextDontUpdateLayout)) |
834 element->GetDocument().UpdateStyleAndLayout(); | 838 element->GetDocument().UpdateStyleAndLayout(); |
835 | 839 |
836 LayoutObject* layout_object = element->GetLayoutObject(); | 840 LayoutObject* layout_object = element->GetLayoutObject(); |
837 if (!layout_object || !layout_object->IsBox()) | 841 if (!layout_object || !layout_object->IsBox()) |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
874 element->GetDocument().UpdateStyleAndLayout(); | 878 element->GetDocument().UpdateStyleAndLayout(); |
875 | 879 |
876 LayoutObject* layout_object = element->GetLayoutObject(); | 880 LayoutObject* layout_object = element->GetLayoutObject(); |
877 if (!layout_object || !layout_object->IsListItem()) | 881 if (!layout_object || !layout_object->IsListItem()) |
878 return String(); | 882 return String(); |
879 | 883 |
880 return ToLayoutListItem(layout_object)->MarkerText(); | 884 return ToLayoutListItem(layout_object)->MarkerText(); |
881 } | 885 } |
882 | 886 |
883 } // namespace blink | 887 } // namespace blink |
OLD | NEW |