зеркало из https://github.com/mozilla/gecko-dev.git
Backed out 5 changesets (bug 1909346, bug 1911353, bug 1900233) for Bp bustages on ServoStyleSet.cpp . CLOSED TREE
Backed out changeset f6e3cddaa98e (bug 1911353) Backed out changeset d8ec18178fed (bug 1900233) Backed out changeset f6e45aa1a0f9 (bug 1909346) Backed out changeset 7903b612930c (bug 1909346) Backed out changeset c400d8d1a91f (bug 1900233)
This commit is contained in:
Родитель
9429216cdb
Коммит
58825dea6d
|
@ -174,11 +174,6 @@ DOMInterfaces = {
|
|||
'nativeType': 'mozilla::StyleSheet',
|
||||
},
|
||||
|
||||
'CSSPositionTryDescriptors': {
|
||||
'nativeType': 'mozilla::dom::CSSPositionTryRuleDeclaration',
|
||||
'headerFile': 'mozilla/dom/CSSPositionTryRule.h',
|
||||
},
|
||||
|
||||
'CustomElementRegistry': {
|
||||
'implicitJSContext': ['define', 'getName'],
|
||||
},
|
||||
|
@ -2048,14 +2043,4 @@ TemplatedAttributes = {
|
|||
},
|
||||
],
|
||||
|
||||
'CSSPositionTryDescriptors': [
|
||||
{
|
||||
'template': 'CSSPositionTryDescriptor',
|
||||
'getter': 'GetPropertyValue',
|
||||
'setter': 'SetPropertyValue',
|
||||
'argument': ('nsCSSPropertyID', 'id'),
|
||||
'attrName': 'nsCSSProps::PropertyIDLName(id)',
|
||||
},
|
||||
],
|
||||
|
||||
}
|
||||
|
|
|
@ -18,7 +18,7 @@ def generateLine(propName, extendedAttrs):
|
|||
)
|
||||
|
||||
|
||||
def generate(output, dataFile, ruleType, interfaceName, bindingTemplate, pref=None):
|
||||
def generate(output, dataFile, ruleType, interfaceName, bindingTemplate):
|
||||
propsData = runpy.run_path(dataFile)["data"]
|
||||
output.write(
|
||||
"""/* THIS IS AN AUTOGENERATED FILE. DO NOT EDIT */
|
||||
|
@ -29,16 +29,12 @@ def generate(output, dataFile, ruleType, interfaceName, bindingTemplate, pref=No
|
|||
* 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/. */
|
||||
|
||||
[Exposed=Window"""
|
||||
)
|
||||
if pref:
|
||||
output.write(', Pref="' + pref + '"')
|
||||
output.write(
|
||||
"""]
|
||||
[Exposed=Window]
|
||||
interface """
|
||||
+ interfaceName
|
||||
+ " : CSSStyleDeclaration {\n"
|
||||
)
|
||||
|
||||
for p in propsData.values():
|
||||
# Skip properties which aren't valid in style rules.
|
||||
if ruleType not in p.rules:
|
||||
|
@ -133,14 +129,3 @@ def generateCSSPageDescriptors(output, dataFile):
|
|||
"CSSPageDescriptors",
|
||||
"CSSPageDescriptor",
|
||||
)
|
||||
|
||||
|
||||
def generateCSSPositionTryDescriptors(output, dataFile):
|
||||
generate(
|
||||
output,
|
||||
dataFile,
|
||||
"PositionTry",
|
||||
"CSSPositionTryDescriptors",
|
||||
"CSSPositionTryDescriptor",
|
||||
"layout.css.anchor-positioning.enabled",
|
||||
)
|
||||
|
|
|
@ -207,9 +207,3 @@ if CONFIG["COMPILE_ENVIRONMENT"]:
|
|||
entry_point="generateCSSPageDescriptors",
|
||||
inputs=["!/layout/style/ServoCSSPropList.py"],
|
||||
)
|
||||
GeneratedFile(
|
||||
"CSSPositionTryDescriptors.webidl",
|
||||
script="GenerateCSSPropListWebIDL.py",
|
||||
entry_point="generateCSSPositionTryDescriptors",
|
||||
inputs=["!/layout/style/ServoCSSPropList.py"],
|
||||
)
|
||||
|
|
|
@ -47,7 +47,6 @@ PEExpectedNoneOrURL=Expected ‘none’ or URL but found ‘%1$S’.
|
|||
PEExpectedNoneOrURLOrFilterFunction=Expected ‘none’, URL, or filter function but found ‘%1$S’.
|
||||
PEDisallowedImportRule=@import rules are not yet valid in constructed stylesheets.
|
||||
PENeverMatchingHostSelector=:host selector in ‘%S’ is not featureless and will never match. Maybe you intended to use :host()?
|
||||
PEImportantDeclError=Property cannot be declared as !important in this context.
|
||||
|
||||
TooLargeDashedRadius=Border radius is too large for ‘dashed’ style (the limit is 100000px). Rendering as solid.
|
||||
TooLargeDottedRadius=Border radius is too large for ‘dotted’ style (the limit is 100000px). Rendering as solid.
|
||||
|
|
|
@ -1,14 +0,0 @@
|
|||
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* 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 http://mozilla.org/MPL/2.0/.
|
||||
*
|
||||
* The origin of this IDL file is
|
||||
* https://drafts.csswg.org/css-anchor-position-1/#om-position-try
|
||||
*/
|
||||
|
||||
[Exposed=Window, Pref="layout.css.anchor-positioning.enabled"]
|
||||
interface CSSPositionTryRule : CSSRule {
|
||||
readonly attribute UTF8String name;
|
||||
[SameObject, PutForwards=cssText] readonly attribute CSSPositionTryDescriptors style;
|
||||
};
|
|
@ -397,7 +397,6 @@ with Files("WebTransport*"):
|
|||
GENERATED_WEBIDL_FILES = [
|
||||
"CSS2Properties.webidl",
|
||||
"CSSPageDescriptors.webidl",
|
||||
"CSSPositionTryDescriptors.webidl",
|
||||
]
|
||||
|
||||
PREPROCESSED_WEBIDL_FILES = [
|
||||
|
@ -501,7 +500,6 @@ WEBIDL_FILES = [
|
|||
"CSSMozDocumentRule.webidl",
|
||||
"CSSNamespaceRule.webidl",
|
||||
"CSSPageRule.webidl",
|
||||
"CSSPositionTryRule.webidl",
|
||||
"CSSPropertyRule.webidl",
|
||||
"CSSPseudoElement.webidl",
|
||||
"CSSRule.webidl",
|
||||
|
|
|
@ -473,7 +473,6 @@ static uint32_t CollectAtRules(ServoCSSRuleList& aRuleList,
|
|||
case StyleCssRuleType::FontPaletteValues:
|
||||
case StyleCssRuleType::Scope:
|
||||
case StyleCssRuleType::StartingStyle:
|
||||
case StyleCssRuleType::PositionTry:
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -88,8 +88,7 @@ void ServoStyleRuleMap::RuleRemoved(StyleSheet& aStyleSheet,
|
|||
case StyleCssRuleType::Container:
|
||||
case StyleCssRuleType::Document:
|
||||
case StyleCssRuleType::Scope:
|
||||
case StyleCssRuleType::StartingStyle:
|
||||
case StyleCssRuleType::PositionTry: {
|
||||
case StyleCssRuleType::StartingStyle: {
|
||||
// See the comment in SheetRemoved.
|
||||
mTable.Clear();
|
||||
break;
|
||||
|
@ -152,7 +151,6 @@ void ServoStyleRuleMap::FillTableFromRule(css::Rule& aRule) {
|
|||
case StyleCssRuleType::CounterStyle:
|
||||
case StyleCssRuleType::FontFeatureValues:
|
||||
case StyleCssRuleType::FontPaletteValues:
|
||||
case StyleCssRuleType::PositionTry:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,189 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* 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 http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#include "mozilla/dom/CSSPositionTryRule.h"
|
||||
#include "mozilla/dom/CSSPositionTryRuleBinding.h"
|
||||
#include "mozilla/dom/CSSPositionTryDescriptorsBinding.h"
|
||||
|
||||
#include "mozilla/ServoBindings.h"
|
||||
#include "mozilla/DeclarationBlock.h"
|
||||
|
||||
namespace mozilla::dom {
|
||||
|
||||
CSSPositionTryRule* CSSPositionTryRuleDeclaration::Rule() {
|
||||
return reinterpret_cast<CSSPositionTryRule*>(
|
||||
reinterpret_cast<uint8_t*>(this) - offsetof(CSSPositionTryRule, mDecls));
|
||||
}
|
||||
|
||||
const CSSPositionTryRule* CSSPositionTryRuleDeclaration::Rule() const {
|
||||
return reinterpret_cast<const CSSPositionTryRule*>(
|
||||
reinterpret_cast<const uint8_t*>(this) -
|
||||
offsetof(CSSPositionTryRule, mDecls));
|
||||
}
|
||||
|
||||
CSSPositionTryRuleDeclaration::CSSPositionTryRuleDeclaration(
|
||||
already_AddRefed<StyleLockedDeclarationBlock> aDecls)
|
||||
: mDecls(new DeclarationBlock(std::move(aDecls))) {
|
||||
mDecls->SetOwningRule(Rule());
|
||||
}
|
||||
|
||||
CSSPositionTryRuleDeclaration::~CSSPositionTryRuleDeclaration() {
|
||||
mDecls->SetOwningRule(nullptr);
|
||||
}
|
||||
|
||||
NS_INTERFACE_MAP_BEGIN(CSSPositionTryRuleDeclaration)
|
||||
NS_WRAPPERCACHE_INTERFACE_TABLE_ENTRY
|
||||
// We forward the cycle collection interfaces to Rule(), which is
|
||||
// never null (in fact, we're part of that object!)
|
||||
if (aIID.Equals(NS_GET_IID(nsCycleCollectionISupports)) ||
|
||||
aIID.Equals(NS_GET_IID(nsXPCOMCycleCollectionParticipant))) {
|
||||
return Rule()->QueryInterface(aIID, aInstancePtr);
|
||||
}
|
||||
NS_INTERFACE_MAP_END_INHERITING(nsDOMCSSDeclaration)
|
||||
|
||||
NS_IMPL_ADDREF_USING_AGGREGATOR(CSSPositionTryRuleDeclaration, Rule())
|
||||
NS_IMPL_RELEASE_USING_AGGREGATOR(CSSPositionTryRuleDeclaration, Rule())
|
||||
|
||||
css::Rule* CSSPositionTryRuleDeclaration::GetParentRule() { return Rule(); }
|
||||
|
||||
nsINode* CSSPositionTryRuleDeclaration::GetAssociatedNode() const {
|
||||
return Rule()->GetAssociatedDocumentOrShadowRoot();
|
||||
}
|
||||
|
||||
nsISupports* CSSPositionTryRuleDeclaration::GetParentObject() const {
|
||||
return Rule()->GetParentObject();
|
||||
}
|
||||
|
||||
JSObject* CSSPositionTryRuleDeclaration::WrapObject(
|
||||
JSContext* aCx, JS::Handle<JSObject*> aGivenProto) {
|
||||
return CSSPositionTryDescriptors_Binding::Wrap(aCx, this, aGivenProto);
|
||||
}
|
||||
|
||||
DeclarationBlock* CSSPositionTryRuleDeclaration::GetOrCreateCSSDeclaration(
|
||||
Operation aOperation, DeclarationBlock** aCreated) {
|
||||
if (aOperation != Operation::Read) {
|
||||
if (StyleSheet* sheet = Rule()->GetStyleSheet()) {
|
||||
sheet->WillDirty();
|
||||
}
|
||||
}
|
||||
return mDecls;
|
||||
}
|
||||
|
||||
void CSSPositionTryRuleDeclaration::SetRawAfterClone(
|
||||
RefPtr<StyleLockedDeclarationBlock> aDeclarationBlock) {
|
||||
mDecls->SetOwningRule(nullptr);
|
||||
mDecls = new DeclarationBlock(aDeclarationBlock.forget());
|
||||
mDecls->SetOwningRule(Rule());
|
||||
}
|
||||
|
||||
nsresult CSSPositionTryRuleDeclaration::SetCSSDeclaration(
|
||||
DeclarationBlock* aDecl, MutationClosureData* aClosureData) {
|
||||
MOZ_ASSERT(aDecl, "must be non-null");
|
||||
CSSPositionTryRule* rule = Rule();
|
||||
|
||||
if (aDecl != mDecls) {
|
||||
mDecls->SetOwningRule(nullptr);
|
||||
Servo_PositionTryRule_SetStyle(rule->Raw(), aDecl->Raw());
|
||||
mDecls = aDecl;
|
||||
mDecls->SetOwningRule(rule);
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsDOMCSSDeclaration::ParsingEnvironment
|
||||
CSSPositionTryRuleDeclaration::GetParsingEnvironment(
|
||||
nsIPrincipal* aSubjectPrincipal) const {
|
||||
return GetParsingEnvironmentForRule(Rule(), StyleCssRuleType::PositionTry);
|
||||
}
|
||||
|
||||
CSSPositionTryRule::CSSPositionTryRule(
|
||||
RefPtr<StyleLockedPositionTryRule> aRawRule, StyleSheet* aSheet,
|
||||
css::Rule* aParentRule, uint32_t aLine, uint32_t aColumn)
|
||||
: css::Rule(aSheet, aParentRule, aLine, aColumn),
|
||||
mRawRule(std::move(aRawRule)),
|
||||
mDecls(Servo_PositionTryRule_GetStyle(mRawRule).Consume()) {}
|
||||
|
||||
NS_IMPL_ADDREF_INHERITED(CSSPositionTryRule, css::Rule)
|
||||
NS_IMPL_RELEASE_INHERITED(CSSPositionTryRule, css::Rule)
|
||||
|
||||
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(CSSPositionTryRule)
|
||||
NS_INTERFACE_MAP_END_INHERITING(css::Rule)
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTION_CLASS(CSSPositionTryRule)
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTION_TRACE_BEGIN_INHERITED(CSSPositionTryRule, css::Rule)
|
||||
// Keep this in sync with IsCCLeaf.
|
||||
|
||||
// Trace the wrapper for our declaration. This just expands out
|
||||
// NS_IMPL_CYCLE_COLLECTION_TRACE_PRESERVED_WRAPPER which we can't use
|
||||
// directly because the wrapper is on the declaration, not on us.
|
||||
tmp->mDecls.TraceWrapper(aCallbacks, aClosure);
|
||||
NS_IMPL_CYCLE_COLLECTION_TRACE_END
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(CSSPositionTryRule)
|
||||
// Keep this in sync with IsCCLeaf.
|
||||
|
||||
// Unlink the wrapper for our declaration.
|
||||
//
|
||||
// Note that this has to happen before unlinking css::Rule.
|
||||
tmp->UnlinkDeclarationWrapper(tmp->mDecls);
|
||||
tmp->mDecls.mDecls->SetOwningRule(nullptr);
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_END_INHERITED(css::Rule)
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(CSSPositionTryRule, css::Rule)
|
||||
// Keep this in sync with IsCCLeaf.
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
|
||||
|
||||
bool CSSPositionTryRule::IsCCLeaf() const {
|
||||
if (!Rule::IsCCLeaf()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return !mDecls.PreservingWrapper();
|
||||
}
|
||||
|
||||
void CSSPositionTryRule::SetRawAfterClone(
|
||||
RefPtr<StyleLockedPositionTryRule> aRaw) {
|
||||
mRawRule = std::move(aRaw);
|
||||
mDecls.SetRawAfterClone(
|
||||
Servo_PositionTryRule_GetStyle(mRawRule.get()).Consume());
|
||||
}
|
||||
|
||||
StyleCssRuleType CSSPositionTryRule::Type() const {
|
||||
return StyleCssRuleType::PositionTry;
|
||||
}
|
||||
|
||||
size_t CSSPositionTryRule::SizeOfIncludingThis(
|
||||
MallocSizeOf aMallocSizeOf) const {
|
||||
// TODO(dshin)
|
||||
return aMallocSizeOf(this);
|
||||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
void CSSPositionTryRule::List(FILE* out, int32_t aIndent) const {
|
||||
nsAutoCString str;
|
||||
for (int32_t i = 0; i < aIndent; i++) {
|
||||
str.AppendLiteral(" ");
|
||||
}
|
||||
Servo_PositionTryRule_Debug(mRawRule, &str);
|
||||
fprintf_stderr(out, "%s\n", str.get());
|
||||
}
|
||||
#endif
|
||||
|
||||
void CSSPositionTryRule::GetName(nsACString& aName) {
|
||||
Servo_PositionTryRule_GetName(mRawRule, &aName);
|
||||
}
|
||||
|
||||
void CSSPositionTryRule::GetCssText(nsACString& aCssText) const {
|
||||
Servo_PositionTryRule_GetCssText(mRawRule, &aCssText);
|
||||
}
|
||||
|
||||
JSObject* CSSPositionTryRule::WrapObject(JSContext* aCx,
|
||||
JS::Handle<JSObject*> aGivenProto) {
|
||||
return CSSPositionTryRule_Binding::Wrap(aCx, this, aGivenProto);
|
||||
}
|
||||
|
||||
} // namespace mozilla::dom
|
|
@ -1,97 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* 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 http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#ifndef mozilla_dom_CSSPositionTryRule_h
|
||||
#define mozilla_dom_CSSPositionTryRule_h
|
||||
|
||||
#include "mozilla/css/Rule.h"
|
||||
#include "mozilla/ServoBindingTypes.h"
|
||||
|
||||
#include "nsDOMCSSDeclaration.h"
|
||||
#include "nsICSSDeclaration.h"
|
||||
|
||||
namespace mozilla {
|
||||
class DeclarationBlock;
|
||||
|
||||
namespace dom {
|
||||
|
||||
class CSSPositionTryRule;
|
||||
class CSSPositionTryRuleDeclaration final : public nsDOMCSSDeclaration {
|
||||
public:
|
||||
NS_DECL_ISUPPORTS_INHERITED
|
||||
|
||||
css::Rule* GetParentRule() final;
|
||||
nsINode* GetAssociatedNode() const final;
|
||||
nsISupports* GetParentObject() const final;
|
||||
|
||||
JSObject* WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) final;
|
||||
|
||||
protected:
|
||||
DeclarationBlock* GetOrCreateCSSDeclaration(
|
||||
Operation aOperation, DeclarationBlock** aCreated) final;
|
||||
nsresult SetCSSDeclaration(DeclarationBlock* aDecl,
|
||||
MutationClosureData* aClosureData) final;
|
||||
nsDOMCSSDeclaration::ParsingEnvironment GetParsingEnvironment(
|
||||
nsIPrincipal* aSubjectPrincipal) const final;
|
||||
|
||||
private:
|
||||
// For accessing the constructor.
|
||||
friend class CSSPositionTryRule;
|
||||
|
||||
explicit CSSPositionTryRuleDeclaration(
|
||||
already_AddRefed<StyleLockedDeclarationBlock> aDecls);
|
||||
void SetRawAfterClone(RefPtr<StyleLockedDeclarationBlock>);
|
||||
|
||||
~CSSPositionTryRuleDeclaration();
|
||||
|
||||
inline CSSPositionTryRule* Rule();
|
||||
inline const CSSPositionTryRule* Rule() const;
|
||||
|
||||
RefPtr<DeclarationBlock> mDecls;
|
||||
};
|
||||
|
||||
class CSSPositionTryRule final : public css::Rule {
|
||||
public:
|
||||
CSSPositionTryRule(RefPtr<StyleLockedPositionTryRule> aRawRule,
|
||||
StyleSheet* aSheet, css::Rule* aParentRule, uint32_t aLine,
|
||||
uint32_t aColumn);
|
||||
|
||||
NS_DECL_ISUPPORTS_INHERITED
|
||||
NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS_INHERITED(CSSPositionTryRule,
|
||||
css::Rule)
|
||||
|
||||
bool IsCCLeaf() const final;
|
||||
|
||||
StyleLockedPositionTryRule* Raw() const { return mRawRule; }
|
||||
void SetRawAfterClone(RefPtr<StyleLockedPositionTryRule>);
|
||||
|
||||
// WebIDL interfaces
|
||||
StyleCssRuleType Type() const final;
|
||||
void GetCssText(nsACString& aCssText) const final;
|
||||
CSSPositionTryRuleDeclaration* Style() { return &mDecls; }
|
||||
void GetName(nsACString& aName);
|
||||
|
||||
size_t SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const final;
|
||||
|
||||
#ifdef DEBUG
|
||||
void List(FILE* out = stdout, int32_t aIndent = 0) const final;
|
||||
#endif
|
||||
|
||||
JSObject* WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) final;
|
||||
|
||||
private:
|
||||
~CSSPositionTryRule() = default;
|
||||
|
||||
// For computing the offset of mDecls.
|
||||
friend class CSSPositionTryRuleDeclaration;
|
||||
|
||||
RefPtr<StyleLockedPositionTryRule> mRawRule;
|
||||
CSSPositionTryRuleDeclaration mDecls;
|
||||
};
|
||||
|
||||
} // namespace dom
|
||||
} // namespace mozilla
|
||||
|
||||
#endif // mozilla_dom_CSSPositionTryRule_h
|
|
@ -90,7 +90,6 @@ BASIC_RULE_FUNCS_LOCKED(CounterStyle)
|
|||
GROUP_RULE_FUNCS_UNLOCKED(Container)
|
||||
GROUP_RULE_FUNCS_UNLOCKED(Scope)
|
||||
GROUP_RULE_FUNCS_UNLOCKED(StartingStyle)
|
||||
BASIC_RULE_FUNCS_LOCKED(PositionTry)
|
||||
|
||||
#undef GROUP_RULE_FUNCS_LOCKED
|
||||
#undef GROUP_RULE_FUNCS_UNLOCKED
|
||||
|
|
|
@ -27,7 +27,6 @@
|
|||
#include "mozilla/dom/CSSStartingStyleRule.h"
|
||||
#include "mozilla/dom/CSSStyleRule.h"
|
||||
#include "mozilla/dom/CSSSupportsRule.h"
|
||||
#include "mozilla/dom/CSSPositionTryRule.h"
|
||||
#include "mozilla/IntegerRange.h"
|
||||
#include "mozilla/ServoBindings.h"
|
||||
#include "mozilla/StyleSheet.h"
|
||||
|
@ -105,7 +104,6 @@ css::Rule* ServoCSSRuleList::GetRule(uint32_t aIndex) {
|
|||
CASE_RULE_UNLOCKED(Container, Container)
|
||||
CASE_RULE_UNLOCKED(Scope, Scope)
|
||||
CASE_RULE_UNLOCKED(StartingStyle, StartingStyle)
|
||||
CASE_RULE_LOCKED(PositionTry, PositionTry)
|
||||
#undef CASE_RULE_LOCKED
|
||||
#undef CASE_RULE_UNLOCKED
|
||||
#undef CASE_RULE_WITH_PREFIX
|
||||
|
@ -293,7 +291,6 @@ void ServoCSSRuleList::SetRawContents(RefPtr<StyleLockedCssRules> aNewRules,
|
|||
RULE_CASE_UNLOCKED(Container, Container)
|
||||
RULE_CASE_UNLOCKED(Scope, Scope)
|
||||
RULE_CASE_UNLOCKED(StartingStyle, StartingStyle)
|
||||
RULE_CASE_LOCKED(PositionTry, PositionTry)
|
||||
case StyleCssRuleType::Keyframe:
|
||||
MOZ_ASSERT_UNREACHABLE("keyframe rule cannot be here");
|
||||
break;
|
||||
|
|
|
@ -24,4 +24,3 @@ SERVO_LOCKED_ARC_TYPE(MediaList)
|
|||
SERVO_LOCKED_ARC_TYPE(PageRule)
|
||||
SERVO_LOCKED_ARC_TYPE(FontFaceRule)
|
||||
SERVO_LOCKED_ARC_TYPE(CounterStyleRule)
|
||||
SERVO_LOCKED_ARC_TYPE(PositionTryRule)
|
||||
|
|
|
@ -56,7 +56,6 @@ template struct StyleStrong<StyleLockedCounterStyleRule>;
|
|||
template struct StyleStrong<StyleContainerRule>;
|
||||
template struct StyleStrong<StyleScopeRule>;
|
||||
template struct StyleStrong<StyleStartingStyleRule>;
|
||||
template struct StyleStrong<StyleLockedPositionTryRule>;
|
||||
|
||||
template <typename T>
|
||||
inline void StyleOwnedSlice<T>::Clear() {
|
||||
|
|
|
@ -1019,7 +1019,6 @@ void ServoStyleSet::RuleChangedInternal(StyleSheet& aSheet, css::Rule& aRule,
|
|||
CASE_FOR(Container, Container)
|
||||
CASE_FOR(Scope, Scope)
|
||||
CASE_FOR(StartingStyle, StartingStyle)
|
||||
CASE_FOR(PositionTry, PositionTry)
|
||||
// @namespace can only be inserted / removed when there are only other
|
||||
// @namespace and @import rules, and can't be mutated.
|
||||
case StyleCssRuleType::Namespace:
|
||||
|
|
|
@ -143,7 +143,6 @@ EXPORTS.mozilla.dom += [
|
|||
"CSSMozDocumentRule.h",
|
||||
"CSSNamespaceRule.h",
|
||||
"CSSPageRule.h",
|
||||
"CSSPositionTryRule.h",
|
||||
"CSSPropertyRule.h",
|
||||
"CSSRuleList.h",
|
||||
"CSSScopeRule.h",
|
||||
|
@ -198,7 +197,6 @@ UNIFIED_SOURCES += [
|
|||
"CSSMozDocumentRule.cpp",
|
||||
"CSSNamespaceRule.cpp",
|
||||
"CSSPageRule.cpp",
|
||||
"CSSPositionTryRule.cpp",
|
||||
"CSSPropertyRule.cpp",
|
||||
"CSSRuleList.cpp",
|
||||
"CSSScopeRule.cpp",
|
||||
|
|
|
@ -15,7 +15,6 @@ prefs = [
|
|||
"layout.css.transform-box-content-stroke.enabled=true",
|
||||
"layout.css.transition-behavior.enabled=true",
|
||||
"layout.css.field-sizing.enabled=true",
|
||||
"layout.css.anchor-positioning.enabled=true",
|
||||
]
|
||||
support-files = [
|
||||
"animation_utils.js",
|
||||
|
|
|
@ -125,10 +125,6 @@
|
|||
css: ":host:hover { color: red; }",
|
||||
error: ":host selector in ‘:host:hover’ is not featureless and will never match. Maybe you intended to use :host()?"
|
||||
},
|
||||
{
|
||||
css: "@position-try --foo { width: 10px !important; }",
|
||||
error: "Property cannot be declared as !important in this context. Declaration dropped."
|
||||
},
|
||||
];
|
||||
|
||||
// Tests that apply only to constructed style sheets
|
||||
|
|
|
@ -32,6 +32,8 @@ pub enum ContextualParseError<'a> {
|
|||
InvalidKeyframeRule(&'a str, ParseError<'a>),
|
||||
/// A font feature values rule was not valid.
|
||||
InvalidFontFeatureValuesRule(&'a str, ParseError<'a>),
|
||||
/// A keyframe property declaration was not recognized.
|
||||
UnsupportedKeyframePropertyDeclaration(&'a str, ParseError<'a>),
|
||||
/// A rule was invalid for some reason.
|
||||
InvalidRule(&'a str, ParseError<'a>),
|
||||
/// A rule was not recognized.
|
||||
|
@ -173,6 +175,10 @@ impl<'a> fmt::Display for ContextualParseError<'a> {
|
|||
write!(f, "Invalid font feature value rule: '{}', ", rule)?;
|
||||
parse_error_to_str(err, f)
|
||||
},
|
||||
ContextualParseError::UnsupportedKeyframePropertyDeclaration(decl, ref err) => {
|
||||
write!(f, "Unsupported keyframe property declaration: '{}', ", decl)?;
|
||||
parse_error_to_str(err, f)
|
||||
},
|
||||
ContextualParseError::InvalidRule(rule, ref err) => {
|
||||
write!(f, "Invalid rule: '{}', ", rule)?;
|
||||
parse_error_to_str(err, f)
|
||||
|
|
|
@ -16,8 +16,8 @@ use crate::stylesheets::keyframes_rule::Keyframe;
|
|||
use crate::stylesheets::{
|
||||
ContainerRule, CounterStyleRule, CssRules, DocumentRule, FontFaceRule, FontFeatureValuesRule,
|
||||
FontPaletteValuesRule, ImportRule, KeyframesRule, LayerBlockRule, LayerStatementRule,
|
||||
MarginRule, MediaRule, NamespaceRule, PageRule, PositionTryRule, PropertyRule, ScopeRule,
|
||||
StartingStyleRule, StyleRule, StylesheetContents, SupportsRule,
|
||||
MarginRule, MediaRule, NamespaceRule, PageRule, PropertyRule, ScopeRule, StartingStyleRule,
|
||||
StyleRule, StylesheetContents, SupportsRule,
|
||||
};
|
||||
use servo_arc::Arc;
|
||||
|
||||
|
@ -181,10 +181,3 @@ impl_simple_arc_ffi!(
|
|||
Servo_StartingStyleRule_AddRef,
|
||||
Servo_StartingStyleRule_Release
|
||||
);
|
||||
|
||||
impl_locked_arc_ffi!(
|
||||
PositionTryRule,
|
||||
LockedPositionTryRule,
|
||||
Servo_PositionTryRule_AddRef,
|
||||
Servo_PositionTryRule_Release
|
||||
);
|
||||
|
|
|
@ -642,11 +642,6 @@ impl StylesheetInvalidationSet {
|
|||
// figure out the styling order.
|
||||
self.invalidate_fully();
|
||||
},
|
||||
PositionTry(..) => {
|
||||
// Potential change in sizes/positions of anchored elements. TODO(dshin, bug 1910616):
|
||||
// We should probably make an effort to see if this position-try is referenced.
|
||||
self.invalidate_fully();
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -131,12 +131,6 @@ impl<'a> ParserContext<'a> {
|
|||
self.nesting_context.rule_types.contains(CssRuleType::Page)
|
||||
}
|
||||
|
||||
/// Returns whether !important declarations are forbidden.
|
||||
#[inline]
|
||||
pub fn allows_important_declarations(&self) -> bool {
|
||||
!self.nesting_context.rule_types.intersects(CssRuleTypes::IMPORTANT_FORBIDDEN)
|
||||
}
|
||||
|
||||
/// Get the rule type, which assumes that one is available.
|
||||
pub fn rule_types(&self) -> CssRuleTypes {
|
||||
self.nesting_context.rule_types
|
||||
|
|
|
@ -101,20 +101,17 @@ VISITED_DEPENDENT_PROPERTIES = set(
|
|||
STYLE_RULE = 1 << 0
|
||||
PAGE_RULE = 1 << 1
|
||||
KEYFRAME_RULE = 1 << 2
|
||||
POSITION_TRY_RULE = 1 << 3
|
||||
|
||||
ALL_RULES = STYLE_RULE | PAGE_RULE | KEYFRAME_RULE
|
||||
DEFAULT_RULES = STYLE_RULE | KEYFRAME_RULE
|
||||
DEFAULT_RULES_AND_PAGE = DEFAULT_RULES | PAGE_RULE
|
||||
DEFAULT_RULES_EXCEPT_KEYFRAME = STYLE_RULE
|
||||
DEFAULT_RULES_AND_POSITION_TRY = DEFAULT_RULES | POSITION_TRY_RULE
|
||||
|
||||
# Rule name to value dict
|
||||
RULE_VALUES = {
|
||||
"Style": STYLE_RULE,
|
||||
"Page": PAGE_RULE,
|
||||
"Keyframe": KEYFRAME_RULE,
|
||||
"PositionTry": POSITION_TRY_RULE,
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1455,12 +1455,7 @@ impl<'i> DeclarationParserState<'i> {
|
|||
PropertyDeclaration::parse_into(&mut self.declarations, id, context, input)
|
||||
})?;
|
||||
self.importance = match input.try_parse(parse_important) {
|
||||
Ok(()) => {
|
||||
if !context.allows_important_declarations() {
|
||||
return Err(input.new_custom_error(StyleParseErrorKind::UnexpectedImportantDeclaration));
|
||||
}
|
||||
Importance::Important
|
||||
},
|
||||
Ok(()) => Importance::Important,
|
||||
Err(_) => Importance::Normal,
|
||||
};
|
||||
// In case there is still unparsed text in the declaration, we should roll back.
|
||||
|
@ -1614,20 +1609,12 @@ fn report_one_css_error<'i>(
|
|||
return;
|
||||
}
|
||||
}
|
||||
// Was able to parse property ID - Either an invalid value, or is constrained
|
||||
// by the rule block it's in to be invalid. In the former case, we need to unwrap
|
||||
// the error to be more specific.
|
||||
if !matches!(
|
||||
error.kind,
|
||||
ParseErrorKind::Custom(StyleParseErrorKind::UnexpectedImportantDeclaration)
|
||||
) {
|
||||
error = match *property {
|
||||
PropertyId::Custom(ref c) => {
|
||||
StyleParseErrorKind::new_invalid(format!("--{}", c), error)
|
||||
},
|
||||
_ => StyleParseErrorKind::new_invalid(property.non_custom_id().unwrap().name(), error),
|
||||
};
|
||||
}
|
||||
error = match *property {
|
||||
PropertyId::Custom(ref c) => {
|
||||
StyleParseErrorKind::new_invalid(format!("--{}", c), error)
|
||||
},
|
||||
_ => StyleParseErrorKind::new_invalid(property.non_custom_id().unwrap().name(), error),
|
||||
};
|
||||
}
|
||||
|
||||
let location = error.location;
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
|
||||
<%namespace name="helpers" file="/helpers.mako.rs" />
|
||||
<% from data import ALL_SIDES, DEFAULT_RULES, DEFAULT_RULES_AND_PAGE, POSITION_TRY_RULE, maybe_moz_logical_alias %>
|
||||
<% from data import ALL_SIDES, DEFAULT_RULES, DEFAULT_RULES_AND_PAGE, maybe_moz_logical_alias %>
|
||||
|
||||
% for side in ALL_SIDES:
|
||||
<%
|
||||
|
@ -21,7 +21,7 @@
|
|||
logical=side[1],
|
||||
logical_group="margin",
|
||||
spec=spec,
|
||||
rule_types_allowed=(DEFAULT_RULES if side[1] else DEFAULT_RULES_AND_PAGE) | POSITION_TRY_RULE,
|
||||
rule_types_allowed=DEFAULT_RULES if side[1] else DEFAULT_RULES_AND_PAGE,
|
||||
servo_restyle_damage="reflow",
|
||||
affects="layout",
|
||||
)}
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
|
||||
<%namespace name="helpers" file="/helpers.mako.rs" />
|
||||
<% from data import ALL_SIZES, PHYSICAL_SIDES, LOGICAL_SIDES, DEFAULT_RULES_AND_POSITION_TRY %>
|
||||
<% from data import ALL_SIZES, PHYSICAL_SIDES, LOGICAL_SIDES %>
|
||||
|
||||
// "top" / "left" / "bottom" / "right"
|
||||
% for side in PHYSICAL_SIDES:
|
||||
|
@ -14,7 +14,6 @@
|
|||
engines="gecko servo",
|
||||
spec="https://www.w3.org/TR/CSS2/visuren.html#propdef-%s" % side,
|
||||
allow_quirks="Yes",
|
||||
rule_types_allowed=DEFAULT_RULES_AND_POSITION_TRY,
|
||||
servo_restyle_damage="reflow_out_of_flow",
|
||||
logical_group="inset",
|
||||
affects="layout",
|
||||
|
@ -28,7 +27,6 @@
|
|||
"computed::LengthPercentageOrAuto::auto()",
|
||||
engines="gecko servo",
|
||||
spec="https://drafts.csswg.org/css-logical-props/#propdef-inset-%s" % side,
|
||||
rule_types_allowed=DEFAULT_RULES_AND_POSITION_TRY,
|
||||
logical=True,
|
||||
logical_group="inset",
|
||||
affects="layout",
|
||||
|
@ -153,7 +151,6 @@ ${helpers.predefined_type(
|
|||
spec="https://drafts.csswg.org/css-align/#align-self-property",
|
||||
extra_prefixes="webkit",
|
||||
animation_type="discrete",
|
||||
rule_types_allowed=DEFAULT_RULES_AND_POSITION_TRY,
|
||||
affects="layout",
|
||||
)}
|
||||
${helpers.predefined_type(
|
||||
|
@ -163,7 +160,6 @@ ${helpers.predefined_type(
|
|||
engines="gecko servo",
|
||||
spec="https://drafts.csswg.org/css-align/#justify-self-property",
|
||||
animation_type="discrete",
|
||||
rule_types_allowed=DEFAULT_RULES_AND_POSITION_TRY,
|
||||
affects="layout",
|
||||
)}
|
||||
|
||||
|
@ -209,7 +205,6 @@ ${helpers.predefined_type(
|
|||
logical_group="size",
|
||||
allow_quirks="No" if logical else "Yes",
|
||||
spec=spec % size,
|
||||
rule_types_allowed=DEFAULT_RULES_AND_POSITION_TRY,
|
||||
servo_restyle_damage="reflow",
|
||||
affects="layout",
|
||||
)}
|
||||
|
@ -223,7 +218,6 @@ ${helpers.predefined_type(
|
|||
logical_group="min-size",
|
||||
allow_quirks="No" if logical else "Yes",
|
||||
spec=spec % size,
|
||||
rule_types_allowed=DEFAULT_RULES_AND_POSITION_TRY,
|
||||
servo_restyle_damage="reflow",
|
||||
affects="layout",
|
||||
)}
|
||||
|
@ -236,7 +230,6 @@ ${helpers.predefined_type(
|
|||
logical_group="max-size",
|
||||
allow_quirks="No" if logical else "Yes",
|
||||
spec=spec % size,
|
||||
rule_types_allowed=DEFAULT_RULES_AND_POSITION_TRY,
|
||||
servo_restyle_damage="reflow",
|
||||
affects="layout",
|
||||
)}
|
||||
|
@ -248,7 +241,6 @@ ${helpers.predefined_type(
|
|||
"computed::PositionAnchor::auto()",
|
||||
engines="gecko",
|
||||
animation_type="discrete",
|
||||
rule_types_allowed=DEFAULT_RULES_AND_POSITION_TRY,
|
||||
gecko_pref="layout.css.anchor-positioning.enabled",
|
||||
spec="https://drafts.csswg.org/css-anchor-position-1/#propdef-position-anchor",
|
||||
affects="layout",
|
||||
|
@ -273,7 +265,6 @@ ${helpers.predefined_type(
|
|||
engines="gecko",
|
||||
initial_specified_value="specified::InsetArea::none()",
|
||||
animation_type="discrete",
|
||||
rule_types_allowed=DEFAULT_RULES_AND_POSITION_TRY,
|
||||
gecko_pref="layout.css.anchor-positioning.enabled",
|
||||
spec="https://drafts.csswg.org/css-anchor-position-1/#typedef-inset-area",
|
||||
affects="layout",
|
||||
|
|
|
@ -25,7 +25,6 @@ use crate::gecko_bindings::structs::{nsCSSPropertyID, AnimatedPropertyID, RefPtr
|
|||
use crate::logical_geometry::WritingMode;
|
||||
use crate::parser::ParserContext;
|
||||
use crate::str::CssString;
|
||||
use crate::stylesheets::CssRuleType;
|
||||
use crate::stylesheets::Origin;
|
||||
use crate::stylist::Stylist;
|
||||
use crate::values::{computed, serialize_atom_name};
|
||||
|
@ -487,8 +486,8 @@ impl PropertyId {
|
|||
|
||||
fn allowed_in(&self, context: &ParserContext) -> bool {
|
||||
let id = match self.non_custom_id() {
|
||||
// Custom properties are allowed everywhere, except `position-try`.
|
||||
None => return !context.nesting_context.rule_types.contains(CssRuleType::PositionTry),
|
||||
// Custom properties are allowed everywhere
|
||||
None => return true,
|
||||
Some(id) => id,
|
||||
};
|
||||
id.allowed_in(context)
|
||||
|
|
|
@ -550,8 +550,7 @@ impl NonCustomPropertyId {
|
|||
debug_assert!(
|
||||
rule_types.contains(CssRuleType::Keyframe) ||
|
||||
rule_types.contains(CssRuleType::Page) ||
|
||||
rule_types.contains(CssRuleType::Style) ||
|
||||
rule_types.contains(CssRuleType::PositionTry),
|
||||
rule_types.contains(CssRuleType::Style),
|
||||
"Declarations are only expected inside a keyframe, page, or style rule."
|
||||
);
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
|
||||
<%namespace name="helpers" file="/helpers.mako.rs" />
|
||||
<% from data import DEFAULT_RULES_AND_PAGE, POSITION_TRY_RULE, DEFAULT_RULES_AND_POSITION_TRY %>
|
||||
<% from data import DEFAULT_RULES_AND_PAGE %>
|
||||
|
||||
${helpers.four_sides_shorthand(
|
||||
"margin",
|
||||
|
@ -11,7 +11,7 @@ ${helpers.four_sides_shorthand(
|
|||
"specified::LengthPercentageOrAuto::parse",
|
||||
engines="gecko servo",
|
||||
spec="https://drafts.csswg.org/css-box/#propdef-margin",
|
||||
rule_types_allowed=DEFAULT_RULES_AND_PAGE | POSITION_TRY_RULE,
|
||||
rule_types_allowed=DEFAULT_RULES_AND_PAGE,
|
||||
allow_quirks="Yes",
|
||||
)}
|
||||
|
||||
|
@ -21,8 +21,7 @@ ${helpers.two_properties_shorthand(
|
|||
"margin-block-end",
|
||||
"specified::LengthPercentageOrAuto::parse",
|
||||
engines="gecko servo",
|
||||
spec="https://drafts.csswg.org/css-logical/#propdef-margin-block",
|
||||
rule_types_allowed=DEFAULT_RULES_AND_POSITION_TRY
|
||||
spec="https://drafts.csswg.org/css-logical/#propdef-margin-block"
|
||||
)}
|
||||
|
||||
${helpers.two_properties_shorthand(
|
||||
|
@ -31,8 +30,7 @@ ${helpers.two_properties_shorthand(
|
|||
"margin-inline-end",
|
||||
"specified::LengthPercentageOrAuto::parse",
|
||||
engines="gecko servo",
|
||||
spec="https://drafts.csswg.org/css-logical/#propdef-margin-inline",
|
||||
rule_types_allowed=DEFAULT_RULES_AND_POSITION_TRY
|
||||
spec="https://drafts.csswg.org/css-logical/#propdef-margin-inline"
|
||||
)}
|
||||
|
||||
${helpers.four_sides_shorthand(
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
|
||||
<%namespace name="helpers" file="/helpers.mako.rs" />
|
||||
<% from data import DEFAULT_RULES_AND_POSITION_TRY %>
|
||||
|
||||
<%helpers:shorthand name="flex-flow"
|
||||
engines="gecko servo",
|
||||
|
@ -781,7 +780,6 @@
|
|||
engines="gecko servo"
|
||||
sub_properties="align-self justify-self"
|
||||
spec="https://drafts.csswg.org/css-align/#place-self-property"
|
||||
rule_types_allowed="Style PositionTry"
|
||||
>
|
||||
use crate::values::specified::align::{AlignSelf, JustifySelf, SelfAlignment, AxisDirection};
|
||||
|
||||
|
@ -868,7 +866,6 @@ ${helpers.four_sides_shorthand(
|
|||
"specified::LengthPercentageOrAuto::parse",
|
||||
engines="gecko servo",
|
||||
spec="https://drafts.csswg.org/css-logical/#propdef-inset",
|
||||
rule_types_allowed=DEFAULT_RULES_AND_POSITION_TRY,
|
||||
allow_quirks="No",
|
||||
)}
|
||||
|
||||
|
@ -878,8 +875,7 @@ ${helpers.two_properties_shorthand(
|
|||
"inset-block-end",
|
||||
"specified::LengthPercentageOrAuto::parse",
|
||||
engines="gecko servo",
|
||||
spec="https://drafts.csswg.org/css-logical/#propdef-inset-block",
|
||||
rule_types_allowed=DEFAULT_RULES_AND_POSITION_TRY,
|
||||
spec="https://drafts.csswg.org/css-logical/#propdef-inset-block"
|
||||
)}
|
||||
|
||||
${helpers.two_properties_shorthand(
|
||||
|
@ -888,8 +884,7 @@ ${helpers.two_properties_shorthand(
|
|||
"inset-inline-end",
|
||||
"specified::LengthPercentageOrAuto::parse",
|
||||
engines="gecko servo",
|
||||
spec="https://drafts.csswg.org/css-logical/#propdef-inset-inline",
|
||||
rule_types_allowed=DEFAULT_RULES_AND_POSITION_TRY,
|
||||
spec="https://drafts.csswg.org/css-logical/#propdef-inset-inline"
|
||||
)}
|
||||
|
||||
${helpers.two_properties_shorthand(
|
||||
|
|
|
@ -422,9 +422,9 @@ macro_rules! font_feature_values_blocks {
|
|||
while let Some(declaration) = iter.next() {
|
||||
if let Err((error, slice)) = declaration {
|
||||
let location = error.location;
|
||||
// TODO(emilio): Maybe add a more specific error kind for
|
||||
// font-feature-values descriptors.
|
||||
let error = ContextualParseError::UnsupportedPropertyDeclaration(slice, error, &[]);
|
||||
let error = ContextualParseError::UnsupportedKeyframePropertyDeclaration(
|
||||
slice, error
|
||||
);
|
||||
self.context.log_css_error(location, error);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,8 +11,8 @@ use crate::properties::{
|
|||
animation_composition::single_value::SpecifiedValue as SpecifiedComposition,
|
||||
transition_timing_function::single_value::SpecifiedValue as SpecifiedTimingFunction,
|
||||
},
|
||||
parse_property_declaration_list, LonghandId, PropertyDeclaration, PropertyDeclarationBlock,
|
||||
PropertyDeclarationId, PropertyDeclarationIdSet,
|
||||
Importance, LonghandId, PropertyDeclaration, PropertyDeclarationBlock, PropertyDeclarationId,
|
||||
PropertyDeclarationIdSet, PropertyId, SourcePropertyDeclaration,
|
||||
};
|
||||
use crate::shared_lock::{DeepCloneParams, DeepCloneWithLock, SharedRwLock, SharedRwLockReadGuard};
|
||||
use crate::shared_lock::{Locked, ToCssWithGuard};
|
||||
|
@ -21,7 +21,7 @@ use crate::stylesheets::rule_parser::VendorPrefix;
|
|||
use crate::stylesheets::{CssRuleType, StylesheetContents};
|
||||
use crate::values::{serialize_percentage, KeyframesName};
|
||||
use cssparser::{
|
||||
parse_one_rule, AtRuleParser, DeclarationParser, Parser, ParserInput, ParserState,
|
||||
parse_one_rule, AtRuleParser, CowRcStr, DeclarationParser, Parser, ParserInput, ParserState,
|
||||
QualifiedRuleParser, RuleBodyItemParser, RuleBodyParser, SourceLocation, Token,
|
||||
};
|
||||
use servo_arc::Arc;
|
||||
|
@ -227,9 +227,11 @@ impl Keyframe {
|
|||
let mut input = ParserInput::new(css);
|
||||
let mut input = Parser::new(&mut input);
|
||||
|
||||
let mut declarations = SourcePropertyDeclaration::default();
|
||||
let mut rule_parser = KeyframeListParser {
|
||||
context: &mut context,
|
||||
shared_lock: &lock,
|
||||
declarations: &mut declarations,
|
||||
};
|
||||
parse_one_rule(&mut input, &mut rule_parser)
|
||||
}
|
||||
|
@ -527,6 +529,7 @@ impl KeyframesAnimation {
|
|||
struct KeyframeListParser<'a, 'b> {
|
||||
context: &'a mut ParserContext<'b>,
|
||||
shared_lock: &'a SharedRwLock,
|
||||
declarations: &'a mut SourcePropertyDeclaration,
|
||||
}
|
||||
|
||||
/// Parses a keyframe list from CSS input.
|
||||
|
@ -535,9 +538,11 @@ pub fn parse_keyframe_list<'a>(
|
|||
input: &mut Parser,
|
||||
shared_lock: &SharedRwLock,
|
||||
) -> Vec<Arc<Locked<Keyframe>>> {
|
||||
let mut declarations = SourcePropertyDeclaration::default();
|
||||
let mut parser = KeyframeListParser {
|
||||
context,
|
||||
shared_lock,
|
||||
declarations: &mut declarations,
|
||||
};
|
||||
RuleBodyParser::new(input, &mut parser)
|
||||
.filter_map(Result::ok)
|
||||
|
@ -582,9 +587,33 @@ impl<'a, 'b, 'i> QualifiedRuleParser<'i> for KeyframeListParser<'a, 'b> {
|
|||
start: &ParserState,
|
||||
input: &mut Parser<'i, 't>,
|
||||
) -> Result<Self::QualifiedRule, ParseError<'i>> {
|
||||
let block = self.context.nest_for_rule(CssRuleType::Keyframe, |p| {
|
||||
parse_property_declaration_list(&p, input, &[])
|
||||
});
|
||||
let mut block = PropertyDeclarationBlock::new();
|
||||
let declarations = &mut self.declarations;
|
||||
self.context
|
||||
.nest_for_rule(CssRuleType::Keyframe, |context| {
|
||||
let mut parser = KeyframeDeclarationParser {
|
||||
context: &context,
|
||||
declarations,
|
||||
};
|
||||
let mut iter = RuleBodyParser::new(input, &mut parser);
|
||||
while let Some(declaration) = iter.next() {
|
||||
match declaration {
|
||||
Ok(()) => {
|
||||
block.extend(iter.parser.declarations.drain(), Importance::Normal);
|
||||
},
|
||||
Err((error, slice)) => {
|
||||
iter.parser.declarations.clear();
|
||||
let location = error.location;
|
||||
let error =
|
||||
ContextualParseError::UnsupportedKeyframePropertyDeclaration(
|
||||
slice, error,
|
||||
);
|
||||
context.log_css_error(location, error);
|
||||
},
|
||||
}
|
||||
// `parse_important` is not called here, `!important` is not allowed in keyframe blocks.
|
||||
}
|
||||
});
|
||||
Ok(Arc::new(self.shared_lock.wrap(Keyframe {
|
||||
selector,
|
||||
block: Arc::new(self.shared_lock.wrap(block)),
|
||||
|
@ -603,3 +632,59 @@ impl<'a, 'b, 'i> RuleBodyItemParser<'i, Arc<Locked<Keyframe>>, StyleParseErrorKi
|
|||
false
|
||||
}
|
||||
}
|
||||
|
||||
struct KeyframeDeclarationParser<'a, 'b: 'a> {
|
||||
context: &'a ParserContext<'b>,
|
||||
declarations: &'a mut SourcePropertyDeclaration,
|
||||
}
|
||||
|
||||
/// Default methods reject all at rules.
|
||||
impl<'a, 'b, 'i> AtRuleParser<'i> for KeyframeDeclarationParser<'a, 'b> {
|
||||
type Prelude = ();
|
||||
type AtRule = ();
|
||||
type Error = StyleParseErrorKind<'i>;
|
||||
}
|
||||
|
||||
impl<'a, 'b, 'i> QualifiedRuleParser<'i> for KeyframeDeclarationParser<'a, 'b> {
|
||||
type Prelude = ();
|
||||
type QualifiedRule = ();
|
||||
type Error = StyleParseErrorKind<'i>;
|
||||
}
|
||||
|
||||
impl<'a, 'b, 'i> DeclarationParser<'i> for KeyframeDeclarationParser<'a, 'b> {
|
||||
type Declaration = ();
|
||||
type Error = StyleParseErrorKind<'i>;
|
||||
|
||||
fn parse_value<'t>(
|
||||
&mut self,
|
||||
name: CowRcStr<'i>,
|
||||
input: &mut Parser<'i, 't>,
|
||||
) -> Result<(), ParseError<'i>> {
|
||||
let id = match PropertyId::parse(&name, self.context) {
|
||||
Ok(id) => id,
|
||||
Err(()) => {
|
||||
return Err(input.new_custom_error(StyleParseErrorKind::UnknownProperty(name)));
|
||||
},
|
||||
};
|
||||
|
||||
// TODO(emilio): Shouldn't this use parse_entirely?
|
||||
PropertyDeclaration::parse_into(self.declarations, id, self.context, input)?;
|
||||
|
||||
// In case there is still unparsed text in the declaration, we should
|
||||
// roll back.
|
||||
input.expect_exhausted()?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
impl<'a, 'b, 'i> RuleBodyItemParser<'i, (), StyleParseErrorKind<'i>>
|
||||
for KeyframeDeclarationParser<'a, 'b>
|
||||
{
|
||||
fn parse_qualified(&self) -> bool {
|
||||
false
|
||||
}
|
||||
fn parse_declarations(&self) -> bool {
|
||||
true
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,7 +19,6 @@ mod media_rule;
|
|||
mod namespace_rule;
|
||||
pub mod origin;
|
||||
mod page_rule;
|
||||
pub mod position_try_rule;
|
||||
mod property_rule;
|
||||
mod rule_list;
|
||||
mod rule_parser;
|
||||
|
@ -64,7 +63,6 @@ pub use self::media_rule::MediaRule;
|
|||
pub use self::namespace_rule::NamespaceRule;
|
||||
pub use self::origin::{Origin, OriginSet, OriginSetIterator, PerOrigin, PerOriginIter};
|
||||
pub use self::page_rule::{PagePseudoClassFlags, PageRule, PageSelector, PageSelectors};
|
||||
pub use self::position_try_rule::PositionTryRule;
|
||||
pub use self::property_rule::PropertyRule;
|
||||
pub use self::rule_list::{CssRules, CssRulesHelpers};
|
||||
pub use self::rule_parser::{InsertRuleContext, State, TopLevelRuleParser};
|
||||
|
@ -304,7 +302,6 @@ pub enum CssRule {
|
|||
LayerStatement(Arc<LayerStatementRule>),
|
||||
Scope(Arc<ScopeRule>),
|
||||
StartingStyle(Arc<StartingStyleRule>),
|
||||
PositionTry(Arc<Locked<PositionTryRule>>),
|
||||
}
|
||||
|
||||
impl CssRule {
|
||||
|
@ -357,9 +354,6 @@ impl CssRule {
|
|||
CssRule::Scope(ref rule) => {
|
||||
rule.unconditional_shallow_size_of(ops) + rule.size_of(guard, ops)
|
||||
},
|
||||
CssRule::PositionTry(ref lock) => {
|
||||
lock.unconditional_shallow_size_of(ops) + lock.read_with(guard).size_of(guard, ops)
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -401,8 +395,6 @@ pub enum CssRuleType {
|
|||
Scope = 21,
|
||||
// https://drafts.csswg.org/css-transitions-2/#the-cssstartingstylerule-interface
|
||||
StartingStyle = 22,
|
||||
// https://drafts.csswg.org/css-anchor-position-1/#om-position-try
|
||||
PositionTry = 23,
|
||||
}
|
||||
|
||||
impl CssRuleType {
|
||||
|
@ -424,9 +416,6 @@ impl From<CssRuleType> for CssRuleTypes {
|
|||
}
|
||||
|
||||
impl CssRuleTypes {
|
||||
/// Rules where !important declarations are forbidden.
|
||||
pub const IMPORTANT_FORBIDDEN: Self = Self(CssRuleType::PositionTry.bit() | CssRuleType::Keyframe.bit());
|
||||
|
||||
/// Returns whether the rule is in the current set.
|
||||
#[inline]
|
||||
pub fn contains(self, ty: CssRuleType) -> bool {
|
||||
|
@ -495,7 +484,6 @@ impl CssRule {
|
|||
CssRule::Container(_) => CssRuleType::Container,
|
||||
CssRule::Scope(_) => CssRuleType::Scope,
|
||||
CssRule::StartingStyle(_) => CssRuleType::StartingStyle,
|
||||
CssRule::PositionTry(_) => CssRuleType::PositionTry,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -637,12 +625,6 @@ impl DeepCloneWithLock for CssRule {
|
|||
CssRule::StartingStyle(ref arc) => {
|
||||
CssRule::StartingStyle(Arc::new(arc.deep_clone_with_lock(lock, guard, params)))
|
||||
},
|
||||
CssRule::PositionTry(ref arc) => {
|
||||
let rule = arc.read_with(guard);
|
||||
CssRule::PositionTry(Arc::new(
|
||||
lock.wrap(rule.deep_clone_with_lock(lock, guard, params)),
|
||||
))
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -670,7 +652,6 @@ impl ToCssWithGuard for CssRule {
|
|||
CssRule::Container(ref rule) => rule.to_css(guard, dest),
|
||||
CssRule::Scope(ref rule) => rule.to_css(guard, dest),
|
||||
CssRule::StartingStyle(ref rule) => rule.to_css(guard, dest),
|
||||
CssRule::PositionTry(ref lock) => lock.read_with(guard).to_css(guard, dest),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,72 +0,0 @@
|
|||
/* 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/. */
|
||||
|
||||
//! A [`@position-try`][position-try] rule for Anchor Positioning.
|
||||
//!
|
||||
//! [position-try]: https://drafts.csswg.org/css-anchor-position-1/#fallback-rule
|
||||
|
||||
use std::fmt::Write;
|
||||
|
||||
use crate::properties::PropertyDeclarationBlock;
|
||||
use crate::shared_lock::{
|
||||
DeepCloneParams, DeepCloneWithLock, Locked, SharedRwLock, SharedRwLockReadGuard, ToCssWithGuard,
|
||||
};
|
||||
use crate::str::CssStringWriter;
|
||||
use crate::values::DashedIdent;
|
||||
use cssparser::SourceLocation;
|
||||
use malloc_size_of::{MallocSizeOf, MallocSizeOfOps, MallocUnconditionalShallowSizeOf};
|
||||
use servo_arc::Arc;
|
||||
use style_traits::{CssWriter, ToCss};
|
||||
|
||||
/// A position-try rule.
|
||||
#[derive(Clone, Debug, ToShmem)]
|
||||
pub struct PositionTryRule {
|
||||
/// Name of this position-try rule.
|
||||
pub name: DashedIdent,
|
||||
/// The declaration block this position-try rule contains.
|
||||
pub block: Arc<Locked<PropertyDeclarationBlock>>,
|
||||
/// The source position this rule was found at.
|
||||
pub source_location: SourceLocation,
|
||||
}
|
||||
|
||||
impl PositionTryRule {
|
||||
/// Measure heap usage.
|
||||
#[cfg(feature = "gecko")]
|
||||
pub fn size_of(&self, guard: &SharedRwLockReadGuard, ops: &mut MallocSizeOfOps) -> usize {
|
||||
self.block.unconditional_shallow_size_of(ops) + self.block.read_with(guard).size_of(ops)
|
||||
}
|
||||
}
|
||||
|
||||
impl DeepCloneWithLock for PositionTryRule {
|
||||
fn deep_clone_with_lock(
|
||||
&self,
|
||||
lock: &SharedRwLock,
|
||||
guard: &SharedRwLockReadGuard,
|
||||
_: &DeepCloneParams,
|
||||
) -> Self {
|
||||
PositionTryRule {
|
||||
name: self.name.clone(),
|
||||
block: Arc::new(lock.wrap(self.block.read_with(&guard).clone())),
|
||||
source_location: self.source_location.clone(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl ToCssWithGuard for PositionTryRule {
|
||||
fn to_css(
|
||||
&self,
|
||||
guard: &SharedRwLockReadGuard,
|
||||
dest: &mut CssStringWriter,
|
||||
) -> std::fmt::Result {
|
||||
dest.write_str("@position-try ")?;
|
||||
self.name.to_css(&mut CssWriter::new(dest))?;
|
||||
dest.write_str(" { ")?;
|
||||
let declarations = self.block.read_with(guard);
|
||||
declarations.to_css(dest)?;
|
||||
if !declarations.is_empty() {
|
||||
dest.write_char(' ')?;
|
||||
}
|
||||
dest.write_char('}')
|
||||
}
|
||||
}
|
|
@ -23,7 +23,6 @@ use crate::stylesheets::font_feature_values_rule::parse_family_name_list;
|
|||
use crate::stylesheets::import_rule::{ImportLayer, ImportRule, ImportSupportsCondition};
|
||||
use crate::stylesheets::keyframes_rule::parse_keyframe_list;
|
||||
use crate::stylesheets::layer_rule::{LayerBlockRule, LayerName, LayerStatementRule};
|
||||
use crate::stylesheets::position_try_rule::PositionTryRule;
|
||||
use crate::stylesheets::scope_rule::{ScopeBounds, ScopeRule};
|
||||
use crate::stylesheets::starting_style_rule::StartingStyleRule;
|
||||
use crate::stylesheets::supports_rule::SupportsCondition;
|
||||
|
@ -240,8 +239,6 @@ pub enum AtRulePrelude {
|
|||
Scope(ScopeBounds),
|
||||
/// A @starting-style prelude.
|
||||
StartingStyle,
|
||||
/// A @position-try prelude for Anchor Positioning.
|
||||
PositionTry(DashedIdent),
|
||||
}
|
||||
|
||||
impl AtRulePrelude {
|
||||
|
@ -264,7 +261,6 @@ impl AtRulePrelude {
|
|||
Self::Layer(..) => "layer",
|
||||
Self::Scope(..) => "scope",
|
||||
Self::StartingStyle => "starting-style",
|
||||
Self::PositionTry(..) => "position-try",
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -544,8 +540,7 @@ impl<'a, 'i> NestedRuleParser<'a, 'i> {
|
|||
AtRulePrelude::Keyframes(..) |
|
||||
AtRulePrelude::Page(..) |
|
||||
AtRulePrelude::Property(..) |
|
||||
AtRulePrelude::Import(..) |
|
||||
AtRulePrelude::PositionTry(..) => !self.in_style_or_page_rule(),
|
||||
AtRulePrelude::Import(..) => !self.in_style_or_page_rule(),
|
||||
AtRulePrelude::Margin(..) => self.in_page_rule(),
|
||||
}
|
||||
}
|
||||
|
@ -735,10 +730,6 @@ impl<'a, 'i> AtRuleParser<'i> for NestedRuleParser<'a, 'i> {
|
|||
"starting-style" if static_prefs::pref!("layout.css.starting-style-at-rules.enabled") => {
|
||||
AtRulePrelude::StartingStyle
|
||||
},
|
||||
"position-try" if static_prefs::pref!("layout.css.anchor-positioning.enabled") => {
|
||||
let name = DashedIdent::parse(&self.context, input)?;
|
||||
AtRulePrelude::PositionTry(name)
|
||||
},
|
||||
_ => {
|
||||
if static_prefs::pref!("layout.css.margin-rules.enabled") {
|
||||
if let Some(margin_rule_type) = MarginRuleType::match_name(&name) {
|
||||
|
@ -924,16 +915,6 @@ impl<'a, 'i> AtRuleParser<'i> for NestedRuleParser<'a, 'i> {
|
|||
source_location,
|
||||
}))
|
||||
},
|
||||
AtRulePrelude::PositionTry(name) => {
|
||||
let declarations = self.nest_for_rule(CssRuleType::PositionTry, |p| {
|
||||
parse_property_declaration_list(&p.context, input, &[])
|
||||
});
|
||||
CssRule::PositionTry(Arc::new(self.shared_lock.wrap(PositionTryRule {
|
||||
name,
|
||||
block: Arc::new(self.shared_lock.wrap(declarations)),
|
||||
source_location: start.source_location(),
|
||||
})))
|
||||
},
|
||||
};
|
||||
self.rules.push(rule);
|
||||
Ok(())
|
||||
|
|
|
@ -70,8 +70,7 @@ where
|
|||
CssRule::Property(_) |
|
||||
CssRule::LayerStatement(_) |
|
||||
CssRule::FontFeatureValues(_) |
|
||||
CssRule::FontPaletteValues(_) |
|
||||
CssRule::PositionTry(_) => None,
|
||||
CssRule::FontPaletteValues(_) => None,
|
||||
CssRule::Page(ref page_rule) => {
|
||||
let page_rule = page_rule.read_with(guard);
|
||||
let rules = page_rule.rules.read_with(guard);
|
||||
|
|
|
@ -352,10 +352,7 @@ impl SanitizationKind {
|
|||
CssRule::Scope(..) |
|
||||
CssRule::StartingStyle(..) => false,
|
||||
|
||||
CssRule::FontFace(..) |
|
||||
CssRule::Namespace(..) |
|
||||
CssRule::Style(..) |
|
||||
CssRule::PositionTry(..) => true,
|
||||
CssRule::FontFace(..) | CssRule::Namespace(..) | CssRule::Style(..) => true,
|
||||
|
||||
CssRule::Keyframes(..) |
|
||||
CssRule::Page(..) |
|
||||
|
|
|
@ -3790,8 +3790,7 @@ impl CascadeData {
|
|||
CssRule::FontPaletteValues(..) |
|
||||
CssRule::FontFeatureValues(..) |
|
||||
CssRule::Scope(..) |
|
||||
CssRule::StartingStyle(..) |
|
||||
CssRule::PositionTry(..) => {
|
||||
CssRule::StartingStyle(..) => {
|
||||
// Not affected by device changes.
|
||||
continue;
|
||||
},
|
||||
|
|
|
@ -163,8 +163,13 @@ pub enum StyleParseErrorKind<'i> {
|
|||
InvalidFilter(CowRcStr<'i>, Token<'i>),
|
||||
/// The property declaration contained an invalid value.
|
||||
OtherInvalidValue(CowRcStr<'i>),
|
||||
/// `!important` declarations are disallowed in `@position-try` or keyframes.
|
||||
UnexpectedImportantDeclaration,
|
||||
/// The declaration contained an animation property, and we were parsing
|
||||
/// this as a keyframe block (so that property should be ignored).
|
||||
///
|
||||
/// See: https://drafts.csswg.org/css-animations/#keyframes
|
||||
AnimationPropertyInKeyframeBlock,
|
||||
/// The property is not allowed within a page rule.
|
||||
NotAllowedInPageRule,
|
||||
}
|
||||
|
||||
impl<'i> From<ValueParseErrorKind<'i>> for StyleParseErrorKind<'i> {
|
||||
|
|
|
@ -196,6 +196,7 @@ impl<'a> ErrorHelpers<'a> for ContextualParseError<'a> {
|
|||
ContextualParseError::UnsupportedFontPaletteValuesDescriptor(s, err) |
|
||||
ContextualParseError::InvalidKeyframeRule(s, err) |
|
||||
ContextualParseError::InvalidFontFeatureValuesRule(s, err) |
|
||||
ContextualParseError::UnsupportedKeyframePropertyDeclaration(s, err) |
|
||||
ContextualParseError::InvalidRule(s, err) |
|
||||
ContextualParseError::UnsupportedRule(s, err) |
|
||||
ContextualParseError::UnsupportedViewportDescriptorDeclaration(s, err) |
|
||||
|
@ -275,9 +276,6 @@ impl<'a> ErrorHelpers<'a> for ContextualParseError<'a> {
|
|||
StyleParseErrorKind::OtherInvalidValue(_) => {
|
||||
(cstr!("PEValueParsingError"), Action::Drop)
|
||||
},
|
||||
StyleParseErrorKind::UnexpectedImportantDeclaration => {
|
||||
(cstr!("PEImportantDeclError"), Action::Drop)
|
||||
},
|
||||
_ => (cstr!("PEUnknownProperty"), Action::Drop),
|
||||
},
|
||||
ContextualParseError::UnsupportedPropertyDeclaration(..) => {
|
||||
|
@ -289,6 +287,9 @@ impl<'a> ErrorHelpers<'a> for ContextualParseError<'a> {
|
|||
ContextualParseError::InvalidKeyframeRule(..) => {
|
||||
(cstr!("PEKeyframeBadName"), Action::Nothing)
|
||||
},
|
||||
ContextualParseError::UnsupportedKeyframePropertyDeclaration(..) => {
|
||||
(cstr!("PEBadSelectorKeyframeRuleIgnored"), Action::Nothing)
|
||||
},
|
||||
ContextualParseError::InvalidRule(
|
||||
_,
|
||||
ParseError {
|
||||
|
|
|
@ -37,7 +37,7 @@ use style::font_face::{self, FontFaceSourceFormat, FontFaceSourceListComponent,
|
|||
use style::gecko::arc_types::{
|
||||
LockedCounterStyleRule, LockedCssRules, LockedDeclarationBlock, LockedFontFaceRule,
|
||||
LockedImportRule, LockedKeyframe, LockedKeyframesRule, LockedMediaList, LockedPageRule,
|
||||
LockedPositionTryRule, LockedStyleRule,
|
||||
LockedStyleRule,
|
||||
};
|
||||
use style::gecko::data::{
|
||||
AuthorStyles, GeckoStyleSheet, PerDocumentStyleData, PerDocumentStyleDataImpl,
|
||||
|
@ -136,9 +136,8 @@ use style::stylesheets::{
|
|||
CssRules, CssRulesHelpers, DocumentRule, FontFaceRule, FontFeatureValuesRule,
|
||||
FontPaletteValuesRule, ImportRule, KeyframesRule, LayerBlockRule, LayerStatementRule,
|
||||
MarginRule, MediaRule, NamespaceRule, Origin, OriginSet, PagePseudoClassFlags, PageRule,
|
||||
PositionTryRule, PropertyRule, SanitizationData, SanitizationKind, ScopeRule,
|
||||
StartingStyleRule, StyleRule, StylesheetContents, StylesheetLoader as StyleStylesheetLoader,
|
||||
SupportsRule, UrlExtraData,
|
||||
PropertyRule, SanitizationData, SanitizationKind, ScopeRule, StartingStyleRule, StyleRule,
|
||||
StylesheetContents, StylesheetLoader as StyleStylesheetLoader, SupportsRule, UrlExtraData,
|
||||
};
|
||||
use style::stylist::{add_size_of_ua_cache, AuthorStylesEnabled, RuleInclusion, Stylist};
|
||||
use style::thread_state;
|
||||
|
@ -2573,13 +2572,6 @@ impl_group_rule_funcs! { (StartingStyle, StartingStyleRule, StartingStyleRule),
|
|||
changed: Servo_StyleSet_StartingStyleRuleChanged,
|
||||
}
|
||||
|
||||
impl_basic_rule_funcs! { (PositionTry, PositionTryRule, Locked<PositionTryRule>),
|
||||
getter: Servo_CssRules_GetPositionTryRuleAt,
|
||||
debug: Servo_PositionTryRule_Debug,
|
||||
to_css: Servo_PositionTryRule_GetCssText,
|
||||
changed: Servo_StyleSet_PositionTryRuleChanged,
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub extern "C" fn Servo_StyleRule_GetStyle(
|
||||
rule: &LockedStyleRule,
|
||||
|
@ -4045,31 +4037,6 @@ counter_style_descriptors! {
|
|||
]
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub unsafe extern "C" fn Servo_PositionTryRule_GetName(
|
||||
rule: &LockedPositionTryRule,
|
||||
result: &mut nsACString,
|
||||
) {
|
||||
read_locked_arc(rule, |rule: &PositionTryRule| rule.name.to_css(&mut CssWriter::new(result)).unwrap());
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub extern "C" fn Servo_PositionTryRule_GetStyle(
|
||||
rule: &LockedPositionTryRule,
|
||||
) -> Strong<LockedDeclarationBlock> {
|
||||
read_locked_arc(rule, |rule: &PositionTryRule| rule.block.clone().into())
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub extern "C" fn Servo_PositionTryRule_SetStyle(
|
||||
rule: &LockedPositionTryRule,
|
||||
declarations: &LockedDeclarationBlock,
|
||||
) {
|
||||
write_locked_arc(rule, |rule: &mut PositionTryRule| {
|
||||
rule.block = unsafe { Arc::from_raw_addrefed(declarations) };
|
||||
})
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub unsafe extern "C" fn Servo_ComputedValues_GetForPageContent(
|
||||
raw_data: &PerDocumentStyleData,
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
prefs: [layout.css.anchor-positioning.enabled: true]
|
|
@ -0,0 +1,168 @@
|
|||
[at-position-try-allowed-declarations.html]
|
||||
[top: 1px is allowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[bottom: 1px is allowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[left: 1px is allowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[right: 1px is allowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[inset-block-start: 1px is allowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[inset-block-end: 1px is allowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[inset-inline-start: 1px is allowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[inset-inline-end: 1px is allowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[inset-block: 1px is allowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[inset-inline: 1px is allowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[inset: 1px is allowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[margin-top: 1px is allowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[margin-bottom: 1px is allowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[margin-left: 1px is allowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[margin-right: 1px is allowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[margin-block-start: 1px is allowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[margin-block-end: 1px is allowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[margin-inline-start: 1px is allowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[margin-inline-end: 1px is allowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[margin-block: 1px is allowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[margin-inline: 1px is allowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[margin: 1px is allowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[width: 1px is allowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[height: 1px is allowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[block-size: 1px is allowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[inline-size: 1px is allowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[min-width: 1px is allowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[min-height: 1px is allowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[min-block-size: 1px is allowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[min-inline-size: 1px is allowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[max-width: 1px is allowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[max-height: 1px is allowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[max-block-size: 1px is allowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[max-inline-size: 1px is allowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[justify-self: normal is allowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[align-self: normal is allowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[--custom: 1px is disallowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[font-size: 1px is disallowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[border-width: 1px is disallowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[padding: 1px is disallowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[display: 1px is disallowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[position: 1px is disallowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[float: 1px is disallowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[top: 1px !important is disallowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[inset: 1px !important is disallowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[place-self: normal is allowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[position-anchor: --anchor is allowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[justify-content: normal is disallowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[align-content: normal is disallowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[justify-items: normal is disallowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[align-items: normal is disallowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[inset-area: span-all is allowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[top: revert is allowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[top: revert-layer is allowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[inset: revert is allowed in @position-try]
|
||||
expected: FAIL
|
||||
|
||||
[inset: revert-layer is allowed in @position-try]
|
||||
expected: FAIL
|
|
@ -4,3 +4,789 @@
|
|||
|
||||
[CSSPositionTryRule.style.setProperty setting allowed and disallowed properties]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.item]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.cssText]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.getPropertyValue(margin)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.setProperty(margin)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[margin\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[margin\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.getPropertyValue(margin-top)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.setProperty(margin-top)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[margin-top\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[margin-top\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[marginTop\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[marginTop\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.getPropertyValue(margin-right)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.setProperty(margin-right)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[margin-right\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[margin-right\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[marginRight\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[marginRight\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.getPropertyValue(margin-bottom)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.setProperty(margin-bottom)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[margin-bottom\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[margin-bottom\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[marginBottom\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[marginBottom\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.getPropertyValue(margin-left)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.setProperty(margin-left)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[margin-left\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[margin-left\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[marginLeft\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[marginLeft\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.getPropertyValue(margin-block)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.setProperty(margin-block)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[margin-block\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[margin-block\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[marginBlock\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[marginBlock\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.getPropertyValue(margin-block-start)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.setProperty(margin-block-start)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[margin-block-start\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[margin-block-start\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[marginBlockStart\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[marginBlockStart\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.getPropertyValue(margin-block-end)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.setProperty(margin-block-end)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[margin-block-end\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[margin-block-end\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[marginBlockEnd\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[marginBlockEnd\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.getPropertyValue(margin-inline)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.setProperty(margin-inline)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[margin-inline\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[margin-inline\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[marginInline\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[marginInline\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.getPropertyValue(margin-inline-start)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.setProperty(margin-inline-start)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[margin-inline-start\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[margin-inline-start\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[marginInlineStart\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[marginInlineStart\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.getPropertyValue(margin-inline-end)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.setProperty(margin-inline-end)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[margin-inline-end\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[margin-inline-end\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[marginInlineEnd\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[marginInlineEnd\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.getPropertyValue(inset)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.setProperty(inset)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[inset\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[inset\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.getPropertyValue(top)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.setProperty(top)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[top\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[top\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.getPropertyValue(left)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.setProperty(left)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[left\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[left\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.getPropertyValue(right)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.setProperty(right)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[right\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[right\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.getPropertyValue(bottom)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.setProperty(bottom)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[bottom\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[bottom\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.getPropertyValue(inset-block)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.setProperty(inset-block)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[inset-block\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[inset-block\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[insetBlock\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[insetBlock\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.getPropertyValue(inset-block-start)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.setProperty(inset-block-start)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[inset-block-start\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[inset-block-start\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[insetBlockStart\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[insetBlockStart\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.getPropertyValue(inset-block-end)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.setProperty(inset-block-end)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[inset-block-end\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[inset-block-end\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[insetBlockEnd\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[insetBlockEnd\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.getPropertyValue(inset-inline)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.setProperty(inset-inline)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[inset-inline\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[inset-inline\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[insetInline\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[insetInline\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.getPropertyValue(inset-inline-start)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.setProperty(inset-inline-start)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[inset-inline-start\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[inset-inline-start\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[insetInlineStart\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[insetInlineStart\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.getPropertyValue(inset-inline-end)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.setProperty(inset-inline-end)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[inset-inline-end\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[inset-inline-end\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[insetInlineEnd\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[insetInlineEnd\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.getPropertyValue(width)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.setProperty(width)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[width\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[width\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.getPropertyValue(height)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.setProperty(height)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[height\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[height\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.getPropertyValue(min-width)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.setProperty(min-width)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[min-width\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[min-width\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[minWidth\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[minWidth\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.getPropertyValue(max-width)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.setProperty(max-width)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[max-width\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[max-width\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[maxWidth\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[maxWidth\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.getPropertyValue(min-height)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.setProperty(min-height)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[min-height\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[min-height\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[minHeight\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[minHeight\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.getPropertyValue(max-height)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.setProperty(max-height)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[max-height\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[max-height\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[maxHeight\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[maxHeight\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.getPropertyValue(block-size)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.setProperty(block-size)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[block-size\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[block-size\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[blockSize\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[blockSize\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.getPropertyValue(min-block-size)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.setProperty(min-block-size)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[min-block-size\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[min-block-size\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[minBlockSize\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[minBlockSize\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.getPropertyValue(max-block-size)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.setProperty(max-block-size)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[max-block-size\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[max-block-size\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[maxBlockSize\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[maxBlockSize\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.getPropertyValue(inline-size)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.setProperty(inline-size)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[inline-size\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[inline-size\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[inlineSize\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[inlineSize\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.getPropertyValue(min-inline-size)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.setProperty(min-inline-size)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[min-inline-size\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[min-inline-size\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[minInlineSize\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[minInlineSize\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.getPropertyValue(max-inline-size)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.setProperty(max-inline-size)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[max-inline-size\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[max-inline-size\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[maxInlineSize\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[maxInlineSize\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.getPropertyValue(place-self)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.setProperty(place-self)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[place-self\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[place-self\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[placeSelf\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[placeSelf\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.getPropertyValue(align-self)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.setProperty(align-self)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[align-self\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[align-self\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[alignSelf\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[alignSelf\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.getPropertyValue(justify-self)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.setProperty(justify-self)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[justify-self\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[justify-self\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[justifySelf\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[justifySelf\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.getPropertyValue(position-anchor)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.setProperty(position-anchor)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[position-anchor\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[position-anchor\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[positionAnchor\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[positionAnchor\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.getPropertyValue(inset-area)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.setProperty(inset-area)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[inset-area\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[inset-area\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[insetArea\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[insetArea\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.getPropertyValue(color)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.setProperty(color)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[color\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[color\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.getPropertyValue(align-items)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.setProperty(align-items)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[align-items\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[align-items\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[alignItems\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[alignItems\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.getPropertyValue(align-content)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.setProperty(align-content)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[align-content\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[align-content\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[alignContent\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[alignContent\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.getPropertyValue(background)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.setProperty(background)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[background\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[background\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.getPropertyValue(display)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.setProperty(display)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[display\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[display\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.getPropertyValue(position)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.setProperty(position)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[position\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[position\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.getPropertyValue(writing-mode)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.setProperty(writing-mode)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[writing-mode\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[writing-mode\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[writingMode\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[writingMode\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.getPropertyValue(direction)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.setProperty(direction)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[direction\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[direction\] (get)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.getPropertyValue(syntax)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors.setProperty(syntax)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[syntax\] (set)]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors[syntax\] (get)]
|
||||
expected: FAIL
|
||||
|
|
|
@ -1,6 +1,2 @@
|
|||
[at-position-try-invalidation-shadow-dom.html]
|
||||
[#host with inserted @position-try applied]
|
||||
expected: FAIL
|
||||
|
||||
[#slotted with inserted @position-try applied]
|
||||
expected: FAIL
|
||||
expected: ERROR
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
[at-position-try-parse.html]
|
||||
[@position-try --foo { } should be a valid rule]
|
||||
expected: FAIL
|
||||
|
||||
[@position-try --foo { top: 1px; } should be a valid rule]
|
||||
expected: FAIL
|
||||
|
||||
[@position-try --foo { backround-color: green; } should be a valid rule]
|
||||
expected: FAIL
|
||||
|
||||
[@position-try --foo { @keyframes bar {} } should be a valid rule]
|
||||
expected: FAIL
|
||||
|
||||
[@position-try --foo { @font-face {} } should be a valid rule]
|
||||
expected: FAIL
|
||||
|
||||
[@position-try --foo { @media print {} } should be a valid rule]
|
||||
expected: FAIL
|
||||
|
||||
[@position-try --foo { & {} } should be a valid rule]
|
||||
expected: FAIL
|
||||
|
||||
[@position-try --foo { arbitrary garbage } should be a valid rule]
|
||||
expected: FAIL
|
|
@ -0,0 +1,252 @@
|
|||
[idlharness.html]
|
||||
[CSSPositionTryRule interface: existence and properties of interface object]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryRule interface object length]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryRule interface object name]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryRule interface: existence and properties of interface prototype object]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryRule interface: existence and properties of interface prototype object's "constructor" property]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryRule interface: existence and properties of interface prototype object's @@unscopables property]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryRule interface: attribute name]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryRule interface: attribute style]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: existence and properties of interface object]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface object length]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface object name]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: existence and properties of interface prototype object]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: existence and properties of interface prototype object's "constructor" property]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: existence and properties of interface prototype object's @@unscopables property]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute margin]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute marginTop]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute marginRight]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute marginBottom]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute marginLeft]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute marginBlock]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute marginBlockStart]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute marginBlockEnd]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute marginInline]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute marginInlineStart]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute marginInlineEnd]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute margin-top]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute margin-right]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute margin-bottom]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute margin-left]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute margin-block]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute margin-block-start]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute margin-block-end]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute margin-inline]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute margin-inline-start]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute margin-inline-end]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute inset]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute insetBlock]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute insetBlockStart]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute insetBlockEnd]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute insetInline]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute insetInlineStart]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute insetInlineEnd]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute top]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute left]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute right]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute bottom]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute inset-block]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute inset-block-start]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute inset-block-end]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute inset-inline]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute inset-inline-start]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute inset-inline-end]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute width]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute minWidth]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute maxWidth]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute height]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute minHeight]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute maxHeight]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute blockSize]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute minBlockSize]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute maxBlockSize]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute inlineSize]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute minInlineSize]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute maxInlineSize]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute min-width]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute max-width]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute min-height]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute max-height]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute block-size]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute min-block-size]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute max-block-size]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute inline-size]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute min-inline-size]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute max-inline-size]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute placeSelf]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute alignSelf]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute justifySelf]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute place-self]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute align-self]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute justify-self]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute positionAnchor]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute position-anchor]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute insetArea]
|
||||
expected: FAIL
|
||||
|
||||
[CSSPositionTryDescriptors interface: attribute inset-area]
|
||||
expected: FAIL
|
|
@ -0,0 +1,30 @@
|
|||
[inset-area-computed.html]
|
||||
[Property inset-area value 'none']
|
||||
expected: FAIL
|
||||
|
||||
[Property inset-area value 'x-start']
|
||||
expected: FAIL
|
||||
|
||||
[Property inset-area value 'center']
|
||||
expected: FAIL
|
||||
|
||||
[Property inset-area value 'top center']
|
||||
expected: FAIL
|
||||
|
||||
[Property inset-area has initial value none]
|
||||
expected: FAIL
|
||||
|
||||
[Property inset-area does not inherit]
|
||||
expected: FAIL
|
||||
|
||||
[Property inset-area value 'span-all']
|
||||
expected: FAIL
|
||||
|
||||
[Property inset-area value 'span-all span-all']
|
||||
expected: FAIL
|
||||
|
||||
[Property inset-area value 'center center']
|
||||
expected: FAIL
|
||||
|
||||
[Property inset-area value 'span-bottom span-all']
|
||||
expected: FAIL
|
|
@ -0,0 +1,126 @@
|
|||
[inset-area-interpolation.html]
|
||||
[CSS Transitions with transition-behavior:allow-discrete: property <inset-area> from [none\] to [span-all left\] at (-0.3) should be [none\]]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Transitions with transition-behavior:allow-discrete: property <inset-area> from [none\] to [span-all left\] at (0) should be [none\]]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Transitions with transition-behavior:allow-discrete: property <inset-area> from [none\] to [span-all left\] at (0.3) should be [none\]]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Transitions with transition-behavior:allow-discrete: property <inset-area> from [none\] to [span-all left\] at (0.5) should be [span-all left\]]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Transitions with transition-behavior:allow-discrete: property <inset-area> from [none\] to [span-all left\] at (0.6) should be [span-all left\]]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Transitions with transition-behavior:allow-discrete: property <inset-area> from [none\] to [span-all left\] at (1) should be [span-all left\]]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Transitions with transition-behavior:allow-discrete: property <inset-area> from [none\] to [span-all left\] at (1.5) should be [span-all left\]]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <inset-area> from [none\] to [span-all left\] at (-0.3) should be [none\]]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <inset-area> from [none\] to [span-all left\] at (0) should be [none\]]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <inset-area> from [none\] to [span-all left\] at (0.3) should be [none\]]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <inset-area> from [none\] to [span-all left\] at (0.5) should be [span-all left\]]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <inset-area> from [none\] to [span-all left\] at (0.6) should be [span-all left\]]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <inset-area> from [none\] to [span-all left\] at (1) should be [span-all left\]]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <inset-area> from [none\] to [span-all left\] at (1.5) should be [span-all left\]]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Transitions: property <inset-area> from [none\] to [span-all left\] at (-0.3) should be [span-all left\]]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Transitions: property <inset-area> from [none\] to [span-all left\] at (0) should be [span-all left\]]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Transitions: property <inset-area> from [none\] to [span-all left\] at (0.3) should be [span-all left\]]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Transitions: property <inset-area> from [none\] to [span-all left\] at (0.5) should be [span-all left\]]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Transitions: property <inset-area> from [none\] to [span-all left\] at (0.6) should be [span-all left\]]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Transitions: property <inset-area> from [none\] to [span-all left\] at (1) should be [span-all left\]]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Transitions: property <inset-area> from [none\] to [span-all left\] at (1.5) should be [span-all left\]]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Transitions with transition: all: property <inset-area> from [none\] to [span-all left\] at (-0.3) should be [span-all left\]]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Transitions with transition: all: property <inset-area> from [none\] to [span-all left\] at (0) should be [span-all left\]]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Transitions with transition: all: property <inset-area> from [none\] to [span-all left\] at (0.3) should be [span-all left\]]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Transitions with transition: all: property <inset-area> from [none\] to [span-all left\] at (0.5) should be [span-all left\]]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Transitions with transition: all: property <inset-area> from [none\] to [span-all left\] at (0.6) should be [span-all left\]]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Transitions with transition: all: property <inset-area> from [none\] to [span-all left\] at (1) should be [span-all left\]]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Transitions with transition: all: property <inset-area> from [none\] to [span-all left\] at (1.5) should be [span-all left\]]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Animations: property <inset-area> from [none\] to [span-all left\] at (-0.3) should be [none\]]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Animations: property <inset-area> from [none\] to [span-all left\] at (0) should be [none\]]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Animations: property <inset-area> from [none\] to [span-all left\] at (0.3) should be [none\]]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Animations: property <inset-area> from [none\] to [span-all left\] at (0.5) should be [span-all left\]]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Animations: property <inset-area> from [none\] to [span-all left\] at (0.6) should be [span-all left\]]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Animations: property <inset-area> from [none\] to [span-all left\] at (1) should be [span-all left\]]
|
||||
expected: FAIL
|
||||
|
||||
[CSS Animations: property <inset-area> from [none\] to [span-all left\] at (1.5) should be [span-all left\]]
|
||||
expected: FAIL
|
||||
|
||||
[Web Animations: property <inset-area> from [none\] to [span-all left\] at (-0.3) should be [none\]]
|
||||
expected: FAIL
|
||||
|
||||
[Web Animations: property <inset-area> from [none\] to [span-all left\] at (0) should be [none\]]
|
||||
expected: FAIL
|
||||
|
||||
[Web Animations: property <inset-area> from [none\] to [span-all left\] at (0.3) should be [none\]]
|
||||
expected: FAIL
|
||||
|
||||
[Web Animations: property <inset-area> from [none\] to [span-all left\] at (0.5) should be [span-all left\]]
|
||||
expected: FAIL
|
||||
|
||||
[Web Animations: property <inset-area> from [none\] to [span-all left\] at (0.6) should be [span-all left\]]
|
||||
expected: FAIL
|
||||
|
||||
[Web Animations: property <inset-area> from [none\] to [span-all left\] at (1) should be [span-all left\]]
|
||||
expected: FAIL
|
||||
|
||||
[Web Animations: property <inset-area> from [none\] to [span-all left\] at (1.5) should be [span-all left\]]
|
||||
expected: FAIL
|
|
@ -0,0 +1,24 @@
|
|||
[anchor-scope-computed.html]
|
||||
[Property anchor-scope value 'none']
|
||||
expected: FAIL
|
||||
|
||||
[Property anchor-scope value 'initial']
|
||||
expected: FAIL
|
||||
|
||||
[Property anchor-scope value 'all']
|
||||
expected: FAIL
|
||||
|
||||
[Property anchor-scope value '--a']
|
||||
expected: FAIL
|
||||
|
||||
[Property anchor-scope value '--a, --b']
|
||||
expected: FAIL
|
||||
|
||||
[Property anchor-scope value '--a, --b, --c']
|
||||
expected: FAIL
|
||||
|
||||
[Property anchor-scope has initial value none]
|
||||
expected: FAIL
|
||||
|
||||
[Property anchor-scope does not inherit]
|
||||
expected: FAIL
|
|
@ -0,0 +1,27 @@
|
|||
[anchor-scope-parsing.html]
|
||||
[e.style['anchor-scope'\] = "initial" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['anchor-scope'\] = "inherit" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['anchor-scope'\] = "unset" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['anchor-scope'\] = "revert" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['anchor-scope'\] = "none" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['anchor-scope'\] = "all" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['anchor-scope'\] = "--a" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['anchor-scope'\] = "--a, --b" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['anchor-scope'\] = "--a, --b, --c" should set the property value]
|
||||
expected: FAIL
|
|
@ -1,3 +1,60 @@
|
|||
[position-try-fallbacks-computed.html]
|
||||
[Property position-try-fallbacks value 'none']
|
||||
expected: FAIL
|
||||
|
||||
[Property position-try-fallbacks value 'flip-block']
|
||||
expected: FAIL
|
||||
|
||||
[Property position-try-fallbacks value 'flip-inline']
|
||||
expected: FAIL
|
||||
|
||||
[Property position-try-fallbacks value 'flip-start']
|
||||
expected: FAIL
|
||||
|
||||
[Property position-try-fallbacks value 'flip-block, flip-inline']
|
||||
expected: FAIL
|
||||
|
||||
[Property position-try-fallbacks value '--foo, --bar']
|
||||
expected: FAIL
|
||||
|
||||
[Property position-try-fallbacks value 'flip-start flip-inline flip-block']
|
||||
expected: FAIL
|
||||
|
||||
[Property position-try-fallbacks value 'flip-start --flop']
|
||||
expected: FAIL
|
||||
|
||||
[Property position-try-fallbacks value '--flop flip-start']
|
||||
expected: FAIL
|
||||
|
||||
[Property position-try-fallbacks value 'left top']
|
||||
expected: FAIL
|
||||
|
||||
[Property position-try-fallbacks value 'top left']
|
||||
expected: FAIL
|
||||
|
||||
[Property position-try-fallbacks value 'start start']
|
||||
expected: FAIL
|
||||
|
||||
[Property position-try-fallbacks value 'left, right']
|
||||
expected: FAIL
|
||||
|
||||
[Property position-try-fallbacks value '--foo, left']
|
||||
expected: FAIL
|
||||
|
||||
[Property position-try-fallbacks value '--foo, left, --bar']
|
||||
expected: FAIL
|
||||
|
||||
[Property position-try-fallbacks value '--foo, flip-start, left']
|
||||
expected: FAIL
|
||||
|
||||
[Property position-try-fallbacks value '--foo flip-start, left']
|
||||
expected: FAIL
|
||||
|
||||
[Property position-try-fallbacks value 'left, --bar flip-start']
|
||||
expected: FAIL
|
||||
|
||||
[Property position-try-fallbacks has initial value none]
|
||||
expected: FAIL
|
||||
|
||||
[Property position-try-fallbacks does not inherit]
|
||||
expected: FAIL
|
||||
|
|
|
@ -1,9 +1,81 @@
|
|||
[position-try-fallbacks-parsing.html]
|
||||
[e.style['position-try-fallbacks'\] = "initial" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['position-try-fallbacks'\] = "inherit" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['position-try-fallbacks'\] = "unset" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['position-try-fallbacks'\] = "revert" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['position-try-fallbacks'\] = "none" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['position-try-fallbacks'\] = "flip-block" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['position-try-fallbacks'\] = "flip-block " should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['position-try-fallbacks'\] = "flip-start, flip-block" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['position-try-fallbacks'\] = "flip-start flip-inline, flip-block" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['position-try-fallbacks'\] = "flip-start, flip-start" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['position-try-fallbacks'\] = "flip-start flip-inline flip-block" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['position-try-fallbacks'\] = "flip-block, --foo" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['position-try-fallbacks'\] = "--bar, flip-block flip-start" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['position-try-fallbacks'\] = "--foo, --bar, --baz" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['position-try-fallbacks'\] = "--bar flip-block" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['position-try-fallbacks'\] = "--bar flip-inline flip-block" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['position-try-fallbacks'\] = "flip-inline --foo" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['position-try-fallbacks'\] = "flip-inline flip-start --foo" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['position-try-fallbacks'\] = "left top" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['position-try-fallbacks'\] = "top left" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['position-try-fallbacks'\] = "start start" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['position-try-fallbacks'\] = "left, right" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['position-try-fallbacks'\] = "--foo, left" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['position-try-fallbacks'\] = "--foo, left, --bar" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['position-try-fallbacks'\] = "--foo, flip-start, left" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['position-try-fallbacks'\] = "--foo flip-start, left" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['position-try-fallbacks'\] = "left, --bar flip-start" should set the property value]
|
||||
expected: FAIL
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
[position-try-order-computed.html]
|
||||
[Property position-try-order value 'normal']
|
||||
expected: FAIL
|
||||
|
||||
[Property position-try-order value 'most-width']
|
||||
expected: FAIL
|
||||
|
||||
[Property position-try-order value 'most-height']
|
||||
expected: FAIL
|
||||
|
||||
[Property position-try-order value 'most-block-size']
|
||||
expected: FAIL
|
||||
|
||||
[Property position-try-order value 'most-inline-size']
|
||||
expected: FAIL
|
||||
|
||||
[Property position-try-order has initial value normal]
|
||||
expected: FAIL
|
||||
|
||||
[Property position-try-order does not inherit]
|
||||
expected: FAIL
|
|
@ -0,0 +1,30 @@
|
|||
[position-visibility-computed.tentative.html]
|
||||
[Property position-visibility value 'always']
|
||||
expected: FAIL
|
||||
|
||||
[Property position-visibility value 'anchors-valid']
|
||||
expected: FAIL
|
||||
|
||||
[Property position-visibility value 'anchors-visible']
|
||||
expected: FAIL
|
||||
|
||||
[Property position-visibility value 'no-overflow']
|
||||
expected: FAIL
|
||||
|
||||
[Property position-visibility value 'anchors-valid no-overflow']
|
||||
expected: FAIL
|
||||
|
||||
[Property position-visibility value 'anchors-visible no-overflow']
|
||||
expected: FAIL
|
||||
|
||||
[Property position-visibility value 'no-overflow anchors-valid']
|
||||
expected: FAIL
|
||||
|
||||
[Property position-visibility value 'no-overflow anchors-visible']
|
||||
expected: FAIL
|
||||
|
||||
[Property position-visibility has initial value always]
|
||||
expected: FAIL
|
||||
|
||||
[Property position-visibility does not inherit]
|
||||
expected: FAIL
|
|
@ -1,3 +1,36 @@
|
|||
[position-visibility-parsing.tentative.html]
|
||||
[e.style['position-visibility'\] = "anchors-valid anchors-visible" should not set the property value]
|
||||
[e.style['position-visibility'\] = "initial" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['position-visibility'\] = "inherit" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['position-visibility'\] = "unset" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['position-visibility'\] = "revert" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['position-visibility'\] = "always" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['position-visibility'\] = "anchors-valid" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['position-visibility'\] = "anchors-visible" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['position-visibility'\] = "no-overflow" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['position-visibility'\] = "anchors-valid no-overflow" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['position-visibility'\] = "anchors-visible no-overflow" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['position-visibility'\] = "no-overflow anchors-valid" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['position-visibility'\] = "no-overflow anchors-visible" should set the property value]
|
||||
expected: FAIL
|
||||
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -1,5 +1,4 @@
|
|||
[try-tactic-basic.html]
|
||||
expected: ERROR
|
||||
[--pf ]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -47,6 +46,3 @@
|
|||
|
||||
[--pf flip-block flip-inline flip-start]
|
||||
expected: FAIL
|
||||
|
||||
[--pf]
|
||||
expected: FAIL
|
||||
|
|
|
@ -22,6 +22,3 @@
|
|||
|
||||
[--pf flip-block flip-inline flip-start]
|
||||
expected: FAIL
|
||||
|
||||
[--pf]
|
||||
expected: FAIL
|
||||
|
|
Загрузка…
Ссылка в новой задаче