Index: third_party/WebKit/Source/core/layout/svg/LayoutSVGRoot.cpp |
diff --git a/third_party/WebKit/Source/core/layout/svg/LayoutSVGRoot.cpp b/third_party/WebKit/Source/core/layout/svg/LayoutSVGRoot.cpp |
index 675c646fe1e0f0087c862d0db4dc185920b0613e..3dc55ae7f2df7d011a246c4659b2e0560e467fb3 100644 |
--- a/third_party/WebKit/Source/core/layout/svg/LayoutSVGRoot.cpp |
+++ b/third_party/WebKit/Source/core/layout/svg/LayoutSVGRoot.cpp |
@@ -301,7 +301,20 @@ void LayoutSVGRoot::buildLocalToBorderBoxTransform() |
float scale = style()->effectiveZoom(); |
FloatPoint translate = svg->currentTranslate(); |
LayoutSize borderAndPadding(borderLeft() + paddingLeft(), borderTop() + paddingTop()); |
- m_localToBorderBoxTransform = svg->viewBoxToViewTransform(contentWidth() / scale, contentHeight() / scale); |
+ float viewWidth = contentWidth(); |
+ float viewHeight = contentHeight(); |
+ |
+ if (isEmbeddedThroughFrameContainingSVGDocument()) { |
fs
2016/03/29 11:58:51
I think a better way to structure this code would
|
+ LayoutPart* ownerLayoutObject = svg->document().frame()->ownerLayoutObject(); |
+ float currentPageZoom = svg->document().frame()->pageZoomFactor(); |
fs
2016/03/29 11:58:51
Won't LocalFrame::setPageZoomFactor cause the effe
Shanmuga Pandi
2016/03/30 08:40:06
Yes. LocalFrame::setPageZoomFactor will cause the
fs
2016/03/30 09:04:12
I don't think you should be comparing anything at
Shanmuga Pandi
2016/03/30 09:17:38
Yes . I agree with that. Layout size of embedding
fs
2016/03/30 10:16:30
Well, something like:
AffineTransform viewToBorde
Shanmuga Pandi
2016/03/30 10:23:30
Thank you for your suggestion.
But What will be t
fs
2016/03/30 10:46:39
That would be an option I guess, there's nothing t
|
+ float ownerPageZoom = ownerLayoutObject->document().frame()->pageZoomFactor(); |
+ if (currentPageZoom != ownerPageZoom) |
+ m_localToBorderBoxTransform = svg->viewBoxToViewTransform(viewWidth / ownerPageZoom, viewHeight / ownerPageZoom); |
+ else |
+ m_localToBorderBoxTransform = svg->viewBoxToViewTransform(viewWidth / scale, viewHeight / scale); |
+ } else { |
+ m_localToBorderBoxTransform = svg->viewBoxToViewTransform(viewWidth / scale, viewHeight / scale); |
+ } |
AffineTransform viewToBorderBoxTransform(scale, 0, 0, scale, borderAndPadding.width() + translate.x(), borderAndPadding.height() + translate.y()); |
m_localToBorderBoxTransform.preMultiply(viewToBorderBoxTransform); |