Skip to content

Commit 0ee93d6

Browse files
committed
Respect unknown decl rule
1 parent a290247 commit 0ee93d6

File tree

2 files changed

+13
-10
lines changed

2 files changed

+13
-10
lines changed

src/AngleSharp.Css/BrowsingContextExtensions.cs

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,13 @@ internal static ICssProperty CreateShorthand(this IBrowsingContext context, Stri
6464
var factory = context.GetFactory<IDeclarationFactory>();
6565
var info = factory.Create(name);
6666
var value = info.Combine(factory, longhands);
67-
return new CssProperty(name, info.Converter, info.Flags, value, important);
67+
68+
if (context.AllowsDeclaration(info))
69+
{
70+
return new CssProperty(name, info.Converter, info.Flags, value, important);
71+
}
72+
73+
return null;
6874
}
6975

7076
internal static ICssProperty[] CreateLonghands(this IBrowsingContext context, ICssProperty shorthand)
@@ -78,16 +84,18 @@ internal static ICssProperty[] CreateLonghands(this IBrowsingContext context, IC
7884
internal static CssProperty CreateProperty(this IBrowsingContext context, String propertyName)
7985
{
8086
var info = context.GetDeclarationInfo(propertyName);
81-
var provider = context.GetProvider<CssParser>();
8287

83-
if (info.Flags != PropertyFlags.Unknown || context.IsAllowingUnknownDeclarations())
88+
if (context.AllowsDeclaration(info))
8489
{
8590
return new CssProperty(propertyName, info.Converter, info.Flags);
8691
}
8792

8893
return null;
8994
}
9095

96+
private static Boolean AllowsDeclaration(this IBrowsingContext context, DeclarationInfo info) =>
97+
info.Flags != PropertyFlags.Unknown || context.IsAllowingUnknownDeclarations();
98+
9199
private static Boolean IsAllowingUnknownDeclarations(this IBrowsingContext context)
92100
{
93101
var parser = context.GetProvider<CssParser>();

src/AngleSharp.Css/DefaultDeclarationFactory.cs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1680,10 +1680,7 @@ public class DefaultDeclarationFactory : IDeclarationFactory
16801680
/// </summary>
16811681
/// <param name="propertyName">The name of the property.</param>
16821682
/// <param name="converter">The converter to use.</param>
1683-
public void Register(String propertyName, DeclarationInfo converter)
1684-
{
1685-
_declarations.Add(propertyName, converter);
1686-
}
1683+
public void Register(String propertyName, DeclarationInfo converter) => _declarations.Add(propertyName, converter);
16871684

16881685
/// <summary>
16891686
/// Unregisters an existing declaration.
@@ -1692,9 +1689,7 @@ public void Register(String propertyName, DeclarationInfo converter)
16921689
/// <returns>The registered declaration, if any.</returns>
16931690
public DeclarationInfo Unregister(String propertyName)
16941691
{
1695-
var info = default(DeclarationInfo);
1696-
1697-
if (_declarations.TryGetValue(propertyName, out info))
1692+
if (_declarations.TryGetValue(propertyName, out DeclarationInfo info))
16981693
{
16991694
_declarations.Remove(propertyName);
17001695
}

0 commit comments

Comments
 (0)