tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

CSSPropFlags.h (2507B)


      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/. */
      6 
      7 #ifndef mozilla_CSSPropFlags_h
      8 #define mozilla_CSSPropFlags_h
      9 
     10 #include "mozilla/TypedEnumBits.h"
     11 
     12 namespace mozilla {
     13 
     14 enum class CSSPropFlags : uint16_t {
     15  // This property is not parsed. It is only there for internal use like
     16  // attribute mapping.
     17  Inaccessible = 1 << 0,
     18 
     19  // The following two flags along with the pref defines where the this
     20  // property can be used:
     21  // * If none of the two flags is presented, the pref completely controls
     22  //   the availability of this property. And in that case, if it has no
     23  //   pref, this property is usable everywhere.
     24  // * If any of the flags is set, this property is always enabled in the
     25  //   specific contexts regardless of the value of the pref. If there is
     26  //   no pref for this property at all in this case, it is an internal-
     27  //   only property, which cannot be used anywhere else, and should be
     28  //   wrapped in "#ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL".
     29  // Note that, these flags have no effect on the use of aliases of this
     30  // property.
     31  // Furthermore, for the purposes of animation (including triggering
     32  // transitions) these flags are ignored. That is, if the property is disabled
     33  // by a pref, we will *not* run animations or transitions on it even in
     34  // UA sheets or chrome.
     35  EnabledInUASheets = 1 << 1,
     36  EnabledInChrome = 1 << 2,
     37  EnabledInUASheetsAndChrome = EnabledInUASheets | EnabledInChrome,
     38  EnabledMask = EnabledInUASheetsAndChrome,
     39 
     40  // This property can be animated on the compositor.
     41  CanAnimateOnCompositor = 1 << 3,
     42 
     43  // This property is an internal property that is not represented in
     44  // the DOM. Properties with this flag are defined in an #ifndef
     45  // CSS_PROP_LIST_EXCLUDE_INTERNAL section.
     46  Internal = 1 << 4,
     47 
     48  // Whether this property should be serialized by Servo in getComputedStyle.
     49  SerializedByServo = 1 << 5,
     50 
     51  // Whether this is a logical property.
     52  IsLogical = 1 << 6,
     53 
     54  // Whether this property, when changed, may affect layout, overflow, or paint.
     55  AffectsLayout = 1 << 7,
     56  AffectsOverflow = 1 << 8,
     57  AffectsPaint = 1 << 9,
     58 };
     59 
     60 MOZ_MAKE_ENUM_CLASS_BITWISE_OPERATORS(CSSPropFlags)
     61 
     62 }  // namespace mozilla
     63 
     64 #endif  // mozilla_CSSPropFlags_h