diff --git a/plugin/src/software/aws/toolkits/eclipse/amazonq/views/AmazonQChatWebview.java b/plugin/src/software/aws/toolkits/eclipse/amazonq/views/AmazonQChatWebview.java index 3faeefca..f49c2ffe 100644 --- a/plugin/src/software/aws/toolkits/eclipse/amazonq/views/AmazonQChatWebview.java +++ b/plugin/src/software/aws/toolkits/eclipse/amazonq/views/AmazonQChatWebview.java @@ -76,6 +76,10 @@ public void completed(final ProgressEvent event) { } }); + if (!content.isPresent()) { + content = webViewAssetProvider.getContent(); + } + browser.setText(content.get()); } else { updateBrowser(browser); } @@ -113,11 +117,6 @@ public void completed(final ProgressEvent event) { } }); - if (!content.isPresent()) { - content = webViewAssetProvider.getContent(); - } - browser.setText(content.get()); - setupAmazonQCommonActions(); return parent; @@ -146,13 +145,17 @@ public final void onSendToChatUi(final String message) { }); } + public final void disposeBrowserState() { + canDisposeState = true; + } + @Override public final void dispose() { chatCommunicationManager.removeListener(); if (canDisposeState) { ChatStateManager.getInstance().dispose(); + webViewAssetProvider.dispose(); } - webViewAssetProvider.dispose(); super.dispose(); } } diff --git a/plugin/src/software/aws/toolkits/eclipse/amazonq/views/AmazonQViewContainer.java b/plugin/src/software/aws/toolkits/eclipse/amazonq/views/AmazonQViewContainer.java index fb879bad..b6073554 100644 --- a/plugin/src/software/aws/toolkits/eclipse/amazonq/views/AmazonQViewContainer.java +++ b/plugin/src/software/aws/toolkits/eclipse/amazonq/views/AmazonQViewContainer.java @@ -68,6 +68,9 @@ private void updateChildView() { BaseAmazonQView newView = views.get(activeViewType); if (currentView != null) { + if (currentView instanceof AmazonQChatWebview) { + ((AmazonQChatWebview) currentView).disposeBrowserState(); + } Control[] children = parentComposite.getChildren(); for (Control child : children) { if (child != null && !child.isDisposed()) {