Skip to content

Commit f214cf7

Browse files
Merge main into feature/q-dev-ux
2 parents 73f8520 + d7b9ac5 commit f214cf7

File tree

16 files changed

+28
-58
lines changed

16 files changed

+28
-58
lines changed
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"type" : "bugfix",
3+
"description" : "Fix issue preventing login when running on 2024.2 remote environments"
4+
}

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/QLoginWebview.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ import com.intellij.ui.components.panels.Wrapper
1515
import com.intellij.ui.dsl.builder.panel
1616
import com.intellij.ui.dsl.gridLayout.HorizontalAlign
1717
import com.intellij.ui.dsl.gridLayout.VerticalAlign
18-
import com.intellij.ui.jcef.JBCefApp
1918
import com.intellij.ui.jcef.JBCefJSQuery
2019
import org.cef.CefApp
2120
import software.aws.toolkits.core.utils.error
@@ -36,6 +35,7 @@ import software.aws.toolkits.jetbrains.isDeveloperMode
3635
import software.aws.toolkits.jetbrains.services.amazonq.util.createBrowser
3736
import software.aws.toolkits.jetbrains.utils.isQConnected
3837
import software.aws.toolkits.jetbrains.utils.isQExpired
38+
import software.aws.toolkits.jetbrains.utils.isQWebviewsAvailable
3939
import software.aws.toolkits.telemetry.FeatureId
4040
import software.aws.toolkits.telemetry.UiTelemetry
4141
import software.aws.toolkits.telemetry.WebviewTelemetry
@@ -87,7 +87,7 @@ class QWebviewPanel private constructor(val project: Project) : Disposable {
8787
}
8888

