From be38c5478fb0dc20081b29a9888ec4fb55a5b909 Mon Sep 17 00:00:00 2001 From: MDCODE247 <122866986+MDCODE247@users.noreply.github.com> Date: Tue, 1 Apr 2025 08:29:24 +0100 Subject: [PATCH] script: Use `RegExpFlag_UnicodeSets` when validating regular expressions in `HTMLInputElement` (#36236) Changed `RegExpFlag_Unicode` to `RegExpFlag_UnicodeSets` in all instances. Testing: Ran `./mach test-wpt tests/wpt/tests/html/semantics/forms/constraints/form-validation-validity-patternMismatch.html` and all tests passed successfully. Fixes: #36075 --------- Signed-off-by: MDCODE247 --- components/script/dom/htmlinputelement.rs | 6 +++--- ...lidation-validity-patternMismatch.html.ini | 21 ------------------- .../pattern_attribute_v_flag.html.ini | 9 -------- 3 files changed, 3 insertions(+), 33 deletions(-) delete mode 100644 tests/wpt/meta/html/semantics/forms/constraints/form-validation-validity-patternMismatch.html.ini delete mode 100644 tests/wpt/meta/html/semantics/forms/the-input-element/pattern_attribute_v_flag.html.ini diff --git a/components/script/dom/htmlinputelement.rs b/components/script/dom/htmlinputelement.rs index abeb806d54d..901d154af17 100644 --- a/components/script/dom/htmlinputelement.rs +++ b/components/script/dom/htmlinputelement.rs @@ -17,7 +17,7 @@ use encoding_rs::Encoding; use html5ever::{LocalName, Prefix, local_name, namespace_url, ns}; use js::jsapi::{ ClippedTime, DateGetMsecSinceEpoch, Handle, JS_ClearPendingException, JSObject, NewDateObject, - NewUCRegExpObject, ObjectIsDate, RegExpFlag_Unicode, RegExpFlags, + NewUCRegExpObject, ObjectIsDate, RegExpFlag_UnicodeSets, RegExpFlags, }; use js::jsval::UndefinedValue; use js::rust::wrappers::{CheckRegExpSyntax, ExecuteRegExpNoStatics, ObjectIsRegExp}; @@ -3002,7 +3002,7 @@ fn compile_pattern(cx: SafeJSContext, pattern_str: &str, out_regex: MutableHandl // ...and if it does make pattern that matches only the entirety of string let pattern_str = format!("^(?:{})$", pattern_str); let flags = RegExpFlags { - flags_: RegExpFlag_Unicode, + flags_: RegExpFlag_UnicodeSets, }; new_js_regex(cx, &pattern_str, flags, out_regex) } else { @@ -3023,7 +3023,7 @@ fn check_js_regex_syntax(cx: SafeJSContext, pattern: &str) -> bool { pattern.as_ptr(), pattern.len(), RegExpFlags { - flags_: RegExpFlag_Unicode, + flags_: RegExpFlag_UnicodeSets, }, exception.handle_mut(), ); diff --git a/tests/wpt/meta/html/semantics/forms/constraints/form-validation-validity-patternMismatch.html.ini b/tests/wpt/meta/html/semantics/forms/constraints/form-validation-validity-patternMismatch.html.ini deleted file mode 100644 index 58584e32f0d..00000000000 --- a/tests/wpt/meta/html/semantics/forms/constraints/form-validation-validity-patternMismatch.html.ini +++ /dev/null @@ -1,21 +0,0 @@ -[form-validation-validity-patternMismatch.html] - [[INPUT in TEXT status\] Invalid `v` regular expression gets ignored] - expected: FAIL - - [[INPUT in SEARCH status\] Invalid `v` regular expression gets ignored] - expected: FAIL - - [[INPUT in TEL status\] Invalid `v` regular expression gets ignored] - expected: FAIL - - [[INPUT in URL status\] Invalid `v` regular expression gets ignored] - expected: FAIL - - [[INPUT in EMAIL status\] Invalid `v` regular expression gets ignored] - expected: FAIL - - [[INPUT in PASSWORD status\] Invalid `v` regular expression gets ignored] - expected: FAIL - - [[INPUT in EMAIL status\] Invalid `v` regular expression gets ignored, if multiple is present] - expected: FAIL diff --git a/tests/wpt/meta/html/semantics/forms/the-input-element/pattern_attribute_v_flag.html.ini b/tests/wpt/meta/html/semantics/forms/the-input-element/pattern_attribute_v_flag.html.ini deleted file mode 100644 index 3d995d82235..00000000000 --- a/tests/wpt/meta/html/semantics/forms/the-input-element/pattern_attribute_v_flag.html.ini +++ /dev/null @@ -1,9 +0,0 @@ -[pattern_attribute_v_flag.html] - [ supports set difference syntax] - expected: FAIL - - [ supports string literal syntax] - expected: FAIL - - [ enables the RegExp v flag] - expected: FAIL