summaryrefslogtreecommitdiffstats
path: root/layout/base/nsPresContext.h
diff options
context:
space:
mode:
authorMoonchild <mcwerewolf@gmail.com>2018-04-25 01:01:08 +0200
committerGitHub <noreply@github.com>2018-04-25 01:01:08 +0200
commita203f449bbc01f97564b7c5e2272b06a9569d7b4 (patch)
tree7193ae9ea7a77fcbd2c73ce0a9622b9fa836a013 /layout/base/nsPresContext.h
parentacd4eee44eb04fe01b0063818b492390f463ccec (diff)
parenteae8d21428acdb3fb842df091ded0eb276bcaaaa (diff)
downloadUXP-a203f449bbc01f97564b7c5e2272b06a9569d7b4.tar
UXP-a203f449bbc01f97564b7c5e2272b06a9569d7b4.tar.gz
UXP-a203f449bbc01f97564b7c5e2272b06a9569d7b4.tar.lz
UXP-a203f449bbc01f97564b7c5e2272b06a9569d7b4.tar.xz
UXP-a203f449bbc01f97564b7c5e2272b06a9569d7b4.zip
Merge pull request #262 from janekptacijarabaci/js_dom_overflow_1
moebius#138: Optimize operations on root of deeply-nested frame tree
Diffstat (limited to 'layout/base/nsPresContext.h')
-rw-r--r--layout/base/nsPresContext.h22
1 files changed, 21 insertions, 1 deletions
diff --git a/layout/base/nsPresContext.h b/layout/base/nsPresContext.h
index 4fdc60a2e..d8f876291 100644
--- a/layout/base/nsPresContext.h
+++ b/layout/base/nsPresContext.h
@@ -719,7 +719,18 @@ public:
* it was propagated from.
*/
nsIContent* UpdateViewportScrollbarStylesOverride();
- const ScrollbarStyles& GetViewportScrollbarStylesOverride()
+
+ /**
+ * Returns the cached result from the last call to
+ * UpdateViewportScrollbarStylesOverride() -- i.e. return the node
+ * whose scrollbar styles we have propagated to the viewport (or nullptr if
+ * there is no such node).
+ */
+ nsIContent* GetViewportScrollbarStylesOverrideNode() const {
+ return mViewportScrollbarOverrideNode;
+ }
+
+ const ScrollbarStyles& GetViewportScrollbarStylesOverride() const
{
return mViewportStyleScrollbar;
}
@@ -1310,7 +1321,16 @@ protected:
nscolor mBodyTextColor;
+ // This is a non-owning pointer. May be null. If non-null, it's guaranteed
+ // to be pointing to a node that's still alive, because we'll reset it in
+ // UpdateViewportScrollbarStylesOverride() as part of the cleanup code
+ // when this node is removed from the document. (For <body> and the root node,
+ // this call happens in nsCSSFrameConstructor::ContentRemoved(). For
+ // fullscreen elements, it happens in the fullscreen-specific cleanup
+ // invoked by Element::UnbindFromTree().)
+ nsIContent* MOZ_NON_OWNING_REF mViewportScrollbarOverrideNode;
ScrollbarStyles mViewportStyleScrollbar;
+
uint8_t mFocusRingWidth;
bool mExistThrottledUpdates;