Add experimental support to inherit profiles from parent processes #948
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Building on top-of the new profile matching feature this PR adds an experimental setting to enable profile inheritance for processes.
If enabled, the algorithm to find a matching profile is as follows:
Find profile and highest fingerprint score for the current process
Get fingerprint matching data for the parent process
Find profile and highest fingerprint score for that parent
If the fingerprint score is higher, use the parent profile instead.
Repeat steps 2-4 until there is no more parent process.
This change effectively allows applying a profile to all sub-processes of a process. For example, this may be useful in the following scenarios:
A profile for the vscode (matched by cmdline or binary) currently is not correctly applied to the electron sub-processes of that profile. With the above changes, a cmdline match for vscode will have a higher priority and thus force all electron sub-processes to have the same profile applied.
Shell or interpreter scripts will get a profile with a script-tag assigned. Thus, all sub-processes executed by this script will have the correct profile applied, i.e. a shell script that calls curl now receives the correct profile (that on the script file)