diff --git a/platform/platform-api/resources/messages/IdeBundle.properties b/platform/platform-api/resources/messages/IdeBundle.properties index 3c16716fc25f..9364c5de44c1 100644 --- a/platform/platform-api/resources/messages/IdeBundle.properties +++ b/platform/platform-api/resources/messages/IdeBundle.properties @@ -2600,11 +2600,12 @@ notification.content.jcef.gpucrash.message=GPU process restarts too many times a notification.content.jcef.gpucrash.action.restart=Restart notification.content.jcef.gpucrash.action.disable=Disable GPU and restart -notification.content.jcef.unprivileged.userns.restricted.title=JCEF sandbox in unavailable -notification.content.jcef.unprivileged.userns.restricted.message=OS restricts unprivileged user namespaces. \ - Starting JCEF requires either installing the corresponding AppArmor profile or turning sandbox off. -notification.content.jcef.unprivileged.userns.restricted.action.add.apparmor.profile=Install AppArmor profile\u2026 +notification.content.jcef.unprivileged.userns.restricted.title=Embedded Browser is suspended +notification.content.jcef.unprivileged.userns.restricted.message=The system restricts the embedded browser from running with the sandbox enabled. \ + A corresponding AppArmor profile must be installed to start the browser sandboxed. +notification.content.jcef.unprivileged.userns.restricted.action.add.apparmor.profile=Install profile\u2026 notification.content.jcef.unprivileged.userns.restricted.action.disable.sandbox=Disable sandbox +notification.content.jcef.unprivileged.userns.restricted.action.learn.more=Learn more\u2026 notification.content.jcef.unprivileged.userns.restricted.install.apparmor.profile.prompt=Install AppArmor profile for %s notification.content.jcef.failed.to.install.apparmor.profile=Failed to install AppArmor profile diff --git a/platform/platform-api/src/com/intellij/ui/jcef/JBCefApp.java b/platform/platform-api/src/com/intellij/ui/jcef/JBCefApp.java index 7438bd2c5d32..ed098f3242d8 100644 --- a/platform/platform-api/src/com/intellij/ui/jcef/JBCefApp.java +++ b/platform/platform-api/src/com/intellij/ui/jcef/JBCefApp.java @@ -1,6 +1,7 @@ // Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.ui.jcef; +import com.intellij.ide.BrowserUtil; import com.intellij.ide.IdeBundle; import com.intellij.notification.*; import com.intellij.openapi.Disposable; @@ -127,6 +128,15 @@ public final class JBCefApp { }) ); + notification.addAction( + NotificationAction.createSimple( + IdeBundle.message("notification.content.jcef.unprivileged.userns.restricted.action.learn.more"), + () -> { + // TODO(kharitonov): move to https://intellij-support.jetbrains.com/hc/en-us/sections/201620045-Troubleshooting + BrowserUtil.browse("https://youtrack.jetbrains.com/articles/JBR-A-11"); + }) + ); + Notifications.Bus.notify(notification); } }); diff --git a/platform/platform-api/src/com/intellij/ui/jcef/JBCefAppArmorUtils.java b/platform/platform-api/src/com/intellij/ui/jcef/JBCefAppArmorUtils.java index 29dff52c2530..22973e9ff88e 100644 --- a/platform/platform-api/src/com/intellij/ui/jcef/JBCefAppArmorUtils.java +++ b/platform/platform-api/src/com/intellij/ui/jcef/JBCefAppArmorUtils.java @@ -44,10 +44,11 @@ final class JBCefAppArmorUtils { return true; } - LOG.warn("Unprivileged user name spaces check failed: " + output.getStderr()); + LOG.warn("Unprivileged user namespaces check failed: " + output.getStderr()); return false; } catch (ExecutionException e) { + LOG.warn("Failed to check unprivileged user namespaces restrictions(considered as restricted): " + e.getMessage()); return false; } }