8989
private fun init() {
90-
if (!JBCefApp.isSupported()) {
90+
if (!isQWebviewsAvailable()) {
9191
// Fallback to an alternative browser-less solution
9292
webviewContainer.add(JBTextArea("JCEF not supported"))
9393
browser = null

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/explorerActions/SignInToQAction.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@ import com.intellij.openapi.actionSystem.AnActionEvent
88
import com.intellij.openapi.application.runInEdt
99
import com.intellij.openapi.project.DumbAwareAction
1010
import com.intellij.openapi.wm.ToolWindowManager
11-
import com.intellij.ui.jcef.JBCefApp
1211
import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnectionManager
1312
import software.aws.toolkits.jetbrains.core.credentials.pinning.QConnection
1413
import software.aws.toolkits.jetbrains.core.credentials.reauthConnectionIfNeeded
1514
import software.aws.toolkits.jetbrains.core.gettingstarted.requestCredentialsForQ
1615
import software.aws.toolkits.jetbrains.services.amazonq.gettingstarted.openMeetQPage
1716
import software.aws.toolkits.jetbrains.services.amazonq.toolwindow.AmazonQToolWindowFactory
17+
import software.aws.toolkits.jetbrains.utils.isQWebviewsAvailable
1818
import software.aws.toolkits.resources.message
1919
import software.aws.toolkits.telemetry.UiTelemetry
2020

@@ -23,7 +23,7 @@ class SignInToQAction : SignInToQActionBase(message("q.sign.in")) {
2323
val project = e.project ?: return
2424
UiTelemetry.click(project, "auth_start_Q")
2525

26-
if (!JBCefApp.isSupported()) {
26+
if (!isQWebviewsAvailable()) {
2727
requestCredentialsForQ(project)
2828
} else {
2929
ToolWindowManager.getInstance(project).getToolWindow(AmazonQToolWindowFactory.WINDOW_ID)?.show()

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/gettingstarted/QGettingStartedPanel.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import com.intellij.ui.components.panels.Wrapper
1111
import com.intellij.ui.dsl.builder.panel
1212
import com.intellij.ui.dsl.gridLayout.HorizontalAlign
1313
import com.intellij.ui.dsl.gridLayout.VerticalAlign
14-
import com.intellij.ui.jcef.JBCefApp
14+
import software.aws.toolkits.jetbrains.utils.isQWebviewsAvailable
1515

1616
class QGettingStartedPanel(
1717
val project: Project
@@ -29,7 +29,7 @@ class QGettingStartedPanel(
2929
}
3030

3131
init {
32-
if (!JBCefApp.isSupported()) {
32+
if (!isQWebviewsAvailable()) {
3333
// Fallback to an alternative browser-less solution
3434
webviewContainer.add(JBTextArea("JCEF not supported"))
3535
browser = null

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQToolWindowFactory.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,9 @@ import software.aws.toolkits.jetbrains.core.webview.BrowserState
2626
import software.aws.toolkits.jetbrains.services.amazonq.QWebviewPanel
2727
import software.aws.toolkits.jetbrains.services.amazonq.RefreshQChatPanelButtonPressedListener
2828
import software.aws.toolkits.jetbrains.services.amazonq.gettingstarted.openMeetQPage
29-
import software.aws.toolkits.jetbrains.services.amazonq.isQSupportedInThisVersion
3029
import software.aws.toolkits.jetbrains.utils.isQConnected
3130
import software.aws.toolkits.jetbrains.utils.isQExpired
32-
import software.aws.toolkits.jetbrains.utils.isRunningOnRemoteBackend
31+
import software.aws.toolkits.jetbrains.utils.isQWebviewsAvailable
3332
import software.aws.toolkits.resources.message
3433
import software.aws.toolkits.telemetry.FeatureId
3534
import java.awt.event.ComponentAdapter
@@ -124,7 +123,7 @@ class AmazonQToolWindowFactory : ToolWindowFactory, DumbAware {
124123
)
125124
}
126125

127-
override fun shouldBeAvailable(project: Project): Boolean = !isRunningOnRemoteBackend() && isQSupportedInThisVersion()
126+
override fun shouldBeAvailable(project: Project): Boolean = isQWebviewsAvailable()
128127

129128
private fun onConnectionChanged(project: Project, newConnection: ToolkitConnection?, toolWindow: ToolWindow) {
130129
val contentManager = toolWindow.contentManager

plugins/amazonq/codewhisperer/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codewhisperer/service/CodeWhispererService.kt

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,6 @@ import software.aws.toolkits.jetbrains.services.codewhisperer.util.CodeWhisperer
8181
import software.aws.toolkits.jetbrains.services.codewhisperer.util.FileContextProvider
8282
import software.aws.toolkits.jetbrains.utils.isInjectedText
8383
import software.aws.toolkits.jetbrains.utils.isQExpired
84-
import software.aws.toolkits.jetbrains.utils.isRunningOnCWNotSupportedRemoteBackend
8584
import software.aws.toolkits.jetbrains.utils.notifyWarn
8685
import software.aws.toolkits.jetbrains.utils.pluginAwareExecuteOnPooledThread
8786
import software.aws.toolkits.resources.message
@@ -109,11 +108,6 @@ class CodeWhispererService(private val cs: CoroutineScope) : Disposable {
109108

110109
latencyContext.credentialFetchingStart = System.nanoTime()
111110

112-
if (isRunningOnCWNotSupportedRemoteBackend()) {
113-
showCodeWhispererInfoHint(editor, message("codewhisperer.trigger.ide.unsupported"))
114-
return
115-
}
116-
117111
if (isQExpired(project)) {
118112
// say the connection is un-refreshable if refresh fails for 3 times
119113
val shouldReauth = if (refreshFailure < MAX_REFRESH_ATTEMPT) {

plugins/amazonq/codewhisperer/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codewhisperer/startup/CodeWhispererProjectStartupActivity.kt

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,7 @@ import software.aws.toolkits.jetbrains.services.codewhisperer.util.CodeWhisperer
2323
import software.aws.toolkits.jetbrains.services.codewhisperer.util.calculateIfIamIdentityCenterConnection
2424
import software.aws.toolkits.jetbrains.utils.isQConnected
2525
import software.aws.toolkits.jetbrains.utils.isQExpired
26-
import software.aws.toolkits.jetbrains.utils.isRunningOnCWNotSupportedRemoteBackend
27-
import software.aws.toolkits.jetbrains.utils.notifyWarn
2826
import software.aws.toolkits.jetbrains.utils.pluginAwareExecuteOnPooledThread
29-
import software.aws.toolkits.resources.message
3027

3128
// TODO: add logics to check if we want to remove recommendation suspension date when user open the IDE
3229
class CodeWhispererProjectStartupActivity : StartupActivity.DumbAware {
@@ -56,8 +53,6 @@ class CodeWhispererProjectStartupActivity : StartupActivity.DumbAware {
5653

5754
if (runOnce) return
5855

59-
checkRemoteDevVersionAndPromptUpdate()
60-
6156
// Reconnect CodeWhisperer on startup
6257
promptReAuth(project, isPluginStarting = true)
6358
if (isQExpired(project)) return
@@ -87,12 +82,4 @@ class CodeWhispererProjectStartupActivity : StartupActivity.DumbAware {
8782
}
8883
}
8984
}
90-
91-
private fun checkRemoteDevVersionAndPromptUpdate() {
92-
if (!isRunningOnCWNotSupportedRemoteBackend()) return
93-
notifyWarn(
94-
title = message("codewhisperer.notification.remote.ide_unsupported.title"),
95-
content = message("codewhisperer.notification.remote.ide_unsupported.message"),
96-
)
97-
}
9885
}

plugins/amazonq/codewhisperer/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codewhisperer/status/CodeWhispererStatusBarWidgetFactory.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,14 @@ import com.intellij.openapi.util.Disposer
88
import com.intellij.openapi.wm.StatusBar
99
import com.intellij.openapi.wm.StatusBarWidget
1010
import com.intellij.openapi.wm.impl.status.widget.StatusBarEditorBasedWidgetFactory
11-
import software.aws.toolkits.jetbrains.utils.isRunningOnCWNotSupportedRemoteBackend
1211
import software.aws.toolkits.resources.message
1312

1413
class CodeWhispererStatusBarWidgetFactory : StatusBarEditorBasedWidgetFactory() {
1514
override fun getId(): String = ID
1615

1716
override fun getDisplayName(): String = message("codewhisperer.statusbar.display_name")
1817

19-
override fun isAvailable(project: Project): Boolean = !isRunningOnCWNotSupportedRemoteBackend()
18+
override fun isAvailable(project: Project): Boolean = true
2019

2120
override fun createWidget(project: Project): StatusBarWidget = CodeWhispererStatusBarWidget(project)
2221

plugins/core/jetbrains-community/src/software/aws/toolkits/jetbrains/core/credentials/sso/SsoLoginCallbackProvider.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ package software.aws.toolkits.jetbrains.core.credentials.sso
55

66
import com.intellij.ide.BrowserUtil
77
import com.intellij.openapi.progress.ProcessCanceledException
8-
import com.intellij.ui.jcef.JBCefApp
98
import software.aws.toolkits.jetbrains.core.credentials.sono.SONO_URL
109
import software.aws.toolkits.jetbrains.core.credentials.sso.bearer.ConfirmUserCodeLoginDialog
1110
import software.aws.toolkits.jetbrains.utils.computeOnEdt
11+
import software.aws.toolkits.jetbrains.utils.isQWebviewsAvailable
1212
import software.aws.toolkits.jetbrains.utils.notifyError
1313
import software.aws.toolkits.resources.AwsCoreBundle
1414
import software.aws.toolkits.telemetry.AuthType
@@ -31,7 +31,7 @@ class DefaultSsoLoginCallbackProvider : SsoLoginCallbackProvider {
3131
}
3232

3333
return when {
34-
JBCefApp.isSupported() -> SsoPromptWithBrowserSupport
34+
isQWebviewsAvailable() -> SsoPromptWithBrowserSupport
3535
else -> deviceCodeProvider
3636
}
3737
}

plugins/core/jetbrains-community/src/software/aws/toolkits/jetbrains/core/gettingstarted/GettingStartedAuthUtils.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
package software.aws.toolkits.jetbrains.core.gettingstarted
55

66
import com.intellij.openapi.project.Project
7-
import com.intellij.ui.jcef.JBCefApp
87
import software.aws.toolkits.core.utils.tryOrNull
98
import software.aws.toolkits.jetbrains.core.credentials.LegacyManagedBearerSsoConnection
109
import software.aws.toolkits.jetbrains.core.credentials.ManagedBearerSsoConnection
@@ -240,5 +239,3 @@ fun emitUserState(project: Project) {
240239
}
241240

242241
const val CODEWHISPERER_AUTH_LEARN_MORE_LINK = "https://docs.aws.amazon.com/codewhisperer/latest/userguide/codewhisperer-auth.html"
243-
244-
fun shouldShowNonWebviewUI(): Boolean = !JBCefApp.isSupported()

plugins/core/jetbrains-community/src/software/aws/toolkits/jetbrains/utils/RemoteEnvUtils.kt

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,7 @@
44
package software.aws.toolkits.jetbrains.utils
55

66
import com.intellij.idea.AppMode
7-
import com.intellij.openapi.application.ApplicationInfo
8-
import com.intellij.openapi.extensions.ExtensionNotApplicableException
9-
import com.intellij.openapi.util.BuildNumber
7+
import com.intellij.ui.jcef.JBCefApp
108

119
/**
1210
* @return true if running in any type of remote environment
@@ -18,13 +16,4 @@ fun isRunningOnRemoteBackend() = AppMode.isRemoteDevHost()
1816
*/
1917
fun isCodeCatalystDevEnv() = System.getenv("__DEV_ENVIRONMENT_ID") != null
2018

21-
fun disableExtensionIfRemoteBackend() {
22-
if (isRunningOnRemoteBackend()) {
23-
throw ExtensionNotApplicableException.create()
24-
}
25-
}
26-
27-
// CW can be supported only after at least build 232.9921.47 on remote env
28-
fun isRunningOnCWNotSupportedRemoteBackend() =
29-
ApplicationInfo.getInstance().build.compareTo(BuildNumber.fromStringOrNull("232.9921.47")) < 0 &&
30-
AppMode.isRemoteDevHost()
19+
fun isQWebviewsAvailable() = JBCefApp.isSupported() && !isRunningOnRemoteBackend()

plugins/toolkit/jetbrains-core/src/software/aws/toolkits/jetbrains/core/credentials/actions/ExplorerNewConnectionAction.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ import com.intellij.openapi.project.DumbAwareAction
1010
import software.aws.toolkits.jetbrains.core.explorer.showWebview
1111
import software.aws.toolkits.jetbrains.core.explorer.webview.ToolkitWebviewPanel
1212
import software.aws.toolkits.jetbrains.core.gettingstarted.editor.GettingStartedPanel
13-
import software.aws.toolkits.jetbrains.core.gettingstarted.shouldShowNonWebviewUI
1413
import software.aws.toolkits.jetbrains.core.webview.BrowserState
14+
import software.aws.toolkits.jetbrains.utils.isQWebviewsAvailable
1515
import software.aws.toolkits.telemetry.FeatureId
1616
import software.aws.toolkits.telemetry.UiTelemetry
1717

@@ -21,7 +21,7 @@ class ExplorerNewConnectionAction : DumbAwareAction(AllIcons.General.Add) {
2121
override fun actionPerformed(e: AnActionEvent) {
2222
e.project?.let {
2323
runInEdt {
24-
if (shouldShowNonWebviewUI()) {
24+
if (!isQWebviewsAvailable()) {
2525
GettingStartedPanel.openPanel(it)
2626
} else {
2727
ToolkitWebviewPanel.getInstance(it).browser?.prepareBrowser(BrowserState(FeatureId.AwsExplorer, true))

plugins/toolkit/jetbrains-core/src/software/aws/toolkits/jetbrains/core/credentials/actions/NewConnectionAction.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,16 @@ import com.intellij.openapi.project.DumbAwareAction
99
import software.aws.toolkits.jetbrains.core.explorer.showWebview
1010
import software.aws.toolkits.jetbrains.core.explorer.webview.ToolkitWebviewPanel
1111
import software.aws.toolkits.jetbrains.core.gettingstarted.editor.GettingStartedPanel
12-
import software.aws.toolkits.jetbrains.core.gettingstarted.shouldShowNonWebviewUI
1312
import software.aws.toolkits.jetbrains.core.webview.BrowserState
13+
import software.aws.toolkits.jetbrains.utils.isQWebviewsAvailable
1414
import software.aws.toolkits.telemetry.FeatureId
1515
import software.aws.toolkits.telemetry.UiTelemetry
1616

1717
class NewConnectionAction : DumbAwareAction() {
1818
override fun actionPerformed(e: AnActionEvent) {
1919
e.project?.let {
2020
runInEdt {
21-
if (shouldShowNonWebviewUI()) {
21+
if (!isQWebviewsAvailable()) {
2222
GettingStartedPanel.openPanel(it, connectionInitiatedFromExplorer = true)
2323
} else {
2424
ToolkitWebviewPanel.getInstance(it).browser?.prepareBrowser(BrowserState(FeatureId.AwsExplorer, true))

plugins/toolkit/jetbrains-core/src/software/aws/toolkits/jetbrains/core/explorer/ExplorerToolWindow.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,10 +65,10 @@ import software.aws.toolkits.jetbrains.core.explorer.nodes.ResourceLocationNode
6565
import software.aws.toolkits.jetbrains.core.explorer.webview.ToolkitWebviewPanel
6666
import software.aws.toolkits.jetbrains.core.gettingstarted.editor.GettingStartedPanel
6767
import software.aws.toolkits.jetbrains.core.gettingstarted.rolePopupFromConnection
68-
import software.aws.toolkits.jetbrains.core.gettingstarted.shouldShowNonWebviewUI
6968
import software.aws.toolkits.jetbrains.core.webview.BrowserState
7069
import software.aws.toolkits.jetbrains.services.dynamic.explorer.DynamicResourceResourceTypeNode
7170
import software.aws.toolkits.jetbrains.ui.CenteredInfoPanel
71+
import software.aws.toolkits.jetbrains.utils.isQWebviewsAvailable
7272
import software.aws.toolkits.resources.message
7373
import software.aws.toolkits.telemetry.FeatureId
7474
import software.aws.toolkits.telemetry.UiTelemetry
@@ -207,7 +207,7 @@ class ExplorerToolWindow(private val project: Project) :
207207
CenteredInfoPanel().apply {
208208
addLine(message("gettingstarted.explorer.new.setup.info"))
209209
addDefaultActionButton(message("gettingstarted.explorer.new.setup")) {
210-
if (shouldShowNonWebviewUI()) {
210+
if (!isQWebviewsAvailable()) {
211211
GettingStartedPanel.openPanel(project)
212212
} else {
213213
ToolkitWebviewPanel.getInstance(project).browser?.prepareBrowser(BrowserState(FeatureId.AwsExplorer, true))

plugins/toolkit/jetbrains-core/src/software/aws/toolkits/jetbrains/core/explorer/webview/ToolkitLoginWebview.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ import software.aws.toolkits.jetbrains.core.webview.BrowserState
5555
import software.aws.toolkits.jetbrains.core.webview.LoginBrowser
5656
import software.aws.toolkits.jetbrains.core.webview.WebviewResourceHandlerFactory
5757
import software.aws.toolkits.jetbrains.isDeveloperMode
58+
import software.aws.toolkits.jetbrains.utils.isQWebviewsAvailable
5859
import software.aws.toolkits.jetbrains.utils.isTookitConnected
5960
import software.aws.toolkits.telemetry.FeatureId
6061
import software.aws.toolkits.telemetry.UiTelemetry
@@ -111,7 +112,7 @@ class ToolkitWebviewPanel(val project: Project, private val scope: CoroutineScop
111112
}
112113

113114
init {
114-
if (!JBCefApp.isSupported()) {
115+
if (!isQWebviewsAvailable()) {
115116
// Fallback to an alternative browser-less solution
116117
webviewContainer.add(JBTextArea("JCEF not supported"))
117118
browser = null

plugins/toolkit/jetbrains-core/src/software/aws/toolkits/jetbrains/core/gettingstarted/ToolkitGettingStartedAuthUtils.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ package software.aws.toolkits.jetbrains.core.gettingstarted
55

66
import com.intellij.openapi.application.ApplicationInfo
77
import com.intellij.openapi.project.Project
8-
import com.intellij.ui.jcef.JBCefApp
98
import software.aws.toolkits.jetbrains.core.credentials.sono.CODECATALYST_SCOPES
109
import software.aws.toolkits.jetbrains.core.explorer.showWebview
1110
import software.aws.toolkits.jetbrains.core.explorer.webview.ToolkitWebviewPanel
@@ -15,6 +14,7 @@ import software.aws.toolkits.jetbrains.core.gettingstarted.editor.getEnabledConn
1514
import software.aws.toolkits.jetbrains.core.gettingstarted.editor.getSourceOfEntry
1615
import software.aws.toolkits.jetbrains.core.webview.BrowserState
1716
import software.aws.toolkits.jetbrains.services.caws.CawsEndpoints.CAWS_DOCS
17+
import software.aws.toolkits.jetbrains.utils.isQWebviewsAvailable
1818
import software.aws.toolkits.resources.message
1919
import software.aws.toolkits.telemetry.AuthTelemetry
2020
import software.aws.toolkits.telemetry.FeatureId
@@ -30,7 +30,7 @@ fun requestCredentialsForCodeCatalyst(
3030
isFirstInstance: Boolean = false,
3131
connectionInitiatedFromExplorer: Boolean = false
3232
): Boolean? {
33-
if (JBCefApp.isSupported() && project != null) {
33+
if (isQWebviewsAvailable() && project != null) {
3434
ToolkitWebviewPanel.getInstance(project).browser?.prepareBrowser(BrowserState(FeatureId.Codecatalyst, true)) // TODO: consume data
3535
showWebview(project)
3636

@@ -124,7 +124,7 @@ fun requestCredentialsForExplorer(
124124
isFirstInstance: Boolean = false,
125125
connectionInitiatedFromExplorer: Boolean = false
126126
): Boolean? {
127-
if (JBCefApp.isSupported()) {
127+
if (isQWebviewsAvailable()) {
128128
ToolkitWebviewPanel.getInstance(project).browser?.prepareBrowser(BrowserState(FeatureId.AwsExplorer, true)) // TODO: consume data
129129
showWebview(project)
130130
return null

0 commit comments

Comments
 (0)