Bug 1813980: Check IsDoc before Parent in RemoteAccessibleBase::ApplyCrossDocOffset. r=morgan
We call this function on every ancestor when calculating bounds.
RemoteParent() currently requires a hash lookup, so it's more efficient to early return for !IsDoc() first.
This is a micro-optimisation, but it might have some impact given that we call this on every ancestor, especially when hit testing, where we call Bounds() a lot.
As a bit of drive-by cleanup, use RemoteParent() rather than calling Parent() and IsRemote/AsRemote().
Differential Revision:
https://phabricator.services.mozilla.com/D168346
<!DOCTYPE HTML>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html><head>
<meta charset="utf-8">
<title>CSS Grid Test: Testing track max-sizing 'max-content'</title>
<link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1151212">
<link rel="help" href="http://dev.w3.org/csswg/css-grid/#valdef-grid-template-columns-max-content">
<link rel="match" href="grid-col-max-sizing-max-content-001-ref.html">
<style type="text/css">
body,html { color:black; background:white; font-size:16px; padding:0; margin:0; }
.grid {
display: grid;
grid-auto-columns: minmax(min-content,max-content);
border: dashed blue;
float:left;
clear:left;
justify-items: stretch;
}
.c1 { grid-column: 1 / span 2; min-width:40px; }
.r1 { grid-column: 2 / span 3; min-width:70px; }
.c3 { grid-column: 3 / span 1; min-width:0; }
span {
background: gray;
border-style: solid;
border-width: 1px 3px 5px 7px;
padding: 1px 3px;
margin: 1px 5px;
}
x { display:inline-block; width:10px; height:18px; }
</style>
</head>
<body>
<div class="grid">
<span class="c1"><x> </x></span>
<span class="r1"><x> </x></span>
</div>
<div class="grid">
<span class="c1"><x> </x></span>
<span class="r1"><x> </x></span>
<span class="c3"><x> </x></span>
</div>
<div class="grid">
<span class="c1"><x> </x></span>
<span class="r1"><x> </x></span>
<span class="r1"><x> </x></span>
<span class="r1"><x> </x></span>
</div>
<div class="grid" style="grid-template-columns: minmax(min-content,max-content) 400px;">
<span class="c1"><x> </x></span>
<span class="r1"><x> </x></span>
<span class="c3"><x> </x></span>
</div>
<div class="grid" style="width:500px;">
<span class="c1" style="min-width:20px"><x> </x></span>
<span class="r1" style="min-width:10px"><x> </x></span>
<span class="r1" style="min-width:30px"><x> </x></span>
<span class="r1" style="min-width:10px"><x> </x></span>
</div>
<div class="grid" style="grid-template-columns: minmax(min-content,max-content) minmax(min-content,500px);">
<span class="c1"><x> </x></span>
<span class="r1"><x> </x></span>
<span class="c3"><x> </x></span>
</div>
<div class="grid">
<span class="c1" style="width:100px"><x> </x></span>
<span class="r1" style="width:300px"><x> </x></span>
<span class="c3"><x> </x></span>
</div>
<div class="grid">
<span class="c1" style="width:100px; border-sizing:border-box"><x> </x></span>
<span class="r1" style="width:300px; border-sizing:border-box"><x> </x></span>
<span class="c3"><x> </x></span>
</div>
</body>
</html>