1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* vim: set ts=8 sts=2 et sw=2 tw=80: */
3 /* This Source Code Form is subject to the terms of the Mozilla Public
4 * License, v. 2.0. If a copy of the MPL was not distributed with this
5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
7 #ifndef mozilla_FlushType_h
8 #define mozilla_FlushType_h
11 #include "X11UndefineNone.h"
16 * This is the enum used by Document::FlushPendingNotifications to
17 * decide what to flush.
19 * Please note that if you change these values, you should sync it with the
20 * flushTypeNames array inside PresShell::FlushPendingNotifications.
22 enum class FlushType
: uint8_t {
23 None
= 0, /* Actually don't flush anything */
24 Event
= 1, /* Flush pending events before notify other observers */
25 Content
= 2, /* flush the content model construction */
26 ContentAndNotify
= 3, /* As above, plus flush the frame model
27 construction and other nsIMutationObserver
29 Style
= 4, /* As above, plus flush style reresolution */
31 EnsurePresShellInitAndFrames
=
32 5, /* As above, plus ensure the pres shell is alive */
33 InterruptibleLayout
= 6, /* As above, plus flush reflow,
34 but allow it to be interrupted (so
35 an incomplete layout may result) */
36 Layout
= 7, /* As above, but layout must run to
38 Display
= 8, /* As above, plus flush painting */
42 struct ChangesToFlush
{
43 ChangesToFlush(FlushType aFlushType
, bool aFlushAnimations
)
44 : mFlushType(aFlushType
), mFlushAnimations(aFlushAnimations
) {}
47 bool mFlushAnimations
;
50 } // namespace mozilla
52 #endif // mozilla_FlushType_h