Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(284)

Side by Side Diff: Source/platform/graphics/paint/DisplayItemListTest.cpp

Issue 1307653007: Fix assertion failure during out-of-order matching (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « Source/platform/graphics/paint/DisplayItemList.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 #include "platform/graphics/paint/DisplayItemList.h" 6 #include "platform/graphics/paint/DisplayItemList.h"
7 7
8 #include "platform/RuntimeEnabledFeatures.h" 8 #include "platform/RuntimeEnabledFeatures.h"
9 #include "platform/graphics/GraphicsContext.h" 9 #include "platform/graphics/GraphicsContext.h"
10 #include "platform/graphics/paint/CachedDisplayItem.h" 10 #include "platform/graphics/paint/CachedDisplayItem.h"
(...skipping 498 matching lines...) Expand 10 before | Expand all | Expand 10 after
509 TestDisplayItem(container2, DisplayItem::EndSubsequence), 509 TestDisplayItem(container2, DisplayItem::EndSubsequence),
510 510
511 TestDisplayItem(container1, DisplayItem::BeginSubsequence), 511 TestDisplayItem(container1, DisplayItem::BeginSubsequence),
512 TestDisplayItem(container1, backgroundDrawingType), 512 TestDisplayItem(container1, backgroundDrawingType),
513 TestDisplayItem(content1, backgroundDrawingType), 513 TestDisplayItem(content1, backgroundDrawingType),
514 TestDisplayItem(content1, foregroundDrawingType), 514 TestDisplayItem(content1, foregroundDrawingType),
515 TestDisplayItem(container1, foregroundDrawingType), 515 TestDisplayItem(container1, foregroundDrawingType),
516 TestDisplayItem(container1, DisplayItem::EndSubsequence)); 516 TestDisplayItem(container1, DisplayItem::EndSubsequence));
517 } 517 }
518 518
519 TEST_F(DisplayItemListTest, OutOfOrderNoCrash)
520 {
521 TestDisplayItemClient client("client");
522 GraphicsContext context(&displayItemList());
523
524 const DisplayItem::Type type1 = DisplayItem::DrawingFirst;
525 const DisplayItem::Type type2 = static_cast<DisplayItem::Type>(DisplayItem:: DrawingFirst + 1);
526 const DisplayItem::Type type3 = static_cast<DisplayItem::Type>(DisplayItem:: DrawingFirst + 2);
527 const DisplayItem::Type type4 = static_cast<DisplayItem::Type>(DisplayItem:: DrawingFirst + 3);
528
529 drawRect(context, client, type1, FloatRect(100, 100, 100, 100));
530 drawRect(context, client, type2, FloatRect(100, 100, 50, 200));
531 drawRect(context, client, type3, FloatRect(100, 100, 50, 200));
532 drawRect(context, client, type4, FloatRect(100, 100, 100, 100));
533
534 displayItemList().commitNewDisplayItems();
535
536 drawRect(context, client, type2, FloatRect(100, 100, 50, 200));
537 drawRect(context, client, type3, FloatRect(100, 100, 50, 200));
538 drawRect(context, client, type1, FloatRect(100, 100, 100, 100));
539 drawRect(context, client, type4, FloatRect(100, 100, 100, 100));
540
541 displayItemList().commitNewDisplayItems();
542 }
543
519 TEST_F(DisplayItemListTest, CachedNestedSubsequenceUpdate) 544 TEST_F(DisplayItemListTest, CachedNestedSubsequenceUpdate)
520 { 545 {
521 TestDisplayItemClient container1("container1"); 546 TestDisplayItemClient container1("container1");
522 TestDisplayItemClient content1("content1"); 547 TestDisplayItemClient content1("content1");
523 TestDisplayItemClient container2("container2"); 548 TestDisplayItemClient container2("container2");
524 TestDisplayItemClient content2("content2"); 549 TestDisplayItemClient content2("content2");
525 GraphicsContext context(&displayItemList()); 550 GraphicsContext context(&displayItemList());
526 551
527 { 552 {
528 SubsequenceRecorder r(context, container1); 553 SubsequenceRecorder r(context, container1);
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after
740 drawRect(context, third, backgroundDrawingType, FloatRect(0, 0, 100, 100)); 765 drawRect(context, third, backgroundDrawingType, FloatRect(0, 0, 100, 100));
741 displayItemList().commitNewDisplayItems(); 766 displayItemList().commitNewDisplayItems();
742 767
743 // Empty clips should have been optimized out. 768 // Empty clips should have been optimized out.
744 EXPECT_DISPLAY_LIST(displayItemList().displayItems(), 2, 769 EXPECT_DISPLAY_LIST(displayItemList().displayItems(), 2,
745 TestDisplayItem(first, backgroundDrawingType), 770 TestDisplayItem(first, backgroundDrawingType),
746 TestDisplayItem(third, backgroundDrawingType)); 771 TestDisplayItem(third, backgroundDrawingType));
747 } 772 }
748 773
749 } // namespace blink 774 } // namespace blink
OLDNEW
« no previous file with comments | « Source/platform/graphics/paint/DisplayItemList.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698