0


我正在尝试修改 Chromium 浏览器在 Chromium OS 中的行为。
当我执行 Chromium 浏览器时,我可以使用“--enable-features=”标志来切换参数。
我从可用列表中找到了一个参数(#enable-virtual-keyboard)chrome://flags
然后我执行了 Chromium 浏览器,如下所示。

example instruction # /opt/google/chrome/chrome --incognito --enable-features=enable-virtual-keyboard

当我检查 中的标志时chrome://version,我可以看到参数。

Command Line: /opt/google/chrome/chrome --blahblah --enable-features=enable-virtual-keyboard

但实际上虚拟键盘不起作用。

chrome://flags当我手动启用参数(虚拟键盘)时。它运行良好,我可以看到虚拟键盘。


怎么了?如果你们给我建议,我将不胜感激。

4

1 回答 1

0

--enable-features实际上采用了功能的名称,而不是标志的名称。Chromium 文档解释了差异,但为了简化一点,标志是一种用户可见的功能或命令行开关界面。

无论如何,要做你想做的事,你需要找出enable-virtual-keyboard标志切换的功能或命令行开关。enable-virtual-keyboardChromium 代码搜索中搜索将我们带到about_flags.cc 中的这些行

    {"enable-virtual-keyboard", flag_descriptions::kVirtualKeyboardName,
     flag_descriptions::kVirtualKeyboardDescription, kOsCrOS,
     SINGLE_VALUE_TYPE(keyboard::switches::kEnableVirtualKeyboard)},

最后一行告诉我们我们在寻找什么:这个标志实际上是由一个命令行开关支持的,而不是一个特性。点击kEnableVirtualKeyboard向我们展示了它的定义

const char kEnableVirtualKeyboard[] = "enable-virtual-keyboard";

因此,添加--enable-virtual-keyboard到命令行应该与翻转标志具有相同的效果。(不过,我应该注意,有很多事情会破坏虚拟键盘,因此您可能需要做其他事情才能使其正常工作。)

为了完整起见,如果你发现它实际上是由一个特性支持的,比如flag gesture-properties-dbus-service例如:

    {"gesture-properties-dbus-service",
     flag_descriptions::kEnableGesturePropertiesDBusServiceName,
     flag_descriptions::kEnableGesturePropertiesDBusServiceDescription, kOsCrOS,
     FEATURE_VALUE_TYPE(chromeos::features::kGesturePropertiesDBusService)},

然后单击kGesturePropertiesDBusService将我们带到它的定义,该定义指定了功能名称:

const base::Feature kGesturePropertiesDBusService{
    "GesturePropertiesDBusService", base::FEATURE_DISABLED_BY_DEFAULT};

...所以在这种情况下,您将通过--enable-features=GesturePropertiesDBusService命令行启用该标志。

于 2021-11-25T00:40:01.863 回答