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 496 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
507 static void write(TextStream& ts, Layer& layer, | 507 static void write(TextStream& ts, Layer& layer, |
508 const LayoutRect& layerBounds, const LayoutRect& backgroundClipRect, const L
ayoutRect& clipRect, const LayoutRect& outlineClipRect, | 508 const LayoutRect& layerBounds, const LayoutRect& backgroundClipRect, const L
ayoutRect& clipRect, const LayoutRect& outlineClipRect, |
509 LayerPaintPhase paintPhase = LayerPaintPhaseAll, int indent = 0, LayoutAsTex
tBehavior behavior = LayoutAsTextBehaviorNormal) | 509 LayerPaintPhase paintPhase = LayerPaintPhaseAll, int indent = 0, LayoutAsTex
tBehavior behavior = LayoutAsTextBehaviorNormal) |
510 { | 510 { |
511 IntRect adjustedLayoutBounds = pixelSnappedIntRect(layerBounds); | 511 IntRect adjustedLayoutBounds = pixelSnappedIntRect(layerBounds); |
512 IntRect adjustedLayoutBoundsWithScrollbars = adjustedLayoutBounds; | 512 IntRect adjustedLayoutBoundsWithScrollbars = adjustedLayoutBounds; |
513 IntRect adjustedBackgroundClipRect = pixelSnappedIntRect(backgroundClipRect)
; | 513 IntRect adjustedBackgroundClipRect = pixelSnappedIntRect(backgroundClipRect)
; |
514 IntRect adjustedClipRect = pixelSnappedIntRect(clipRect); | 514 IntRect adjustedClipRect = pixelSnappedIntRect(clipRect); |
515 IntRect adjustedOutlineClipRect = pixelSnappedIntRect(outlineClipRect); | 515 IntRect adjustedOutlineClipRect = pixelSnappedIntRect(outlineClipRect); |
516 | 516 |
517 Settings* settings = layer.renderer()->document().settings(); | 517 Settings* settings = layer.layoutObject()->document().settings(); |
518 bool reportFrameScrollInfo = layer.renderer()->isLayoutView() && settings &&
!settings->rootLayerScrolls(); | 518 bool reportFrameScrollInfo = layer.layoutObject()->isLayoutView() && setting
s && !settings->rootLayerScrolls(); |
519 | 519 |
520 if (reportFrameScrollInfo) { | 520 if (reportFrameScrollInfo) { |
521 LayoutView* layoutView = toLayoutView(layer.renderer()); | 521 LayoutView* layoutView = toLayoutView(layer.layoutObject()); |
522 | 522 |
523 adjustedLayoutBoundsWithScrollbars.setWidth(layoutView->viewWidth(Includ
eScrollbars)); | 523 adjustedLayoutBoundsWithScrollbars.setWidth(layoutView->viewWidth(Includ
eScrollbars)); |
524 adjustedLayoutBoundsWithScrollbars.setHeight(layoutView->viewHeight(Incl
udeScrollbars)); | 524 adjustedLayoutBoundsWithScrollbars.setHeight(layoutView->viewHeight(Incl
udeScrollbars)); |
525 } | 525 } |
526 | 526 |
527 writeIndent(ts, indent); | 527 writeIndent(ts, indent); |
528 | 528 |
529 if (layer.renderer()->style()->visibility() == HIDDEN) | 529 if (layer.layoutObject()->style()->visibility() == HIDDEN) |
530 ts << "hidden "; | 530 ts << "hidden "; |
531 | 531 |
532 ts << "layer "; | 532 ts << "layer "; |
533 | 533 |
534 if (behavior & LayoutAsTextShowAddresses) | 534 if (behavior & LayoutAsTextShowAddresses) |
535 ts << static_cast<const void*>(&layer) << " "; | 535 ts << static_cast<const void*>(&layer) << " "; |
536 | 536 |
537 ts << adjustedLayoutBoundsWithScrollbars; | 537 ts << adjustedLayoutBoundsWithScrollbars; |
538 | 538 |
539 if (!adjustedLayoutBounds.isEmpty()) { | 539 if (!adjustedLayoutBounds.isEmpty()) { |
540 if (!adjustedBackgroundClipRect.contains(adjustedLayoutBounds)) | 540 if (!adjustedBackgroundClipRect.contains(adjustedLayoutBounds)) |
541 ts << " backgroundClip " << adjustedBackgroundClipRect; | 541 ts << " backgroundClip " << adjustedBackgroundClipRect; |
542 if (!adjustedClipRect.contains(adjustedLayoutBoundsWithScrollbars)) | 542 if (!adjustedClipRect.contains(adjustedLayoutBoundsWithScrollbars)) |
543 ts << " clip " << adjustedClipRect; | 543 ts << " clip " << adjustedClipRect; |
544 if (!adjustedOutlineClipRect.contains(adjustedLayoutBounds)) | 544 if (!adjustedOutlineClipRect.contains(adjustedLayoutBounds)) |
545 ts << " outlineClip " << adjustedOutlineClipRect; | 545 ts << " outlineClip " << adjustedOutlineClipRect; |
546 } | 546 } |
547 if (layer.isTransparent()) | 547 if (layer.isTransparent()) |
548 ts << " transparent"; | 548 ts << " transparent"; |
549 | 549 |
550 if (layer.renderer()->hasOverflowClip() || reportFrameScrollInfo) { | 550 if (layer.layoutObject()->hasOverflowClip() || reportFrameScrollInfo) { |
551 ScrollableArea* scrollableArea; | 551 ScrollableArea* scrollableArea; |
552 if (reportFrameScrollInfo) | 552 if (reportFrameScrollInfo) |
553 scrollableArea = toLayoutView(layer.renderer())->frameView(); | 553 scrollableArea = toLayoutView(layer.layoutObject())->frameView(); |
554 else | 554 else |
555 scrollableArea = layer.scrollableArea(); | 555 scrollableArea = layer.scrollableArea(); |
556 | 556 |
557 DoublePoint adjustedScrollOffset = scrollableArea->scrollPositionDouble(
) + toDoubleSize(scrollableArea->scrollOrigin()); | 557 DoublePoint adjustedScrollOffset = scrollableArea->scrollPositionDouble(
) + toDoubleSize(scrollableArea->scrollOrigin()); |
558 if (adjustedScrollOffset.x()) | 558 if (adjustedScrollOffset.x()) |
559 ts << " scrollX " << adjustedScrollOffset.x(); | 559 ts << " scrollX " << adjustedScrollOffset.x(); |
560 if (adjustedScrollOffset.y()) | 560 if (adjustedScrollOffset.y()) |
561 ts << " scrollY " << adjustedScrollOffset.y(); | 561 ts << " scrollY " << adjustedScrollOffset.y(); |
562 if (layer.layoutBox() && layer.layoutBox()->pixelSnappedClientWidth() !=
layer.layoutBox()->pixelSnappedScrollWidth()) | 562 if (layer.layoutBox() && layer.layoutBox()->pixelSnappedClientWidth() !=
layer.layoutBox()->pixelSnappedScrollWidth()) |
563 ts << " scrollWidth " << layer.layoutBox()->pixelSnappedScrollWidth(
); | 563 ts << " scrollWidth " << layer.layoutBox()->pixelSnappedScrollWidth(
); |
564 if (layer.layoutBox() && layer.layoutBox()->pixelSnappedClientHeight() !
= layer.layoutBox()->pixelSnappedScrollHeight()) | 564 if (layer.layoutBox() && layer.layoutBox()->pixelSnappedClientHeight() !
= layer.layoutBox()->pixelSnappedScrollHeight()) |
565 ts << " scrollHeight " << layer.layoutBox()->pixelSnappedScrollHeigh
t(); | 565 ts << " scrollHeight " << layer.layoutBox()->pixelSnappedScrollHeigh
t(); |
566 } | 566 } |
567 | 567 |
568 if (paintPhase == LayerPaintPhaseBackground) | 568 if (paintPhase == LayerPaintPhaseBackground) |
569 ts << " layerType: background only"; | 569 ts << " layerType: background only"; |
570 else if (paintPhase == LayerPaintPhaseForeground) | 570 else if (paintPhase == LayerPaintPhaseForeground) |
571 ts << " layerType: foreground only"; | 571 ts << " layerType: foreground only"; |
572 | 572 |
573 if (layer.renderer()->style()->hasBlendMode()) | 573 if (layer.layoutObject()->style()->hasBlendMode()) |
574 ts << " blendMode: " << compositeOperatorName(CompositeSourceOver, layer
.renderer()->style()->blendMode()); | 574 ts << " blendMode: " << compositeOperatorName(CompositeSourceOver, layer
.layoutObject()->style()->blendMode()); |
575 | 575 |
576 if (behavior & LayoutAsTextShowCompositedLayers) { | 576 if (behavior & LayoutAsTextShowCompositedLayers) { |
577 if (layer.hasCompositedLayerMapping()) { | 577 if (layer.hasCompositedLayerMapping()) { |
578 ts << " (composited, bounds=" | 578 ts << " (composited, bounds=" |
579 << layer.compositedLayerMapping()->compositedBounds() | 579 << layer.compositedLayerMapping()->compositedBounds() |
580 << ", drawsContent=" | 580 << ", drawsContent=" |
581 << layer.compositedLayerMapping()->mainGraphicsLayer()->drawsCon
tent() | 581 << layer.compositedLayerMapping()->mainGraphicsLayer()->drawsCon
tent() |
582 << (layer.shouldIsolateCompositedDescendants() ? ", isolatesComp
ositedBlending" : "") | 582 << (layer.shouldIsolateCompositedDescendants() ? ", isolatesComp
ositedBlending" : "") |
583 << ")"; | 583 << ")"; |
584 } | 584 } |
585 } | 585 } |
586 | 586 |
587 ts << "\n"; | 587 ts << "\n"; |
588 | 588 |
589 if (paintPhase != LayerPaintPhaseBackground) | 589 if (paintPhase != LayerPaintPhaseBackground) |
590 write(ts, *layer.renderer(), indent + 1, behavior); | 590 write(ts, *layer.layoutObject(), indent + 1, behavior); |
591 } | 591 } |
592 | 592 |
593 void LayoutTreeAsText::writeLayers(TextStream& ts, const Layer* rootLayer, Layer
* layer, | 593 void LayoutTreeAsText::writeLayers(TextStream& ts, const Layer* rootLayer, Layer
* layer, |
594 const LayoutRect& paintRect, int indent, LayoutAsTextBehavior behavior) | 594 const LayoutRect& paintRect, int indent, LayoutAsTextBehavior behavior) |
595 { | 595 { |
596 // Calculate the clip rects we should use. | 596 // Calculate the clip rects we should use. |
597 LayoutRect layerBounds; | 597 LayoutRect layerBounds; |
598 ClipRect damageRect, clipRectToApply, outlineRect; | 598 ClipRect damageRect, clipRectToApply, outlineRect; |
599 layer->clipper().calculateRects(ClipRectsContext(rootLayer, UncachedClipRect
s), paintRect, layerBounds, damageRect, clipRectToApply, outlineRect); | 599 layer->clipper().calculateRects(ClipRectsContext(rootLayer, UncachedClipRect
s), paintRect, layerBounds, damageRect, clipRectToApply, outlineRect); |
600 | 600 |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
731 return externalRepresentation(toLayoutBox(renderer), behavior); | 731 return externalRepresentation(toLayoutBox(renderer), behavior); |
732 } | 732 } |
733 | 733 |
734 String externalRepresentation(Element* element, LayoutAsTextBehavior behavior) | 734 String externalRepresentation(Element* element, LayoutAsTextBehavior behavior) |
735 { | 735 { |
736 // Doesn't support printing mode. | 736 // Doesn't support printing mode. |
737 ASSERT(!(behavior & LayoutAsTextPrintingMode)); | 737 ASSERT(!(behavior & LayoutAsTextPrintingMode)); |
738 if (!(behavior & LayoutAsTextDontUpdateLayout)) | 738 if (!(behavior & LayoutAsTextDontUpdateLayout)) |
739 element->document().updateLayout(); | 739 element->document().updateLayout(); |
740 | 740 |
741 LayoutObject* renderer = element->renderer(); | 741 LayoutObject* renderer = element->layoutObject(); |
742 if (!renderer || !renderer->isBox()) | 742 if (!renderer || !renderer->isBox()) |
743 return String(); | 743 return String(); |
744 | 744 |
745 return externalRepresentation(toLayoutBox(renderer), behavior | LayoutAsText
ShowAllLayers); | 745 return externalRepresentation(toLayoutBox(renderer), behavior | LayoutAsText
ShowAllLayers); |
746 } | 746 } |
747 | 747 |
748 static void writeCounterValuesFromChildren(TextStream& stream, LayoutObject* par
ent, bool& isFirstCounter) | 748 static void writeCounterValuesFromChildren(TextStream& stream, LayoutObject* par
ent, bool& isFirstCounter) |
749 { | 749 { |
750 for (LayoutObject* child = parent->slowFirstChild(); child; child = child->n
extSibling()) { | 750 for (LayoutObject* child = parent->slowFirstChild(); child; child = child->n
extSibling()) { |
751 if (child->isCounter()) { | 751 if (child->isCounter()) { |
(...skipping 20 matching lines...) Expand all Loading... |
772 writeCounterValuesFromChildren(stream, after, isFirstCounter); | 772 writeCounterValuesFromChildren(stream, after, isFirstCounter); |
773 return stream.release(); | 773 return stream.release(); |
774 } | 774 } |
775 | 775 |
776 String markerTextForListItem(Element* element) | 776 String markerTextForListItem(Element* element) |
777 { | 777 { |
778 // Make sure the element is not freed during the layout. | 778 // Make sure the element is not freed during the layout. |
779 RefPtrWillBeRawPtr<Element> protector(element); | 779 RefPtrWillBeRawPtr<Element> protector(element); |
780 element->document().updateLayout(); | 780 element->document().updateLayout(); |
781 | 781 |
782 LayoutObject* renderer = element->renderer(); | 782 LayoutObject* renderer = element->layoutObject(); |
783 if (!renderer || !renderer->isListItem()) | 783 if (!renderer || !renderer->isListItem()) |
784 return String(); | 784 return String(); |
785 | 785 |
786 return toLayoutListItem(renderer)->markerText(); | 786 return toLayoutListItem(renderer)->markerText(); |
787 } | 787 } |
788 | 788 |
789 } // namespace blink | 789 } // namespace blink |
OLD | NEW |