2 <script src=
"../../../resources/js-test.js"></script>
3 <script src=
"resources/elementsFromPoint.js"></script>
11 background-color: rgba(
0,
180,
0,
0.2);
14 fill: rgba(
180,
0,
0,
0.2);
16 #topRightSvg, #middleG1, #middleG2, #bottomLeftG, #bottomRightG1, #bottomRightG2 {
17 pointer-events: bounding-box;
19 #topLeftRect2NoHitTest {
24 <svg id='svg' width='
300' height='
300'
>
25 <rect id='topLeftRect1' x='
5' y='
5' width='
90' height='
90'
/>
26 <rect id='topLeftRect2NoHitTest' x='
10' y='
10' width='
80' height='
80'
/>
27 <rect id='topLeftRect3' x='
15' y='
15' width='
70' height='
70'
/>
29 <svg id='topRightSvg' x='
205' y='
5' width='
90' height='
90'
>
30 <rect id='topRightRect1' x='
5' y='
5' width='
80' height='
80'
/>
31 <rect id='topRightRect2' x='
10' y='
10' width='
70' height='
70'
/>
36 <rect id='middleRect1' x='
105' y='
105' width='
90' height='
90'
/>
37 <rect id='middleRect2' x='
110' y='
110' width='
80' height='
80'
/>
42 <image id='bottomLeftImage1' x='
5' y='
205' width='
90' height='
90' xlink:href='data:image/svg+xml;utf8,
<svg width=
"100%" height=
"100%" xmlns=
"http://www.w3.org/2000/svg"><rect width=
"100%" height=
"100%" fill=
"rgba(180,0,0,0.2)"/></svg>'
/>
43 <image id='bottomLeftImage2' x='
10' y='
210' width='
80' height='
80' xlink:href='data:image/svg+xml;utf8,
<svg width=
"100%" height=
"100%" xmlns=
"http://www.w3.org/2000/svg"><rect width=
"100%" height=
"100%" fill=
"rgba(180,0,0,0.2)"/></svg>'
/>
46 <g id='bottomRightG1' transform='translate(
300,
300)'
>
47 <g id='bottomRightG2' transform='translate(-
100, -
100)'
>
48 <rect id='bottomRightRect1' x='
5' y='
5' width='
90' height='
90'
/>
49 <rect id='bottomRightRect2' x='
110' y='
110' width='
80' height='
80' transform='translate(-
100, -
100)'
/>
54 <div id=
"console"></div>
56 window
.jsTestIsAsync
= true;
58 if (window
.testRunner
)
59 testRunner
.dumpAsText();
62 internals
.settings
.setMockScrollbarsEnabled(true);
65 // Verify two overlapping rects can be hit.
66 assertElementsFromPoint('document.elementsFromPoint(125, 125)', [topLeftRect3
, topLeftRect1
, svg
, sandbox
, document
.body
, document
.documentElement
]);
68 // Verify two rects inside an svg element with pointer-events: bounding-box can be hit.
69 assertElementsFromPoint('document.elementsFromPoint(325, 125)', [topRightRect2
, topRightRect1
, topRightSvg
, svg
, sandbox
, document
.body
, document
.documentElement
]);
71 // Verify two rects can be hit when inside a <g>.
72 assertElementsFromPoint('document.elementsFromPoint(225, 225)', [middleRect2
, middleRect1
, middleG2
, middleG1
, svg
, sandbox
, document
.body
, document
.documentElement
]);
74 // Verify two overlapping images can be hit.
75 assertElementsFromPoint('document.elementsFromPoint(125, 325)', [bottomLeftImage2
, bottomLeftImage1
, bottomLeftG
, svg
, sandbox
, document
.body
, document
.documentElement
]);
77 // Verify transformed <g>s and <rect>s can be hit.
78 assertElementsFromPoint('document.elementsFromPoint(325, 325)', [bottomRightRect2
, bottomRightRect1
, bottomRightG2
, bottomRightG1
, svg
, sandbox
, document
.body
, document
.documentElement
]);