WebKit Bugzilla
Attachment 358792 Details for
Bug 193313
: [css-grid] Line names are resolved incorrectly for grid-aligned abs.pos. child
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-193313-20190110164254.patch (text/plain), 21.75 KB, created by
Oriol Brufau
on 2019-01-10 07:42:55 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Oriol Brufau
Created:
2019-01-10 07:42:55 PST
Size:
21.75 KB
patch
obsolete
>Subversion Revision: 239605 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index a3920592b9bfc7162155886a8cb9413b43718659..64160edff5e870784cd257f97480612f764759a9 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,47 @@ >+2019-01-10 Oriol Brufau <obrufau@igalia.com> >+ >+ [css-grid] Let abspos items reference implicit grid lines >+ https://bugs.webkit.org/show_bug.cgi?id=193313 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ While they can't create new implicit grid lines, abspos items >+ can reference existing ones as clarified in >+ https://github.com/w3c/csswg-drafts/commit/511bb63 >+ >+ This patch makes WebKit match Blink, Firefox and Edge. >+ >+ Tests: web-platform-tests/css/css-grid/abspos/grid-positioned-items-padding-001.html >+ web-platform-tests/css/css-grid/abspos/grid-positioned-items-unknown-named-grid-line-001.html >+ >+ * rendering/RenderGrid.cpp: >+ (WebCore::RenderGrid::populateExplicitGridAndOrderIterator const): >+ Remove argument from spanSizeForAutoPlacedItem call. >+ (WebCore::RenderGrid::createEmptyGridAreaAtSpecifiedPositionsOutsideGrid const): >+ Remove argument from spanSizeForAutoPlacedItem call. >+ (WebCore::RenderGrid::placeSpecifiedMajorAxisItemsOnGrid const): >+ Remove argument from spanSizeForAutoPlacedItem call. >+ (WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid const): >+ Remove argument from spanSizeForAutoPlacedItem call. >+ (WebCore::RenderGrid::gridAreaBreadthForOutOfFlowChild): >+ Don't treat implicit grid lines as 'auto'. >+ * rendering/RenderGrid.h: >+ Remove unused gridPositionIsAutoForOutOfFlow. >+ * rendering/style/GridPositionsResolver.cpp: >+ (WebCore::adjustGridPositionsFromStyle): >+ Don't treat implicit grid lines as 'auto'. >+ Remove unused gridContainerStyle parameter. >+ (WebCore::GridPositionsResolver::spanSizeForAutoPlacedItem): >+ Remove argument from adjustGridPositionsFromStyle call. >+ Remove unused gridContainerStyle parameter. >+ (WebCore::resolveGridPositionFromStyle): >+ Remove unnecessary assert that uses isValidNamedLineOrArea. >+ (WebCore::GridPositionsResolver::resolveGridPositionsFromStyle): >+ Remove argument from adjustGridPositionsFromStyle call. >+ * rendering/style/GridPositionsResolver.h: >+ Remove unused isValidNamedLineOrArea. >+ Remove unused parameter from spanSizeForAutoPlacedItem. >+ > 2019-01-03 Zalan Bujtas <zalan@apple.com> > > REGRESSION: -webkit-appearance test case crashes >diff --git a/Source/WebCore/rendering/RenderGrid.cpp b/Source/WebCore/rendering/RenderGrid.cpp >index 35a610b29973ccd9e68c654c8a45bed0cc3a5a6f..357b32416834a470916c58c941904c16e65a9d76 100644 >--- a/Source/WebCore/rendering/RenderGrid.cpp >+++ b/Source/WebCore/rendering/RenderGrid.cpp >@@ -693,7 +693,7 @@ void RenderGrid::populateExplicitGridAndOrderIterator(Grid& grid) const > maximumRowIndex = std::max<int>(maximumRowIndex, rowPositions.untranslatedEndLine()); > } else { > // Grow the grid for items with a definite row span, getting the largest such span. >- unsigned spanSize = GridPositionsResolver::spanSizeForAutoPlacedItem(style(), *child, ForRows); >+ unsigned spanSize = GridPositionsResolver::spanSizeForAutoPlacedItem(*child, ForRows); > maximumRowIndex = std::max(maximumRowIndex, spanSize); > } > >@@ -703,7 +703,7 @@ void RenderGrid::populateExplicitGridAndOrderIterator(Grid& grid) const > maximumColumnIndex = std::max<int>(maximumColumnIndex, columnPositions.untranslatedEndLine()); > } else { > // Grow the grid for items with a definite column span, getting the largest such span. >- unsigned spanSize = GridPositionsResolver::spanSizeForAutoPlacedItem(style(), *child, ForColumns); >+ unsigned spanSize = GridPositionsResolver::spanSizeForAutoPlacedItem(*child, ForColumns); > maximumColumnIndex = std::max(maximumColumnIndex, spanSize); > } > >@@ -718,7 +718,7 @@ std::unique_ptr<GridArea> RenderGrid::createEmptyGridAreaAtSpecifiedPositionsOut > { > GridTrackSizingDirection crossDirection = specifiedDirection == ForColumns ? ForRows : ForColumns; > const unsigned endOfCrossDirection = grid.numTracks(crossDirection); >- unsigned crossDirectionSpanSize = GridPositionsResolver::spanSizeForAutoPlacedItem(style(), gridItem, crossDirection); >+ unsigned crossDirectionSpanSize = GridPositionsResolver::spanSizeForAutoPlacedItem(gridItem, crossDirection); > GridSpan crossDirectionPositions = GridSpan::translatedDefiniteGridSpan(endOfCrossDirection, endOfCrossDirection + crossDirectionSpanSize); > return std::make_unique<GridArea>(specifiedDirection == ForColumns ? crossDirectionPositions : specifiedPositions, specifiedDirection == ForColumns ? specifiedPositions : crossDirectionPositions); > } >@@ -737,7 +737,7 @@ void RenderGrid::placeSpecifiedMajorAxisItemsOnGrid(Grid& grid, const Vector<Ren > GridSpan majorAxisPositions = grid.gridItemSpan(*autoGridItem, autoPlacementMajorAxisDirection()); > ASSERT(majorAxisPositions.isTranslatedDefinite()); > ASSERT(grid.gridItemSpan(*autoGridItem, autoPlacementMinorAxisDirection()).isIndefinite()); >- unsigned minorAxisSpanSize = GridPositionsResolver::spanSizeForAutoPlacedItem(style(), *autoGridItem, autoPlacementMinorAxisDirection()); >+ unsigned minorAxisSpanSize = GridPositionsResolver::spanSizeForAutoPlacedItem(*autoGridItem, autoPlacementMinorAxisDirection()); > unsigned majorAxisInitialPosition = majorAxisPositions.startLine(); > > GridIterator iterator(grid, autoPlacementMajorAxisDirection(), majorAxisPositions.startLine(), isGridAutoFlowDense ? 0 : minorAxisCursors.get(majorAxisInitialPosition)); >@@ -770,7 +770,7 @@ void RenderGrid::placeAutoMajorAxisItemsOnGrid(Grid& grid, const Vector<RenderBo > void RenderGrid::placeAutoMajorAxisItemOnGrid(Grid& grid, RenderBox& gridItem, AutoPlacementCursor& autoPlacementCursor) const > { > ASSERT(grid.gridItemSpan(gridItem, autoPlacementMajorAxisDirection()).isIndefinite()); >- unsigned majorAxisSpanSize = GridPositionsResolver::spanSizeForAutoPlacedItem(style(), gridItem, autoPlacementMajorAxisDirection()); >+ unsigned majorAxisSpanSize = GridPositionsResolver::spanSizeForAutoPlacedItem(gridItem, autoPlacementMajorAxisDirection()); > > const unsigned endOfMajorAxis = grid.numTracks(autoPlacementMajorAxisDirection()); > unsigned majorAxisAutoPlacementCursor = autoPlacementMajorAxisDirection() == ForColumns ? autoPlacementCursor.second : autoPlacementCursor.first; >@@ -791,7 +791,7 @@ void RenderGrid::placeAutoMajorAxisItemOnGrid(Grid& grid, RenderBox& gridItem, A > if (!emptyGridArea) > emptyGridArea = createEmptyGridAreaAtSpecifiedPositionsOutsideGrid(grid, gridItem, autoPlacementMinorAxisDirection(), minorAxisPositions); > } else { >- unsigned minorAxisSpanSize = GridPositionsResolver::spanSizeForAutoPlacedItem(style(), gridItem, autoPlacementMinorAxisDirection()); >+ unsigned minorAxisSpanSize = GridPositionsResolver::spanSizeForAutoPlacedItem(gridItem, autoPlacementMinorAxisDirection()); > > for (unsigned majorAxisIndex = majorAxisAutoPlacementCursor; majorAxisIndex < endOfMajorAxis; ++majorAxisIndex) { > GridIterator iterator(grid, autoPlacementMajorAxisDirection(), majorAxisIndex, minorAxisAutoPlacementCursor); >@@ -1470,11 +1470,6 @@ LayoutUnit RenderGrid::rowAxisOffsetForChild(const RenderBox& child) const > return 0; > } > >-bool RenderGrid::gridPositionIsAutoForOutOfFlow(GridPosition position, GridTrackSizingDirection direction) const >-{ >- return position.isAuto() || (position.isNamedGridArea() && !NamedLineCollection::isValidNamedLineOrArea(position.namedGridLine(), style(), GridPositionsResolver::initialPositionSide(direction))); >-} >- > LayoutUnit RenderGrid::resolveAutoStartGridPosition(GridTrackSizingDirection direction) const > { > if (direction == ForRows || style().isLeftToRightDirection()) >@@ -1520,8 +1515,8 @@ LayoutUnit RenderGrid::gridAreaBreadthForOutOfFlowChild(const RenderBox& child, > GridPosition startPosition = direction == ForColumns ? child.style().gridItemColumnStart() : child.style().gridItemRowStart(); > GridPosition endPosition = direction == ForColumns ? child.style().gridItemColumnEnd() : child.style().gridItemRowEnd(); > >- bool startIsAuto = gridPositionIsAutoForOutOfFlow(startPosition, direction) || startLine < 0 || startLine > lastLine; >- bool endIsAuto = gridPositionIsAutoForOutOfFlow(endPosition, direction) || endLine < 0 || endLine > lastLine; >+ bool startIsAuto = startPosition.isAuto() || startLine < 0 || startLine > lastLine; >+ bool endIsAuto = endPosition.isAuto() || endLine < 0 || endLine > lastLine; > > if (startIsAuto && endIsAuto) > return isRowAxis ? clientLogicalWidth() : clientLogicalHeight(); >diff --git a/Source/WebCore/rendering/RenderGrid.h b/Source/WebCore/rendering/RenderGrid.h >index 131a00841aceb243bd50fedade4a5077955ce35f..de3c23483a0cc1f076f4e1bd4fc926175ccbfb7e 100644 >--- a/Source/WebCore/rendering/RenderGrid.h >+++ b/Source/WebCore/rendering/RenderGrid.h >@@ -133,7 +133,6 @@ private: > void layoutGridItems(); > void populateGridPositionsForDirection(GridTrackSizingDirection); > >- bool gridPositionIsAutoForOutOfFlow(GridPosition, GridTrackSizingDirection) const; > LayoutUnit resolveAutoStartGridPosition(GridTrackSizingDirection) const; > LayoutUnit resolveAutoEndGridPosition(GridTrackSizingDirection) const; > LayoutUnit gridAreaBreadthForOutOfFlowChild(const RenderBox&, GridTrackSizingDirection); >diff --git a/Source/WebCore/rendering/style/GridPositionsResolver.cpp b/Source/WebCore/rendering/style/GridPositionsResolver.cpp >index 24c9d3801e0e8ce8a0c969ed5b254c577a809257..3d9981316254fec72a307a77bff07fcf43d6cc55 100644 >--- a/Source/WebCore/rendering/style/GridPositionsResolver.cpp >+++ b/Source/WebCore/rendering/style/GridPositionsResolver.cpp >@@ -76,19 +76,6 @@ NamedLineCollection::NamedLineCollection(const RenderStyle& gridContainerStyle, > m_autoRepeatTrackListLength = isRowAxis ? gridContainerStyle.gridAutoRepeatColumns().size() : gridContainerStyle.gridAutoRepeatRows().size(); > } > >-bool NamedLineCollection::isValidNamedLineOrArea(const String& namedLine, const RenderStyle& gridContainerStyle, GridPositionSide side) >-{ >- bool isRowAxis = directionFromSide(side) == ForColumns; >- auto& gridLineNames = isRowAxis ? gridContainerStyle.namedGridColumnLines() : gridContainerStyle.namedGridRowLines(); >- auto& autoRepeatGridLineNames = isRowAxis ? gridContainerStyle.autoRepeatNamedGridColumnLines() : gridContainerStyle.autoRepeatNamedGridRowLines(); >- >- if (gridLineNames.contains(namedLine) || autoRepeatGridLineNames.contains(namedLine)) >- return true; >- >- String implicitName = implicitNamedGridLineForSide(namedLine, side); >- return gridLineNames.contains(implicitName) || autoRepeatGridLineNames.contains(implicitName); >-} >- > bool NamedLineCollection::hasNamedLines() const > { > return m_namedLinesIndexes || m_autoRepeatNamedLinesIndexes; >@@ -148,7 +135,7 @@ unsigned NamedLineCollection::firstPosition() const > return std::min(m_namedLinesIndexes->at(firstLine), m_autoRepeatNamedLinesIndexes->at(firstLine) + m_insertionPoint); > } > >-static void adjustGridPositionsFromStyle(const RenderStyle& gridContainerStyle, const RenderBox& gridItem, GridTrackSizingDirection direction, GridPosition& initialPosition, GridPosition& finalPosition) >+static void adjustGridPositionsFromStyle(const RenderBox& gridItem, GridTrackSizingDirection direction, GridPosition& initialPosition, GridPosition& finalPosition) > { > bool isForColumns = direction == ForColumns; > initialPosition = isForColumns ? gridItem.style().gridItemColumnStart() : gridItem.style().gridItemRowStart(); >@@ -159,15 +146,6 @@ static void adjustGridPositionsFromStyle(const RenderStyle& gridContainerStyle, > if (initialPosition.isSpan() && finalPosition.isSpan()) > finalPosition.setAutoPosition(); > >- if (gridItem.isOutOfFlowPositioned()) { >- // Early detect the case of non existing named grid lines for positioned items. >- if (initialPosition.isNamedGridArea() && !NamedLineCollection::isValidNamedLineOrArea(initialPosition.namedGridLine(), gridContainerStyle, GridPositionsResolver::initialPositionSide(direction))) >- initialPosition.setAutoPosition(); >- >- if (finalPosition.isNamedGridArea() && !NamedLineCollection::isValidNamedLineOrArea(finalPosition.namedGridLine(), gridContainerStyle, GridPositionsResolver::finalPositionSide(direction))) >- finalPosition.setAutoPosition(); >- } >- > // If the grid item has an automatic position and a grid span for a named line in a given dimension, instead treat the grid span as one. > if (initialPosition.isAuto() && finalPosition.isSpan() && !finalPosition.namedGridLine().isNull()) > finalPosition.setSpanPosition(1, String()); >@@ -302,10 +280,10 @@ GridPositionSide GridPositionsResolver::finalPositionSide(GridTrackSizingDirecti > return direction == ForColumns ? ColumnEndSide : RowEndSide; > } > >-unsigned GridPositionsResolver::spanSizeForAutoPlacedItem(const RenderStyle& gridContainerStyle, const RenderBox& gridItem, GridTrackSizingDirection direction) >+unsigned GridPositionsResolver::spanSizeForAutoPlacedItem(const RenderBox& gridItem, GridTrackSizingDirection direction) > { > GridPosition initialPosition, finalPosition; >- adjustGridPositionsFromStyle(gridContainerStyle, gridItem, direction, initialPosition, finalPosition); >+ adjustGridPositionsFromStyle(gridItem, direction, initialPosition, finalPosition); > > // This method will only be used when both positions need to be resolved against the opposite one. > ASSERT(initialPosition.shouldBeResolvedAgainstOppositePosition() && finalPosition.shouldBeResolvedAgainstOppositePosition()); >@@ -357,7 +335,6 @@ static int resolveGridPositionFromStyle(const RenderStyle& gridContainerStyle, c > if (explicitLines.hasNamedLines()) > return explicitLines.firstPosition(); > >- ASSERT(!NamedLineCollection::isValidNamedLineOrArea(namedGridLine, gridContainerStyle, side)); > // If none of the above works specs mandate to assume that all the lines in the implicit grid have this name. > return lastLine + 1; > } >@@ -374,7 +351,7 @@ static int resolveGridPositionFromStyle(const RenderStyle& gridContainerStyle, c > GridSpan GridPositionsResolver::resolveGridPositionsFromStyle(const RenderStyle& gridContainerStyle, const RenderBox& gridItem, GridTrackSizingDirection direction, unsigned autoRepeatTracksCount) > { > GridPosition initialPosition, finalPosition; >- adjustGridPositionsFromStyle(gridContainerStyle, gridItem, direction, initialPosition, finalPosition); >+ adjustGridPositionsFromStyle(gridItem, direction, initialPosition, finalPosition); > > GridPositionSide initialSide = initialPositionSide(direction); > GridPositionSide finalSide = finalPositionSide(direction); >diff --git a/Source/WebCore/rendering/style/GridPositionsResolver.h b/Source/WebCore/rendering/style/GridPositionsResolver.h >index fb3311a85b36e7ff01149e441f00da3a58bf9d17..8ca209b6ac3a17b79468992d014cad49b9c0b484 100644 >--- a/Source/WebCore/rendering/style/GridPositionsResolver.h >+++ b/Source/WebCore/rendering/style/GridPositionsResolver.h >@@ -48,8 +48,6 @@ class NamedLineCollection { > public: > NamedLineCollection(const RenderStyle&, const String& namedLine, GridTrackSizingDirection, unsigned lastLine, unsigned autoRepeatTracksCount); > >- static bool isValidNamedLineOrArea(const String& namedLine, const RenderStyle&, GridPositionSide); >- > bool hasNamedLines() const; > unsigned firstPosition() const; > >@@ -72,7 +70,7 @@ class GridPositionsResolver { > public: > static GridPositionSide initialPositionSide(GridTrackSizingDirection); > static GridPositionSide finalPositionSide(GridTrackSizingDirection); >- static unsigned spanSizeForAutoPlacedItem(const RenderStyle&, const RenderBox&, GridTrackSizingDirection); >+ static unsigned spanSizeForAutoPlacedItem(const RenderBox&, GridTrackSizingDirection); > static GridSpan resolveGridPositionsFromStyle(const RenderStyle&, const RenderBox&, GridTrackSizingDirection, unsigned autoRepeatTracksCount); > static unsigned explicitGridColumnCount(const RenderStyle&, unsigned autoRepeatColumnsCount); > static unsigned explicitGridRowCount(const RenderStyle&, unsigned autoRepeatRowsCount); >diff --git a/LayoutTests/imported/w3c/ChangeLog b/LayoutTests/imported/w3c/ChangeLog >index 6a43ef63a38c01ff956aa50713ad65484e05eff5..1aa2de057c9b6a768ac91b0c2ba979a524c73a45 100644 >--- a/LayoutTests/imported/w3c/ChangeLog >+++ b/LayoutTests/imported/w3c/ChangeLog >@@ -1,3 +1,15 @@ >+2019-01-10 Oriol Brufau <obrufau@igalia.com> >+ >+ [css-grid] Let abspos items reference implicit grid lines >+ https://bugs.webkit.org/show_bug.cgi?id=193313 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Import test changes from WPT. >+ >+ * web-platform-tests/css/css-grid/abspos/grid-positioned-items-padding-001.html: >+ * web-platform-tests/css/css-grid/abspos/grid-positioned-items-unknown-named-grid-line-001.html: >+ > 2019-01-02 Simon Fraser <simon.fraser@apple.com> > > Support css-color-4 rgb functions >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/grid-positioned-items-padding-001.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/grid-positioned-items-padding-001.html >index 4941d77a71af73c5eb2c70a14629596aacdcf767..643a68830d4aecdad182f40d8b74fb8470da8b54 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/grid-positioned-items-padding-001.html >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/grid-positioned-items-padding-001.html >@@ -109,13 +109,13 @@ > > <div class="grid"> > <div class="absolute" style="grid-column: foo / 1; grid-row: foo / 1;" >- data-offset-x="0" data-offset-y="0" data-expected-width="15" data-expected-height="15"> >+ data-offset-x="15" data-offset-y="15" data-expected-width="515" data-expected-height="315"> > </div> > <div class="absolute" style="grid-column: 1 / 2; grid-row: foo / 1;" >- data-offset-x="15" data-offset-y="0" data-expected-width="100" data-expected-height="15"> >+ data-offset-x="15" data-offset-y="15" data-expected-width="100" data-expected-height="315"> > </div> > <div class="absolute" style="grid-column: foo / 1; grid-row: 1 / 2;" >- data-offset-x="0" data-offset-y="15" data-expected-width="15" data-expected-height="50"> >+ data-offset-x="15" data-offset-y="15" data-expected-width="515" data-expected-height="50"> > </div> > <div class="absolute" style="grid-column: 3 / foo; grid-row: 3 / foo;" > data-offset-x="315" data-offset-y="215" data-expected-width="215" data-expected-height="115"> >@@ -193,13 +193,13 @@ > > <div class="grid directionRTL"> > <div class="absolute" style="grid-column: foo / 1; grid-row: foo / 1;" >- data-offset-x="515" data-offset-y="0" data-expected-width="15" data-expected-height="15"> >+ data-offset-x="0" data-offset-y="15" data-expected-width="515" data-expected-height="315"> > </div> > <div class="absolute" style="grid-column: 1 / 2; grid-row: foo / 1;" >- data-offset-x="415" data-offset-y="0" data-expected-width="100" data-expected-height="15"> >+ data-offset-x="415" data-offset-y="15" data-expected-width="100" data-expected-height="315"> > </div> > <div class="absolute" style="grid-column: foo / 1; grid-row: 1 / 2;" >- data-offset-x="515" data-offset-y="15" data-expected-width="15" data-expected-height="50"> >+ data-offset-x="0" data-offset-y="15" data-expected-width="515" data-expected-height="50"> > </div> > <div class="absolute" style="grid-column: 3 / foo; grid-row: 3 / foo;" > data-offset-x="0" data-offset-y="215" data-expected-width="215" data-expected-height="115"> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/grid-positioned-items-unknown-named-grid-line-001.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/grid-positioned-items-unknown-named-grid-line-001.html >index 24d9d769f99079d19519d05f82e8fd637906fe8a..6e61f7c2de36a1d799aba0de6d10c52147d406d6 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/grid-positioned-items-unknown-named-grid-line-001.html >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/grid-positioned-items-unknown-named-grid-line-001.html >@@ -3,7 +3,7 @@ > <title>CSS Grid Layout Test: Grid positioned items unknown named grid line</title> > <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com"> > <link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning"> >-<meta name="assert" content="This test checks that grid placement properties of absolutely positioned items using unknown named grid lines are treated as 'auto'."> >+<meta name="assert" content="This test checks that grid placement properties of absolutely positioned items can reference implicit grid lines."> > <link rel="stylesheet" href="support/grid.css"> > <style> > >@@ -58,7 +58,7 @@ > data-offset-x="15" data-offset-y="15" data-expected-width="515" data-expected-height="315"> > </div> > <div class="absolute sizedToGridArea startUnknownLine" >- data-offset-x="0" data-offset-y="0" data-expected-width="315" data-expected-height="215"> >+ data-offset-x="315" data-offset-y="215" data-expected-width="215" data-expected-height="115"> > </div> > </div> > >@@ -70,7 +70,7 @@ > data-offset-x="0" data-offset-y="15" data-expected-width="515" data-expected-height="315"> > </div> > <div class="absolute sizedToGridArea startUnknownLine" >- data-offset-x="215" data-offset-y="0" data-expected-width="315" data-expected-height="215"> >+ data-offset-x="0" data-offset-y="215" data-expected-width="215" data-expected-height="115"> > </div> > </div> >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 193313
:
358787
| 358792