Multiple WebBrowserComponent Instances

I’m trying to create multiple instances of WebBrowserComponent in JUCE, but only the last one appears to work. All other instances remain empty.

class WebBrowserDemo final : public Component
{
public:
    WebBrowserDemo(int instanceIndex)
    {
        setOpaque(true);

        addAndMakeVisible(addressTextBox);
        addressTextBox.setTextToShowWhenEmpty("Enter a web address, e.g. https://www.juce.com", Colours::grey);
        addressTextBox.onReturnKey = [this] { webView->goToURL(addressTextBox.getText()); };

        // Create a unique user data folder for each instance
        auto userDataFolder = File::getSpecialLocation(File::tempDirectory)
            .getChildFile("WebViewInstance_" + String(instanceIndex));

        const auto winWebView2 = WebBrowserComponent::Options::WinWebView2{}
        .withUserDataFolder(userDataFolder);

        const auto options = WebBrowserComponent::Options{}
            .withBackend(WebBrowserComponent::Options::Backend::webview2)
            .withWinWebView2Options(winWebView2);

        jassert(WebBrowserComponent::areOptionsSupported(options));

        webView = std::make_unique<WebBrowserComponent>(options);
        addAndMakeVisible(webView.get());

        addAndMakeVisible(goButton);
        goButton.onClick = [this] { webView->goToURL(addressTextBox.getText()); };
        addAndMakeVisible(backButton);
        backButton.onClick = [this] { webView->goBack(); };
        addAndMakeVisible(forwardButton);
        forwardButton.onClick = [this] { webView->goForward(); };

        webView->goToURL("https://www.whatismybrowser.com/");

        setSize(1000, 1000);
    }

    void paint(Graphics& g) override
    {
        g.fillAll(getUIColourIfAvailable(LookAndFeel_V4::ColourScheme::UIColour::windowBackground,
            Colours::grey));
    }

    void resized() override
    {
        webView->setBounds(10, 45, getWidth() - 20, getHeight() - 55);
        goButton.setBounds(getWidth() - 45, 10, 35, 25);
        addressTextBox.setBounds(100, 10, getWidth() - 155, 25);
        backButton.setBounds(10, 10, 35, 25);
        forwardButton.setBounds(55, 10, 35, 25);
    }

private:
    std::unique_ptr<WebBrowserComponent> webView;

    TextEditor addressTextBox;

    TextButton goButton{ "Go", "Go to URL" },
        backButton{ "<<", "Back" },
        forwardButton{ ">>", "Forward" };

    void lookAndFeelChanged() override
    {
        addressTextBox.applyFontToAllText(addressTextBox.getFont());
    }

    JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(WebBrowserDemo)
};


class MainComponent : public juce::Component
{
public:
    MainComponent()
    {
        for(int i = 0; i < 4; ++i)
        {
            auto browser = std::make_unique<WebBrowserDemo>(i);
            addAndMakeVisible(browser.get());
            webBrowsers.add(std::move(browser));
        }

        setSize(800, 600);
    }

    void resized() override
    {
        auto area = getLocalBounds();
        auto browserHeight = area.getHeight() / 2;
        auto browserWidth = area.getWidth() / 2;

        for(int i = 0; i < webBrowsers.size(); ++i)
        {
            auto row = i / 2;
            auto col = i % 2;
            webBrowsers[i]->setBounds(col * browserWidth, row * browserHeight, browserWidth, browserHeight);
        }
    }

private:
    juce::OwnedArray<WebBrowserDemo> webBrowsers;

    JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(MainComponent)
};

Is it possible to have multiple WebBrowserComponent instances running simultaneously?
Am I missing something in my approach?

Would appreciate any insights! Thanks.