Bug 247926 - Add a 'status' field to feature flags denoting their use case
Summary: Add a 'status' field to feature flags denoting their use case
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKit Misc. (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Elliott Williams
URL:
Keywords: InRadar
Depends on: 250065 250066 255547
Blocks: 222885 250106 250539 250156 250164
  Show dependency treegraph
 
Reported: 2022-11-14 16:46 PST by Elliott Williams
Modified: 2023-04-17 14:15 PDT (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Elliott Williams 2022-11-14 16:46:17 PST
This is a step toward the semantics described in https://bugs.webkit.org/show_bug.cgi?id=222885, where each feature is marked with a "status" label that indicates how it is intended to be used, and whether it should be surfaced in browser UI.
Comment 1 Elliott Williams 2022-11-14 16:46:31 PST
rdar://92112770
Comment 2 Elliott Williams 2022-11-14 17:19:02 PST
Pull request: https://github.com/WebKit/WebKit/pull/6497
Comment 3 Elliott Williams 2022-11-29 15:15:35 PST
Pull request: https://github.com/WebKit/WebKit/pull/6945
Comment 4 EWS 2022-11-29 22:30:38 PST
Committed 257166@main (429cc4c78986): <https://commits.webkit.org/257166@main>

Reviewed commits have been landed. Closing PR #6945 and removing active labels.
Comment 5 Elliott Williams 2022-12-02 12:05:13 PST
Re-opening for pull request https://github.com/WebKit/WebKit/pull/7081
Comment 6 EWS 2023-01-03 17:56:24 PST
Committed 258413@main (4663bc861b1e): <https://commits.webkit.org/258413@main>

Reviewed commits have been landed. Closing PR #7081 and removing active labels.
Comment 7 WebKit Commit Bot 2023-01-03 23:11:45 PST
Re-opened since this is blocked by bug 250065
Comment 8 Elliott Williams 2023-01-04 12:23:47 PST
Pull request: https://github.com/WebKit/WebKit/pull/8206
Comment 9 EWS 2023-01-04 13:46:03 PST
Committed 258448@main (9def6e6f0258): <https://commits.webkit.org/258448@main>

Reviewed commits have been landed. Closing PR #8206 and removing active labels.
Comment 10 Caitlin Potter (:caitp) 2023-01-09 16:58:40 PST
While we're refactoring WebPreferences, would it be worth integrating JSC feature flags defined in OptionList.h, or providing a simple cross-port way to have a WebCore feature imply a JSC feature?

I've been struggling to get this to work for the one-off case of WebAPIsInShadowRealmEnabled implying JSC_useShadowRealm, it would be super helpful if there were a simpler way to do this for future JS features.
Comment 11 Elliott Williams 2023-01-09 17:17:28 PST
> While we're refactoring WebPreferences, would it be worth integrating JSC feature flags defined in OptionList.h, or providing a simple cross-port way to have a WebCore feature imply a JSC feature?

The trouble with JSC options is that (as I understand it), its options are loaded before WebCore is initialized, and the config is frozen after the VM is instantiated. But I agree that it would be really nice to have a better way to pass things down.
Comment 12 Caitlin Potter (:caitp) 2023-01-10 07:35:46 PST
(In reply to Elliott Williams from comment #11)
> > While we're refactoring WebPreferences, would it be worth integrating JSC feature flags defined in OptionList.h, or providing a simple cross-port way to have a WebCore feature imply a JSC feature?
> 
> The trouble with JSC options is that (as I understand it), its options are
> loaded before WebCore is initialized, and the config is frozen after the VM
> is instantiated. But I agree that it would be really nice to have a better
> way to pass things down.

My current thinking is that this comes down to individual ports accessing shared WebPreferences in a UI process, and using that to modify launch options for the web process which would in turn affect JSC's configuration - but since I primarily work on JSC, I'm not sure what would be needed to achieve this.
Comment 13 Elliott Williams 2023-01-12 18:20:16 PST
(In reply to Caitlin Potter (:caitp) from comment #12)
> 
> My current thinking is that this comes down to individual ports accessing
> shared WebPreferences in a UI process, and using that to modify launch
> options for the web process which would in turn affect JSC's configuration -
> but since I primarily work on JSC, I'm not sure what would be needed to
> achieve this.

OK, this makes sense! I think it would work. Filed https://bugs.webkit.org/show_bug.cgi?id=250539 to track this.