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

Unified Diff: third_party/WebKit/Source/core/layout/svg/LayoutSVGRoot.cpp

Issue 1827793003: Support currentScale for embedded SVG (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 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 side-by-side diff with in-line comments
Download patch
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);

Powered by Google App Engine
This is Rietveld 408576698