Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Data claims that many APIs are missing in Safari 8.0, 7.1 and older which obviously are not missing #173

Closed
othermaciej opened this issue Sep 21, 2017 · 8 comments

Comments

@othermaciej
Copy link

Data claims that many APIs are missing in Safari 8.0, 7.1 and older which obviously are not missing. For example, this claims that essentially all properties of CSSStyleDeclaration are missing. Safari 8.0 would have been wildly broken on many websites if this was actually true. Probably a problem with the testing methodology.

There seem to be many other errors but it is really time consuming to manually spot-check this data.

https://web-confluence.appspot.com/#!/catalog?releaseKeys=%5B%22Safari_537.85.17_OSX_10.8.5%22,%22Safari_534.59.8_OSX_10.6.8%22,%22Safari_536.30.1_OSX_10.7.5%22,%22Safari_537.85.17_OSX_10.8.5%22,%22Safari_537.85.17_OSX_10.9.5%22,%22Safari_600.8.9_OSX_10.10.5%22,%22Edge_13.10586_Windows_10.0%22,%22Edge_14.14393_Windows_10.0%22,%22Firefox_40.0_OSX_10.11%22,%22Firefox_41.0_OSX_10.11%22,%22Firefox_42.0_OSX_10.11%22,%22Firefox_43.0_OSX_10.11%22,%22Firefox_44.0_OSX_10.11%22,%22Firefox_45.0_OSX_10.11%22,%22Firefox_46.0_OSX_10.11%22,%22Firefox_47.0_OSX_10.11%22,%22Firefox_48.0_OSX_10.11%22,%22Chrome_45.0.2454.85_OSX_10.11.6%22,%22Chrome_46.0.2490.71_OSX_10.11.6%22,%22Chrome_47.0.2526.73_OSX_10.11.6%22,%22Chrome_48.0.2564.97_OSX_10.11.6%22,%22Chrome_49.0.2623.75_OSX_10.11.6%22,%22Chrome_50.0.2661.75_OSX_10.11.6%22,%22Chrome_51.0.2704.79_OSX_10.11.6%22,%22Chrome_52.0.2743.82_OSX_10.11.6%22,%22Safari_603.2.4_OSX_10.12.5%22%5D&releaseOptions=%7B%22Safari_537.85.17_OSX_10.8.5%22:false,%22Safari_534.59.8_OSX_10.6.8%22:false,%22Safari_536.30.1_OSX_10.7.5%22:false,%22Safari_537.85.17_OSX_10.9.5%22:false,%22Safari_600.8.9_OSX_10.10.5%22:false,%22Edge_13.10586_Windows_10.0%22:true,%22Edge_14.14393_Windows_10.0%22:true,%22Firefox_40.0_OSX_10.11%22:true,%22Firefox_41.0_OSX_10.11%22:true,%22Firefox_42.0_OSX_10.11%22:true,%22Firefox_43.0_OSX_10.11%22:true,%22Firefox_44.0_OSX_10.11%22:true,%22Firefox_45.0_OSX_10.11%22:true,%22Firefox_46.0_OSX_10.11%22:true,%22Firefox_47.0_OSX_10.11%22:true,%22Firefox_48.0_OSX_10.11%22:true,%22Chrome_45.0.2454.85_OSX_10.11.6%22:true,%22Chrome_46.0.2490.71_OSX_10.11.6%22:true,%22Chrome_47.0.2526.73_OSX_10.11.6%22:true,%22Chrome_48.0.2564.97_OSX_10.11.6%22:true,%22Chrome_49.0.2623.75_OSX_10.11.6%22:true,%22Chrome_50.0.2661.75_OSX_10.11.6%22:true,%22Chrome_51.0.2704.79_OSX_10.11.6%22:true,%22Chrome_52.0.2743.82_OSX_10.11.6%22:true%7D&numAvailable=null&currentPage=0&gap=5&itemPerPage=15&searchKey=%22%22

@mdittmer
Copy link
Collaborator

We have a hack that copies CSS2Properties in Firefox into CSSStyleDeclaration. I still need to dig into the data, but it wouldn't surprise me if "layering of differently named prototypes" is to blame for this, and perhaps other issues.

Aside: @othermaciej do you think it would be useful for us to invest in a CLI tool that supports querying the raw object graph data and the <interface>.<API> data we extract from it? That might speed up the process of reasoning about these issues. @foolip WDYT about this idea?

@mdittmer
Copy link
Collaborator

We are trying to document things like CSS2Properties => CSSStyleDeclaration with this label

@foolip
Copy link
Member

foolip commented Sep 21, 2017

I don't think I'd use a CLI, that would be more work to learn about than using the browser directly to try and understand the issue as in #163 (comment).

@mdittmer
Copy link
Collaborator

Tracking CSSStyleDeclaration issue (which affects all browsers) as #174. @othermaciej are there other examples we should investigate?

@othermaciej
Copy link
Author

I don't think this CSSStyleDeclaration issue is the same as #174. The properties that it claims are missing are not the dash-separated versions, they are the camelCase versions. As far as other stuff to investigate, I am not sure. I don't have a good way to test old Safari versions, and even for the latest Safari, the best I can do is make a test case by hand.

@foolip
Copy link
Member

foolip commented Sep 22, 2017

@mdittmer, you tested a bit in BrowserStack, what did you conclude? From a quick look in Safari 8, I see that Object.getOwnPropertyNames(document.body.style) returns about what I would expect, lots of camelCase names that don't show up in the API catalog. So there is a bug here, adding labels to put it on the roadmap.

@mdittmer
Copy link
Collaborator

In some cases, our graph walk never successfully visited any instances of CSSStyleDeclaration (CSSStyleDeclaration.prototype never appears on the prototype side of our __proto__-pointers data). This is very strange. I'll probably have to step through the code and see what happens when the graph visitor hits things like document.body.style.

@mdittmer
Copy link
Collaborator

mdittmer commented May 1, 2018

I just checked safari8JsObjectGraph.getObjectKeys(safari8JsObjectGraph.lookup('window.document.body.style')) and it contains > 300 camelCase CSS properties. Here's a view comparing new browser releases to Safari 7 & 8:

https://web-confluence.appspot.com/#!/catalog?releaseKeys=%5B%22Chrome_65.0.3325.146_Windows_10.0%22,%22Edge_16.16299_Windows_10.0%22,%22Safari_11.0.3_OSX_10.13.3%22,%22Safari_7.1.8_OSX_10.9.5%22,%22Safari_8.0.8_OSX_10.10.5%22%5D&releaseOptions=null&numAvailable=null&currentPage=0&gap=5&itemPerPage=15&searchKey=%22CSSStyleDeclaration%22

Based on these data points, it appears that #16 fixed this issue.

@mdittmer mdittmer closed this as completed May 1, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants