зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1635064 - Make SVG images take image-orientation property into account. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D75478
This commit is contained in:
Родитель
573977550b
Коммит
adc997e221
|
@ -116,6 +116,24 @@ void nsSVGImageFrame::DestroyFrom(nsIFrame* aDestructRoot,
|
|||
nsFrame::DestroyFrom(aDestructRoot, aPostDestroyData);
|
||||
}
|
||||
|
||||
/* virtual */
|
||||
void nsSVGImageFrame::DidSetComputedStyle(ComputedStyle* aOldStyle) {
|
||||
SVGGeometryFrame::DidSetComputedStyle(aOldStyle);
|
||||
|
||||
if (!mImageContainer || !aOldStyle) {
|
||||
return;
|
||||
}
|
||||
|
||||
auto newOrientation = StyleVisibility()->mImageOrientation;
|
||||
|
||||
if (aOldStyle->StyleVisibility()->mImageOrientation != newOrientation) {
|
||||
nsCOMPtr<imgIContainer> image(mImageContainer->Unwrap());
|
||||
mImageContainer = nsLayoutUtils::OrientImage(image, newOrientation);
|
||||
}
|
||||
|
||||
// TODO(heycam): We should handle aspect-ratio, like nsImageFrame does.
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
// nsIFrame methods:
|
||||
|
||||
|
@ -805,6 +823,8 @@ void nsSVGImageListener::Notify(imgIRequest* aRequest, int32_t aType,
|
|||
nsCOMPtr<imgIContainer> image;
|
||||
aRequest->GetImage(getter_AddRefs(image));
|
||||
if (image) {
|
||||
image = nsLayoutUtils::OrientImage(
|
||||
image, mFrame->StyleVisibility()->mImageOrientation);
|
||||
image->SetAnimationMode(mFrame->PresContext()->ImageAnimationMode());
|
||||
mFrame->mImageContainer = std::move(image);
|
||||
}
|
||||
|
|
|
@ -94,6 +94,7 @@ class nsSVGImageFrame final : public mozilla::SVGGeometryFrame,
|
|||
nsIFrame* aPrevInFlow) override;
|
||||
virtual void DestroyFrom(nsIFrame* aDestructRoot,
|
||||
PostDestroyData& aPostDestroyData) override;
|
||||
void DidSetComputedStyle(ComputedStyle* aOldStyle) final;
|
||||
|
||||
bool GetIntrinsicImageDimensions(mozilla::gfx::Size& aSize,
|
||||
mozilla::AspectRatio& aAspectRatio) const;
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
[svg-image-orientation-aspect-ratio.html]
|
||||
expected: FAIL
|
||||
fuzzy: 17-20;5534-6147
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
[svg-image-orientation-none.html]
|
||||
expected: FAIL
|
||||
fuzzy: 3;93
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
[svg-image-orientation.html]
|
||||
expected: FAIL
|
||||
fuzzy: 3;166
|
||||
|
|
Загрузка…
Ссылка в новой задаче