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());
}