DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Mercurial (441520899d5f)

VCS Links

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at https://mozilla.org/MPL/2.0/. */

/*
 * This file contains forward declarations and typedefs for types that cbindgen
 * cannot understand but renames / prefixes, and includes for some of the types
 * it needs.
 */

#ifndef mozilla_ServoStyleConsts_h
#  error "This file is only meant to be included from ServoStyleConsts.h"
#endif

#ifndef mozilla_ServoStyleConstsForwards_h
#  define mozilla_ServoStyleConstsForwards_h

#  include "nsColor.h"
#  include "nsCoord.h"
#  include "mozilla/AtomArray.h"
#  include "mozilla/IntegerRange.h"
#  include "mozilla/Span.h"
#  include "Units.h"
#  include "mozilla/gfx/Types.h"
#  include "mozilla/MemoryReporting.h"
#  include "mozilla/ServoTypes.h"
#  include "mozilla/ServoBindingTypes.h"
#  include "nsCSSPropertyID.h"
#  include "nsCompatibility.h"
#  include <atomic>

struct RawServoAnimationValueTable;
struct RawServoAnimationValueMap;

class nsAtom;
class nsIFrame;
class nsINode;
class nsCSSPropertyIDSet;
class nsPresContext;
class nsSimpleContentList;
struct nsCSSValueSharedList;
struct nsTimingFunction;

class gfxFontFeatureValueSet;
struct gfxFontFeature;
namespace mozilla {
namespace gfx {
struct FontVariation;
}
}  // namespace mozilla
typedef mozilla::gfx::FontVariation gfxFontVariation;

enum nsCSSUnit : uint32_t;
enum nsChangeHint : uint32_t;

namespace nsStyleTransformMatrix {
enum class MatrixTransformOperator : uint8_t;
}

template <typename T>
class nsMainThreadPtrHolder;

namespace mozilla {

class ComputedStyle;

using Matrix4x4Components = float[16];
using StyleMatrix4x4Components = Matrix4x4Components;

struct Keyframe;
struct PropertyStyleAnimationValuePair;

using ComputedKeyframeValues = nsTArray<PropertyStyleAnimationValuePair>;

class ComputedStyle;
class SeenPtrs;
class SharedFontList;
class StyleSheet;
class WritingMode;
class ServoElementSnapshotTable;
enum class StyleContentType : uint8_t;

template<typename T>
struct StyleForgottenArcSlicePtr;

struct AnimationPropertySegment;
struct ComputedTiming;
struct URLExtraData;

enum HalfCorner : uint8_t;
enum LogicalSide : uint8_t;
enum class PseudoStyleType : uint8_t;
enum class OriginFlags : uint8_t;

namespace css {
class Loader;
class LoaderReusableStyleSheets;
class SheetLoadData;
using SheetLoadDataHolder = nsMainThreadPtrHolder<SheetLoadData>;
struct URLValue;
enum SheetParsingMode : uint8_t;
}  // namespace css

namespace dom {
enum class IterationCompositeOperation : uint8_t;
enum class CallerType : uint32_t;

class Element;
class Document;
}  // namespace dom

// Work-around weird cbindgen renaming / avoiding moving stuff outside its
// namespace.

using StyleLoader = css::Loader;
using StyleLoaderReusableStyleSheets = css::LoaderReusableStyleSheets;
using StyleCallerType = dom::CallerType;
using StyleURLValue = css::URLValue;
using StyleSheetParsingMode = css::SheetParsingMode;
using StyleSheetLoadData = css::SheetLoadData;
using StyleSheetLoadDataHolder = css::SheetLoadDataHolder;
using StyleGeckoMallocSizeOf = MallocSizeOf;
using StyleDomStyleSheet = StyleSheet;

using StyleRawGeckoNode = nsINode;
using StyleRawGeckoElement = dom::Element;
using StyleDocument = dom::Document;
using StyleComputedValues = ComputedStyle;
using StyleIterationCompositeOperation = dom::IterationCompositeOperation;

using StyleMatrixTransformOperator =
    nsStyleTransformMatrix::MatrixTransformOperator;

#  define SERVO_ARC_TYPE(name_, type_) using Style##type_ = type_;
#  include "mozilla/ServoArcTypeList.h"
#  undef SERVO_ARC_TYPE

#  define SERVO_BOXED_TYPE(name_, type_) using Style##type_ = type_;
#  include "mozilla/ServoBoxedTypeList.h"
#  undef SERVO_BOXED_TYPE

using StyleAtomicUsize = std::atomic<size_t>;

}  // namespace mozilla

#endif