谷歌浏览器 - 我如何以编程方式启用chrome://将某些模块从禁用模式标记为启用模式?

时间:2013-06-12 07:54:17

标签: javascript google-chrome

如何自动设置chrome标志以启用少量模块?

我有应用程序设计,需要在打开chrome://标志启用几个模块,否则整个应用程序不起作用,对于普通用户来说,它做了如此小的改变。

是否有任何javascript或google应用引擎或其他方法可以从服务器端脚本或某些插件中使用,我可以说点击这个,它会自动启用chrome:// flags中的模块?

2 个答案:

答案 0 :(得分:21)

几乎每个Chrome标志都可以通过命令行设置。这是一个quite exhaustive list of command line parameters,但请记住,在新版本中会有更多!

编辑:这是Comprehensive, up-to-date list of Chrome command line switches

所以基本上你会在已设置这些命令行标志的情况下启动chrome。这是最好的方式。

您无法使用Javascript或其他行为手动设置此项。以编程方式(命令行标志除外)设置此方法的唯一方法是使用Capybara(可以打开和控制浏览器的工具,通常用于运行自动化测试),打开Chrome,然后手动导航到“chrome :// flags“并单击必要的组合框。

编辑:Watir也和Capybara一样好

Watir是另一个浏览器自动化框架(类似于Capybara),但更容易设置和开始。 Here are examples了解如何打开网页并选择组合框,以下是using it with Chrome的说明。您可以编写一个类似于以下内容的ruby文件:

require 'watir-webdriver'
browser = Watir::Browser.new :chrome
browser.goto "chrome://flags"
browser.select_list(:id => <combo box id>).select("Enabled")
...

使用WebDriver时保留标志

Chrome有--user-data-dir开关,可以保存所有配置文件设置。 Chrome使用的默认目录(在Windows / Mac / Linux上)[是documented here。通常,WebDriver使用临时--user-data-dir启动,然后在使用后删除临时文件夹。因此,当您再次运行Chrome时,您设置的任何标记都将丢失!因此,将--user-data-dir设置为用户的默认配置文件目录,然后将保留您设置的任何标记。

编辑2 :添加了Chrome命令行标记的完整列表

编辑3 :添加了在Webdriver中保留标志的说明

答案 1 :(得分:7)

在chrome:// flags屏幕中生根我在包含的JS文件中发现了一些有趣的内容:

/**
 * Invoked when the selection of a multi-value choice is changed to the
 * specified index.
 * @param {HTMLElement} node The node for the experiment being changed.
 * @param {number} index The index of the option that was selected.
 */
function handleSelectChoiceExperiment(node, index) {
  // Tell the C++ FlagsDOMHandler to enable the selected choice.
  chrome.send('enableFlagsExperiment',
              [String(node.internal_name) + '@' + index, 'true']);
  requestFlagsExperimentsData();
}

chrome.send确实是一种有效的方法,

这是同一个文件的另一个片段(chrome://flags/flags.js)

/**
 * Asks the C++ FlagsDOMHandler to restart the browser (restoring tabs).
 */
function restartBrowser() {
  chrome.send('restartBrowser');
}

手动调用chrome.send ('restartBroswer')确实重启了浏览器。

我认为这提供了自动设置标志所需的所有设施,您需要浏览chrome://flags源以找到所需的标记,然后 设置相应的chrome.send来电。