== viewport-scrollbar-color-change.html viewport-scrollbar-color-change-ref.html
== scrollbar-thin-overflow-change.html scrollbar-thin-overflow-change-ref.html
test-pref(layout.css.scrollbar-width-thin.disabled,true) == scrollbar-width-thin.html scrollbar-width-auto.html
# -moz-scrollbar-inset-{block,inline} are chrome-only, so these load over
# chrome://.
# Overlay scrollbars are forced off so the thumb is actually painted.
pref(ui.useOverlayScrollbars,0) == chrome://reftest/content/css-scrollbars/scrollbar-inset-change.html chrome://reftest/content/css-scrollbars/scrollbar-inset-change-ref.html
# An embedder's inset must reach the subdocument's viewport scrollbar. The !=
# assertion fails if the forwarding does nothing, since the two iframes are
# otherwise identical.
pref(ui.useOverlayScrollbars,0) != chrome://reftest/content/css-scrollbars/scrollbar-inset-forward.html chrome://reftest/content/css-scrollbars/scrollbar-inset-forward-notref.html
pref(ui.useOverlayScrollbars,0) == chrome://reftest/content/css-scrollbars/scrollbar-inset-forward-change.html chrome://reftest/content/css-scrollbars/scrollbar-inset-forward.html
# The inset is physical, so full-zooming the subdocument must not change it. The
# fuzz is the thumb snapping to device pixels at a different app-unit
# granularity; a CSS-px inset would be out by ~600 pixels, not 40. Verified: the
# same test at fullZoom 1.0 matches exactly.
pref(ui.useOverlayScrollbars,0) fuzzy(0-255,0-40) == chrome://reftest/content/css-scrollbars/scrollbar-inset-zoom.html chrome://reftest/content/css-scrollbars/scrollbar-inset-forward.html
# -moz-scrollbar-inset-inline must reach the horizontal scrollbar at all...
pref(ui.useOverlayScrollbars,0) != chrome://reftest/content/css-scrollbars/scrollbar-inset-inline.html chrome://reftest/content/css-scrollbars/scrollbar-inset-inline-notref.html
# ...and the logical start must resolve per writing mode, so an RTL inline-end
# inset matches an LTR inline-start one. Needs the != above to mean something.
pref(ui.useOverlayScrollbars,0) == chrome://reftest/content/css-scrollbars/scrollbar-inset-rtl.html chrome://reftest/content/css-scrollbars/scrollbar-inset-inline.html
# An inset that holds the slider clear of the corner means GetBorderRadii no
# longer has to square that corner off, so the ring matches a container with no
# scrollbar at all. The cover hides the padding box, leaving only the ring.
pref(ui.useOverlayScrollbars,0) == chrome://reftest/content/css-scrollbars/scrollbar-inset-radii.html chrome://reftest/content/css-scrollbars/scrollbar-inset-radii-ref.html
# The same, but applying the inset dynamically, so the corner has to go back to
# being round after having been squared off.
pref(ui.useOverlayScrollbars,0) == chrome://reftest/content/css-scrollbars/scrollbar-inset-radii-change.html chrome://reftest/content/css-scrollbars/scrollbar-inset-radii-ref.html
# Without an inset the corner must still be squared off. This also catches the
# == above passing for free if the scrollbar ever stops taking up layout space.
pref(ui.useOverlayScrollbars,0) != chrome://reftest/content/css-scrollbars/scrollbar-inset-radii-notref.html chrome://reftest/content/css-scrollbars/scrollbar-inset-radii-ref.html
# The corner GetBorderRadii spares must be picked per writing mode, so an RTL
# inline-end inset spares the same physical corner as an LTR inline-start one.
# Uses the inline axis because the block axis doesn't flip in RTL at all, and an
# asymmetric inset because a symmetric one is its own mirror image.
pref(ui.useOverlayScrollbars,0) == chrome://reftest/content/css-scrollbars/scrollbar-inset-radii-rtl.html chrome://reftest/content/css-scrollbars/scrollbar-inset-radii-inline.html
# The two ends must be distinguishable for the == above to mean anything: swap
# the inset and the opposite corner is spared instead.
pref(ui.useOverlayScrollbars,0) != chrome://reftest/content/css-scrollbars/scrollbar-inset-radii-inline-notref.html chrome://reftest/content/css-scrollbars/scrollbar-inset-radii-inline.html