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

Unified Diff: LayoutTests/fast/events/hit-test-counts.html

Issue 1142283004: Implement a Hit Test Cache. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Remove validity rect as per Elliott's request Created 5 years, 6 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: LayoutTests/fast/events/hit-test-counts.html
diff --git a/LayoutTests/fast/events/hit-test-counts.html b/LayoutTests/fast/events/hit-test-counts.html
index cfef9cf58136aab4bdc53b2c9fd47f0be9a6635e..5de7f6f67440c4cab3a4bdc1ed77430ca1d923e8 100644
--- a/LayoutTests/fast/events/hit-test-counts.html
+++ b/LayoutTests/fast/events/hit-test-counts.html
@@ -26,6 +26,7 @@ html {
</div>
<script src="../../resources/js-test.js"></script>
<script>
+setPrintTestResultsLazily();
if (window.internals) {
window.internals.settings.setViewportEnabled(true);
window.internals.settings.setMockScrollbarsEnabled(true);
@@ -43,14 +44,27 @@ function hitTestCountDelta(doc)
return newCount - lastCount;
}
+function hitTestCacheHitsDelta(doc)
+{
+ var lastCount = 0;
+ if ('lastHitTestCacheHits' in doc)
+ lastCount = doc.lastHitTestCacheHits;
+ var newCount = internals.hitTestCacheHits(doc);
+ doc.lastHitTestCacheHits = newCount;
+ return newCount - lastCount;
+}
+
function logCounts(label, documents, multiTapNotification, eventSenderFunction)
{
if (eventSenderFunction)
eventSenderFunction();
var countStr = '';
- for(var i = 0; i < documents.length; i++)
- countStr += ' ' + hitTestCountDelta(documents[i]);
+ for(var i = 0; i < documents.length; i++) {
+ var hits = hitTestCountDelta(documents[i]);
+ var cacheHits = hitTestCacheHitsDelta(documents[i]);
+ countStr += ' ' + (hits - cacheHits) + "+" + cacheHits;
+ }
if (multiTapNotification) {
debug(label + ':' + eventCounts[label]
@@ -64,8 +78,10 @@ function logCounts(label, documents, multiTapNotification, eventSenderFunction)
function clearCounts(documents)
{
- for(var i = 0; i < documents.length; i++)
+ for(var i = 0; i < documents.length; i++) {
documents[i].lastHitTestCount = internals.hitTestCount(documents[i]);
+ documents[i].lastHitTestCacheHits = internals.hitTestCacheHits(documents[i]);
+ }
}
function sendEvents(targetX, targetY, documents, multiTapNotification)
@@ -137,6 +153,9 @@ function runTestForDocuments(targetX, targetY, documents)
{
sendEvents(targetX, targetY, documents, false);
window.internals.settings.setMultiTargetTapNotificationEnabled(true);
+ for(var i = 0; i < documents.length; i++) {
+ internals.clearHitTestCache(documents[i]);
+ }
sendEvents(targetX, targetY, documents, true);
window.internals.settings.setMultiTargetTapNotificationEnabled(false);
}
@@ -181,5 +200,6 @@ onload = function() {
runTestForDocuments(point.x, point.y, [document]);
debug('');
window.internals.settings.setViewportEnabled(true);
+ finishJSTest();
}
</script>
« no previous file with comments | « LayoutTests/fast/events/hit-test-cache-expected.txt ('k') | LayoutTests/fast/events/hit-test-counts-expected.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698