| OLD | NEW | 
|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #include "config.h" | 5 #include "config.h" | 
| 6 | 6 | 
| 7 #include "core/layout/LayoutTestHelper.h" | 7 #include "core/layout/LayoutTestHelper.h" | 
| 8 #include "core/layout/LayoutText.h" | 8 #include "core/layout/LayoutText.h" | 
| 9 #include "core/layout/LayoutView.h" | 9 #include "core/layout/LayoutView.h" | 
| 10 #include "core/layout/line/InlineTextBox.h" | 10 #include "core/layout/line/InlineTextBox.h" | 
| 11 #include "core/page/FocusController.h" | 11 #include "core/page/FocusController.h" | 
| 12 #include "core/paint/DeprecatedPaintLayer.h" | 12 #include "core/paint/DeprecatedPaintLayer.h" | 
| 13 #include "core/paint/DeprecatedPaintLayerPainter.h" | 13 #include "core/paint/DeprecatedPaintLayerPainter.h" | 
| 14 #include "core/paint/LayerClipRecorder.h" | 14 #include "core/paint/LayerClipRecorder.h" | 
| 15 #include "core/paint/LayoutObjectDrawingRecorder.h" | 15 #include "core/paint/LayoutObjectDrawingRecorder.h" | 
| 16 #include "core/paint/ScopeRecorder.h" | 16 #include "core/paint/ScopeRecorder.h" | 
| 17 #include "core/paint/SubtreeRecorder.h" | 17 #include "core/paint/SubtreeRecorder.h" | 
| 18 #include "platform/graphics/GraphicsContext.h" | 18 #include "platform/graphics/GraphicsContext.h" | 
| 19 #include "platform/graphics/GraphicsLayer.h" | 19 #include "platform/graphics/GraphicsLayer.h" | 
| 20 #include "platform/graphics/paint/DisplayItemList.h" | 20 #include "platform/graphics/paint/DisplayItemList.h" | 
| 21 #include "platform/graphics/paint/DrawingDisplayItem.h" | 21 #include "platform/graphics/paint/DrawingDisplayItem.h" | 
| 22 #include "third_party/skia/include/core/SkCanvas.h" | 22 #include "third_party/skia/include/core/SkCanvas.h" | 
| 23 #include <gtest/gtest.h> | 23 #include <gtest/gtest.h> | 
| 24 | 24 | 
| 25 namespace blink { | 25 namespace blink { | 
| 26 | 26 | 
| 27 class ViewDisplayListTest : public RenderingTest { | 27 class ViewDisplayListTest : public RenderingTest { | 
| 28 public: | 28 public: | 
| 29     ViewDisplayListTest() | 29     ViewDisplayListTest() | 
| 30         : m_layoutView(nullptr) | 30         : m_layoutView(nullptr) { } | 
| 31         , m_originalDisplayItemCacheEnabled(false) { } |  | 
| 32 | 31 | 
| 33 protected: | 32 protected: | 
| 34     LayoutView* layoutView() { return m_layoutView; } | 33     LayoutView* layoutView() { return m_layoutView; } | 
| 35     DisplayItemList& rootDisplayItemList() { return *layoutView()->layer()->grap
     hicsLayerBacking()->displayItemList(); } | 34     DisplayItemList& rootDisplayItemList() { return *layoutView()->layer()->grap
     hicsLayerBacking()->displayItemList(); } | 
| 36     const Vector<OwnPtr<DisplayItem>>& newPaintListBeforeUpdate() { return rootD
     isplayItemList().m_newPaints; } | 35     const Vector<OwnPtr<DisplayItem>>& newPaintListBeforeUpdate() { return rootD
     isplayItemList().m_newPaints; } | 
| 37 | 36 | 
| 38 private: | 37 private: | 
| 39     virtual void SetUp() override | 38     virtual void SetUp() override | 
| 40     { | 39     { | 
| 41         RuntimeEnabledFeatures::setSlimmingPaintEnabled(true); | 40         RuntimeEnabledFeatures::setSlimmingPaintEnabled(true); | 
| 42         m_originalDisplayItemCacheEnabled = RuntimeEnabledFeatures::slimmingPain
     tDisplayItemCacheEnabled(); |  | 
| 43 | 41 | 
| 44         RenderingTest::SetUp(); | 42         RenderingTest::SetUp(); | 
| 45         enableCompositing(); | 43         enableCompositing(); | 
| 46 | 44 | 
| 47         m_layoutView = document().view()->layoutView(); | 45         m_layoutView = document().view()->layoutView(); | 
| 48         ASSERT_TRUE(m_layoutView); | 46         ASSERT_TRUE(m_layoutView); | 
| 49     } | 47     } | 
| 50 | 48 | 
| 51     virtual void TearDown() override | 49     virtual void TearDown() override | 
| 52     { | 50     { | 
| 53         RuntimeEnabledFeatures::setSlimmingPaintEnabled(false); | 51         RuntimeEnabledFeatures::setSlimmingPaintEnabled(false); | 
| 54         RuntimeEnabledFeatures::setSlimmingPaintDisplayItemCacheEnabled(m_origin
     alDisplayItemCacheEnabled); |  | 
| 55     } | 52     } | 
| 56 | 53 | 
| 57     LayoutView* m_layoutView; | 54     LayoutView* m_layoutView; | 
| 58     bool m_originalDisplayItemCacheEnabled; |  | 
| 59 }; | 55 }; | 
| 60 | 56 | 
| 61 class TestDisplayItem : public DisplayItem { | 57 class TestDisplayItem : public DisplayItem { | 
| 62 public: | 58 public: | 
| 63     TestDisplayItem(const LayoutObject* renderer, Type type) : DisplayItem(rende
     rer->displayItemClient(), type) { } | 59     TestDisplayItem(const LayoutObject* renderer, Type type) : DisplayItem(rende
     rer->displayItemClient(), type) { } | 
| 64     TestDisplayItem(DisplayItemClient displayItemClient, Type type) : DisplayIte
     m(displayItemClient, type) { } | 60     TestDisplayItem(DisplayItemClient displayItemClient, Type type) : DisplayIte
     m(displayItemClient, type) { } | 
| 65 | 61 | 
| 66     virtual void replay(GraphicsContext*) override final { ASSERT_NOT_REACHED();
      } | 62     virtual void replay(GraphicsContext*) override final { ASSERT_NOT_REACHED();
      } | 
| 67     virtual void appendToWebDisplayItemList(WebDisplayItemList*) const override 
     final { ASSERT_NOT_REACHED(); } | 63     virtual void appendToWebDisplayItemList(WebDisplayItemList*) const override 
     final { ASSERT_NOT_REACHED(); } | 
| 68 }; | 64 }; | 
| (...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 375 | 371 | 
| 376     EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 4, | 372     EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 4, | 
| 377         TestDisplayItem(firstRenderer, DisplayItem::paintPhaseToDrawingType(Pain
     tPhaseBlockBackground)), | 373         TestDisplayItem(firstRenderer, DisplayItem::paintPhaseToDrawingType(Pain
     tPhaseBlockBackground)), | 
| 378         TestDisplayItem(secondRenderer, DisplayItem::ClipLayerForeground), | 374         TestDisplayItem(secondRenderer, DisplayItem::ClipLayerForeground), | 
| 379         TestDisplayItem(secondRenderer, DisplayItem::paintPhaseToDrawingType(Pai
     ntPhaseBlockBackground)), | 375         TestDisplayItem(secondRenderer, DisplayItem::paintPhaseToDrawingType(Pai
     ntPhaseBlockBackground)), | 
| 380         TestDisplayItem(secondRenderer, DisplayItem::clipTypeToEndClipType(Displ
     ayItem::ClipLayerForeground))); | 376         TestDisplayItem(secondRenderer, DisplayItem::clipTypeToEndClipType(Displ
     ayItem::ClipLayerForeground))); | 
| 381 } | 377 } | 
| 382 | 378 | 
| 383 TEST_F(ViewDisplayListTest, CachedDisplayItems) | 379 TEST_F(ViewDisplayListTest, CachedDisplayItems) | 
| 384 { | 380 { | 
| 385     RuntimeEnabledFeatures::setSlimmingPaintDisplayItemCacheEnabled(true); |  | 
| 386 |  | 
| 387     setBodyInnerHTML("<div id='first'><div id='second'></div></div>"); | 381     setBodyInnerHTML("<div id='first'><div id='second'></div></div>"); | 
| 388     LayoutBoxModelObject* firstRenderer = toLayoutBoxModelObject(document().body
     ()->firstChild()->layoutObject()); | 382     LayoutBoxModelObject* firstRenderer = toLayoutBoxModelObject(document().body
     ()->firstChild()->layoutObject()); | 
| 389     LayoutBoxModelObject* secondRenderer = toLayoutBoxModelObject(document().bod
     y()->firstChild()->firstChild()->layoutObject()); | 383     LayoutBoxModelObject* secondRenderer = toLayoutBoxModelObject(document().bod
     y()->firstChild()->firstChild()->layoutObject()); | 
| 390     GraphicsContext context(nullptr, &rootDisplayItemList()); | 384     GraphicsContext context(nullptr, &rootDisplayItemList()); | 
| 391 | 385 | 
| 392     drawRect(&context, firstRenderer, PaintPhaseBlockBackground, FloatRect(100, 
     100, 150, 150)); | 386     drawRect(&context, firstRenderer, PaintPhaseBlockBackground, FloatRect(100, 
     100, 150, 150)); | 
| 393     drawRect(&context, secondRenderer, PaintPhaseBlockBackground, FloatRect(100,
      100, 150, 150)); | 387     drawRect(&context, secondRenderer, PaintPhaseBlockBackground, FloatRect(100,
      100, 150, 150)); | 
| 394     rootDisplayItemList().endNewPaints(); | 388     rootDisplayItemList().endNewPaints(); | 
| 395 | 389 | 
| 396     EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 2, | 390     EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 2, | 
| (...skipping 20 matching lines...) Expand all  Loading... | 
| 417     // The second display item should be cached. | 411     // The second display item should be cached. | 
| 418     EXPECT_EQ(secondDisplayItem, rootDisplayItemList().paintList()[1].get()); | 412     EXPECT_EQ(secondDisplayItem, rootDisplayItemList().paintList()[1].get()); | 
| 419     EXPECT_TRUE(rootDisplayItemList().clientCacheIsValid(firstRenderer->displayI
     temClient())); | 413     EXPECT_TRUE(rootDisplayItemList().clientCacheIsValid(firstRenderer->displayI
     temClient())); | 
| 420     EXPECT_TRUE(rootDisplayItemList().clientCacheIsValid(secondRenderer->display
     ItemClient())); | 414     EXPECT_TRUE(rootDisplayItemList().clientCacheIsValid(secondRenderer->display
     ItemClient())); | 
| 421 | 415 | 
| 422     rootDisplayItemList().invalidateAll(); | 416     rootDisplayItemList().invalidateAll(); | 
| 423     EXPECT_FALSE(rootDisplayItemList().clientCacheIsValid(firstRenderer->display
     ItemClient())); | 417     EXPECT_FALSE(rootDisplayItemList().clientCacheIsValid(firstRenderer->display
     ItemClient())); | 
| 424     EXPECT_FALSE(rootDisplayItemList().clientCacheIsValid(secondRenderer->displa
     yItemClient())); | 418     EXPECT_FALSE(rootDisplayItemList().clientCacheIsValid(secondRenderer->displa
     yItemClient())); | 
| 425 } | 419 } | 
| 426 | 420 | 
| 427 TEST_F(ViewDisplayListTest, FullDocumentPaintingWithCaret_CacheDisabled) | 421 TEST_F(ViewDisplayListTest, FullDocumentPaintingWithCaret) | 
| 428 { | 422 { | 
| 429     RuntimeEnabledFeatures::setSlimmingPaintDisplayItemCacheEnabled(false); |  | 
| 430 |  | 
| 431     setBodyInnerHTML("<div id='div' contentEditable='true' style='outline:none'>
     XYZ</div>"); | 423     setBodyInnerHTML("<div id='div' contentEditable='true' style='outline:none'>
     XYZ</div>"); | 
| 432     document().page()->focusController().setActive(true); | 424     document().page()->focusController().setActive(true); | 
| 433     document().page()->focusController().setFocused(true); | 425     document().page()->focusController().setFocused(true); | 
| 434     LayoutView* layoutView = document().layoutView(); |  | 
| 435     DeprecatedPaintLayer* rootLayer = layoutView->layer(); |  | 
| 436     LayoutObject* htmlRenderer = document().documentElement()->layoutObject(); |  | 
| 437     Element* div = toElement(document().body()->firstChild()); |  | 
| 438     LayoutObject* divRenderer = document().body()->firstChild()->layoutObject(); |  | 
| 439     InlineTextBox* textInlineBox = toLayoutText(div->firstChild()->layoutObject(
     ))->firstTextBox(); |  | 
| 440 |  | 
| 441     SkCanvas canvas(800, 600); |  | 
| 442     GraphicsContext context(&canvas, &rootDisplayItemList()); |  | 
| 443     DeprecatedPaintLayerPaintingInfo paintingInfo(rootLayer, LayoutRect(0, 0, 80
     0, 600), PaintBehaviorNormal, LayoutSize()); |  | 
| 444     DeprecatedPaintLayerPainter(*rootLayer).paintLayerContents(&context, paintin
     gInfo, PaintLayerPaintingCompositingAllPhases); |  | 
| 445     rootDisplayItemList().endNewPaints(); |  | 
| 446 |  | 
| 447     EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 2, |  | 
| 448         TestDisplayItem(htmlRenderer, DisplayItem::BoxDecorationBackground), |  | 
| 449         TestDisplayItem(textInlineBox->displayItemClient(), DisplayItem::paintPh
     aseToDrawingType(PaintPhaseForeground))); |  | 
| 450 |  | 
| 451     div->focus(); |  | 
| 452     document().view()->updateLayoutAndStyleForPainting(); |  | 
| 453     DeprecatedPaintLayerPainter(*rootLayer).paintLayerContents(&context, paintin
     gInfo, PaintLayerPaintingCompositingAllPhases); |  | 
| 454     rootDisplayItemList().endNewPaints(); |  | 
| 455 |  | 
| 456     EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 3, |  | 
| 457         TestDisplayItem(htmlRenderer, DisplayItem::BoxDecorationBackground), |  | 
| 458         TestDisplayItem(textInlineBox->displayItemClient(), DisplayItem::paintPh
     aseToDrawingType(PaintPhaseForeground)), |  | 
| 459         TestDisplayItem(divRenderer, DisplayItem::Caret)); |  | 
| 460 } |  | 
| 461 |  | 
| 462 TEST_F(ViewDisplayListTest, FullDocumentPaintingWithCaret_CacheEnabled) |  | 
| 463 { |  | 
| 464     RuntimeEnabledFeatures::setSlimmingPaintDisplayItemCacheEnabled(true); |  | 
| 465 |  | 
| 466     setBodyInnerHTML("<div id='div' contentEditable='true' style='outline:none'>
     XYZ</div>"); |  | 
| 467     document().page()->focusController().setActive(true); |  | 
| 468     document().page()->focusController().setFocused(true); |  | 
| 469     LayoutView* layoutView = document().layoutView(); | 426     LayoutView* layoutView = document().layoutView(); | 
| 470     DeprecatedPaintLayer* rootLayer = layoutView->layer(); | 427     DeprecatedPaintLayer* rootLayer = layoutView->layer(); | 
| 471     LayoutObject* htmlRenderer = document().documentElement()->layoutObject(); | 428     LayoutObject* htmlRenderer = document().documentElement()->layoutObject(); | 
| 472     LayoutObject* bodyRenderer = document().body()->layoutObject(); | 429     LayoutObject* bodyRenderer = document().body()->layoutObject(); | 
| 473     Element* div = toElement(document().body()->firstChild()); | 430     Element* div = toElement(document().body()->firstChild()); | 
| 474     LayoutObject* divRenderer = document().body()->firstChild()->layoutObject(); | 431     LayoutObject* divRenderer = document().body()->firstChild()->layoutObject(); | 
| 475     InlineTextBox* textInlineBox = toLayoutText(div->firstChild()->layoutObject(
     ))->firstTextBox(); | 432     InlineTextBox* textInlineBox = toLayoutText(div->firstChild()->layoutObject(
     ))->firstTextBox(); | 
| 476 | 433 | 
| 477     SkCanvas canvas(800, 600); | 434     SkCanvas canvas(800, 600); | 
| 478     GraphicsContext context(&canvas, &rootDisplayItemList()); | 435     GraphicsContext context(&canvas, &rootDisplayItemList()); | 
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 565         TestDisplayItem(container2, DisplayItem::paintPhaseToDrawingType(PaintPh
     aseForeground)), | 522         TestDisplayItem(container2, DisplayItem::paintPhaseToDrawingType(PaintPh
     aseForeground)), | 
| 566         TestDisplayItem(container1, DisplayItem::paintPhaseToDrawingType(PaintPh
     aseBlockBackground)), | 523         TestDisplayItem(container1, DisplayItem::paintPhaseToDrawingType(PaintPh
     aseBlockBackground)), | 
| 567         TestDisplayItem(content1, DisplayItem::paintPhaseToDrawingType(PaintPhas
     eBlockBackground)), | 524         TestDisplayItem(content1, DisplayItem::paintPhaseToDrawingType(PaintPhas
     eBlockBackground)), | 
| 568         TestDisplayItem(content1, DisplayItem::paintPhaseToDrawingType(PaintPhas
     eForeground)), | 525         TestDisplayItem(content1, DisplayItem::paintPhaseToDrawingType(PaintPhas
     eForeground)), | 
| 569         TestDisplayItem(container1, DisplayItem::paintPhaseToDrawingType(PaintPh
     aseForeground))); | 526         TestDisplayItem(container1, DisplayItem::paintPhaseToDrawingType(PaintPh
     aseForeground))); | 
