Diff
Modified: trunk/LayoutTests/ChangeLog (280309 => 280310)
--- trunk/LayoutTests/ChangeLog 2021-07-26 19:39:57 UTC (rev 280309)
+++ trunk/LayoutTests/ChangeLog 2021-07-26 20:15:49 UTC (rev 280310)
@@ -1,3 +1,17 @@
+2021-07-26 Johnson Zhou <[email protected]>
+
+ Added support for FormDataEvent. Rebaselined.
+ https://bugs.webkit.org/show_bug.cgi?id=227718
+
+ Reviewed by Chris Dumez.
+
+ * platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
+ * platform/ios-wk2/imported/w3c/web-platform-tests/mathml/relations/html5-tree/math-global-event-handlers.tentative-expected.txt:
+ * platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
+ * platform/mac-wk1/imported/w3c/web-platform-tests/mathml/relations/html5-tree/math-global-event-handlers.tentative-expected.txt:
+ * platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
+ * platform/mac-wk2/imported/w3c/web-platform-tests/mathml/relations/html5-tree/math-global-event-handlers.tentative-expected.txt:
+
2021-07-26 Jer Noble <[email protected]>
[Cocoa] Playback stalls on bilibili.com
Modified: trunk/LayoutTests/imported/w3c/ChangeLog (280309 => 280310)
--- trunk/LayoutTests/imported/w3c/ChangeLog 2021-07-26 19:39:57 UTC (rev 280309)
+++ trunk/LayoutTests/imported/w3c/ChangeLog 2021-07-26 20:15:49 UTC (rev 280310)
@@ -1,3 +1,19 @@
+2021-07-26 Johnson Zhou <[email protected]>
+
+ Added FormDataEvent support.
+ https://bugs.webkit.org/show_bug.cgi?id=227718
+
+ Reviewed by Chris Dumez.
+
+ * web-platform-tests/html/semantics/forms/form-submission-0/FormDataEvent.window-expected.txt:
+ * web-platform-tests/html/semantics/forms/form-submission-0/constructing-form-data-set-expected.txt:
+ * web-platform-tests/html/semantics/forms/form-submission-0/text-plain.window-expected.txt:
+ * web-platform-tests/html/semantics/forms/form-submission-0/urlencoded2.window-expected.txt:
+ * web-platform-tests/html/webappapis/scripting/events/event-handler-all-global-events-expected.txt:
+ * web-platform-tests/html/webappapis/scripting/events/event-handler-attributes-body-window-expected.txt:
+ * web-platform-tests/html/webappapis/scripting/events/event-handler-attributes-windowless-body-expected.txt:
+ * web-platform-tests/xhr/formdata-expected.txt:
+
2021-07-23 Alexey Shvayka <[email protected]>
[JSC] Call custom accessors / values with their holder's global object
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/FormDataEvent.window-expected.txt (280309 => 280310)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/FormDataEvent.window-expected.txt 2021-07-26 19:39:57 UTC (rev 280309)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/FormDataEvent.window-expected.txt 2021-07-26 20:15:49 UTC (rev 280310)
@@ -1,6 +1,4 @@
-FAIL Failing FormDataEvent constructor assert_throws_js: 0 arguments function "() => { new FormDataEvent() }" threw object "ReferenceError: Can't find variable: FormDataEvent" ("ReferenceError") expected instance of function "function TypeError() {
- [native code]
-}" ("TypeError")
-FAIL Successful FormDataEvent constructor Can't find variable: FormDataEvent
+PASS Failing FormDataEvent constructor
+PASS Successful FormDataEvent constructor
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/constructing-form-data-set-expected.txt (280309 => 280310)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/constructing-form-data-set-expected.txt 2021-07-26 19:39:57 UTC (rev 280309)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/constructing-form-data-set-expected.txt 2021-07-26 20:15:49 UTC (rev 280310)
@@ -10,10 +10,10 @@
PASS FormData constructor always produces UTF-8 _charset_ value.
PASS _charset_ control sets the expected encoding name.
PASS The button cannot be setted if it is not a submitter.
-FAIL "formdata" event bubbles, and is not cancelable. assert_true: expected true got false
-FAIL "formdata" event bubbles in an orphan tree. assert_true: expected true got false
-FAIL "formData" IDL attribute should have entries for form-associated elements in the first event handler, and the second handler can read entries set by the first handler. assert_true: expected true got false
-FAIL Entries added to "formData" IDL attribute should be submitted. assert_true: expected true got false
-FAIL Entries added to the "formdata" IDL attribute shouldn't be newline normalized in the resulting FormData undefined is not an object (evaluating '[...formData][0]')
+PASS "formdata" event bubbles, and is not cancelable.
+PASS "formdata" event bubbles in an orphan tree.
+PASS "formData" IDL attribute should have entries for form-associated elements in the first event handler, and the second handler can read entries set by the first handler.
+PASS Entries added to "formData" IDL attribute should be submitted.
+PASS Entries added to the "formdata" IDL attribute shouldn't be newline normalized in the resulting FormData
FAIL The constructed FormData object should not contain an entry for the submit button that was used to submit the form. assert_false: expected false got true
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/text-plain.window-expected.txt (280309 => 280310)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/text-plain.window-expected.txt 2021-07-26 19:39:57 UTC (rev 280309)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/text-plain.window-expected.txt 2021-07-26 20:15:49 UTC (rev 280310)
@@ -1,30 +1,30 @@
FAIL text/plain: Basic test (normal form) assert_equals: expected "basic=test\r\n" but got "basic=test"
-FAIL text/plain: Basic test (formdata event) assert_equals: expected "basic=test\r\n" but got ""
+FAIL text/plain: Basic test (formdata event) assert_equals: expected "basic=test\r\n" but got "basic=test"
FAIL text/plain: Basic File test (normal form) assert_equals: expected "basic=file-test.txt\r\n" but got "basic=file-test.txt"
FAIL text/plain: Basic File test (formdata event) assert_equals: expected "basic=file-test.txt\r\n" but got ""
FAIL text/plain: 0x00 in name (normal form) assert_equals: expected "a\0b=c\r\n" but got "a\0b=c"
-FAIL text/plain: 0x00 in name (formdata event) assert_equals: expected "a\0b=c\r\n" but got ""
+FAIL text/plain: 0x00 in name (formdata event) assert_equals: expected "a\0b=c\r\n" but got "a\0b=c"
FAIL text/plain: 0x00 in value (normal form) assert_equals: expected "a=b\0c\r\n" but got "a=b\0c"
-FAIL text/plain: 0x00 in value (formdata event) assert_equals: expected "a=b\0c\r\n" but got ""
+FAIL text/plain: 0x00 in value (formdata event) assert_equals: expected "a=b\0c\r\n" but got "a=b\0c"
FAIL text/plain: 0x00 in filename (normal form) assert_equals: expected "a=b\0c\r\n" but got "a=b\0c"
FAIL text/plain: 0x00 in filename (formdata event) assert_equals: expected "a=b\0c\r\n" but got ""
FAIL text/plain: \n in name (normal form) assert_equals: expected "a\r\nb=c\r\n" but got "a\r\nb=c"
-FAIL text/plain: \n in name (formdata event) assert_equals: expected "a\r\nb=c\r\n" but got ""
+FAIL text/plain: \n in name (formdata event) assert_equals: expected "a\r\nb=c\r\n" but got "a\r\nb=c"
FAIL text/plain: \r in name (normal form) assert_equals: expected "a\r\nb=c\r\n" but got "a\r\nb=c"
-FAIL text/plain: \r in name (formdata event) assert_equals: expected "a\r\nb=c\r\n" but got ""
+FAIL text/plain: \r in name (formdata event) assert_equals: expected "a\r\nb=c\r\n" but got "a\r\nb=c"
FAIL text/plain: \r\n in name (normal form) assert_equals: expected "a\r\nb=c\r\n" but got "a\r\nb=c"
-FAIL text/plain: \r\n in name (formdata event) assert_equals: expected "a\r\nb=c\r\n" but got ""
+FAIL text/plain: \r\n in name (formdata event) assert_equals: expected "a\r\nb=c\r\n" but got "a\r\nb=c"
FAIL text/plain: \n\r in name (normal form) assert_equals: expected "a\r\n\r\nb=c\r\n" but got "a\r\n\r\nb=c"
-FAIL text/plain: \n\r in name (formdata event) assert_equals: expected "a\r\n\r\nb=c\r\n" but got ""
+FAIL text/plain: \n\r in name (formdata event) assert_equals: expected "a\r\n\r\nb=c\r\n" but got "a\r\n\r\nb=c"
FAIL text/plain: \n in value (normal form) assert_equals: expected "a=b\r\nc\r\n" but got "a=b\r\nc"
-FAIL text/plain: \n in value (formdata event) assert_equals: expected "a=b\r\nc\r\n" but got ""
+FAIL text/plain: \n in value (formdata event) assert_equals: expected "a=b\r\nc\r\n" but got "a=b\r\nc"
FAIL text/plain: \r in value (normal form) assert_equals: expected "a=b\r\nc\r\n" but got "a=b\r\nc"
-FAIL text/plain: \r in value (formdata event) assert_equals: expected "a=b\r\nc\r\n" but got ""
+FAIL text/plain: \r in value (formdata event) assert_equals: expected "a=b\r\nc\r\n" but got "a=b\r\nc"
FAIL text/plain: \r\n in value (normal form) assert_equals: expected "a=b\r\nc\r\n" but got "a=b\r\nc"
-FAIL text/plain: \r\n in value (formdata event) assert_equals: expected "a=b\r\nc\r\n" but got ""
+FAIL text/plain: \r\n in value (formdata event) assert_equals: expected "a=b\r\nc\r\n" but got "a=b\r\nc"
FAIL text/plain: \n\r in value (normal form) assert_equals: expected "a=b\r\n\r\nc\r\n" but got "a=b\r\n\r\nc"
-FAIL text/plain: \n\r in value (formdata event) assert_equals: expected "a=b\r\n\r\nc\r\n" but got ""
+FAIL text/plain: \n\r in value (formdata event) assert_equals: expected "a=b\r\n\r\nc\r\n" but got "a=b\r\n\r\nc"
FAIL text/plain: \n in filename (normal form) assert_equals: expected "a=b\r\nc\r\n" but got "a=b\r\nc"
FAIL text/plain: \n in filename (formdata event) assert_equals: expected "a=b\r\nc\r\n" but got ""
FAIL text/plain: \r in filename (normal form) assert_equals: expected "a=b\r\nc\r\n" but got "a=b\r\nc"
@@ -34,29 +34,29 @@
FAIL text/plain: \n\r in filename (normal form) assert_equals: expected "a=b\r\n\r\nc\r\n" but got "a=b\r\n\r\nc"
FAIL text/plain: \n\r in filename (formdata event) assert_equals: expected "a=b\r\n\r\nc\r\n" but got ""
FAIL text/plain: double quote in name (normal form) assert_equals: expected "a\"b=c\r\n" but got "a\"b=c"
-FAIL text/plain: double quote in name (formdata event) assert_equals: expected "a\"b=c\r\n" but got ""
+FAIL text/plain: double quote in name (formdata event) assert_equals: expected "a\"b=c\r\n" but got "a\"b=c"
FAIL text/plain: double quote in value (normal form) assert_equals: expected "a=b\"c\r\n" but got "a=b\"c"
-FAIL text/plain: double quote in value (formdata event) assert_equals: expected "a=b\"c\r\n" but got ""
+FAIL text/plain: double quote in value (formdata event) assert_equals: expected "a=b\"c\r\n" but got "a=b\"c"
FAIL text/plain: double quote in filename (normal form) assert_equals: expected "a=b\"c\r\n" but got "a=b\"c"
FAIL text/plain: double quote in filename (formdata event) assert_equals: expected "a=b\"c\r\n" but got ""
FAIL text/plain: single quote in name (normal form) assert_equals: expected "a'b=c\r\n" but got "a'b=c"
-FAIL text/plain: single quote in name (formdata event) assert_equals: expected "a'b=c\r\n" but got ""
+FAIL text/plain: single quote in name (formdata event) assert_equals: expected "a'b=c\r\n" but got "a'b=c"
FAIL text/plain: single quote in value (normal form) assert_equals: expected "a=b'c\r\n" but got "a=b'c"
-FAIL text/plain: single quote in value (formdata event) assert_equals: expected "a=b'c\r\n" but got ""
+FAIL text/plain: single quote in value (formdata event) assert_equals: expected "a=b'c\r\n" but got "a=b'c"
FAIL text/plain: single quote in filename (normal form) assert_equals: expected "a=b'c\r\n" but got "a=b'c"
FAIL text/plain: single quote in filename (formdata event) assert_equals: expected "a=b'c\r\n" but got ""
FAIL text/plain: backslash in name (normal form) assert_equals: expected "a\\b=c\r\n" but got "a\\b=c"
-FAIL text/plain: backslash in name (formdata event) assert_equals: expected "a\\b=c\r\n" but got ""
+FAIL text/plain: backslash in name (formdata event) assert_equals: expected "a\\b=c\r\n" but got "a\\b=c"
FAIL text/plain: backslash in value (normal form) assert_equals: expected "a=b\\c\r\n" but got "a=b\\c"
-FAIL text/plain: backslash in value (formdata event) assert_equals: expected "a=b\\c\r\n" but got ""
+FAIL text/plain: backslash in value (formdata event) assert_equals: expected "a=b\\c\r\n" but got "a=b\\c"
FAIL text/plain: backslash in filename (normal form) assert_equals: expected "a=b\\c\r\n" but got "a=b\\c"
FAIL text/plain: backslash in filename (formdata event) assert_equals: expected "a=b\\c\r\n" but got ""
FAIL text/plain: non-ASCII in name and value (normal form) assert_equals: expected "áb=ç\r\n" but got "áb=ç"
-FAIL text/plain: non-ASCII in name and value (formdata event) assert_equals: expected "áb=ç\r\n" but got ""
+FAIL text/plain: non-ASCII in name and value (formdata event) assert_equals: expected "áb=ç\r\n" but got "áb=ç"
FAIL text/plain: non-ASCII in filename (normal form) assert_equals: expected "a=É.txt\r\n" but got "a=É.txt"
FAIL text/plain: non-ASCII in filename (formdata event) assert_equals: expected "a=É.txt\r\n" but got ""
FAIL text/plain: characters not in encoding in name and value (normal form) assert_equals: expected "aəb=c�d\r\n" but got "aəb=c�d"
-FAIL text/plain: characters not in encoding in name and value (formdata event) assert_equals: expected "aəb=c�d\r\n" but got ""
+FAIL text/plain: characters not in encoding in name and value (formdata event) assert_equals: expected "aəb=c�d\r\n" but got "aəb=c�d"
FAIL text/plain: character not in encoding in filename (normal form) assert_equals: expected "á=💩\r\n" but got "á=💩"
FAIL text/plain: character not in encoding in filename (formdata event) assert_equals: expected "á=💩\r\n" but got ""
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/urlencoded2.window-expected.txt (280309 => 280310)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/urlencoded2.window-expected.txt 2021-07-26 19:39:57 UTC (rev 280309)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/urlencoded2.window-expected.txt 2021-07-26 20:15:49 UTC (rev 280310)
@@ -1,30 +1,30 @@
PASS application/x-www-form-urlencoded: Basic test (normal form)
-FAIL application/x-www-form-urlencoded: Basic test (formdata event) assert_equals: expected "basic=test" but got ""
+PASS application/x-www-form-urlencoded: Basic test (formdata event)
PASS application/x-www-form-urlencoded: Basic File test (normal form)
FAIL application/x-www-form-urlencoded: Basic File test (formdata event) assert_equals: expected "basic=file-test.txt" but got ""
FAIL application/x-www-form-urlencoded: 0x00 in name (normal form) assert_equals: expected "a%00b=c" but got "a\0b=c"
-FAIL application/x-www-form-urlencoded: 0x00 in name (formdata event) assert_equals: expected "a%00b=c" but got ""
+FAIL application/x-www-form-urlencoded: 0x00 in name (formdata event) assert_equals: expected "a%00b=c" but got "a\0b=c"
FAIL application/x-www-form-urlencoded: 0x00 in value (normal form) assert_equals: expected "a=b%00c" but got "a=b\0c"
-FAIL application/x-www-form-urlencoded: 0x00 in value (formdata event) assert_equals: expected "a=b%00c" but got ""
+FAIL application/x-www-form-urlencoded: 0x00 in value (formdata event) assert_equals: expected "a=b%00c" but got "a=b\0c"
FAIL application/x-www-form-urlencoded: 0x00 in filename (normal form) assert_equals: expected "a=b%00c" but got "a=b\0c"
FAIL application/x-www-form-urlencoded: 0x00 in filename (formdata event) assert_equals: expected "a=b%00c" but got ""
PASS application/x-www-form-urlencoded: \n in name (normal form)
-FAIL application/x-www-form-urlencoded: \n in name (formdata event) assert_equals: expected "a%0D%0Ab=c" but got ""
+PASS application/x-www-form-urlencoded: \n in name (formdata event)
PASS application/x-www-form-urlencoded: \r in name (normal form)
-FAIL application/x-www-form-urlencoded: \r in name (formdata event) assert_equals: expected "a%0D%0Ab=c" but got ""
+PASS application/x-www-form-urlencoded: \r in name (formdata event)
PASS application/x-www-form-urlencoded: \r\n in name (normal form)
-FAIL application/x-www-form-urlencoded: \r\n in name (formdata event) assert_equals: expected "a%0D%0Ab=c" but got ""
+PASS application/x-www-form-urlencoded: \r\n in name (formdata event)
PASS application/x-www-form-urlencoded: \n\r in name (normal form)
-FAIL application/x-www-form-urlencoded: \n\r in name (formdata event) assert_equals: expected "a%0D%0A%0D%0Ab=c" but got ""
+PASS application/x-www-form-urlencoded: \n\r in name (formdata event)
PASS application/x-www-form-urlencoded: \n in value (normal form)
-FAIL application/x-www-form-urlencoded: \n in value (formdata event) assert_equals: expected "a=b%0D%0Ac" but got ""
+PASS application/x-www-form-urlencoded: \n in value (formdata event)
PASS application/x-www-form-urlencoded: \r in value (normal form)
-FAIL application/x-www-form-urlencoded: \r in value (formdata event) assert_equals: expected "a=b%0D%0Ac" but got ""
+PASS application/x-www-form-urlencoded: \r in value (formdata event)
PASS application/x-www-form-urlencoded: \r\n in value (normal form)
-FAIL application/x-www-form-urlencoded: \r\n in value (formdata event) assert_equals: expected "a=b%0D%0Ac" but got ""
+PASS application/x-www-form-urlencoded: \r\n in value (formdata event)
PASS application/x-www-form-urlencoded: \n\r in value (normal form)
-FAIL application/x-www-form-urlencoded: \n\r in value (formdata event) assert_equals: expected "a=b%0D%0A%0D%0Ac" but got ""
+PASS application/x-www-form-urlencoded: \n\r in value (formdata event)
PASS application/x-www-form-urlencoded: \n in filename (normal form)
FAIL application/x-www-form-urlencoded: \n in filename (formdata event) assert_equals: expected "a=b%0D%0Ac" but got ""
PASS application/x-www-form-urlencoded: \r in filename (normal form)
@@ -34,29 +34,29 @@
PASS application/x-www-form-urlencoded: \n\r in filename (normal form)
FAIL application/x-www-form-urlencoded: \n\r in filename (formdata event) assert_equals: expected "a=b%0D%0A%0D%0Ac" but got ""
PASS application/x-www-form-urlencoded: double quote in name (normal form)
-FAIL application/x-www-form-urlencoded: double quote in name (formdata event) assert_equals: expected "a%22b=c" but got ""
+PASS application/x-www-form-urlencoded: double quote in name (formdata event)
PASS application/x-www-form-urlencoded: double quote in value (normal form)
-FAIL application/x-www-form-urlencoded: double quote in value (formdata event) assert_equals: expected "a=b%22c" but got ""
+PASS application/x-www-form-urlencoded: double quote in value (formdata event)
PASS application/x-www-form-urlencoded: double quote in filename (normal form)
FAIL application/x-www-form-urlencoded: double quote in filename (formdata event) assert_equals: expected "a=b%22c" but got ""
PASS application/x-www-form-urlencoded: single quote in name (normal form)
-FAIL application/x-www-form-urlencoded: single quote in name (formdata event) assert_equals: expected "a%27b=c" but got ""
+PASS application/x-www-form-urlencoded: single quote in name (formdata event)
PASS application/x-www-form-urlencoded: single quote in value (normal form)
-FAIL application/x-www-form-urlencoded: single quote in value (formdata event) assert_equals: expected "a=b%27c" but got ""
+PASS application/x-www-form-urlencoded: single quote in value (formdata event)
PASS application/x-www-form-urlencoded: single quote in filename (normal form)
FAIL application/x-www-form-urlencoded: single quote in filename (formdata event) assert_equals: expected "a=b%27c" but got ""
PASS application/x-www-form-urlencoded: backslash in name (normal form)
-FAIL application/x-www-form-urlencoded: backslash in name (formdata event) assert_equals: expected "a%5Cb=c" but got ""
+PASS application/x-www-form-urlencoded: backslash in name (formdata event)
PASS application/x-www-form-urlencoded: backslash in value (normal form)
-FAIL application/x-www-form-urlencoded: backslash in value (formdata event) assert_equals: expected "a=b%5Cc" but got ""
+PASS application/x-www-form-urlencoded: backslash in value (formdata event)
PASS application/x-www-form-urlencoded: backslash in filename (normal form)
FAIL application/x-www-form-urlencoded: backslash in filename (formdata event) assert_equals: expected "a=b%5Cc" but got ""
PASS application/x-www-form-urlencoded: non-ASCII in name and value (normal form)
-FAIL application/x-www-form-urlencoded: non-ASCII in name and value (formdata event) assert_equals: expected "%C3%A1b=%C3%A7" but got ""
+PASS application/x-www-form-urlencoded: non-ASCII in name and value (formdata event)
PASS application/x-www-form-urlencoded: non-ASCII in filename (normal form)
FAIL application/x-www-form-urlencoded: non-ASCII in filename (formdata event) assert_equals: expected "a=%C9%99.txt" but got ""
PASS application/x-www-form-urlencoded: characters not in encoding in name and value (normal form)
-FAIL application/x-www-form-urlencoded: characters not in encoding in name and value (formdata event) assert_equals: expected "a%26%23601%3Bb=c%26%2365533%3Bd" but got ""
+PASS application/x-www-form-urlencoded: characters not in encoding in name and value (formdata event)
PASS application/x-www-form-urlencoded: character not in encoding in filename (normal form)
FAIL application/x-www-form-urlencoded: character not in encoding in filename (formdata event) assert_equals: expected "%E1=%26%23128169%3B" but got ""
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/event-handler-all-global-events-expected.txt (280309 => 280310)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/event-handler-all-global-events-expected.txt 2021-07-26 19:39:57 UTC (rev 280309)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/event-handler-all-global-events-expected.txt 2021-07-26 20:15:49 UTC (rev 280310)
@@ -114,10 +114,10 @@
PASS onfocus: the content attribute must be compiled into a function as the corresponding property
PASS onfocus: the content attribute must execute when an event is dispatched
PASS onfocus: dispatching an Event at a <meta> element must trigger element.onfocus
-FAIL onformdata: must be on the appropriate locations for GlobalEventHandlers assert_true: Window has an own property named "onformdata" expected true got false
-FAIL onformdata: the default value must be null assert_equals: The default value of the property is null for a Window instance expected (object) null but got (undefined) undefined
-FAIL onformdata: the content attribute must be compiled into a function as the corresponding property assert_equals: The onformdata property must be a function expected "function" but got "undefined"
-FAIL onformdata: the content attribute must execute when an event is dispatched assert_true: Dispatching an event must run the code expected true got undefined
+PASS onformdata: must be on the appropriate locations for GlobalEventHandlers
+PASS onformdata: the default value must be null
+PASS onformdata: the content attribute must be compiled into a function as the corresponding property
+PASS onformdata: the content attribute must execute when an event is dispatched
PASS onformdata: dispatching an Event at a <meta> element must trigger element.onformdata
PASS oninput: must be on the appropriate locations for GlobalEventHandlers
PASS oninput: the default value must be null
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/event-handler-attributes-body-window-expected.txt (280309 => 280310)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/event-handler-attributes-body-window-expected.txt 2021-07-26 19:39:57 UTC (rev 280309)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/event-handler-attributes-body-window-expected.txt 2021-07-26 20:15:49 UTC (rev 280310)
@@ -42,7 +42,7 @@
PASS not shadowed durationchange (document.body)
PASS not shadowed emptied (document.body)
PASS not shadowed ended (document.body)
-FAIL not shadowed formdata (document.body) assert_equals: alternative body should reflect expected (object) null but got (undefined) undefined
+PASS not shadowed formdata (document.body)
PASS not shadowed input (document.body)
PASS not shadowed invalid (document.body)
PASS not shadowed keydown (document.body)
@@ -149,7 +149,7 @@
PASS not shadowed durationchange (document.createElement("body"))
PASS not shadowed emptied (document.createElement("body"))
PASS not shadowed ended (document.createElement("body"))
-FAIL not shadowed formdata (document.createElement("body")) assert_equals: body should reflect expected (object) null but got (undefined) undefined
+PASS not shadowed formdata (document.createElement("body"))
PASS not shadowed input (document.createElement("body"))
PASS not shadowed invalid (document.createElement("body"))
PASS not shadowed keydown (document.createElement("body"))
@@ -256,7 +256,7 @@
PASS not shadowed durationchange (window)
PASS not shadowed emptied (window)
PASS not shadowed ended (window)
-FAIL not shadowed formdata (window) assert_equals: body should reflect expected (object) null but got (undefined) undefined
+PASS not shadowed formdata (window)
PASS not shadowed input (window)
PASS not shadowed invalid (window)
PASS not shadowed keydown (window)
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/event-handler-attributes-windowless-body-expected.txt (280309 => 280310)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/event-handler-attributes-windowless-body-expected.txt 2021-07-26 19:39:57 UTC (rev 280309)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/event-handler-attributes-windowless-body-expected.txt 2021-07-26 20:15:49 UTC (rev 280310)
@@ -64,7 +64,7 @@
PASS durationchange is unaffected on a windowless body
PASS emptied is unaffected on a windowless body
PASS ended is unaffected on a windowless body
-FAIL formdata is unaffected on a windowless body assert_equals: expected (object) null but got (undefined) undefined
+PASS formdata is unaffected on a windowless body
PASS input is unaffected on a windowless body
PASS invalid is unaffected on a windowless body
PASS keydown is unaffected on a windowless body
@@ -171,7 +171,7 @@
PASS durationchange is unaffected on a windowless frameset
PASS emptied is unaffected on a windowless frameset
PASS ended is unaffected on a windowless frameset
-FAIL formdata is unaffected on a windowless frameset assert_equals: expected (object) null but got (undefined) undefined
+PASS formdata is unaffected on a windowless frameset
PASS input is unaffected on a windowless frameset
PASS invalid is unaffected on a windowless frameset
PASS keydown is unaffected on a windowless frameset
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/xhr/formdata-expected.txt (280309 => 280310)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/xhr/formdata-expected.txt 2021-07-26 19:39:57 UTC (rev 280309)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/xhr/formdata-expected.txt 2021-07-26 20:15:49 UTC (rev 280310)
@@ -7,6 +7,6 @@
PASS formdata with string
PASS formdata with named string
PASS formdata from form
-FAIL Newly created FormData contains entries added to "formData" IDL attribute of FormDataEvent. assert_equals: expected (string) "vh1" but got (object) null
-FAIL |new FormData()| in formdata event handler should throw assert_equals: expected 1 but got 0
+PASS Newly created FormData contains entries added to "formData" IDL attribute of FormDataEvent.
+PASS |new FormData()| in formdata event handler should throw
Modified: trunk/LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt (280309 => 280310)
--- trunk/LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt 2021-07-26 19:39:57 UTC (rev 280309)
+++ trunk/LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt 2021-07-26 20:15:49 UTC (rev 280310)
@@ -284,7 +284,7 @@
PASS HTMLElement interface: attribute onended
PASS HTMLElement interface: attribute onerror
PASS HTMLElement interface: attribute onfocus
-FAIL HTMLElement interface: attribute onformdata assert_true: The prototype object must have a property "onformdata" expected true got false
+PASS HTMLElement interface: attribute onformdata
PASS HTMLElement interface: attribute oninput
PASS HTMLElement interface: attribute oninvalid
PASS HTMLElement interface: attribute onkeydown
@@ -379,7 +379,7 @@
PASS HTMLElement interface: document.createElement("noscript") must inherit property "onended" with the proper type
PASS HTMLElement interface: document.createElement("noscript") must inherit property "onerror" with the proper type
PASS HTMLElement interface: document.createElement("noscript") must inherit property "onfocus" with the proper type
-FAIL HTMLElement interface: document.createElement("noscript") must inherit property "onformdata" with the proper type assert_inherits: property "onformdata" not found in prototype chain
+PASS HTMLElement interface: document.createElement("noscript") must inherit property "onformdata" with the proper type
PASS HTMLElement interface: document.createElement("noscript") must inherit property "oninput" with the proper type
PASS HTMLElement interface: document.createElement("noscript") must inherit property "oninvalid" with the proper type
PASS HTMLElement interface: document.createElement("noscript") must inherit property "onkeydown" with the proper type
@@ -3773,16 +3773,16 @@
PASS SubmitEvent interface: existence and properties of interface prototype object's "constructor" property
PASS SubmitEvent interface: existence and properties of interface prototype object's @@unscopables property
PASS SubmitEvent interface: attribute submitter
-FAIL FormDataEvent interface: existence and properties of interface object assert_own_property: self does not have own property "FormDataEvent" expected property "FormDataEvent" missing
-FAIL FormDataEvent interface object length assert_own_property: self does not have own property "FormDataEvent" expected property "FormDataEvent" missing
-FAIL FormDataEvent interface object name assert_own_property: self does not have own property "FormDataEvent" expected property "FormDataEvent" missing
-FAIL FormDataEvent interface: existence and properties of interface prototype object assert_own_property: self does not have own property "FormDataEvent" expected property "FormDataEvent" missing
-FAIL FormDataEvent interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "FormDataEvent" expected property "FormDataEvent" missing
-FAIL FormDataEvent interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "FormDataEvent" expected property "FormDataEvent" missing
-FAIL FormDataEvent interface: attribute formData assert_own_property: self does not have own property "FormDataEvent" expected property "FormDataEvent" missing
-FAIL FormDataEvent must be primary interface of new FormDataEvent("formdata", { formData: new FormData() }) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: FormDataEvent"
-FAIL Stringification of new FormDataEvent("formdata", { formData: new FormData() }) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: FormDataEvent"
-FAIL FormDataEvent interface: new FormDataEvent("formdata", { formData: new FormData() }) must inherit property "formData" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: FormDataEvent"
+PASS FormDataEvent interface: existence and properties of interface object
+PASS FormDataEvent interface object length
+PASS FormDataEvent interface object name
+PASS FormDataEvent interface: existence and properties of interface prototype object
+PASS FormDataEvent interface: existence and properties of interface prototype object's "constructor" property
+PASS FormDataEvent interface: existence and properties of interface prototype object's @@unscopables property
+PASS FormDataEvent interface: attribute formData
+PASS FormDataEvent must be primary interface of new FormDataEvent("formdata", { formData: new FormData() })
+PASS Stringification of new FormDataEvent("formdata", { formData: new FormData() })
+PASS FormDataEvent interface: new FormDataEvent("formdata", { formData: new FormData() }) must inherit property "formData" with the proper type
PASS HTMLDetailsElement interface: existence and properties of interface object
PASS HTMLDetailsElement interface object length
PASS HTMLDetailsElement interface object name
@@ -4414,7 +4414,7 @@
PASS Window interface: attribute onended
PASS Window interface: attribute onerror
PASS Window interface: attribute onfocus
-FAIL Window interface: attribute onformdata assert_own_property: The global object must have a property "onformdata" expected property "onformdata" missing
+PASS Window interface: attribute onformdata
PASS Window interface: attribute oninput
PASS Window interface: attribute oninvalid
PASS Window interface: attribute onkeydown
@@ -4564,7 +4564,7 @@
PASS Window interface: window must inherit property "onended" with the proper type
PASS Window interface: window must inherit property "onerror" with the proper type
PASS Window interface: window must inherit property "onfocus" with the proper type
-FAIL Window interface: window must inherit property "onformdata" with the proper type assert_own_property: expected property "onformdata" missing
+PASS Window interface: window must inherit property "onformdata" with the proper type
PASS Window interface: window must inherit property "oninput" with the proper type
PASS Window interface: window must inherit property "oninvalid" with the proper type
PASS Window interface: window must inherit property "onkeydown" with the proper type
@@ -5279,7 +5279,7 @@
PASS SVGElement interface: attribute onended
PASS SVGElement interface: attribute onerror
PASS SVGElement interface: attribute onfocus
-FAIL SVGElement interface: attribute onformdata assert_true: The prototype object must have a property "onformdata" expected true got false
+PASS SVGElement interface: attribute onformdata
PASS SVGElement interface: attribute oninput
PASS SVGElement interface: attribute oninvalid
PASS SVGElement interface: attribute onkeydown
@@ -5413,7 +5413,7 @@
PASS Document interface: attribute onended
PASS Document interface: attribute onerror
PASS Document interface: attribute onfocus
-FAIL Document interface: attribute onformdata assert_true: The prototype object must have a property "onformdata" expected true got false
+PASS Document interface: attribute onformdata
PASS Document interface: attribute oninput
PASS Document interface: attribute oninvalid
PASS Document interface: attribute onkeydown
@@ -5538,7 +5538,7 @@
PASS Document interface: iframe.contentDocument must inherit property "onended" with the proper type
PASS Document interface: iframe.contentDocument must inherit property "onerror" with the proper type
PASS Document interface: iframe.contentDocument must inherit property "onfocus" with the proper type
-FAIL Document interface: iframe.contentDocument must inherit property "onformdata" with the proper type assert_inherits: property "onformdata" not found in prototype chain
+PASS Document interface: iframe.contentDocument must inherit property "onformdata" with the proper type
PASS Document interface: iframe.contentDocument must inherit property "oninput" with the proper type
PASS Document interface: iframe.contentDocument must inherit property "oninvalid" with the proper type
PASS Document interface: iframe.contentDocument must inherit property "onkeydown" with the proper type
@@ -5663,7 +5663,7 @@
PASS Document interface: new Document() must inherit property "onended" with the proper type
PASS Document interface: new Document() must inherit property "onerror" with the proper type
PASS Document interface: new Document() must inherit property "onfocus" with the proper type
-FAIL Document interface: new Document() must inherit property "onformdata" with the proper type assert_inherits: property "onformdata" not found in prototype chain
+PASS Document interface: new Document() must inherit property "onformdata" with the proper type
PASS Document interface: new Document() must inherit property "oninput" with the proper type
PASS Document interface: new Document() must inherit property "oninvalid" with the proper type
PASS Document interface: new Document() must inherit property "onkeydown" with the proper type
@@ -5788,7 +5788,7 @@
PASS Document interface: documentWithHandlers must inherit property "onended" with the proper type
PASS Document interface: documentWithHandlers must inherit property "onerror" with the proper type
PASS Document interface: documentWithHandlers must inherit property "onfocus" with the proper type
-FAIL Document interface: documentWithHandlers must inherit property "onformdata" with the proper type assert_inherits: property "onformdata" found on object expected in prototype chain
+PASS Document interface: documentWithHandlers must inherit property "onformdata" with the proper type
PASS Document interface: documentWithHandlers must inherit property "oninput" with the proper type
PASS Document interface: documentWithHandlers must inherit property "oninvalid" with the proper type
PASS Document interface: documentWithHandlers must inherit property "onkeydown" with the proper type
Modified: trunk/LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/mathml/relations/html5-tree/math-global-event-handlers.tentative-expected.txt (280309 => 280310)
--- trunk/LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/mathml/relations/html5-tree/math-global-event-handlers.tentative-expected.txt 2021-07-26 19:39:57 UTC (rev 280309)
+++ trunk/LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/mathml/relations/html5-tree/math-global-event-handlers.tentative-expected.txt 2021-07-26 20:15:49 UTC (rev 280310)
@@ -114,11 +114,11 @@
PASS onfocus: the content attribute must be compiled into a function as the corresponding property
PASS onfocus: dynamic changes on the attribute
PASS onfocus: dispatching an Event at a <math> element must trigger element.onfocus
-FAIL onformdata: must be on the appropriate locations for GlobalEventHandlers assert_true: MathMLElement has an own property named "onformdata" expected true got false
-FAIL onformdata: the default value must be null assert_equals: The default value of the property is null for a MathMLMathElement instance expected (object) null but got (undefined) undefined
-FAIL onformdata: the content attribute must be compiled into a function as the corresponding property assert_equals: The onformdata property must be a function expected "function" but got "undefined"
-FAIL onformdata: dynamic changes on the attribute assert_equals: The onformdata property must be null (no attribute) expected (object) null but got (undefined) undefined
-FAIL onformdata: dispatching an Event at a <math> element must trigger element.onformdata assert_equals: The event must be fired at the <math> element expected (object) Element node <math></math> but got (undefined) undefined
+PASS onformdata: must be on the appropriate locations for GlobalEventHandlers
+PASS onformdata: the default value must be null
+PASS onformdata: the content attribute must be compiled into a function as the corresponding property
+PASS onformdata: dynamic changes on the attribute
+PASS onformdata: dispatching an Event at a <math> element must trigger element.onformdata
PASS oninput: must be on the appropriate locations for GlobalEventHandlers
PASS oninput: the default value must be null
PASS oninput: the content attribute must be compiled into a function as the corresponding property
Modified: trunk/LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt (280309 => 280310)
--- trunk/LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt 2021-07-26 19:39:57 UTC (rev 280309)
+++ trunk/LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt 2021-07-26 20:15:49 UTC (rev 280310)
@@ -284,7 +284,7 @@
PASS HTMLElement interface: attribute onended
PASS HTMLElement interface: attribute onerror
PASS HTMLElement interface: attribute onfocus
-FAIL HTMLElement interface: attribute onformdata assert_true: The prototype object must have a property "onformdata" expected true got false
+PASS HTMLElement interface: attribute onformdata
PASS HTMLElement interface: attribute oninput
PASS HTMLElement interface: attribute oninvalid
PASS HTMLElement interface: attribute onkeydown
@@ -379,7 +379,7 @@
PASS HTMLElement interface: document.createElement("noscript") must inherit property "onended" with the proper type
PASS HTMLElement interface: document.createElement("noscript") must inherit property "onerror" with the proper type
PASS HTMLElement interface: document.createElement("noscript") must inherit property "onfocus" with the proper type
-FAIL HTMLElement interface: document.createElement("noscript") must inherit property "onformdata" with the proper type assert_inherits: property "onformdata" not found in prototype chain
+PASS HTMLElement interface: document.createElement("noscript") must inherit property "onformdata" with the proper type
PASS HTMLElement interface: document.createElement("noscript") must inherit property "oninput" with the proper type
PASS HTMLElement interface: document.createElement("noscript") must inherit property "oninvalid" with the proper type
PASS HTMLElement interface: document.createElement("noscript") must inherit property "onkeydown" with the proper type
@@ -3783,16 +3783,16 @@
PASS SubmitEvent interface: existence and properties of interface prototype object's "constructor" property
PASS SubmitEvent interface: existence and properties of interface prototype object's @@unscopables property
PASS SubmitEvent interface: attribute submitter
-FAIL FormDataEvent interface: existence and properties of interface object assert_own_property: self does not have own property "FormDataEvent" expected property "FormDataEvent" missing
-FAIL FormDataEvent interface object length assert_own_property: self does not have own property "FormDataEvent" expected property "FormDataEvent" missing
-FAIL FormDataEvent interface object name assert_own_property: self does not have own property "FormDataEvent" expected property "FormDataEvent" missing
-FAIL FormDataEvent interface: existence and properties of interface prototype object assert_own_property: self does not have own property "FormDataEvent" expected property "FormDataEvent" missing
-FAIL FormDataEvent interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "FormDataEvent" expected property "FormDataEvent" missing
-FAIL FormDataEvent interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "FormDataEvent" expected property "FormDataEvent" missing
-FAIL FormDataEvent interface: attribute formData assert_own_property: self does not have own property "FormDataEvent" expected property "FormDataEvent" missing
-FAIL FormDataEvent must be primary interface of new FormDataEvent("formdata", { formData: new FormData() }) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: FormDataEvent"
-FAIL Stringification of new FormDataEvent("formdata", { formData: new FormData() }) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: FormDataEvent"
-FAIL FormDataEvent interface: new FormDataEvent("formdata", { formData: new FormData() }) must inherit property "formData" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: FormDataEvent"
+PASS FormDataEvent interface: existence and properties of interface object
+PASS FormDataEvent interface object length
+PASS FormDataEvent interface object name
+PASS FormDataEvent interface: existence and properties of interface prototype object
+PASS FormDataEvent interface: existence and properties of interface prototype object's "constructor" property
+PASS FormDataEvent interface: existence and properties of interface prototype object's @@unscopables property
+PASS FormDataEvent interface: attribute formData
+PASS FormDataEvent must be primary interface of new FormDataEvent("formdata", { formData: new FormData() })
+PASS Stringification of new FormDataEvent("formdata", { formData: new FormData() })
+PASS FormDataEvent interface: new FormDataEvent("formdata", { formData: new FormData() }) must inherit property "formData" with the proper type
PASS HTMLDetailsElement interface: existence and properties of interface object
PASS HTMLDetailsElement interface object length
PASS HTMLDetailsElement interface object name
@@ -4424,7 +4424,7 @@
PASS Window interface: attribute onended
PASS Window interface: attribute onerror
PASS Window interface: attribute onfocus
-FAIL Window interface: attribute onformdata assert_own_property: The global object must have a property "onformdata" expected property "onformdata" missing
+PASS Window interface: attribute onformdata
PASS Window interface: attribute oninput
PASS Window interface: attribute oninvalid
PASS Window interface: attribute onkeydown
@@ -4574,7 +4574,7 @@
PASS Window interface: window must inherit property "onended" with the proper type
PASS Window interface: window must inherit property "onerror" with the proper type
PASS Window interface: window must inherit property "onfocus" with the proper type
-FAIL Window interface: window must inherit property "onformdata" with the proper type assert_own_property: expected property "onformdata" missing
+PASS Window interface: window must inherit property "onformdata" with the proper type
PASS Window interface: window must inherit property "oninput" with the proper type
PASS Window interface: window must inherit property "oninvalid" with the proper type
PASS Window interface: window must inherit property "onkeydown" with the proper type
@@ -5289,7 +5289,7 @@
PASS SVGElement interface: attribute onended
PASS SVGElement interface: attribute onerror
PASS SVGElement interface: attribute onfocus
-FAIL SVGElement interface: attribute onformdata assert_true: The prototype object must have a property "onformdata" expected true got false
+PASS SVGElement interface: attribute onformdata
PASS SVGElement interface: attribute oninput
PASS SVGElement interface: attribute oninvalid
PASS SVGElement interface: attribute onkeydown
@@ -5423,7 +5423,7 @@
PASS Document interface: attribute onended
PASS Document interface: attribute onerror
PASS Document interface: attribute onfocus
-FAIL Document interface: attribute onformdata assert_true: The prototype object must have a property "onformdata" expected true got false
+PASS Document interface: attribute onformdata
PASS Document interface: attribute oninput
PASS Document interface: attribute oninvalid
PASS Document interface: attribute onkeydown
@@ -5548,7 +5548,7 @@
PASS Document interface: iframe.contentDocument must inherit property "onended" with the proper type
PASS Document interface: iframe.contentDocument must inherit property "onerror" with the proper type
PASS Document interface: iframe.contentDocument must inherit property "onfocus" with the proper type
-FAIL Document interface: iframe.contentDocument must inherit property "onformdata" with the proper type assert_inherits: property "onformdata" not found in prototype chain
+PASS Document interface: iframe.contentDocument must inherit property "onformdata" with the proper type
PASS Document interface: iframe.contentDocument must inherit property "oninput" with the proper type
PASS Document interface: iframe.contentDocument must inherit property "oninvalid" with the proper type
PASS Document interface: iframe.contentDocument must inherit property "onkeydown" with the proper type
@@ -5673,7 +5673,7 @@
PASS Document interface: new Document() must inherit property "onended" with the proper type
PASS Document interface: new Document() must inherit property "onerror" with the proper type
PASS Document interface: new Document() must inherit property "onfocus" with the proper type
-FAIL Document interface: new Document() must inherit property "onformdata" with the proper type assert_inherits: property "onformdata" not found in prototype chain
+PASS Document interface: new Document() must inherit property "onformdata" with the proper type
PASS Document interface: new Document() must inherit property "oninput" with the proper type
PASS Document interface: new Document() must inherit property "oninvalid" with the proper type
PASS Document interface: new Document() must inherit property "onkeydown" with the proper type
@@ -5798,7 +5798,7 @@
PASS Document interface: documentWithHandlers must inherit property "onended" with the proper type
PASS Document interface: documentWithHandlers must inherit property "onerror" with the proper type
PASS Document interface: documentWithHandlers must inherit property "onfocus" with the proper type
-FAIL Document interface: documentWithHandlers must inherit property "onformdata" with the proper type assert_inherits: property "onformdata" found on object expected in prototype chain
+PASS Document interface: documentWithHandlers must inherit property "onformdata" with the proper type
PASS Document interface: documentWithHandlers must inherit property "oninput" with the proper type
PASS Document interface: documentWithHandlers must inherit property "oninvalid" with the proper type
PASS Document interface: documentWithHandlers must inherit property "onkeydown" with the proper type
Modified: trunk/LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/mathml/relations/html5-tree/math-global-event-handlers.tentative-expected.txt (280309 => 280310)
--- trunk/LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/mathml/relations/html5-tree/math-global-event-handlers.tentative-expected.txt 2021-07-26 19:39:57 UTC (rev 280309)
+++ trunk/LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/mathml/relations/html5-tree/math-global-event-handlers.tentative-expected.txt 2021-07-26 20:15:49 UTC (rev 280310)
@@ -114,11 +114,11 @@
PASS onfocus: the content attribute must be compiled into a function as the corresponding property
PASS onfocus: dynamic changes on the attribute
PASS onfocus: dispatching an Event at a <math> element must trigger element.onfocus
-FAIL onformdata: must be on the appropriate locations for GlobalEventHandlers assert_true: MathMLElement has an own property named "onformdata" expected true got false
-FAIL onformdata: the default value must be null assert_equals: The default value of the property is null for a MathMLMathElement instance expected (object) null but got (undefined) undefined
-FAIL onformdata: the content attribute must be compiled into a function as the corresponding property assert_equals: The onformdata property must be a function expected "function" but got "undefined"
-FAIL onformdata: dynamic changes on the attribute assert_equals: The onformdata property must be null (no attribute) expected (object) null but got (undefined) undefined
-FAIL onformdata: dispatching an Event at a <math> element must trigger element.onformdata assert_equals: The event must be fired at the <math> element expected (object) Element node <math></math> but got (undefined) undefined
+PASS onformdata: must be on the appropriate locations for GlobalEventHandlers
+PASS onformdata: the default value must be null
+PASS onformdata: the content attribute must be compiled into a function as the corresponding property
+PASS onformdata: dynamic changes on the attribute
+PASS onformdata: dispatching an Event at a <math> element must trigger element.onformdata
PASS oninput: must be on the appropriate locations for GlobalEventHandlers
PASS oninput: the default value must be null
PASS oninput: the content attribute must be compiled into a function as the corresponding property
Modified: trunk/LayoutTests/platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt (280309 => 280310)
--- trunk/LayoutTests/platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt 2021-07-26 19:39:57 UTC (rev 280309)
+++ trunk/LayoutTests/platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt 2021-07-26 20:15:49 UTC (rev 280310)
@@ -284,7 +284,7 @@
PASS HTMLElement interface: attribute onended
PASS HTMLElement interface: attribute onerror
PASS HTMLElement interface: attribute onfocus
-FAIL HTMLElement interface: attribute onformdata assert_true: The prototype object must have a property "onformdata" expected true got false
+PASS HTMLElement interface: attribute onformdata
PASS HTMLElement interface: attribute oninput
PASS HTMLElement interface: attribute oninvalid
PASS HTMLElement interface: attribute onkeydown
@@ -379,7 +379,7 @@
PASS HTMLElement interface: document.createElement("noscript") must inherit property "onended" with the proper type
PASS HTMLElement interface: document.createElement("noscript") must inherit property "onerror" with the proper type
PASS HTMLElement interface: document.createElement("noscript") must inherit property "onfocus" with the proper type
-FAIL HTMLElement interface: document.createElement("noscript") must inherit property "onformdata" with the proper type assert_inherits: property "onformdata" not found in prototype chain
+PASS HTMLElement interface: document.createElement("noscript") must inherit property "onformdata" with the proper type
PASS HTMLElement interface: document.createElement("noscript") must inherit property "oninput" with the proper type
PASS HTMLElement interface: document.createElement("noscript") must inherit property "oninvalid" with the proper type
PASS HTMLElement interface: document.createElement("noscript") must inherit property "onkeydown" with the proper type
@@ -3783,16 +3783,16 @@
PASS SubmitEvent interface: existence and properties of interface prototype object's "constructor" property
PASS SubmitEvent interface: existence and properties of interface prototype object's @@unscopables property
PASS SubmitEvent interface: attribute submitter
-FAIL FormDataEvent interface: existence and properties of interface object assert_own_property: self does not have own property "FormDataEvent" expected property "FormDataEvent" missing
-FAIL FormDataEvent interface object length assert_own_property: self does not have own property "FormDataEvent" expected property "FormDataEvent" missing
-FAIL FormDataEvent interface object name assert_own_property: self does not have own property "FormDataEvent" expected property "FormDataEvent" missing
-FAIL FormDataEvent interface: existence and properties of interface prototype object assert_own_property: self does not have own property "FormDataEvent" expected property "FormDataEvent" missing
-FAIL FormDataEvent interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "FormDataEvent" expected property "FormDataEvent" missing
-FAIL FormDataEvent interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "FormDataEvent" expected property "FormDataEvent" missing
-FAIL FormDataEvent interface: attribute formData assert_own_property: self does not have own property "FormDataEvent" expected property "FormDataEvent" missing
-FAIL FormDataEvent must be primary interface of new FormDataEvent("formdata", { formData: new FormData() }) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: FormDataEvent"
-FAIL Stringification of new FormDataEvent("formdata", { formData: new FormData() }) assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: FormDataEvent"
-FAIL FormDataEvent interface: new FormDataEvent("formdata", { formData: new FormData() }) must inherit property "formData" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: FormDataEvent"
+PASS FormDataEvent interface: existence and properties of interface object
+PASS FormDataEvent interface object length
+PASS FormDataEvent interface object name
+PASS FormDataEvent interface: existence and properties of interface prototype object
+PASS FormDataEvent interface: existence and properties of interface prototype object's "constructor" property
+PASS FormDataEvent interface: existence and properties of interface prototype object's @@unscopables property
+PASS FormDataEvent interface: attribute formData
+PASS FormDataEvent must be primary interface of new FormDataEvent("formdata", { formData: new FormData() })
+PASS Stringification of new FormDataEvent("formdata", { formData: new FormData() })
+PASS FormDataEvent interface: new FormDataEvent("formdata", { formData: new FormData() }) must inherit property "formData" with the proper type
PASS HTMLDetailsElement interface: existence and properties of interface object
PASS HTMLDetailsElement interface object length
PASS HTMLDetailsElement interface object name
@@ -4424,7 +4424,7 @@
PASS Window interface: attribute onended
PASS Window interface: attribute onerror
PASS Window interface: attribute onfocus
-FAIL Window interface: attribute onformdata assert_own_property: The global object must have a property "onformdata" expected property "onformdata" missing
+PASS Window interface: attribute onformdata
PASS Window interface: attribute oninput
PASS Window interface: attribute oninvalid
PASS Window interface: attribute onkeydown
@@ -4574,7 +4574,7 @@
PASS Window interface: window must inherit property "onended" with the proper type
PASS Window interface: window must inherit property "onerror" with the proper type
PASS Window interface: window must inherit property "onfocus" with the proper type
-FAIL Window interface: window must inherit property "onformdata" with the proper type assert_own_property: expected property "onformdata" missing
+PASS Window interface: window must inherit property "onformdata" with the proper type
PASS Window interface: window must inherit property "oninput" with the proper type
PASS Window interface: window must inherit property "oninvalid" with the proper type
PASS Window interface: window must inherit property "onkeydown" with the proper type
@@ -5289,7 +5289,7 @@
PASS SVGElement interface: attribute onended
PASS SVGElement interface: attribute onerror
PASS SVGElement interface: attribute onfocus
-FAIL SVGElement interface: attribute onformdata assert_true: The prototype object must have a property "onformdata" expected true got false
+PASS SVGElement interface: attribute onformdata
PASS SVGElement interface: attribute oninput
PASS SVGElement interface: attribute oninvalid
PASS SVGElement interface: attribute onkeydown
@@ -5423,7 +5423,7 @@
PASS Document interface: attribute onended
PASS Document interface: attribute onerror
PASS Document interface: attribute onfocus
-FAIL Document interface: attribute onformdata assert_true: The prototype object must have a property "onformdata" expected true got false
+PASS Document interface: attribute onformdata
PASS Document interface: attribute oninput
PASS Document interface: attribute oninvalid
PASS Document interface: attribute onkeydown
@@ -5548,7 +5548,7 @@
PASS Document interface: iframe.contentDocument must inherit property "onended" with the proper type
PASS Document interface: iframe.contentDocument must inherit property "onerror" with the proper type
PASS Document interface: iframe.contentDocument must inherit property "onfocus" with the proper type
-FAIL Document interface: iframe.contentDocument must inherit property "onformdata" with the proper type assert_inherits: property "onformdata" not found in prototype chain
+PASS Document interface: iframe.contentDocument must inherit property "onformdata" with the proper type
PASS Document interface: iframe.contentDocument must inherit property "oninput" with the proper type
PASS Document interface: iframe.contentDocument must inherit property "oninvalid" with the proper type
PASS Document interface: iframe.contentDocument must inherit property "onkeydown" with the proper type
@@ -5673,7 +5673,7 @@
PASS Document interface: new Document() must inherit property "onended" with the proper type
PASS Document interface: new Document() must inherit property "onerror" with the proper type
PASS Document interface: new Document() must inherit property "onfocus" with the proper type
-FAIL Document interface: new Document() must inherit property "onformdata" with the proper type assert_inherits: property "onformdata" not found in prototype chain
+PASS Document interface: new Document() must inherit property "onformdata" with the proper type
PASS Document interface: new Document() must inherit property "oninput" with the proper type
PASS Document interface: new Document() must inherit property "oninvalid" with the proper type
PASS Document interface: new Document() must inherit property "onkeydown" with the proper type
@@ -5798,7 +5798,7 @@
PASS Document interface: documentWithHandlers must inherit property "onended" with the proper type
PASS Document interface: documentWithHandlers must inherit property "onerror" with the proper type
PASS Document interface: documentWithHandlers must inherit property "onfocus" with the proper type
-FAIL Document interface: documentWithHandlers must inherit property "onformdata" with the proper type assert_inherits: property "onformdata" found on object expected in prototype chain
+PASS Document interface: documentWithHandlers must inherit property "onformdata" with the proper type
PASS Document interface: documentWithHandlers must inherit property "oninput" with the proper type
PASS Document interface: documentWithHandlers must inherit property "oninvalid" with the proper type
PASS Document interface: documentWithHandlers must inherit property "onkeydown" with the proper type
Modified: trunk/LayoutTests/platform/mac-wk2/imported/w3c/web-platform-tests/mathml/relations/html5-tree/math-global-event-handlers.tentative-expected.txt (280309 => 280310)
--- trunk/LayoutTests/platform/mac-wk2/imported/w3c/web-platform-tests/mathml/relations/html5-tree/math-global-event-handlers.tentative-expected.txt 2021-07-26 19:39:57 UTC (rev 280309)
+++ trunk/LayoutTests/platform/mac-wk2/imported/w3c/web-platform-tests/mathml/relations/html5-tree/math-global-event-handlers.tentative-expected.txt 2021-07-26 20:15:49 UTC (rev 280310)
@@ -114,11 +114,11 @@
PASS onfocus: the content attribute must be compiled into a function as the corresponding property
PASS onfocus: dynamic changes on the attribute
PASS onfocus: dispatching an Event at a <math> element must trigger element.onfocus
-FAIL onformdata: must be on the appropriate locations for GlobalEventHandlers assert_true: MathMLElement has an own property named "onformdata" expected true got false
-FAIL onformdata: the default value must be null assert_equals: The default value of the property is null for a MathMLMathElement instance expected (object) null but got (undefined) undefined
-FAIL onformdata: the content attribute must be compiled into a function as the corresponding property assert_equals: The onformdata property must be a function expected "function" but got "undefined"
-FAIL onformdata: dynamic changes on the attribute assert_equals: The onformdata property must be null (no attribute) expected (object) null but got (undefined) undefined
-FAIL onformdata: dispatching an Event at a <math> element must trigger element.onformdata assert_equals: The event must be fired at the <math> element expected (object) Element node <math></math> but got (undefined) undefined
+PASS onformdata: must be on the appropriate locations for GlobalEventHandlers
+PASS onformdata: the default value must be null
+PASS onformdata: the content attribute must be compiled into a function as the corresponding property
+PASS onformdata: dynamic changes on the attribute
+PASS onformdata: dispatching an Event at a <math> element must trigger element.onformdata
PASS oninput: must be on the appropriate locations for GlobalEventHandlers
PASS oninput: the default value must be null
PASS oninput: the content attribute must be compiled into a function as the corresponding property
Modified: trunk/Source/WebCore/CMakeLists.txt (280309 => 280310)
--- trunk/Source/WebCore/CMakeLists.txt 2021-07-26 19:39:57 UTC (rev 280309)
+++ trunk/Source/WebCore/CMakeLists.txt 2021-07-26 20:15:49 UTC (rev 280310)
@@ -852,6 +852,7 @@
dom/EventTarget.idl
dom/FocusEvent.idl
dom/FocusOptions.idl
+ dom/FormDataEvent.idl
dom/GlobalEventHandlers+PointerEvents.idl
dom/GlobalEventHandlers+Selection.idl
dom/GlobalEventHandlers.idl
Modified: trunk/Source/WebCore/ChangeLog (280309 => 280310)
--- trunk/Source/WebCore/ChangeLog 2021-07-26 19:39:57 UTC (rev 280309)
+++ trunk/Source/WebCore/ChangeLog 2021-07-26 20:15:49 UTC (rev 280310)
@@ -1,3 +1,46 @@
+2021-07-26 Johnson Zhou <[email protected]>
+
+ FormDataEvent added, and dispatched upon creation of DOMFormData or submission of HTMLFormElement.
+ https://bugs.webkit.org/show_bug.cgi?id=227718
+
+ Reviewed by Chris Dumez.
+
+ * CMakeLists.txt:
+ * DerivedSources-input.xcfilelist:
+ * DerivedSources-output.xcfilelist:
+ * DerivedSources.make:
+ * Sources.txt:
+ * WebCore.xcodeproj/project.pbxproj:
+ * dom/EventNames.h:
+ * dom/EventNames.in:
+ * dom/FormDataEvent.cpp: Added.
+ (WebCore::FormDataEvent::create):
+ (WebCore::FormDataEvent::FormDataEvent):
+ (WebCore::FormDataEvent::eventInterface const):
+ * dom/FormDataEvent.h: Added.
+ (WebCore::FormDataEvent::formData const):
+ * dom/FormDataEvent.idl: Added.
+ * dom/GlobalEventHandlers.idl:
+ * html/DOMFormData.cpp:
+ (WebCore::DOMFormData::DOMFormData):
+ (WebCore::DOMFormData::create):
+ (WebCore::DOMFormData::clone):
+ * html/DOMFormData.h:
+ (WebCore::DOMFormData::create): Deleted.
+ * html/HTMLAttributeNames.in:
+ * html/HTMLElement.cpp:
+ (WebCore::HTMLElement::createEventHandlerNameMap):
+ * html/HTMLFormElement.cpp:
+ (WebCore::HTMLFormElement::submitIfPossible):
+ (WebCore::HTMLFormElement::submit):
+ (WebCore::HTMLFormElement::constructEntryList):
+ * html/HTMLFormElement.h:
+ * loader/FormSubmission.cpp:
+ (WebCore::FormSubmission::create):
+ * loader/FormSubmission.h:
+ * platform/network/FormData.cpp:
+ (WebCore::FormData::appendNonMultiPartKeyValuePairItems):
+
2021-07-26 Jer Noble <[email protected]>
[Cocoa] Playback stalls on bilibili.com
Modified: trunk/Source/WebCore/DerivedSources-input.xcfilelist (280309 => 280310)
--- trunk/Source/WebCore/DerivedSources-input.xcfilelist 2021-07-26 19:39:57 UTC (rev 280309)
+++ trunk/Source/WebCore/DerivedSources-input.xcfilelist 2021-07-26 20:15:49 UTC (rev 280310)
@@ -872,6 +872,7 @@
$(PROJECT_DIR)/dom/EventTargetFactory.in
$(PROJECT_DIR)/dom/FocusEvent.idl
$(PROJECT_DIR)/dom/FocusOptions.idl
+$(PROJECT_DIR)/dom/FormDataEvent.idl
$(PROJECT_DIR)/dom/GlobalEventHandlers+PointerEvents.idl
$(PROJECT_DIR)/dom/GlobalEventHandlers+Selection.idl
$(PROJECT_DIR)/dom/GlobalEventHandlers.idl
Modified: trunk/Source/WebCore/DerivedSources-output.xcfilelist (280309 => 280310)
--- trunk/Source/WebCore/DerivedSources-output.xcfilelist 2021-07-26 19:39:57 UTC (rev 280309)
+++ trunk/Source/WebCore/DerivedSources-output.xcfilelist 2021-07-26 20:15:49 UTC (rev 280310)
@@ -849,6 +849,8 @@
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSFontFaceSet.h
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSFontFaceSource.cpp
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSFontFaceSource.h
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSFormDataEvent.cpp
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSFormDataEvent.h
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGCObservation.cpp
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGCObservation.h
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUBindGroupLayoutBinding.cpp
Modified: trunk/Source/WebCore/DerivedSources.make (280309 => 280310)
--- trunk/Source/WebCore/DerivedSources.make 2021-07-26 19:39:57 UTC (rev 280309)
+++ trunk/Source/WebCore/DerivedSources.make 2021-07-26 20:15:49 UTC (rev 280310)
@@ -733,6 +733,7 @@
$(WebCore)/dom/EventTarget.idl \
$(WebCore)/dom/FocusEvent.idl \
$(WebCore)/dom/FocusOptions.idl \
+ $(WebCore)/dom/FormDataEvent.idl \
$(WebCore)/dom/GlobalEventHandlers+PointerEvents.idl \
$(WebCore)/dom/GlobalEventHandlers+Selection.idl \
$(WebCore)/dom/GlobalEventHandlers.idl \
Modified: trunk/Source/WebCore/Sources.txt (280309 => 280310)
--- trunk/Source/WebCore/Sources.txt 2021-07-26 19:39:57 UTC (rev 280309)
+++ trunk/Source/WebCore/Sources.txt 2021-07-26 20:15:49 UTC (rev 280310)
@@ -950,6 +950,7 @@
dom/ExceptionData.cpp
dom/ExtensionStyleSheets.cpp
dom/FocusEvent.cpp
+dom/FormDataEvent.cpp
dom/FullscreenManager.cpp
dom/GCReachableRef.cpp
dom/HashChangeEvent.cpp
@@ -3070,6 +3071,7 @@
JSFocusOptions.cpp
JSFontFace.cpp
JSFontFaceSet.cpp
+JSFormDataEvent.cpp
JSGPUBindGroupLayoutBinding.cpp
JSGPUBindGroupLayoutDescriptor.cpp
JSGPUBlendDescriptor.cpp
Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (280309 => 280310)
--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2021-07-26 19:39:57 UTC (rev 280309)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2021-07-26 20:15:49 UTC (rev 280310)
@@ -7224,6 +7224,9 @@
29E4D8DF16B0940F00C84704 /* PlatformSpeechSynthesizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PlatformSpeechSynthesizer.h; sourceTree = "<group>"; };
29E4D8E016B0959800C84704 /* PlatformSpeechSynthesizerMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = PlatformSpeechSynthesizerMac.mm; sourceTree = "<group>"; };
29FAF4B5195AB08900A522DC /* TextUndoInsertionMarkupMac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextUndoInsertionMarkupMac.h; sourceTree = "<group>"; };
+ 2A66438E26A006AE00C147A1 /* FormDataEvent.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = FormDataEvent.idl; sourceTree = "<group>"; };
+ 2A66439026A006AF00C147A1 /* FormDataEvent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FormDataEvent.h; sourceTree = "<group>"; };
+ 2A66439126A006AF00C147A1 /* FormDataEvent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = FormDataEvent.cpp; sourceTree = "<group>"; };
2B42359F15250F6000DBBCD8 /* RenderSVGEllipse.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGEllipse.cpp; sourceTree = "<group>"; };
2B4235A015250F6000DBBCD8 /* RenderSVGEllipse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGEllipse.h; sourceTree = "<group>"; };
2BE8E2C612A589EC00FAD550 /* HTMLMetaCharsetParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTMLMetaCharsetParser.h; sourceTree = "<group>"; };
@@ -30757,6 +30760,9 @@
B6D9D27214EABF030090D75E /* FocusEvent.idl */,
AADEFE4325AF4FCB0040DD67 /* FocusOptions.h */,
AA2E0D0925AF5104007693BA /* FocusOptions.idl */,
+ 2A66439126A006AF00C147A1 /* FormDataEvent.cpp */,
+ 2A66439026A006AF00C147A1 /* FormDataEvent.h */,
+ 2A66438E26A006AE00C147A1 /* FormDataEvent.idl */,
A853123C11D0471B00D4D077 /* FragmentScriptingPermission.h */,
CD92F5172261038200F87BB3 /* FullscreenManager.cpp */,
CD92F5162261038200F87BB3 /* FullscreenManager.h */,
Modified: trunk/Source/WebCore/dom/EventNames.h (280309 => 280310)
--- trunk/Source/WebCore/dom/EventNames.h 2021-07-26 19:39:57 UTC (rev 280309)
+++ trunk/Source/WebCore/dom/EventNames.h 2021-07-26 20:15:49 UTC (rev 280310)
@@ -134,6 +134,7 @@
macro(focus) \
macro(focusin) \
macro(focusout) \
+ macro(formdata) \
macro(gamepadconnected) \
macro(gamepaddisconnected) \
macro(gesturechange) \
Modified: trunk/Source/WebCore/dom/EventNames.in (280309 => 280310)
--- trunk/Source/WebCore/dom/EventNames.in 2021-07-26 19:39:57 UTC (rev 280309)
+++ trunk/Source/WebCore/dom/EventNames.in 2021-07-26 20:15:49 UTC (rev 280310)
@@ -19,6 +19,7 @@
ErrorEvent
FetchEvent conditional=SERVICE_WORKER
FocusEvent
+FormDataEvent
HashChangeEvent
InputEvent
InputEvents interfaceName=InputEvent
Added: trunk/Source/WebCore/dom/FormDataEvent.cpp (0 => 280310)
--- trunk/Source/WebCore/dom/FormDataEvent.cpp (rev 0)
+++ trunk/Source/WebCore/dom/FormDataEvent.cpp 2021-07-26 20:15:49 UTC (rev 280310)
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2021 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "FormDataEvent.h"
+
+#include "DOMFormData.h"
+#include <wtf/IsoMallocInlines.h>
+
+namespace WebCore {
+
+WTF_MAKE_ISO_ALLOCATED_IMPL(FormDataEvent);
+
+Ref<FormDataEvent> FormDataEvent::create(const AtomString& eventType, Init&& init)
+{
+ return adoptRef(*new FormDataEvent(eventType, WTFMove(init)));
+}
+
+Ref<FormDataEvent> FormDataEvent::create(const AtomString& eventType, CanBubble canBubble, IsCancelable isCancelable, IsComposed isComposed, Ref<DOMFormData>&& formData)
+{
+ return adoptRef(*new FormDataEvent(eventType, canBubble, isCancelable, isComposed, WTFMove(formData)));
+}
+
+FormDataEvent::FormDataEvent(const AtomString& eventType, Init&& init)
+ : Event(eventType, init, IsTrusted::No)
+ , m_formData(init.formData.releaseNonNull())
+{
+}
+
+FormDataEvent::FormDataEvent(const AtomString& eventType, CanBubble canBubble, IsCancelable isCancelable, IsComposed isComposed, Ref<DOMFormData>&& formData)
+ : Event(eventType, canBubble, isCancelable, isComposed)
+ , m_formData(WTFMove(formData))
+{
+}
+
+EventInterface FormDataEvent::eventInterface() const
+{
+ return FormDataEventInterfaceType;
+}
+
+} // namespace WebCore
Added: trunk/Source/WebCore/dom/FormDataEvent.h (0 => 280310)
--- trunk/Source/WebCore/dom/FormDataEvent.h (rev 0)
+++ trunk/Source/WebCore/dom/FormDataEvent.h 2021-07-26 20:15:49 UTC (rev 280310)
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2021 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include "Event.h"
+#include "EventInit.h"
+
+namespace WebCore {
+
+class DOMFormData;
+
+class FormDataEvent : public Event {
+ WTF_MAKE_ISO_ALLOCATED(FormDataEvent);
+public:
+ struct Init : EventInit {
+ RefPtr<DOMFormData> formData;
+ };
+
+ static Ref<FormDataEvent> create(const AtomString&, Init&&);
+ static Ref<FormDataEvent> create(const AtomString&, CanBubble, IsCancelable, IsComposed, Ref<DOMFormData>&&);
+
+ DOMFormData& formData() const { return m_formData.get(); }
+
+private:
+ FormDataEvent(const AtomString&, Init&&);
+ FormDataEvent(const AtomString&, CanBubble, IsCancelable, IsComposed, Ref<DOMFormData>&&);
+ EventInterface eventInterface() const final;
+
+ Ref<DOMFormData> m_formData;
+};
+
+} // namespace WebCore
Added: trunk/Source/WebCore/dom/FormDataEvent.idl (0 => 280310)
--- trunk/Source/WebCore/dom/FormDataEvent.idl (rev 0)
+++ trunk/Source/WebCore/dom/FormDataEvent.idl 2021-07-26 20:15:49 UTC (rev 280310)
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2021 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+[
+ Exposed=Window
+] interface FormDataEvent : Event {
+ constructor(DOMString type, FormDataEventInit eventInitDict);
+
+ readonly attribute DOMFormData formData;
+};
+
+dictionary FormDataEventInit : EventInit {
+ required DOMFormData formData;
+};
Modified: trunk/Source/WebCore/dom/GlobalEventHandlers.idl (280309 => 280310)
--- trunk/Source/WebCore/dom/GlobalEventHandlers.idl 2021-07-26 19:39:57 UTC (rev 280309)
+++ trunk/Source/WebCore/dom/GlobalEventHandlers.idl 2021-07-26 20:15:49 UTC (rev 280310)
@@ -56,8 +56,7 @@
// FIXME: The spec 'onerror' should be of type 'OnErrorEventHandler'.
attribute EventHandler onerror;
attribute EventHandler onfocus;
- // FIXME: Implement 'onformdata'.
- // attribute EventHandler onformdata;
+ attribute EventHandler onformdata;
attribute EventHandler oninput;
attribute EventHandler oninvalid;
attribute EventHandler onkeydown;
Modified: trunk/Source/WebCore/html/DOMFormData.cpp (280309 => 280310)
--- trunk/Source/WebCore/html/DOMFormData.cpp 2021-07-26 19:39:57 UTC (rev 280309)
+++ trunk/Source/WebCore/html/DOMFormData.cpp 2021-07-26 20:15:49 UTC (rev 280310)
@@ -41,19 +41,33 @@
{
}
-DOMFormData::DOMFormData(HTMLFormElement* form)
- : m_encoding(UTF8Encoding())
+ExceptionOr<Ref<DOMFormData>> DOMFormData::create(HTMLFormElement* form)
{
+ auto domFormData = adoptRef(*new DOMFormData());
if (!form)
- return;
+ return domFormData;
+
+ auto result = form->constructEntryList(WTFMove(domFormData), nullptr, HTMLFormElement::IsMultipartForm::Yes);
+
+ if (!result)
+ return Exception { InvalidStateError, "Already constructing Form entry list."_s };
+
+ return result.releaseNonNull();
+}
- ASSERT(isMainThread());
- for (auto& element : form->copyAssociatedElementsVector()) {
- if (!element->asHTMLElement().isDisabledFormControl())
- element->appendFormData(*this, true);
- }
+Ref<DOMFormData> DOMFormData::create(const TextEncoding& encoding)
+{
+ return adoptRef(*new DOMFormData(encoding));
}
+Ref<DOMFormData> DOMFormData::clone()
+{
+ auto newFormData = adoptRef(*new DOMFormData(this->encoding()));
+ newFormData->m_items = m_items;
+
+ return newFormData;
+}
+
// https://xhr.spec.whatwg.org/#create-an-entry
auto DOMFormData::createFileEntry(const String& name, Blob& blob, const String& filename) -> Item
{
Modified: trunk/Source/WebCore/html/DOMFormData.h (280309 => 280310)
--- trunk/Source/WebCore/html/DOMFormData.h 2021-07-26 19:39:57 UTC (rev 280309)
+++ trunk/Source/WebCore/html/DOMFormData.h 2021-07-26 20:15:49 UTC (rev 280310)
@@ -30,7 +30,9 @@
#pragma once
+#include "ExceptionOr.h"
#include "File.h"
+#include "FormState.h"
#include "TextEncoding.h"
#include <wtf/RefCounted.h>
#include <wtf/Variant.h>
@@ -49,8 +51,8 @@
FormDataEntryValue data;
};
- static Ref<DOMFormData> create(HTMLFormElement* form) { return adoptRef(*new DOMFormData(form)); }
- static Ref<DOMFormData> create(const TextEncoding& encoding) { return adoptRef(*new DOMFormData(encoding)); }
+ static ExceptionOr<Ref<DOMFormData>> create(HTMLFormElement*);
+ static Ref<DOMFormData> create(const TextEncoding&);
const Vector<Item>& items() const { return m_items; }
const TextEncoding& encoding() const { return m_encoding; }
@@ -63,6 +65,7 @@
bool has(const String& name);
void set(const String& name, const String& value);
void set(const String& name, Blob&, const String& filename = { });
+ Ref<DOMFormData> clone();
class Iterator {
public:
@@ -76,8 +79,7 @@
Iterator createIterator() { return Iterator { *this }; }
private:
- explicit DOMFormData(const TextEncoding&);
- explicit DOMFormData(HTMLFormElement*);
+ explicit DOMFormData(const TextEncoding& = UTF8Encoding());
Item createFileEntry(const String& name, Blob&, const String& filename);
void set(const String& name, Item&&);
Modified: trunk/Source/WebCore/html/HTMLAttributeNames.in (280309 => 280310)
--- trunk/Source/WebCore/html/HTMLAttributeNames.in 2021-07-26 19:39:57 UTC (rev 280309)
+++ trunk/Source/WebCore/html/HTMLAttributeNames.in 2021-07-26 20:15:49 UTC (rev 280310)
@@ -244,6 +244,7 @@
onfocus
onfocusin
onfocusout
+onformdata
onhashchange
oninput
oninvalid
Modified: trunk/Source/WebCore/html/HTMLElement.cpp (280309 => 280310)
--- trunk/Source/WebCore/html/HTMLElement.cpp 2021-07-26 19:39:57 UTC (rev 280309)
+++ trunk/Source/WebCore/html/HTMLElement.cpp 2021-07-26 20:15:49 UTC (rev 280310)
@@ -289,6 +289,7 @@
&onfocusAttr.get(),
&onfocusinAttr.get(),
&onfocusoutAttr.get(),
+ &onformdataAttr.get(),
&ongesturechangeAttr.get(),
&ongestureendAttr.get(),
&ongesturestartAttr.get(),
Modified: trunk/Source/WebCore/html/HTMLFormElement.cpp (280309 => 280310)
--- trunk/Source/WebCore/html/HTMLFormElement.cpp 2021-07-26 19:39:57 UTC (rev 280309)
+++ trunk/Source/WebCore/html/HTMLFormElement.cpp 2021-07-26 20:15:49 UTC (rev 280310)
@@ -34,6 +34,7 @@
#include "EventNames.h"
#include "FormController.h"
#include "FormData.h"
+#include "FormDataEvent.h"
#include "Frame.h"
#include "FrameLoader.h"
#include "FrameLoaderClient.h"
@@ -258,6 +259,7 @@
void HTMLFormElement::submitIfPossible(Event* event, HTMLFormControlElement* submitter, FormSubmissionTrigger trigger)
{
+ // https://html.spec.whatwg.org/#form-submission-algorithm
if (!isConnected())
return;
@@ -960,4 +962,32 @@
return equalIgnoringASCIICase(attributeWithoutSynchronization(autocompleteAttr), "off") ? off : on;
}
+RefPtr<DOMFormData> HTMLFormElement::constructEntryList(Ref<DOMFormData>&& domFormData, StringPairVector* formValues, IsMultipartForm isMultipartForm)
+{
+ // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#constructing-form-data-set
+ ASSERT(isMainThread());
+
+ if (m_isConstructingEntryList)
+ return nullptr;
+
+ SetForScope<bool> isConstructingEntryListScope(m_isConstructingEntryList, true);
+
+ for (auto& control : this->copyAssociatedElementsVector()) {
+ auto& element = control->asHTMLElement();
+ if (!element.isDisabledFormControl())
+ control->appendFormData(domFormData.get(), isMultipartForm == IsMultipartForm::Yes);
+ if (formValues && is<HTMLInputElement>(element)) {
+ auto& input = downcast<HTMLInputElement>(element);
+ if (input.isTextField()) {
+ formValues->append({ input.name(), input.value() });
+ input.addSearchResult();
+ }
+ }
+ }
+
+ dispatchEvent(FormDataEvent::create(eventNames().formdataEvent, Event::CanBubble::Yes, Event::IsCancelable::No, Event::IsComposed::No, domFormData.copyRef()));
+
+ return domFormData->clone();
+}
+
} // namespace
Modified: trunk/Source/WebCore/html/HTMLFormElement.h (280309 => 280310)
--- trunk/Source/WebCore/html/HTMLFormElement.h 2021-07-26 19:39:57 UTC (rev 280309)
+++ trunk/Source/WebCore/html/HTMLFormElement.h 2021-07-26 20:15:49 UTC (rev 280310)
@@ -33,6 +33,7 @@
namespace WebCore {
+class DOMFormData;
class Event;
class FormAssociatedElement;
class HTMLFormControlElement;
@@ -123,7 +124,11 @@
StringPairVector textFieldValues() const;
static HTMLFormElement* findClosestFormAncestor(const Element&);
-
+
+ enum class IsMultipartForm : bool { No, Yes };
+
+ RefPtr<DOMFormData> constructEntryList(Ref<DOMFormData>&&, StringPairVector*, IsMultipartForm);
+
private:
HTMLFormElement(const QualifiedName&, Document&);
@@ -189,6 +194,7 @@
bool m_isInResetFunction { false };
bool m_wasDemoted { false };
+ bool m_isConstructingEntryList { false };
};
} // namespace WebCore
Modified: trunk/Source/WebCore/loader/FormSubmission.cpp (280309 => 280310)
--- trunk/Source/WebCore/loader/FormSubmission.cpp 2021-07-26 19:39:57 UTC (rev 280309)
+++ trunk/Source/WebCore/loader/FormSubmission.cpp 2021-07-26 20:15:49 UTC (rev 280310)
@@ -211,21 +211,9 @@
auto domFormData = DOMFormData::create(dataEncoding.encodingForFormSubmissionOrURLParsing());
StringPairVector formValues;
- bool containsPasswordData = false;
- for (auto& control : form.copyAssociatedElementsVector()) {
- auto& element = control->asHTMLElement();
- if (!element.isDisabledFormControl())
- control->appendFormData(domFormData, isMultiPartForm);
- if (is<HTMLInputElement>(element)) {
- auto& input = downcast<HTMLInputElement>(element);
- if (input.isTextField()) {
- formValues.append({ input.name(), input.value() });
- input.addSearchResult();
- }
- if (input.isPasswordField() && !input.value().isEmpty())
- containsPasswordData = true;
- }
- }
+ auto result = form.constructEntryList(WTFMove(domFormData), &formValues, isMultiPartForm ? HTMLFormElement::IsMultipartForm::Yes : HTMLFormElement::IsMultipartForm::No);
+ RELEASE_ASSERT(result);
+ domFormData = result.releaseNonNull();
RefPtr<FormData> formData;
String boundary;
@@ -243,7 +231,6 @@
}
formData->setIdentifier(generateFormDataIdentifier());
- formData->setContainsPasswordData(containsPasswordData);
auto formState = FormState::create(form, WTFMove(formValues), document, trigger);
Modified: trunk/Source/WebCore/platform/network/FormData.cpp (280309 => 280310)
--- trunk/Source/WebCore/platform/network/FormData.cpp 2021-07-26 19:39:57 UTC (rev 280309)
+++ trunk/Source/WebCore/platform/network/FormData.cpp 2021-07-26 20:15:49 UTC (rev 280310)
@@ -47,7 +47,6 @@
, m_elements(data.m_elements)
, m_identifier(data.m_identifier)
, m_alwaysStream(false)
- , m_containsPasswordData(data.m_containsPasswordData)
{
}
@@ -274,6 +273,11 @@
Vector<char> encodedData;
for (auto& item : formData.items()) {
+ // FIXME: The expected behavior is to convert files to string for enctype "text/plain". Conversion may be added at "void DOMFormData::set(const String& name, Blob& blob, const String& filename)" or here.
+ // FIXME: Remove the following if statement when fixed.
+ if (!WTF::holds_alternative<String>(item.data))
+ continue;
+
ASSERT(WTF::holds_alternative<String>(item.data));
auto normalizedName = normalizeStringData(encoding, item.name);
Modified: trunk/Source/WebCore/platform/network/FormData.h (280309 => 280310)
--- trunk/Source/WebCore/platform/network/FormData.h 2021-07-26 19:39:57 UTC (rev 280309)
+++ trunk/Source/WebCore/platform/network/FormData.h 2021-07-26 20:15:49 UTC (rev 280310)
@@ -239,8 +239,6 @@
void setIdentifier(int64_t identifier) { m_identifier = identifier; }
int64_t identifier() const { return m_identifier; }
- bool containsPasswordData() const { return m_containsPasswordData; }
- void setContainsPasswordData(bool containsPasswordData) { m_containsPasswordData = containsPasswordData; }
unsigned imageOrMediaFilesCount() const;
static EncodingType parseEncodingType(const String& type)
@@ -270,7 +268,6 @@
int64_t m_identifier { 0 };
bool m_alwaysStream { false };
Vector<char> m_boundary;
- bool m_containsPasswordData { false };
mutable std::optional<uint64_t> m_lengthInBytes;
};
@@ -291,7 +288,6 @@
encoder << m_boundary;
encoder << m_elements;
encoder << m_identifier;
- // FIXME: Does not encode m_containsPasswordData. Why is that OK?
}
template<typename Decoder>
Modified: trunk/Source/WebInspectorUI/ChangeLog (280309 => 280310)
--- trunk/Source/WebInspectorUI/ChangeLog 2021-07-26 19:39:57 UTC (rev 280309)
+++ trunk/Source/WebInspectorUI/ChangeLog 2021-07-26 20:15:49 UTC (rev 280310)
@@ -1,3 +1,13 @@
+2021-07-26 Qiaosong Zhou <[email protected]>
+
+ FormDataEvent added.
+ https://bugs.webkit.org/show_bug.cgi?id=227718
+
+ Reviewed by Chris Dumez.
+
+ * UserInterface/Models/ScriptTimelineRecord.js:
+ (WI.ScriptTimelineRecord.EventType.displayName):
+
2021-07-19 Nikita Vasilyev <[email protected]>
Web Inspector: REGRESSION(?): alpha slider doesn't match alpha input for `transparent` in color picker
Modified: trunk/Source/WebInspectorUI/UserInterface/Models/ScriptTimelineRecord.js (280309 => 280310)
--- trunk/Source/WebInspectorUI/UserInterface/Models/ScriptTimelineRecord.js 2021-07-26 19:39:57 UTC (rev 280309)
+++ trunk/Source/WebInspectorUI/UserInterface/Models/ScriptTimelineRecord.js 2021-07-26 20:15:49 UTC (rev 280310)
@@ -255,6 +255,7 @@
nameMap.set("durationchange", "Duration Change");
nameMap.set("focusin", "Focus In");
nameMap.set("focusout", "Focus Out");
+ nameMap.set("formdata", "Form submission or invocation of FormData()");
nameMap.set("gesturechange", "Gesture Change");
nameMap.set("gestureend", "Gesture End");
nameMap.set("gesturescrollend", "Gesture Scroll End");