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

Unified Diff: Source/core/layout/HitTestRequest.h

Issue 1142283004: Implement a Hit Test Cache. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Fix comments from tdresser 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: Source/core/layout/HitTestRequest.h
diff --git a/Source/core/layout/HitTestRequest.h b/Source/core/layout/HitTestRequest.h
index d9e937e1c31b2ab2a7830e2ab721976775951c72..906791178eeeef68002c265d4f348a2722c00d6f 100644
--- a/Source/core/layout/HitTestRequest.h
+++ b/Source/core/layout/HitTestRequest.h
@@ -46,6 +46,7 @@ public:
// When using list-based testing, this flag causes us to continue hit
// testing after a hit has been found.
PenetratingList = 1 << 12,
+ AvoidCache = 1 << 13,
};
typedef unsigned HitTestRequestType;
@@ -69,12 +70,23 @@ public:
bool ignorePointerEventsNone() const { return m_requestType & IgnorePointerEventsNone; }
bool listBased() const { return m_requestType & ListBased; }
bool penetratingList() const { return m_requestType & PenetratingList; }
+ bool avoidCache() const { return m_requestType & AvoidCache; }
// Convenience functions
bool touchMove() const { return move() && touchEvent(); }
HitTestRequestType type() const { return m_requestType; }
+ // The Cacheability bits don't affect hit testing computation.
+ // TODO(dtapuska): These bits really shouldn't be fields on the HitTestRequest as
+ // they don't influence the result; but rather are hints on the output as to what to do.
+ // Perhaps move these fields to another enum ?
+ static const HitTestRequestType CacheabilityBits = ReadOnly | Active | Move | Release | TouchEvent;
+ bool equalForCacheability(const HitTestRequest& value) const
+ {
+ return (m_requestType | CacheabilityBits) == (value.m_requestType | CacheabilityBits);
+ }
+
private:
HitTestRequestType m_requestType;
};

Powered by Google App Engine
This is Rietveld 408576698