| Index: Source/core/rendering/RenderReplaced.cpp
|
| diff --git a/Source/core/rendering/RenderReplaced.cpp b/Source/core/rendering/RenderReplaced.cpp
|
| index cf65f2f4a844a792be83d2a5fdb7ee432be1f4ed..158da9025cfb32fe783c7a71804d2e68dd5eb411 100644
|
| --- a/Source/core/rendering/RenderReplaced.cpp
|
| +++ b/Source/core/rendering/RenderReplaced.cpp
|
| @@ -315,7 +315,7 @@ LayoutRect RenderReplaced::replacedContentRect(const LayoutSize* overriddenIntri
|
| {
|
| LayoutRect contentRect = contentBoxRect();
|
| ObjectFit objectFit = style()->objectFit();
|
| - if (objectFit == ObjectFitFill)
|
| + if (objectFit == ObjectFitFill && style()->objectPosition() == RenderStyle::initialObjectPosition())
|
| return contentRect;
|
|
|
| LayoutSize intrinsicSize = overriddenIntrinsicSize ? *overriddenIntrinsicSize : this->intrinsicSize();
|
| @@ -335,13 +335,13 @@ LayoutRect RenderReplaced::replacedContentRect(const LayoutSize* overriddenIntri
|
| finalRect.setSize(intrinsicSize);
|
| break;
|
| case ObjectFitFill:
|
| + break;
|
| + default:
|
| ASSERT_NOT_REACHED();
|
| }
|
|
|
| - // FIXME: This is where object-position should be taken into account, but since it's not
|
| - // implemented yet, assume the initial value of "50% 50%".
|
| - LayoutUnit xOffset = (contentRect.width() - finalRect.width()) / 2;
|
| - LayoutUnit yOffset = (contentRect.height() - finalRect.height()) / 2;
|
| + LayoutUnit xOffset = minimumValueForLength(style()->objectPosition().x(), contentRect.width() - finalRect.width(), view());
|
| + LayoutUnit yOffset = minimumValueForLength(style()->objectPosition().y(), contentRect.height() - finalRect.height(), view());
|
| finalRect.move(xOffset, yOffset);
|
|
|
| return finalRect;
|
|
|