public void injectAssets()

in plugin/src/software/aws/toolkits/eclipse/amazonq/providers/assets/ChatWebViewAssetProvider.java [69:114]


    public void injectAssets(final Browser browser) {
        new BrowserFunction(browser, "ideCommand") {
            @Override
            public Object function(final Object[] arguments) {
                ThreadingUtils.executeAsyncTask(() -> {
                    handleMessageFromUI(browser, arguments);
                });
                return null;
            }
        };

        new BrowserFunction(browser, "isMacOs") {
            @Override
            public Object function(final Object[] arguments) {
                return Boolean.TRUE.equals(PluginUtils.getPlatform() == PluginPlatform.MAC);
            }
        };

        new BrowserFunction(browser, "copyToClipboard") {
            @Override
            public Object function(final Object[] arguments) {
                if (arguments.length > 0 && arguments[0] instanceof String) {
                    StringSelection stringSelection = new StringSelection((String) arguments[0]);
                    Toolkit.getDefaultToolkit().getSystemClipboard().setContents(stringSelection, null);
                }
                return null;
            }
        };

        // Inject chat theme after mynah-ui has loaded
        browser.addProgressListener(new ProgressAdapter() {
            @Override
            public void completed(final ProgressEvent event) {
                Display.getDefault().syncExec(() -> {
                    try {
                        chatTheme.injectTheme(browser);
                        disableBrowserContextMenu(browser);
                    } catch (Exception e) {
                        Activator.getLogger().info("Error occurred while injecting theme into Q chat", e);
                    }
                });
            }
        });

        browser.setText(content.get());
    }