Skip to content

Commit 99dd648

Browse files
Calme1709kalenikaliaksandr
authored andcommitted
LibWeb: Disallow ASF in DOMMatrix constructor
We have no context to resolve ASFs against here so we should throw.
1 parent bf15643 commit 99dd648

File tree

3 files changed

+16
-1
lines changed

3 files changed

+16
-1
lines changed

Libraries/LibWeb/Geometry/DOMMatrixReadOnly.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -950,7 +950,7 @@ WebIDL::ExceptionOr<ParsedMatrix> parse_dom_matrix_init_string(JS::Realm& realm,
950950
// The result will be a <transform-list>, the keyword none, or failure.
951951
// If parsedValue is failure, or any <transform-function> has <length> values without absolute length units, or any keyword other than none is used, then return failure. [CSS3-SYNTAX] [CSS3-TRANSFORMS]
952952
auto transform_style_value = parse_css_value(CSS::Parser::ParsingParams {}, transform_list, CSS::PropertyID::Transform);
953-
if (!transform_style_value || (transform_style_value->is_keyword() && transform_style_value->to_keyword() != CSS::Keyword::None))
953+
if (!transform_style_value || (transform_style_value->is_keyword() && transform_style_value->to_keyword() != CSS::Keyword::None) || transform_style_value->is_unresolved())
954954
return WebIDL::SyntaxError::create(realm, "Failed to parse CSS transform string."_utf16);
955955
auto parsed_value = CSS::ComputedProperties::transformations_for_style_value(*transform_style_value);
956956

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Pass!
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<script src="../include.js"></script>
4+
<script>
5+
test(() => {
6+
try {
7+
new DOMMatrix("var(--a)");
8+
println("Fail! Should throw error");
9+
} catch {
10+
println("Pass!");
11+
}
12+
});
13+
</script>
14+
</html>

0 commit comments

Comments
 (0)