Prevent serialization of phosphor widgets when command calls from plugin #7959
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.
What it does
This changes proposal adds a check for return value after command been executed from third-party plugin.
The initial problem steps to reproduce:
workbench.files.action.focusFilesExplorer
packages/plugin-ext/src/main/browser/command-registry-main.ts#L80
packages/navigator/src/browser/navigator-contribution.ts#L241
TypeError: Converting circular structure to JSON
We need to check return type of the value that is executed and if there is a phosphor widget, return undefined. Anyway, there is no need to pass the whole widget into plugin as callback value.
Fixes issue: #7853
Signed-off-by: Vladyslav Zhukovskyi vzhukovs@redhat.com
How to test
This can be reached by using test plugin, located here.
Review checklist
Reminder for reviewers