summaryrefslogtreecommitdiffstats
path: root/WebKit/android/nav/CacheBuilder.h
diff options
context:
space:
mode:
Diffstat (limited to 'WebKit/android/nav/CacheBuilder.h')
-rw-r--r--WebKit/android/nav/CacheBuilder.h24
1 files changed, 16 insertions, 8 deletions
diff --git a/WebKit/android/nav/CacheBuilder.h b/WebKit/android/nav/CacheBuilder.h
index ff395d3..9ce91a2 100644
--- a/WebKit/android/nav/CacheBuilder.h
+++ b/WebKit/android/nav/CacheBuilder.h
@@ -44,6 +44,7 @@ class Document;
class Frame;
class HTMLAreaElement;
class InlineTextBox;
+class LayerAndroid;
class Node;
class PlatformGraphicsContext;
class RenderFlow;
@@ -183,23 +184,26 @@ private:
mStarts[mWordCount] = mCurrentStart;
}
};
- struct ClipColumnTracker {
- IntRect mBounds;
+ struct Tracker {
Node* mLastChild;
+ };
+ struct ClipColumnTracker : Tracker {
Node* mNode;
+ IntRect mBounds;
WTF::Vector<IntRect>* mColumns;
int mColumnGap;
TextDirection mDirection;
bool mHasClip;
};
- struct TabIndexTracker {
+ struct LayerTracker : Tracker {
+ LayerAndroid* mLayer;
+ IntPoint mPosition;
+ };
+ struct TabIndexTracker : Tracker {
int mTabIndex;
- Node* mLastChild;
};
- struct Tracker {
+ struct FocusTracker : TabIndexTracker {
int mCachedNodeIndex;
- int mTabIndex;
- Node* mLastChild;
bool mSomeParentTakesFocus;
};
void adjustForColumns(const ClipColumnTracker& track,
@@ -212,7 +216,7 @@ private:
void BuildFrame(Frame* root, Frame* frame,
CachedRoot* cachedRoot, CachedFrame* cachedFrame);
bool CleanUpContainedNodes(CachedFrame* cachedFrame,
- const Tracker* last, int lastChildIndex);
+ const FocusTracker* last, int lastChildIndex);
static bool ConstructTextRect(Text* textNode,
InlineTextBox* textBox, int start, int relEnd, int x, int y,
IntRect* focusBounds, const IntRect& clip, WTF::Vector<IntRect>* result);
@@ -238,6 +242,10 @@ private:
static bool IsRealNode(Frame* , Node* );
int overlap(int left, int right); // returns distance scale factor as 16.16 scalar
bool setData(CachedFrame* );
+#if USE(ACCELERATED_COMPOSITING)
+ void TrackLayer(WTF::Vector<LayerTracker>& layerTracker,
+ RenderObject* nodeRenderer, Node* lastChild);
+#endif
Node* tryFocus(Direction direction);
Node* trySegment(Direction direction, int mainStart, int mainEnd);
CachedNodeBits mAllowableTypes;