| 570 } | 527 } | 
| 571 | 528 | 
| 572 // Enable this when cached subtree flags are ready. | 529 // Enable this when cached subtree flags are ready. | 
| 573 TEST_F(ViewDisplayListTest, DISABLED_CachedSubtreeSwapOrder) | 530 TEST_F(ViewDisplayListTest, DISABLED_CachedSubtreeSwapOrder) | 
| 574 { | 531 { | 
| 575     RuntimeEnabledFeatures::setSlimmingPaintDisplayItemCacheEnabled(true); |  | 
| 576 |  | 
| 577     setBodyInnerHTML("<div id='container1'><div id='content1'></div></div>" | 532     setBodyInnerHTML("<div id='container1'><div id='content1'></div></div>" | 
| 578         "<div id='container2'><div id='content2'></div></div>"); | 533         "<div id='container2'><div id='content2'></div></div>"); | 
| 579     LayoutObject* container1 = document().body()->firstChild()->layoutObject(); | 534     LayoutObject* container1 = document().body()->firstChild()->layoutObject(); | 
| 580     LayoutObject* content1 = document().body()->firstChild()->firstChild()->layo
     utObject(); | 535     LayoutObject* content1 = document().body()->firstChild()->firstChild()->layo
     utObject(); | 
| 581     LayoutObject* container2 = document().body()->firstChild()->nextSibling()->l
     ayoutObject(); | 536     LayoutObject* container2 = document().body()->firstChild()->nextSibling()->l
     ayoutObject(); | 
| 582     LayoutObject* content2 = document().body()->firstChild()->nextSibling()->fir
     stChild()->layoutObject(); | 537     LayoutObject* content2 = document().body()->firstChild()->nextSibling()->fir
     stChild()->layoutObject(); | 
| 583     GraphicsContext context(nullptr, &rootDisplayItemList()); | 538     GraphicsContext context(nullptr, &rootDisplayItemList()); | 
| 584 | 539 | 
| 585     { | 540     { | 
| 586         SubtreeRecorder r(&context, *container1, PaintPhaseBlockBackground); | 541         SubtreeRecorder r(&context, *container1, PaintPhaseBlockBackground); | 
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 671         TestDisplayItem(container1, DisplayItem::paintPhaseToEndSubtreeType(Pain
     tPhaseBlockBackground)), | 626         TestDisplayItem(container1, DisplayItem::paintPhaseToEndSubtreeType(Pain
     tPhaseBlockBackground)), | 
| 672 | 627 | 
| 673         TestDisplayItem(container1, DisplayItem::paintPhaseToBeginSubtreeType(Pa
     intPhaseForeground)), | 628         TestDisplayItem(container1, DisplayItem::paintPhaseToBeginSubtreeType(Pa
     intPhaseForeground)), | 
| 674         TestDisplayItem(content1, DisplayItem::paintPhaseToDrawingType(PaintPhas
     eForeground)), | 629         TestDisplayItem(content1, DisplayItem::paintPhaseToDrawingType(PaintPhas
     eForeground)), | 
| 675         TestDisplayItem(container1, DisplayItem::paintPhaseToDrawingType(PaintPh
     aseForeground)), | 630         TestDisplayItem(container1, DisplayItem::paintPhaseToDrawingType(PaintPh
     aseForeground)), | 
| 676         TestDisplayItem(container1, DisplayItem::paintPhaseToEndSubtreeType(Pain
     tPhaseForeground))); | 631         TestDisplayItem(container1, DisplayItem::paintPhaseToEndSubtreeType(Pain
     tPhaseForeground))); | 
| 677 } | 632 } | 
| 678 | 633 | 
| 679 TEST_F(ViewDisplayListTest, Scope) | 634 TEST_F(ViewDisplayListTest, Scope) | 
| 680 { | 635 { | 
| 681     RuntimeEnabledFeatures::setSlimmingPaintDisplayItemCacheEnabled(true); |  | 
| 682 |  | 
| 683     setBodyInnerHTML("<div id='multicol'><div id='content'></div></div>"); | 636     setBodyInnerHTML("<div id='multicol'><div id='content'></div></div>"); | 
| 684 | 637 | 
| 685     LayoutObject* multicol = document().body()->firstChild()->layoutObject(); | 638     LayoutObject* multicol = document().body()->firstChild()->layoutObject(); | 
| 686     LayoutObject* content = document().body()->firstChild()->firstChild()->layou
     tObject(); | 639     LayoutObject* content = document().body()->firstChild()->firstChild()->layou
     tObject(); | 
| 687     GraphicsContext context(nullptr, &rootDisplayItemList()); | 640     GraphicsContext context(nullptr, &rootDisplayItemList()); | 
| 688 | 641 | 
| 689     FloatRect rect1(100, 100, 50, 50); | 642     FloatRect rect1(100, 100, 50, 50); | 
| 690     FloatRect rect2(150, 100, 50, 50); | 643     FloatRect rect2(150, 100, 50, 50); | 
| 691     FloatRect rect3(200, 100, 50, 50); | 644     FloatRect rect3(200, 100, 50, 50); | 
| 692     drawRect(&context, multicol, PaintPhaseBlockBackground, FloatRect(100, 200, 
     100, 100)); | 645     drawRect(&context, multicol, PaintPhaseBlockBackground, FloatRect(100, 200, 
     100, 100)); | 
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 753     EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 4, | 706     EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 4, | 
| 754         TestDisplayItem(multicol, DisplayItem::paintPhaseToDrawingType(PaintPhas
     eBlockBackground)), | 707         TestDisplayItem(multicol, DisplayItem::paintPhaseToDrawingType(PaintPhas
     eBlockBackground)), | 
| 755         TestDisplayItem(content, DisplayItem::paintPhaseToDrawingType(PaintPhase
     Foreground)), | 708         TestDisplayItem(content, DisplayItem::paintPhaseToDrawingType(PaintPhase
     Foreground)), | 
| 756         TestDisplayItem(content, DisplayItem::paintPhaseToDrawingType(PaintPhase
     Foreground)), | 709         TestDisplayItem(content, DisplayItem::paintPhaseToDrawingType(PaintPhase
     Foreground)), | 
| 757         TestDisplayItem(content, DisplayItem::paintPhaseToDrawingType(PaintPhase
     Foreground))); | 710         TestDisplayItem(content, DisplayItem::paintPhaseToDrawingType(PaintPhase
     Foreground))); | 
| 758     EXPECT_NE(picture1, static_cast<DrawingDisplayItem*>(rootDisplayItemList().p
     aintList()[1].get())->picture()); | 711     EXPECT_NE(picture1, static_cast<DrawingDisplayItem*>(rootDisplayItemList().p
     aintList()[1].get())->picture()); | 
| 759     EXPECT_NE(picture2, static_cast<DrawingDisplayItem*>(rootDisplayItemList().p
     aintList()[2].get())->picture()); | 712     EXPECT_NE(picture2, static_cast<DrawingDisplayItem*>(rootDisplayItemList().p
     aintList()[2].get())->picture()); | 
| 760 } | 713 } | 
| 761 | 714 | 
| 762 } // namespace blink | 715 } // namespace blink | 
| OLD | NEW | 
|---|