IJPL-250575 Scroll trap on the What's New page

(cherry picked from commit 59599f139207be47e8441da4c1ed2df66da77a98)

IJ-CR-214344

GitOrigin-RevId: d4a62e6a1c023e93ddc9a30fa82c84e3cc09094d
This commit is contained in:
Konstantin Bulenkov
2026-07-21 16:10:12 +00:00
committed by intellij-monorepo-bot
parent 900ebc87c1
commit ddd7464712
2 changed files with 12 additions and 1 deletions
+9 -1
View File
@@ -1,4 +1,4 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
// Copyright 2000-2026 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.execution.Platform;
@@ -187,6 +187,14 @@ final class SettingsHelper {
doTrackGPUCrashes.set(true);
}
if (settings.windowless_rendering_enabled && RegistryManager.getInstance().is("ide.browser.jcef.osr.siteIsolation.disable")) {
// In OSR mode wheel events routed to an unscrollable cross-origin iframe are not bubbled back to the parent page,
// so page scrolling gets stuck while the pointer is over such an iframe, e.g. a YouTube embed on the What's New page.
// Disabling site isolation keeps cross-origin iframes in the parent's renderer where Blink handles scroll chaining itself.
// See https://github.com/chromiumembedded/cef/issues/3325
args = ArrayUtil.mergeArrays(args, "--disable-site-isolation-trials");
}
// Sometimes it's useful to be able to pass any additional keys (see IDEA-248140)
// NOTE: List of keys: https://peter.sh/experiments/chromium-command-line-switches/
String extraArgsProp = System.getProperty("ide.browser.jcef.extra.args", "");
@@ -422,6 +422,9 @@ ide.browser.jcef.osr.enabled.restartRequired=true
ide.browser.jcef.osr.enabled.description=Enable per-browser off-screen rendering mode for JCEF
ide.browser.jcef.osr.wheelRotation.factor=40
ide.browser.jcef.osr.wheelRotation.factor.description=The factor to multiply MouseWheelEvent.getWheelRotation() in a buffered OSR browser.
ide.browser.jcef.osr.siteIsolation.disable=true
ide.browser.jcef.osr.siteIsolation.disable.restartRequired=true
ide.browser.jcef.osr.siteIsolation.disable.description=Disables Chromium site isolation (site-per-process) when JCEF off-screen rendering is enabled. Works around page scrolling getting stuck while the mouse pointer is over a cross-origin iframe (e.g., a YouTube video on the What's New page). Set to false to keep site isolation enabled.
ide.browser.jcef.osr.measureFPS.id=OSR JCEF FPS Meter
ide.browser.jcef.osr.measureFPS.id.description=JCEF OSR browser FPS Meter string ID.
ide.browser.jcef.osr.measureFPS.scroll=false