Bug 228198 - [iOS] imported/w3c/web-platform-tests/html/dom/idlharness.https.html is failing
Summary: [iOS] imported/w3c/web-platform-tests/html/dom/idlharness.https.html is failing
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: New Bugs (show other bugs)
Version: WebKit Nightly Build
Hardware: iPhone / iPad Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2021-07-22 14:21 PDT by ayumi_kojima
Modified: 2021-07-28 15:03 PDT (History)
3 users (show)

See Also:


Attachments
Diff produced at r269329 (27.70 KB, text/plain)
2021-07-23 11:24 PDT, ayumi_kojima
no flags Details
Diff produced at r279977 (6.69 KB, text/plain)
2021-07-23 11:25 PDT, ayumi_kojima
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description ayumi_kojima 2021-07-22 14:21:52 PDT
imported/w3c/web-platform-tests/html/dom/idlharness.https.html 

Is failing on iOS 14 E Simulator wk2 on iPad (5th generation).

History: https://results.webkit.org/?suite=layout-tests&test=imported%2Fw3c%2Fweb-platform-tests%2Fhtml%2Fbrowsers%2Fthe-window-object%2Fnoopener-noreferrer-sizing.window.html

Diff:

--- /Volumes/Data/worker/ipados-simulator-14-debug-tests-wk2/build/layout-test-results/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt
+++ /Volumes/Data/worker/ipados-simulator-14-debug-tests-wk2/build/layout-test-results/imported/w3c/web-platform-tests/html/dom/idlharness.https-actual.txt
@@ -1425,9 +1425,13 @@
 PASS AudioTrack interface: existence and properties of interface prototype object's "constructor" property
 PASS AudioTrack interface: existence and properties of interface prototype object's @@unscopables property
 PASS AudioTrack interface: attribute id
-PASS AudioTrack interface: attribute kind
+FAIL AudioTrack interface: attribute kind assert_equals: setter must be undefined for readonly attributes expected (undefined) undefined but got (function) function "function kind() {
+    [native code]
+}"
 PASS AudioTrack interface: attribute label
-PASS AudioTrack interface: attribute language
+FAIL AudioTrack interface: attribute language assert_equals: setter must be undefined for readonly attributes expected (undefined) undefined but got (function) function "function language() {
+    [native code]
+}"
 PASS AudioTrack interface: attribute enabled
 PASS VideoTrackList interface: existence and properties of interface object
 PASS VideoTrackList interface object length
@@ -1448,9 +1452,13 @@
 PASS VideoTrack interface: existence and properties of interface prototype object's "constructor" property
 PASS VideoTrack interface: existence and properties of interface prototype object's @@unscopables property
 PASS VideoTrack interface: attribute id
-PASS VideoTrack interface: attribute kind
+FAIL VideoTrack interface: attribute kind assert_equals: setter must be undefined for readonly attributes expected (undefined) undefined but got (function) function "function kind() {
+    [native code]
+}"
 PASS VideoTrack interface: attribute label
-PASS VideoTrack interface: attribute language
+FAIL VideoTrack interface: attribute language assert_equals: setter must be undefined for readonly attributes expected (undefined) undefined but got (function) function "function language() {
+    [native code]
+}"
 PASS VideoTrack interface: attribute selected
 PASS TextTrackList interface: existence and properties of interface object
 PASS TextTrackList interface object length
@@ -1481,7 +1489,9 @@
     [native code]
 }"
 PASS TextTrack interface: attribute label
-PASS TextTrack interface: attribute language
+FAIL TextTrack interface: attribute language assert_equals: setter must be undefined for readonly attributes expected (undefined) undefined but got (function) function "function language() {
+    [native code]
+}"
 PASS TextTrack interface: attribute id
 PASS TextTrack interface: attribute inBandMetadataTrackDispatchType
 PASS TextTrack interface: attribute mode
Comment 1 Radar WebKit Bug Importer 2021-07-22 14:22:12 PDT
<rdar://problem/80982016>
Comment 2 ayumi_kojima 2021-07-22 16:06:05 PDT
Ignore the history above. 

This is the correct history for this test: https://results.webkit.org/?suite=layout-tests&test=imported%2Fw3c%2Fweb-platform-tests%2Fhtml%2Fdom%2Fidlharness.https.html
Comment 3 ayumi_kojima 2021-07-23 10:51:42 PDT
It seems like the failure was seen on iOS 13 and a platform-specific baseline was added here https://bugs.webkit.org/show_bug.cgi?id=202960
Comment 4 ayumi_kojima 2021-07-23 11:22:31 PDT
It seem like the test has been failing on iOS 14 E Simulator wk2 iPad since the test is introduced. The test failed on my local machine at the oldest revision I can find in the history (r269329), but r269329 produced a different diff from TOT.

I got another different diff at r279977 ~ r279500. The diff became the current diff after https://trac.webkit.org/changeset/279978/webkit

Not sure when the diff seen at r269329 became the one seen at r279977 ~ r279500 as I did not bisect it further. But it is somewhere between r279500 and r279001 as r279000 shows the same diff as r269329.
Comment 5 ayumi_kojima 2021-07-23 11:24:34 PDT
Created attachment 434101 [details]
Diff produced at r269329
Comment 6 ayumi_kojima 2021-07-23 11:25:10 PDT
Created attachment 434102 [details]
Diff produced at r279977
Comment 7 ayumi_kojima 2021-07-23 11:37:18 PDT
Updated test expectations https://trac.webkit.org/changeset/280251/webkit
Comment 8 Chris Dumez 2021-07-23 11:39:03 PDT
The AudioTrack.kind setter is conditionally exposed:
`[SettingsConditionallyReadWrite=MediaSource] attribute DOMString kind;`

based on the MediaSource setting.
```
MediaSourceEnabled:
  type: bool
  defaultValue:
    WebKitLegacy:
      default: true
    WebKit:
      "PLATFORM(COCOA) && PLATFORM(MAC)": true
      "PLATFORM(COCOA) && !PLATFORM(MAC)": false
      default: true
    WebCore:
      "PLATFORM(COCOA) && PLATFORM(MAC)": true
      "PLATFORM(COCOA) && !PLATFORM(MAC)": false
      default: true
```

Based on WebPreferences.yaml, I would expect the setter to be exposed on macOS but not iOS.

I am a bit perplexed how we could be getting different results on iPhone and iPad here.

The text is not expecting a setter, and the setter is supposed to be disabled on iOS, as a result, our iOS-wk2 test expectations have:
`PASS AudioTrack interface: attribute kind`

The diff on "iOS 14 E Simulator wk2 on iPad" indicates AudioTrack.kind is unexpectedly getting a setter on iOS...
Comment 9 Chris Dumez 2021-07-23 11:52:46 PDT
Committed r280253 (239920@main): <https://commits.webkit.org/239920@main>
Comment 11 Chris Dumez 2021-07-28 15:03:23 PDT
(In reply to ayumi_kojima from comment #10)
> It looks like the test is still failing 
> 
> History:
> https://results.webkit.org/?suite=layout-tests&test=imported%2Fw3c%2Fweb-
> platform-tests%2Fhtml%2Fdom%2Fidlharness.https.html

People landed some other changes without rebaselining. I rebaselined again in <https://commits.webkit.org/r280405>.