Bug 1839315: part 4) Link from `SheetLoadData::mWasAlternate` to spec. r=emilio DONTBUILD
[gecko.git] / layout / style / ServoCSSParser.cpp
blob5d56d0f5fc0b54dea4d73b34217283dd5878a87e
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 /* CSS parsing utility functions */
9 #include "ServoCSSParser.h"
11 #include "mozilla/ServoBindings.h"
12 #include "mozilla/ServoStyleSet.h"
13 #include "mozilla/dom/Document.h"
15 using namespace mozilla;
16 using namespace mozilla::dom;
18 /* static */
19 bool ServoCSSParser::IsValidCSSColor(const nsACString& aValue) {
20 return Servo_IsValidCSSColor(&aValue);
23 /* static */
24 bool ServoCSSParser::ComputeColor(ServoStyleSet* aStyleSet,
25 nscolor aCurrentColor,
26 const nsACString& aValue,
27 nscolor* aResultColor, bool* aWasCurrentColor,
28 css::Loader* aLoader) {
29 return Servo_ComputeColor(aStyleSet ? aStyleSet->RawData() : nullptr,
30 aCurrentColor, &aValue, aResultColor,
31 aWasCurrentColor, aLoader);
34 /* static */
35 already_AddRefed<StyleLockedDeclarationBlock> ServoCSSParser::ParseProperty(
36 nsCSSPropertyID aProperty, const nsACString& aValue,
37 const ParsingEnvironment& aParsingEnvironment,
38 const StyleParsingMode& aParsingMode) {
39 return Servo_ParseProperty(
40 aProperty, &aValue, aParsingEnvironment.mUrlExtraData,
41 aParsingMode, aParsingEnvironment.mCompatMode,
42 aParsingEnvironment.mLoader, aParsingEnvironment.mRuleType)
43 .Consume();
46 /* static */
47 bool ServoCSSParser::ParseEasing(const nsACString& aValue,
48 StyleComputedTimingFunction& aResult) {
49 return Servo_ParseEasing(&aValue, &aResult);
52 /* static */
53 bool ServoCSSParser::ParseTransformIntoMatrix(const nsACString& aValue,
54 bool& aContains3DTransform,
55 gfx::Matrix4x4& aResult) {
56 return Servo_ParseTransformIntoMatrix(&aValue, &aContains3DTransform,
57 &aResult.components);
60 /* static */
61 bool ServoCSSParser::ParseFontShorthandForMatching(
62 const nsACString& aValue, URLExtraData* aUrl, StyleFontFamilyList& aList,
63 StyleFontStyle& aStyle, StyleFontStretch& aStretch,
64 StyleFontWeight& aWeight, float* aSize, bool* aSmallCaps) {
65 return Servo_ParseFontShorthandForMatching(
66 &aValue, aUrl, &aList, &aStyle, &aStretch, &aWeight, aSize, aSmallCaps);
69 /* static */
70 already_AddRefed<URLExtraData> ServoCSSParser::GetURLExtraData(
71 Document* aDocument) {
72 MOZ_ASSERT(aDocument);
73 return do_AddRef(aDocument->DefaultStyleAttrURLData());
76 /* static */ ServoCSSParser::ParsingEnvironment
77 ServoCSSParser::GetParsingEnvironment(Document* aDocument) {
78 return {GetURLExtraData(aDocument), aDocument->GetCompatibilityMode(),
79 aDocument->CSSLoader()};