Skip to content

Commit

Permalink
Search additional files in find-feature-flags
Browse files Browse the repository at this point in the history
https://bugs.webkit.org/show_bug.cgi?id=265545

Reviewed by Jonathan Bedard.

Search for flags in the sandboxing files, `.sb.in`, and preferences,
`UnifiedWebPreferences.yaml`. Include the `.serialization.in` files when
searching native code.

* Tools/Scripts/find-feature-flags:
* Tools/Scripts/webkitpy/featuredefines/search.py:

Canonical link: https://commits.webkit.org/271311@main
  • Loading branch information
donny-dont committed Nov 30, 2023
1 parent d8d8ad4 commit 61e4989
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 2 deletions.
6 changes: 5 additions & 1 deletion Tools/Scripts/find-feature-flags
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ _CHOICES = [
"native-code",
"cmake-code",
"idl-code",
"preferences",
"sandbox",
]


Expand All @@ -56,6 +58,8 @@ def _search_with(choice):
"native-code": search.FeatureDefinesUsageNativeCode,
"cmake-code": search.FeatureDefinesUsageCMakeCode,
"idl-code": search.FeatureDefinesUsageIdlCode,
"preferences": search.FeatureDefinesUsagePreferences,
"sandbox": search.FeatureDefinesUsageSandbox,
}

return mapping[choice]()
Expand All @@ -80,7 +84,7 @@ def _choice_set(choices):
if "all-code" in choices_set:
choices_set.remove("all-code")

choices_set.update(["native-code", "cmake-code", "idl-code"])
choices_set.update(["native-code", "cmake-code", "idl-code", "preferences", "sandbox"])

return choices_set

Expand Down
24 changes: 23 additions & 1 deletion Tools/Scripts/webkitpy/featuredefines/search.py
Original file line number Diff line number Diff line change
Expand Up @@ -120,13 +120,35 @@ def search(self, root, macro='ENABLE'):
self._search_file(matcher, path)


class FeatureDefinesUsagePreferences(FeatureDefinesSearch):
""" Find feature defines in UnifiedWebPreferences.yaml. """

def search(self, root, macro='ENABLE'):
matcher = usage_matcher(macro)
path = os.path.join(root, "Source", "WTF", "Scripts", "Preferences", "UnifiedWebPreferences.yaml")

self._search_file(matcher, path)


class FeatureDefinesUsageSandbox(FeatureDefinesSearch):
""" Find feature defines in sandbox files. """

def search(self, root, macro='ENABLE'):
matcher = usage_matcher(macro)
directories = FeatureDefinesSearch._source_directories(root)
patterns = ['*.sb.in']

for directory in directories:
self._search_directory(matcher, directory, patterns)


class FeatureDefinesUsageNativeCode(FeatureDefinesSearch):
""" Find feature defines in native source code. """

def search(self, root, macro='ENABLE'):
matcher = usage_matcher(macro)
directories = FeatureDefinesSearch._source_directories(root)
patterns = ['*.h', '*.c', '*.cpp', '*.mm', '*.messages.in']
patterns = ['*.h', '*.c', '*.cpp', '*.mm', '*.messages.in', '*.serialization.in']

for directory in directories:
self._search_directory(matcher, directory, patterns)
Expand Down

0 comments on commit 61e4989

Please sign in to comment.