OPENIDE add Yandex Browser to the predefined browsers list

This commit is contained in:
Nikita Iarychenko
2026-09-17 14:06:41 +04:00
parent 105207d63f
commit 3e26f66ede
2 changed files with 35 additions and 2 deletions
@@ -1,4 +1,7 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
//
// Modified by Nikita Iarychenko at 2026 as part of the OpenIDE project(https://openide.ru).
// Any modifications are available on the same license terms as the original source code.
package com.intellij.ide.browsers
import com.intellij.ide.GeneralLocalSettings
@@ -26,7 +29,9 @@ import com.intellij.util.ui.table.TableModelEditor.DialogItemEditor
import com.intellij.util.ui.table.TableModelEditor.EditableColumnInfo
import java.awt.event.ItemEvent
import java.util.UUID
import javax.swing.Icon
import javax.swing.JComponent
import javax.swing.JTable
import javax.swing.event.TableModelEvent
import javax.swing.table.TableCellEditor
import javax.swing.table.TableCellRenderer
@@ -294,6 +299,13 @@ internal class BrowserSettingsConfigurable : UnnamedConfigurable {
override fun setValue(item: ConfigurableWebBrowser, value: String) {
item.name = value
}
override fun getRenderer(item: ConfigurableWebBrowser): TableCellRenderer {
// the family icon is not specific enough: Opera, Edge and Yandex Browser all belong to the Chrome family
return object : IconTableCellRenderer<String>() {
override fun getIcon(value: String, table: JTable?, row: Int): Icon = item.icon
}
}
},
object : ColumnInfo<ConfigurableWebBrowser, BrowserFamily>(
IdeBundle.message("settings.browsers.column.family")) {
@@ -1,4 +1,7 @@
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
//
// Modified by Nikita Iarychenko at 2026 as part of the OpenIDE project(https://openide.ru).
// Any modifications are available on the same license terms as the original source code.
package com.intellij.ide.browsers;
import com.intellij.openapi.application.ApplicationManager;
@@ -48,6 +51,7 @@ public final class WebBrowserManager extends SimpleModificationTracker implement
private static final UUID PREDEFINED_EXPLORER_ID = UUID.fromString("16BF23D4-93E0-4FFC-BFD6-CB13575177B0");
private static final UUID PREDEFINED_OLD_EDGE_ID = UUID.fromString("B2A9DCA7-9D0B-4E1E-98A8-AFB19C1328D2");
private static final UUID PREDEFINED_EDGE_ID = UUID.fromString("37cae5b9-e8b2-4949-9172-aafa37fbc09c");
private static final UUID PREDEFINED_YANDEX_ID = UUID.fromString("28c88d5c-5c89-495d-a990-15593cba4dc8");
private static final UUID[] PREDEFINED_BROWSER_IDS = new UUID[]{
PREDEFINED_CHROME_ID,
@@ -55,7 +59,8 @@ public final class WebBrowserManager extends SimpleModificationTracker implement
PREDEFINED_SAFARI_ID,
PREDEFINED_OPERA_ID,
PREDEFINED_EXPLORER_ID,
PREDEFINED_EDGE_ID
PREDEFINED_EDGE_ID,
PREDEFINED_YANDEX_ID
};
public static final ReloadMode BROWSER_RELOAD_MODE_DEFAULT = ReloadMode.RELOAD_ON_SAVE;
@@ -73,6 +78,18 @@ public final class WebBrowserManager extends SimpleModificationTracker implement
}
}
private static @NotNull String getYandexExecutionPath() {
if (SystemInfo.isWindows) {
return "browser";
}
else if (SystemInfo.isMac) {
return "Yandex";
}
else {
return "yandex-browser";
}
}
private static List<ConfigurableWebBrowser> getPredefinedBrowsers() {
return List.of(
new ConfigurableWebBrowser(PREDEFINED_CHROME_ID, BrowserFamily.CHROME),
@@ -86,6 +103,9 @@ public final class WebBrowserManager extends SimpleModificationTracker implement
BrowserFamily.EXPLORER.createBrowserSpecificSettings()),
new ConfigurableWebBrowser(PREDEFINED_EDGE_ID, BrowserFamily.CHROME, "Edge",
getEdgeExecutionPath(), SystemInfo.isWindows,
BrowserFamily.CHROME.createBrowserSpecificSettings()),
new ConfigurableWebBrowser(PREDEFINED_YANDEX_ID, BrowserFamily.CHROME, "Yandex Browser",
getYandexExecutionPath(), false,
BrowserFamily.CHROME.createBrowserSpecificSettings())
);
}
@@ -106,7 +126,8 @@ public final class WebBrowserManager extends SimpleModificationTracker implement
}
public static boolean isYandexBrowser(@NotNull WebBrowser browser) {
return browser.getFamily().equals(BrowserFamily.CHROME) && checkNameAndPath("Yandex", browser);
return browser.getFamily().equals(BrowserFamily.CHROME) &&
(browser.getId().equals(PREDEFINED_YANDEX_ID) || checkNameAndPath("Yandex", browser));
}
public static boolean isEdge(@NotNull WebBrowser browser) {