-
Notifications
You must be signed in to change notification settings - Fork 2k
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
Set true/false values in API for Chromium with version_added: null #3658
Conversation
@jpmedley I would love your review on this. Anything seem out of place to you? Let me know and I'll happily fix it! |
This is terrific work. It gets rid of a log of bad data quickly. Before proceeding, we need to deal with the scattering of situations where something is in Android, but not Android WebView. The file below is from our test system and lists all items not supported in Webview. If you want to sanity check, the easiest way is with the list of what's supposed to be there. How hard is it to amend your script to check one of these files and put |
💜 Since the script is based upon parsing various text files, and looking at the two files you've linked, this should be a breeze to incorporate them! I'll have it implemented with a new commit shortly. 😉 |
Looks like there was only a couple of files that had inaccurate data. They have now been fixed! |
That is particularly awesome. I wonder if we might implement a lint test based on those files. |
@vinyldarkscratch this is great, thanks for putting this together! There's overlap with #3689, so I'm going to cross-check to see if there are differences. I see that you're parsing the Web IDL from sources, but aren't looking at |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've reviewed up to MediaQueryListListener.json, will finish reviewing after lunch.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Finished reviewing. There are plenty of edge cases, but with some changes reverted this will be a great improvement!
@vinyldarkscratch I cross-checked #3733 against this a bit and found lots of things that are in Chromium's IDL with no conditional exposure or other complications, but which still weren't updated by this PR. Something to look into? |
This comment has been minimized.
This comment has been minimized.
@foolip wrote:
The script I wrote to test for I'd love to look into it more! Can you inform me of a couple APIs and members that seem to fall within this scenario? |
@vinyldarkscratch the 10 files I spot checked in that PR are in that category. First was Blob. |
Okay, then yeah, #3748 handles all of those by also copying version numbers over. I thought about putting it into this PR, but I realized that this PR is already big as it is, so I separated it into its own. |
@vinyldarkscratch this PR did update some webview_android data, are you sure that the missed interfaces aren't because of a bug in the script for this PR? |
I’m certain — the input list I’ve given it was a list of all null values for Chrome Desktop, but the output changes all Chromium browsers, including Webview. What it doesn’t touch are the entries that already have Chrome Desktop support set to something other than null, which is where that other PR takes place. Essentially:
Sorry, I think a part of the confusion may be my specific use of terms. When I refer to “Chromium”, I am talking about all Chrome-based browsers, rather than just Chrome Desktop. 😛 |
That bit was very clear from the title PR/description, "Chromium-based browser" is the terminology I normally used for all of these together. The surprise was that only entries that were originally null for |
Well, I could. Generally, I think I trust this approach less than the automation @foolip came up with. It is interpreting idl source code and on our way we've identified flaws in how parsing was done here. Mere existence in idl files doesn't always guarantee exposure as there can be flags, switches, conditions and what not. What do you think about this approach? Are confluence or other automation attempts verifying what is proposed in this PR? How did you approve this? I assume you didn't manually look into the 101 files here. Finally, it would be good to attach a log to this PR what was changed for future reference. Like I did here #3899 or like Philip did here: #3734 (comment) |
@jpmedley Your comments are in regards to a merge on |
This has been open for a long time now and basically the reason why we haven't merged it is still as described in #3658 (comment) I'm closing this as it is unlikely to merged currently. It can be re-opened if we gain new confidence with this approach or want to experiment with it again. |
Reviews and suggestions are highly encouraged and welcomed, especially as this is an almost entirely automated process, which hardly takes runtime flags into account. See something that looks inaccurate? Let me know!
This is to help the efforts of the 2019 KR by replacing the
null
values with boolean values where applicable. All true values were identified within an IDL file in the Chromium source, both by an automated script (see below), as well as manual source code review. False values were set for interfaces not found within the IDL files, and for interfaces not exposed in Webview. This does not remove any version numbers when trying to set them totrue
as to prevent the removal of real values. This PR is intended to remove as many null values as possible, and lead towards producing "real" values down the line.I wrote the following JavaScript and Python files to create a list of all the values set to null and check upon their implementation in the IDL files respectively: https://gist.github.com/vinyldarkscratch/db303f7e72a582d2bf89d84bc4d035e2
Stats before and after this PR (based upon v0.0.73):
true
valuesnull
values