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

Side by Side Diff: third_party/WebKit/Source/core/css/ComputedStyleCSSValueMapping.cpp

Issue 1903183002: [css-grid] Fix grid-template-columns|rows computed style with content alignment (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2004 Zack Rusin <zack@kde.org> 2 * Copyright (C) 2004 Zack Rusin <zack@kde.org>
3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights reserved. 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights reserved.
4 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> 4 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org>
5 * Copyright (C) 2007 Nicholas Shanks <webkit@nickshanks.com> 5 * Copyright (C) 2007 Nicholas Shanks <webkit@nickshanks.com>
6 * Copyright (C) 2011 Sencha, Inc. All rights reserved. 6 * Copyright (C) 2011 Sencha, Inc. All rights reserved.
7 * Copyright (C) 2015 Google Inc. All rights reserved. 7 * Copyright (C) 2015 Google Inc. All rights reserved.
8 * 8 *
9 * This library is free software; you can redistribute it and/or 9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Lesser General Public 10 * modify it under the terms of the GNU Lesser General Public
(...skipping 626 matching lines...) Expand 10 before | Expand all | Expand 10 after
637 } 637 }
638 638
639 if (trackListIsEmpty) { 639 if (trackListIsEmpty) {
640 ASSERT(orderedNamedGridLines.isEmpty()); 640 ASSERT(orderedNamedGridLines.isEmpty());
641 return cssValuePool().createIdentifierValue(CSSValueNone); 641 return cssValuePool().createIdentifierValue(CSSValueNone);
642 } 642 }
643 643
644 CSSValueList* list = CSSValueList::createSpaceSeparated(); 644 CSSValueList* list = CSSValueList::createSpaceSeparated();
645 size_t insertionIndex; 645 size_t insertionIndex;
646 if (isLayoutGrid) { 646 if (isLayoutGrid) {
647 const Vector<LayoutUnit>& trackPositions = direction == ForColumns ? toL ayoutGrid(layoutObject)->columnPositions() : toLayoutGrid(layoutObject)->rowPosi tions(); 647 const auto* grid = toLayoutGrid(layoutObject);
648 const Vector<LayoutUnit>& trackPositions = direction == ForColumns ? gri d->columnPositions() : grid->rowPositions();
648 // There are at least #tracks + 1 grid lines (trackPositions). Apart fro m that, the grid container can generate implicit grid tracks, 649 // There are at least #tracks + 1 grid lines (trackPositions). Apart fro m that, the grid container can generate implicit grid tracks,
649 // so we'll have more trackPositions than trackSizes as the latter only contain the explicit grid. 650 // so we'll have more trackPositions than trackSizes as the latter only contain the explicit grid.
650 ASSERT(trackPositions.size() - 1 >= trackSizes.size()); 651 ASSERT(trackPositions.size() - 1 >= trackSizes.size());
651 652
652 size_t i; 653 size_t i;
653 LayoutUnit gutterSize = toLayoutGrid(layoutObject)->guttersSize(directio n, 2); 654 LayoutUnit gutterSize = grid->guttersSize(direction, 2);
655 LayoutUnit offsetBetweenTracks = grid->offsetBetweenTracks(direction);
654 for (i = 0; i < trackPositions.size() - 2; ++i) { 656 for (i = 0; i < trackPositions.size() - 2; ++i) {
655 addValuesForNamedGridLinesAtIndex(orderedNamedGridLines, i, *list); 657 addValuesForNamedGridLinesAtIndex(orderedNamedGridLines, i, *list);
656 list->append(zoomAdjustedPixelValue(trackPositions[i + 1] - trackPos itions[i] - gutterSize, style)); 658 list->append(zoomAdjustedPixelValue(trackPositions[i + 1] - trackPos itions[i] - gutterSize - offsetBetweenTracks, style));
657 } 659 }
658 // Last track line does not have any gutter. 660 // Last track line does not have any gutter or distribution offset.
659 addValuesForNamedGridLinesAtIndex(orderedNamedGridLines, i, *list); 661 addValuesForNamedGridLinesAtIndex(orderedNamedGridLines, i, *list);
660 list->append(zoomAdjustedPixelValue(trackPositions[i + 1] - trackPositio ns[i], style)); 662 list->append(zoomAdjustedPixelValue(trackPositions[i + 1] - trackPositio ns[i], style));
661 insertionIndex = trackPositions.size() - 1; 663 insertionIndex = trackPositions.size() - 1;
662 } else { 664 } else {
663 for (size_t i = 0; i < trackSizes.size(); ++i) { 665 for (size_t i = 0; i < trackSizes.size(); ++i) {
664 addValuesForNamedGridLinesAtIndex(orderedNamedGridLines, i, *list); 666 addValuesForNamedGridLinesAtIndex(orderedNamedGridLines, i, *list);
665 list->append(specifiedValueForGridTrackSize(trackSizes[i], style)); 667 list->append(specifiedValueForGridTrackSize(trackSizes[i], style));
666 } 668 }
667 insertionIndex = trackSizes.size(); 669 insertionIndex = trackSizes.size();
668 } 670 }
(...skipping 2162 matching lines...) Expand 10 before | Expand all | Expand 10 after
2831 case CSSPropertyAll: 2833 case CSSPropertyAll:
2832 return nullptr; 2834 return nullptr;
2833 default: 2835 default:
2834 break; 2836 break;
2835 } 2837 }
2836 ASSERT_NOT_REACHED(); 2838 ASSERT_NOT_REACHED();
2837 return nullptr; 2839 return nullptr;
2838 } 2840 }
2839 2841
2840 } // namespace blink 2842 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698