OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2014 Google Inc. All rights reserved. | 2 * Copyright (C) 2014 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 14 matching lines...) Expand all Loading... |
25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
29 */ | 29 */ |
30 | 30 |
31 #include "config.h" | 31 #include "config.h" |
32 #include "core/rendering/RenderGeometryMap.h" | 32 #include "core/rendering/RenderGeometryMap.h" |
33 | 33 |
34 #include "core/dom/Document.h" | 34 #include "core/dom/Document.h" |
| 35 #include "core/layout/Layer.h" |
35 #include "core/rendering/RenderBox.h" | 36 #include "core/rendering/RenderBox.h" |
36 #include "core/rendering/RenderLayer.h" | |
37 #include "core/testing/URLTestHelpers.h" | 37 #include "core/testing/URLTestHelpers.h" |
38 #include "public/platform/Platform.h" | 38 #include "public/platform/Platform.h" |
39 #include "public/platform/WebUnitTestSupport.h" | 39 #include "public/platform/WebUnitTestSupport.h" |
40 #include "public/web/WebFrameClient.h" | 40 #include "public/web/WebFrameClient.h" |
41 #include "web/WebLocalFrameImpl.h" | 41 #include "web/WebLocalFrameImpl.h" |
42 #include "web/tests/FloatPointTestHelpers.h" | 42 #include "web/tests/FloatPointTestHelpers.h" |
43 #include "web/tests/FloatQuadTestHelpers.h" | 43 #include "web/tests/FloatQuadTestHelpers.h" |
44 #include "web/tests/FrameTestHelpers.h" | 44 #include "web/tests/FrameTestHelpers.h" |
45 #include <gtest/gtest.h> | 45 #include <gtest/gtest.h> |
46 | 46 |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
83 if (!webViewImpl) | 83 if (!webViewImpl) |
84 return nullptr; | 84 return nullptr; |
85 LocalFrame* frame = webViewImpl->mainFrameImpl()->frame(); | 85 LocalFrame* frame = webViewImpl->mainFrameImpl()->frame(); |
86 Document* doc = frame->document(); | 86 Document* doc = frame->document(); |
87 Element* element = doc->getElementById(elementId); | 87 Element* element = doc->getElementById(elementId); |
88 if (!element) | 88 if (!element) |
89 return nullptr; | 89 return nullptr; |
90 return element->renderBox(); | 90 return element->renderBox(); |
91 } | 91 } |
92 | 92 |
93 static const RenderLayerModelObject* getRenderContainer(WebView* webView, co
nst WTF::AtomicString &elementId) | 93 static const LayoutLayerModelObject* getRenderContainer(WebView* webView, co
nst WTF::AtomicString &elementId) |
94 { | 94 { |
95 RenderBox* rb = getRenderBox(webView, elementId); | 95 RenderBox* rb = getRenderBox(webView, elementId); |
96 if (!rb) | 96 if (!rb) |
97 return nullptr; | 97 return nullptr; |
98 RenderLayer* compositingLayer = rb->enclosingLayer()->enclosingLayerForP
aintInvalidation(); | 98 Layer* compositingLayer = rb->enclosingLayer()->enclosingLayerForPaintIn
validation(); |
99 if (!compositingLayer) | 99 if (!compositingLayer) |
100 return nullptr; | 100 return nullptr; |
101 return compositingLayer->renderer(); | 101 return compositingLayer->renderer(); |
102 } | 102 } |
103 | 103 |
104 static const RenderLayerModelObject* getFrameRenderContainer(const char* fra
meId, WebView* webView, const WTF::AtomicString &elementId) | 104 static const LayoutLayerModelObject* getFrameRenderContainer(const char* fra
meId, WebView* webView, const WTF::AtomicString &elementId) |
105 { | 105 { |
106 RenderBox* rb = getFrameElement(frameId, webView, elementId); | 106 RenderBox* rb = getFrameElement(frameId, webView, elementId); |
107 if (!rb) | 107 if (!rb) |
108 return nullptr; | 108 return nullptr; |
109 RenderLayer* compositingLayer = rb->enclosingLayer()->enclosingLayerForP
aintInvalidation(); | 109 Layer* compositingLayer = rb->enclosingLayer()->enclosingLayerForPaintIn
validation(); |
110 if (!compositingLayer) | 110 if (!compositingLayer) |
111 return nullptr; | 111 return nullptr; |
112 return compositingLayer->renderer(); | 112 return compositingLayer->renderer(); |
113 } | 113 } |
114 | 114 |
115 static const FloatRect rectFromQuad(const FloatQuad& quad) | 115 static const FloatRect rectFromQuad(const FloatQuad& quad) |
116 { | 116 { |
117 FloatRect rect; | 117 FloatRect rect; |
118 rect.setX(std::min(quad.p1().x(), std::min(quad.p2().x(), std::min(quad.
p3().x(), quad.p4().x())))); | 118 rect.setX(std::min(quad.p1().x(), std::min(quad.p2().x(), std::min(quad.
p3().x(), quad.p4().x())))); |
119 rect.setY(std::min(quad.p1().y(), std::min(quad.p2().y(), std::min(quad.
p3().y(), quad.p4().y())))); | 119 rect.setY(std::min(quad.p1().y(), std::min(quad.p2().y(), std::min(quad.
p3().y(), quad.p4().y())))); |
(...skipping 23 matching lines...) Expand all Loading... |
143 // We are going test everything twice. Once with FloatPoints and once with | 143 // We are going test everything twice. Once with FloatPoints and once with |
144 // FloatRects. This is because RenderGeometryMap treats both slightly | 144 // FloatRects. This is because RenderGeometryMap treats both slightly |
145 // differently | 145 // differently |
146 RenderGeometryMap rgm; | 146 RenderGeometryMap rgm; |
147 rgm.pushMappingsToAncestor(getRenderBox(webView, "InitialDiv"), 0); | 147 rgm.pushMappingsToAncestor(getRenderBox(webView, "InitialDiv"), 0); |
148 FloatPoint point; | 148 FloatPoint point; |
149 FloatRect rect(0.0f, 0.0f, 1.0f, 2.0f); | 149 FloatRect rect(0.0f, 0.0f, 1.0f, 2.0f); |
150 EXPECT_EQ(FloatPoint(8.0f, 8.0f), rgm.mapToContainer(point, nullptr)); | 150 EXPECT_EQ(FloatPoint(8.0f, 8.0f), rgm.mapToContainer(point, nullptr)); |
151 EXPECT_EQ(FloatQuad(FloatRect(8.0f, 8.0f, 1.0f, 2.0f)), rgm.mapToContainer(r
ect, nullptr)); | 151 EXPECT_EQ(FloatQuad(FloatRect(8.0f, 8.0f, 1.0f, 2.0f)), rgm.mapToContainer(r
ect, nullptr)); |
152 | 152 |
153 rgm.popMappingsToAncestor(static_cast<RenderLayer*>(nullptr)); | 153 rgm.popMappingsToAncestor(static_cast<Layer*>(nullptr)); |
154 EXPECT_EQ(FloatPoint(0.0f, 0.0f), rgm.mapToContainer(point, nullptr)); | 154 EXPECT_EQ(FloatPoint(0.0f, 0.0f), rgm.mapToContainer(point, nullptr)); |
155 EXPECT_EQ(FloatQuad(FloatRect(0.0f, 0.0f, 1.0f, 2.0f)), rgm.mapToContainer(r
ect, nullptr)); | 155 EXPECT_EQ(FloatQuad(FloatRect(0.0f, 0.0f, 1.0f, 2.0f)), rgm.mapToContainer(r
ect, nullptr)); |
156 | 156 |
157 rgm.pushMappingsToAncestor(getRenderBox(webView, "InnerDiv"), 0); | 157 rgm.pushMappingsToAncestor(getRenderBox(webView, "InnerDiv"), 0); |
158 EXPECT_EQ(FloatPoint(21.0f, 6.0f), rgm.mapToContainer(point, getRenderBox(we
bView, "CenterDiv"))); | 158 EXPECT_EQ(FloatPoint(21.0f, 6.0f), rgm.mapToContainer(point, getRenderBox(we
bView, "CenterDiv"))); |
159 EXPECT_EQ(FloatQuad(FloatRect(21.0f, 6.0f, 1.0f, 2.0f)), rgm.mapToContainer(
rect, getRenderBox(webView, "CenterDiv"))); | 159 EXPECT_EQ(FloatQuad(FloatRect(21.0f, 6.0f, 1.0f, 2.0f)), rgm.mapToContainer(
rect, getRenderBox(webView, "CenterDiv"))); |
160 | 160 |
161 rgm.pushMappingsToAncestor(getRenderBox(webView, "OtherDiv"), getRenderBox(w
ebView, "InnerDiv")); | 161 rgm.pushMappingsToAncestor(getRenderBox(webView, "OtherDiv"), getRenderBox(w
ebView, "InnerDiv")); |
162 EXPECT_EQ(FloatPoint(22.0f, 12.0f), rgm.mapToContainer(point, getRenderBox(w
ebView, "CenterDiv"))); | 162 EXPECT_EQ(FloatPoint(22.0f, 12.0f), rgm.mapToContainer(point, getRenderBox(w
ebView, "CenterDiv"))); |
163 EXPECT_EQ(FloatQuad(FloatRect(22.0f, 12.0f, 1.0f, 2.0f)), rgm.mapToContainer
(rect, getRenderBox(webView, "CenterDiv"))); | 163 EXPECT_EQ(FloatQuad(FloatRect(22.0f, 12.0f, 1.0f, 2.0f)), rgm.mapToContainer
(rect, getRenderBox(webView, "CenterDiv"))); |
(...skipping 22 matching lines...) Expand all Loading... |
186 RenderGeometryMap rgm; | 186 RenderGeometryMap rgm; |
187 rgm.pushMappingsToAncestor(getRenderBox(webView, "InitialDiv"), 0); | 187 rgm.pushMappingsToAncestor(getRenderBox(webView, "InitialDiv"), 0); |
188 FloatPoint point; | 188 FloatPoint point; |
189 const float rectWidth = 15.0f; | 189 const float rectWidth = 15.0f; |
190 const float scaleWidth = 2.0f; | 190 const float scaleWidth = 2.0f; |
191 const float scaleHeight = 3.0f; | 191 const float scaleHeight = 3.0f; |
192 FloatRect rect(0.0f, 0.0f, 15.0f, 25.0f); | 192 FloatRect rect(0.0f, 0.0f, 15.0f, 25.0f); |
193 EXPECT_EQ(FloatPoint(8.0f, 8.0f), rgm.mapToContainer(point, nullptr)); | 193 EXPECT_EQ(FloatPoint(8.0f, 8.0f), rgm.mapToContainer(point, nullptr)); |
194 EXPECT_EQ(FloatQuad(FloatRect(8.0f, 8.0f, 15.0f, 25.0f)), rgm.mapToContainer
(rect, nullptr)); | 194 EXPECT_EQ(FloatQuad(FloatRect(8.0f, 8.0f, 15.0f, 25.0f)), rgm.mapToContainer
(rect, nullptr)); |
195 | 195 |
196 rgm.popMappingsToAncestor(static_cast<RenderLayer*>(nullptr)); | 196 rgm.popMappingsToAncestor(static_cast<Layer*>(nullptr)); |
197 EXPECT_EQ(FloatPoint(0.0f, 0.0f), rgm.mapToContainer(point, nullptr)); | 197 EXPECT_EQ(FloatPoint(0.0f, 0.0f), rgm.mapToContainer(point, nullptr)); |
198 EXPECT_EQ(FloatQuad(FloatRect(0.0f, 0.0f, 15.0f, 25.0f)).boundingBox(), rgm.
mapToContainer(rect, nullptr).boundingBox()); | 198 EXPECT_EQ(FloatQuad(FloatRect(0.0f, 0.0f, 15.0f, 25.0f)).boundingBox(), rgm.
mapToContainer(rect, nullptr).boundingBox()); |
199 | 199 |
200 rgm.pushMappingsToAncestor(getRenderBox(webView, "InnerDiv"), 0); | 200 rgm.pushMappingsToAncestor(getRenderBox(webView, "InnerDiv"), 0); |
201 EXPECT_EQ(FloatPoint(523.0f, 6.0f), rgm.mapToContainer(point, getRenderBox(w
ebView, "CenterDiv"))); | 201 EXPECT_EQ(FloatPoint(523.0f, 6.0f), rgm.mapToContainer(point, getRenderBox(w
ebView, "CenterDiv"))); |
202 EXPECT_EQ(FloatQuad(FloatRect(523.0f - rectWidth, 6.0f, 15.0f, 25.0f)).bound
ingBox(), rgm.mapToContainer(rect, getRenderBox(webView, "CenterDiv")).boundingB
ox()); | 202 EXPECT_EQ(FloatQuad(FloatRect(523.0f - rectWidth, 6.0f, 15.0f, 25.0f)).bound
ingBox(), rgm.mapToContainer(rect, getRenderBox(webView, "CenterDiv")).boundingB
ox()); |
203 | 203 |
204 rgm.pushMappingsToAncestor(getRenderBox(webView, "OtherDiv"), getRenderBox(w
ebView, "InnerDiv")); | 204 rgm.pushMappingsToAncestor(getRenderBox(webView, "OtherDiv"), getRenderBox(w
ebView, "InnerDiv")); |
205 EXPECT_EQ(FloatPoint(522.0f, 12.0f), rgm.mapToContainer(point, getRenderBox(
webView, "CenterDiv"))); | 205 EXPECT_EQ(FloatPoint(522.0f, 12.0f), rgm.mapToContainer(point, getRenderBox(
webView, "CenterDiv"))); |
206 EXPECT_EQ(FloatQuad(FloatRect(522.0f - rectWidth, 12.0f, 15.0f, 25.0f)).boun
dingBox(), rgm.mapToContainer(rect, getRenderBox(webView, "CenterDiv")).bounding
Box()); | 206 EXPECT_EQ(FloatQuad(FloatRect(522.0f - rectWidth, 12.0f, 15.0f, 25.0f)).boun
dingBox(), rgm.mapToContainer(rect, getRenderBox(webView, "CenterDiv")).bounding
Box()); |
(...skipping 24 matching lines...) Expand all Loading... |
231 webView->resize(WebSize(1000, 1000)); | 231 webView->resize(WebSize(1000, 1000)); |
232 webView->layout(); | 232 webView->layout(); |
233 | 233 |
234 RenderGeometryMap rgm; | 234 RenderGeometryMap rgm; |
235 rgm.pushMappingsToAncestor(getRenderBox(webView, "InitialDiv"), 0); | 235 rgm.pushMappingsToAncestor(getRenderBox(webView, "InitialDiv"), 0); |
236 FloatPoint point; | 236 FloatPoint point; |
237 FloatRect rect(0.0f, 0.0f, 15.0f, 25.0f); | 237 FloatRect rect(0.0f, 0.0f, 15.0f, 25.0f); |
238 EXPECT_EQ(FloatPoint(8.0f, 8.0f), rgm.mapToContainer(point, nullptr)); | 238 EXPECT_EQ(FloatPoint(8.0f, 8.0f), rgm.mapToContainer(point, nullptr)); |
239 EXPECT_EQ(FloatQuad(FloatRect(8.0f, 8.0f, 15.0f, 25.0f)), rgm.mapToContainer
(rect, nullptr)); | 239 EXPECT_EQ(FloatQuad(FloatRect(8.0f, 8.0f, 15.0f, 25.0f)), rgm.mapToContainer
(rect, nullptr)); |
240 | 240 |
241 rgm.popMappingsToAncestor(static_cast<RenderLayer*>(nullptr)); | 241 rgm.popMappingsToAncestor(static_cast<Layer*>(nullptr)); |
242 EXPECT_EQ(FloatPoint(0.0f, 0.0f), rgm.mapToContainer(point, nullptr)); | 242 EXPECT_EQ(FloatPoint(0.0f, 0.0f), rgm.mapToContainer(point, nullptr)); |
243 EXPECT_EQ(FloatQuad(FloatRect(0.0f, 0.0f, 15.0f, 25.0f)), rgm.mapToContainer
(rect, nullptr)); | 243 EXPECT_EQ(FloatQuad(FloatRect(0.0f, 0.0f, 15.0f, 25.0f)), rgm.mapToContainer
(rect, nullptr)); |
244 | 244 |
245 rgm.pushMappingsToAncestor(getRenderBox(webView, "InnerDiv"), 0); | 245 rgm.pushMappingsToAncestor(getRenderBox(webView, "InnerDiv"), 0); |
246 EXPECT_EQ(FloatPoint(20.0f, 14.0f), rgm.mapToContainer(point, getRenderConta
iner(webView, "CenterDiv"))); | 246 EXPECT_EQ(FloatPoint(20.0f, 14.0f), rgm.mapToContainer(point, getRenderConta
iner(webView, "CenterDiv"))); |
247 EXPECT_EQ(FloatQuad(FloatRect(20.0f, 14.0f, 15.0f, 25.0f)), rgm.mapToContain
er(rect, nullptr)); | 247 EXPECT_EQ(FloatQuad(FloatRect(20.0f, 14.0f, 15.0f, 25.0f)), rgm.mapToContain
er(rect, nullptr)); |
248 | 248 |
249 rgm.pushMappingsToAncestor(getRenderBox(webView, "OtherDiv"), getRenderBox(w
ebView, "InnerDiv")); | 249 rgm.pushMappingsToAncestor(getRenderBox(webView, "OtherDiv"), getRenderBox(w
ebView, "InnerDiv")); |
250 EXPECT_EQ(FloatPoint(21.0f, 20.0f), rgm.mapToContainer(point, getRenderConta
iner(webView, "CenterDiv"))); | 250 EXPECT_EQ(FloatPoint(21.0f, 20.0f), rgm.mapToContainer(point, getRenderConta
iner(webView, "CenterDiv"))); |
251 EXPECT_EQ(FloatQuad(FloatRect(21.0f, 20.0f, 15.0f, 25.0f)), rgm.mapToContain
er(rect, getRenderContainer(webView, "CenterDiv"))); | 251 EXPECT_EQ(FloatQuad(FloatRect(21.0f, 20.0f, 15.0f, 25.0f)), rgm.mapToContain
er(rect, getRenderContainer(webView, "CenterDiv"))); |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
301 // That maximum x should likewise be p0.x + cos(30deg) = p0.x + 0.866. | 301 // That maximum x should likewise be p0.x + cos(30deg) = p0.x + 0.866. |
302 // And the maximum y should be p0.x + sin(30deg) + 2*cos(30deg) | 302 // And the maximum y should be p0.x + sin(30deg) + 2*cos(30deg) |
303 // = p0.y + 2.232. | 303 // = p0.y + 2.232. |
304 EXPECT_NEAR(70.5244f, rgm.mapToContainer(point, nullptr).x(), 0.0001f); | 304 EXPECT_NEAR(70.5244f, rgm.mapToContainer(point, nullptr).x(), 0.0001f); |
305 EXPECT_NEAR(-44.0237f, rgm.mapToContainer(point, nullptr).y(), 0.0001f); | 305 EXPECT_NEAR(-44.0237f, rgm.mapToContainer(point, nullptr).y(), 0.0001f); |
306 EXPECT_NEAR(69.5244f, rectFromQuad(rgm.mapToContainer(rect, nullptr)).x(), 0
.0001f); | 306 EXPECT_NEAR(69.5244f, rectFromQuad(rgm.mapToContainer(rect, nullptr)).x(), 0
.0001f); |
307 EXPECT_NEAR(-44.0237, rectFromQuad(rgm.mapToContainer(rect, nullptr)).y(), 0
.0001f); | 307 EXPECT_NEAR(-44.0237, rectFromQuad(rgm.mapToContainer(rect, nullptr)).y(), 0
.0001f); |
308 EXPECT_NEAR(1.866, rectFromQuad(rgm.mapToContainer(rect, nullptr)).width(),
0.0001f); | 308 EXPECT_NEAR(1.866, rectFromQuad(rgm.mapToContainer(rect, nullptr)).width(),
0.0001f); |
309 EXPECT_NEAR(2.232, rectFromQuad(rgm.mapToContainer(rect, nullptr)).height(),
0.0001f); | 309 EXPECT_NEAR(2.232, rectFromQuad(rgm.mapToContainer(rect, nullptr)).height(),
0.0001f); |
310 | 310 |
311 rgm.popMappingsToAncestor(static_cast<RenderLayer*>(nullptr)); | 311 rgm.popMappingsToAncestor(static_cast<Layer*>(nullptr)); |
312 rgmNoFrame.popMappingsToAncestor(static_cast<RenderLayer*>(nullptr)); | 312 rgmNoFrame.popMappingsToAncestor(static_cast<Layer*>(nullptr)); |
313 EXPECT_EQ(FloatPoint(0.0f, 0.0f), rgm.mapToContainer(point, nullptr)); | 313 EXPECT_EQ(FloatPoint(0.0f, 0.0f), rgm.mapToContainer(point, nullptr)); |
314 EXPECT_EQ(FloatPoint(0.0f, 0.0f), rgmNoFrame.mapToContainer(point, nullptr))
; | 314 EXPECT_EQ(FloatPoint(0.0f, 0.0f), rgmNoFrame.mapToContainer(point, nullptr))
; |
315 | 315 |
316 rgm.pushMappingsToAncestor(getFrameElement("test_frame", webView, "InnerDiv"
), 0); | 316 rgm.pushMappingsToAncestor(getFrameElement("test_frame", webView, "InnerDiv"
), 0); |
317 rgmNoFrame.pushMappingsToAncestor(getFrameElement("test_frame", webView, "In
nerDiv"), 0); | 317 rgmNoFrame.pushMappingsToAncestor(getFrameElement("test_frame", webView, "In
nerDiv"), 0); |
318 EXPECT_EQ(FloatPoint(21.0f, 6.0f), rgm.mapToContainer(point, getFrameRenderC
ontainer("test_frame", webView, "CenterDiv"))); | 318 EXPECT_EQ(FloatPoint(21.0f, 6.0f), rgm.mapToContainer(point, getFrameRenderC
ontainer("test_frame", webView, "CenterDiv"))); |
319 EXPECT_EQ(FloatQuad(FloatRect(21.0f, 6.0f, 1.0f, 2.0f)), rgm.mapToContainer(
rect, getFrameRenderContainer("test_frame", webView, "CenterDiv"))); | 319 EXPECT_EQ(FloatQuad(FloatRect(21.0f, 6.0f, 1.0f, 2.0f)), rgm.mapToContainer(
rect, getFrameRenderContainer("test_frame", webView, "CenterDiv"))); |
320 EXPECT_EQ(FloatPoint(21.0f, 6.0f), rgmNoFrame.mapToContainer(point, getFrame
RenderContainer("test_frame", webView, "CenterDiv"))); | 320 EXPECT_EQ(FloatPoint(21.0f, 6.0f), rgmNoFrame.mapToContainer(point, getFrame
RenderContainer("test_frame", webView, "CenterDiv"))); |
321 EXPECT_EQ(FloatQuad(FloatRect(21.0f, 6.0f, 1.0f, 2.0f)), rgmNoFrame.mapToCon
tainer(rect, getFrameRenderContainer("test_frame", webView, "CenterDiv"))); | 321 EXPECT_EQ(FloatQuad(FloatRect(21.0f, 6.0f, 1.0f, 2.0f)), rgmNoFrame.mapToCon
tainer(rect, getFrameRenderContainer("test_frame", webView, "CenterDiv"))); |
322 | 322 |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
360 float offset = (1000.0f - 16.0f - 20.0f) / 3.0f + 10.0f; | 360 float offset = (1000.0f - 16.0f - 20.0f) / 3.0f + 10.0f; |
361 | 361 |
362 RenderGeometryMap rgm; | 362 RenderGeometryMap rgm; |
363 rgm.pushMappingsToAncestor(getRenderBox(webView, "A"), 0); | 363 rgm.pushMappingsToAncestor(getRenderBox(webView, "A"), 0); |
364 FloatPoint point; | 364 FloatPoint point; |
365 FloatRect rect(0.0f, 0.0f, 5.0f, 3.0f); | 365 FloatRect rect(0.0f, 0.0f, 5.0f, 3.0f); |
366 | 366 |
367 EXPECT_EQ(FloatPoint(8.0f, 8.0f), rgm.mapToContainer(point, nullptr)); | 367 EXPECT_EQ(FloatPoint(8.0f, 8.0f), rgm.mapToContainer(point, nullptr)); |
368 EXPECT_EQ(FloatQuad(FloatRect(8.0f, 8.0f, 5.0f, 3.0f)), rgm.mapToContainer(r
ect, nullptr)); | 368 EXPECT_EQ(FloatQuad(FloatRect(8.0f, 8.0f, 5.0f, 3.0f)), rgm.mapToContainer(r
ect, nullptr)); |
369 | 369 |
370 rgm.popMappingsToAncestor(static_cast<RenderLayer*>(nullptr)); | 370 rgm.popMappingsToAncestor(static_cast<Layer*>(nullptr)); |
371 EXPECT_EQ(FloatPoint(0.0f, 0.0f), rgm.mapToContainer(point, nullptr)); | 371 EXPECT_EQ(FloatPoint(0.0f, 0.0f), rgm.mapToContainer(point, nullptr)); |
372 EXPECT_EQ(FloatQuad(FloatRect(0.0f, 0.0f, 5.0f, 3.0f)), rgm.mapToContainer(r
ect, nullptr)); | 372 EXPECT_EQ(FloatQuad(FloatRect(0.0f, 0.0f, 5.0f, 3.0f)), rgm.mapToContainer(r
ect, nullptr)); |
373 | 373 |
374 rgm.pushMappingsToAncestor(getRenderBox(webView, "Col1"), 0); | 374 rgm.pushMappingsToAncestor(getRenderBox(webView, "Col1"), 0); |
375 EXPECT_EQ(FloatPoint(8.0f, 8.0f), rgm.mapToContainer(point, nullptr)); | 375 EXPECT_EQ(FloatPoint(8.0f, 8.0f), rgm.mapToContainer(point, nullptr)); |
376 EXPECT_EQ(FloatQuad(FloatRect(8.0f, 8.0f, 5.0f, 3.0f)), rgm.mapToContainer(r
ect, nullptr)); | 376 EXPECT_EQ(FloatQuad(FloatRect(8.0f, 8.0f, 5.0f, 3.0f)), rgm.mapToContainer(r
ect, nullptr)); |
377 | 377 |
378 rgm.popMappingsToAncestor(static_cast<RenderLayer*>(nullptr)); | 378 rgm.popMappingsToAncestor(static_cast<Layer*>(nullptr)); |
379 rgm.pushMappingsToAncestor(getRenderBox(webView, "Col2"), nullptr); | 379 rgm.pushMappingsToAncestor(getRenderBox(webView, "Col2"), nullptr); |
380 EXPECT_NEAR(8.0f + offset, rgm.mapToContainer(point, nullptr).x(), 0.1f); | 380 EXPECT_NEAR(8.0f + offset, rgm.mapToContainer(point, nullptr).x(), 0.1f); |
381 EXPECT_NEAR(8.0f, rgm.mapToContainer(point, nullptr).y(), 0.1f); | 381 EXPECT_NEAR(8.0f, rgm.mapToContainer(point, nullptr).y(), 0.1f); |
382 EXPECT_NEAR(8.0f + offset, rectFromQuad(rgm.mapToContainer(rect, nullptr)).x
(), 0.1f); | 382 EXPECT_NEAR(8.0f + offset, rectFromQuad(rgm.mapToContainer(rect, nullptr)).x
(), 0.1f); |
383 EXPECT_NEAR(8.0f, rectFromQuad(rgm.mapToContainer(rect, nullptr)).y(), 0.1f)
; | 383 EXPECT_NEAR(8.0f, rectFromQuad(rgm.mapToContainer(rect, nullptr)).y(), 0.1f)
; |
384 EXPECT_EQ(5.0f, rectFromQuad(rgm.mapToContainer(rect, nullptr)).width()); | 384 EXPECT_EQ(5.0f, rectFromQuad(rgm.mapToContainer(rect, nullptr)).width()); |
385 EXPECT_EQ(3.0f, rectFromQuad(rgm.mapToContainer(rect, nullptr)).height()); | 385 EXPECT_EQ(3.0f, rectFromQuad(rgm.mapToContainer(rect, nullptr)).height()); |
386 | 386 |
387 rgm.popMappingsToAncestor(static_cast<RenderLayer*>(nullptr)); | 387 rgm.popMappingsToAncestor(static_cast<Layer*>(nullptr)); |
388 rgm.pushMappingsToAncestor(getRenderBox(webView, "Col3"), nullptr); | 388 rgm.pushMappingsToAncestor(getRenderBox(webView, "Col3"), nullptr); |
389 EXPECT_NEAR(8.0f + offset * 2.0f, rgm.mapToContainer(point, nullptr).x(), 0.
1f); | 389 EXPECT_NEAR(8.0f + offset * 2.0f, rgm.mapToContainer(point, nullptr).x(), 0.
1f); |
390 EXPECT_NEAR(8.0f, rgm.mapToContainer(point, nullptr).y(), 0.1f); | 390 EXPECT_NEAR(8.0f, rgm.mapToContainer(point, nullptr).y(), 0.1f); |
391 EXPECT_NEAR(8.0f + offset * 2.0f, rectFromQuad(rgm.mapToContainer(rect, null
ptr)).x(), 0.1f); | 391 EXPECT_NEAR(8.0f + offset * 2.0f, rectFromQuad(rgm.mapToContainer(rect, null
ptr)).x(), 0.1f); |
392 EXPECT_NEAR(8.0f, rectFromQuad(rgm.mapToContainer(rect, nullptr)).y(), 0.1f)
; | 392 EXPECT_NEAR(8.0f, rectFromQuad(rgm.mapToContainer(rect, nullptr)).y(), 0.1f)
; |
393 EXPECT_EQ(5.0f, rectFromQuad(rgm.mapToContainer(rect, nullptr)).width()); | 393 EXPECT_EQ(5.0f, rectFromQuad(rgm.mapToContainer(rect, nullptr)).width()); |
394 EXPECT_EQ(3.0f, rectFromQuad(rgm.mapToContainer(rect, nullptr)).height()); | 394 EXPECT_EQ(3.0f, rectFromQuad(rgm.mapToContainer(rect, nullptr)).height()); |
395 | 395 |
396 } | 396 } |
397 } // namespace :: | 397 } // namespace :: |
OLD | NEW |