Revision 1b5ce4ad3817e7b7247d7ff0f76b81877fce0d89 authored by Andrew Comminos on 21 December 2018, 21:45:26 UTC, committed by Chromium WPT Sync on 21 December 2018, 21:45:26 UTC
When two child elements of a flexbox overlap (for example, due to negative margins), the element drawn in the foreground may not actually capture the hit if the element underneath it is hit-tested in an earlier phase (e.g. foreground before child block background), despite being occluded. This is because painting of flexbox children is done atomically (all phases at once). This change makes hit testing atomic as well, in accordance with the spec [1]. [1] https://www.w3.org/TR/css-flexbox-1/#painting Bug: 844505 Change-Id: Iceab80b42f19488dcb59565ea3c0ce40d48c483b
1 parent f3cbe03
idbkeyrange.htm
<!DOCTYPE html>
<meta charset=utf-8>
<title>IDBKeyRange Tests</title>
<link rel="author" title="Microsoft" href="http://www.microsoft.com">
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src=support.js></script>
<script>
// only
test( function() {
var keyRange = IDBKeyRange.only(1);
assert_true(keyRange instanceof IDBKeyRange, "keyRange instanceof IDBKeyRange");
assert_equals(keyRange.lower, 1, "keyRange");
assert_equals(keyRange.upper, 1, "keyRange");
assert_false(keyRange.lowerOpen, "keyRange.lowerOpen");
assert_false(keyRange.upperOpen, "keyRange.upperOpen");
}, "IDBKeyRange.only() - returns an IDBKeyRange and the properties are set correctly");
test( function() {
assert_throws('DataError', function() { IDBKeyRange.only(undefined); }, 'undefined is not a valid key');
assert_throws('DataError', function() { IDBKeyRange.only(null); }, 'null is not a valid key');
assert_throws('DataError', function() { IDBKeyRange.only({}); }, 'Object is not a valid key');
assert_throws('DataError', function() { IDBKeyRange.only(Symbol()); }, 'Symbol is not a valid key');
assert_throws('DataError', function() { IDBKeyRange.only(true); }, 'boolean is not a valid key');
assert_throws('DataError', function() { IDBKeyRange.only(() => {}); }, 'function is not a valid key');
}, "IDBKeyRange.only() - throws on invalid keys");
// lowerBound
test( function() {
var keyRange = IDBKeyRange.lowerBound(1, true)
assert_true(keyRange instanceof IDBKeyRange, "keyRange instanceof IDBKeyRange");
assert_equals(keyRange.lower, 1, "keyRange.lower");
assert_equals(keyRange.upper, undefined, "keyRange.upper");
assert_true(keyRange.lowerOpen, "keyRange.lowerOpen");
assert_true(keyRange.upperOpen, "keyRange.upperOpen");
}, "IDBKeyRange.lowerBound() - returns an IDBKeyRange and the properties are set correctly");
test( function() {
var keyRange = IDBKeyRange.lowerBound(1);
assert_false(keyRange.lowerOpen, "keyRange.lowerOpen");
}, "IDBKeyRange.lowerBound() - 'open' parameter has correct default set");
test( function() {
assert_throws('DataError', function() { IDBKeyRange.lowerBound(undefined); }, 'undefined is not a valid key');
assert_throws('DataError', function() { IDBKeyRange.lowerBound(null); }, 'null is not a valid key');
assert_throws('DataError', function() { IDBKeyRange.lowerBound({}); }, 'Object is not a valid key');
assert_throws('DataError', function() { IDBKeyRange.lowerBound(Symbol()); }, 'Symbol is not a valid key');
assert_throws('DataError', function() { IDBKeyRange.lowerBound(true); }, 'boolean is not a valid key');
assert_throws('DataError', function() { IDBKeyRange.lowerBound(() => {}); }, 'function is not a valid key');
}, "IDBKeyRange.lowerBound() - throws on invalid keys");
// upperBound
test( function() {
var keyRange = IDBKeyRange.upperBound(1, true);
assert_true(keyRange instanceof IDBKeyRange, "keyRange instanceof IDBKeyRange");
assert_equals(keyRange.lower, undefined, "keyRange.lower");
assert_equals(keyRange.upper, 1, "keyRange.upper");
assert_true(keyRange.lowerOpen, "keyRange.lowerOpen");
assert_true(keyRange.upperOpen, "keyRange.upperOpen");
}, "IDBKeyRange.upperBound() - returns an IDBKeyRange and the properties are set correctly");
test( function() {
var keyRange = IDBKeyRange.upperBound(1);
assert_false(keyRange.upperOpen, "keyRange.upperOpen");
}, "IDBKeyRange.upperBound() - 'open' parameter has correct default set");
test( function() {
assert_throws('DataError', function() { IDBKeyRange.upperBound(undefined); }, 'undefined is not a valid key');
assert_throws('DataError', function() { IDBKeyRange.upperBound(null); }, 'null is not a valid key');
assert_throws('DataError', function() { IDBKeyRange.upperBound({}); }, 'Object is not a valid key');
assert_throws('DataError', function() { IDBKeyRange.upperBound(Symbol()); }, 'Symbol is not a valid key');
assert_throws('DataError', function() { IDBKeyRange.upperBound(true); }, 'boolean is not a valid key');
assert_throws('DataError', function() { IDBKeyRange.upperBound(() => {}); }, 'function is not a valid key');
}, "IDBKeyRange.upperBound() - throws on invalid keys");
// bound
test( function() {
var keyRange = IDBKeyRange.bound(1, 2, true, true);
assert_true(keyRange instanceof IDBKeyRange, "keyRange instanceof IDBKeyRange");
assert_equals(keyRange.lower, 1, "keyRange");
assert_equals(keyRange.upper, 2, "keyRange");
assert_true(keyRange.lowerOpen, "keyRange.lowerOpen");
assert_true(keyRange.upperOpen, "keyRange.upperOpen");
}, "IDBKeyRange.bound() - returns an IDBKeyRange and the properties are set correctly");
test( function() {
var keyRange = IDBKeyRange.bound(1, 2);
assert_false(keyRange.lowerOpen, "keyRange.lowerOpen");
assert_false(keyRange.upperOpen, "keyRange.upperOpen");
}, "IDBKeyRange.bound() - 'lowerOpen' and 'upperOpen' parameters have correct defaults set");
</script>
<div id=log></div>
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...