Get multiple response in a Promise Array when sending message with chrome.tabs.sendMessage

When all_frames: true is set in manifest.json, the content script runs on all frames of the target page, but when a message is sent to the content script from another script, I would like to know how to get the response of all frames as Promise array like [Promise(Response of frame1), Promise(Response of frame2)...].

The extension and test page I created for this question can be found on my Github.

If anyone knows of a better way to do this, I would be grateful if anyone could let me know.

Thanks.