Bug 261075

Summary: Input element: Fix the dirty value flag after type change
Product: WebKit Reporter: Ahmad Saleem <ahmad.saleem792>
Component: FormsAssignee: Nobody <webkit-unassigned>
Status: NEW ---    
Severity: Normal CC: cdumez, karlcow, webkit-bug-importer, wenson_hsieh
Priority: P2 Keywords: BrowserCompat, InRadar
Version: Safari Technology Preview   
Hardware: Unspecified   
OS: Unspecified   

Description Ahmad Saleem 2023-09-02 18:28:58 PDT
Hi Team,

While going through Blink's bugs, I came across another failing test in WebKit ToT.

Test Case: https://jsfiddle.net/2pLbntf1/

^ Safari output: Should be "value2": value1, which is different from Firefox Nightly 118 & Chrome Canary.

Blink Commit: https://chromium.googlesource.com/chromium/src.git/+/2cabef4e7d4a0b298a114add1298920cc0cfb321

WebKit Source: https://searchfox.org/wubkat/source/Source/WebCore/html/HTMLInputElement.cpp#552

Just wanted to raise so we can fix it.

Thanks!
Comment 1 Ahmad Saleem 2023-09-02 18:30:10 PDT
Changing: m_valueIfDirty = sanitizeValue(attributeWithoutSynchronization(valueAttr));

to

m_valueIfDirty = String();

___

This fixes it the attached test case but haven't run whole LayoutTests suite so don't know about all failures. Still worth to raise 'draft' PR IMO.
Comment 2 Ahmad Saleem 2023-09-02 18:36:52 PDT
This might be more involved and need to take care of this bit as well: https://chromium.googlesource.com/chromium/src.git/+/676b2c3c1f5c3655e4ef2d0c6ab9d0d89c753df9
Comment 3 Karl Dubost 2023-09-04 17:59:07 PDT
To double check if there is a WPT for it.
And add one if not 
https://wpt.fyi/results/html/semantics/forms?label=master&label=experimental&aligned&q=safari%3Afail
Comment 4 Radar WebKit Bug Importer 2023-09-09 18:29:12 PDT
<rdar://problem/115234043>