Подтвердить что ты не робот

Google Chrome - как я могу программно включить chrome://помещает некоторые из модулей из режима отключения в разрешенный режим?

Как я могу автоматизировать настройку хром-флагов для включения нескольких модулей?

У меня есть приложение, которое требуется для открытия флагов chrome://, если включено несколько модулей, в противном случае все приложение не работает, для обычного пользователя его кошмар должен делать такие небольшие изменения.

Есть ли какой-либо механизм javascript или google-приложения или другой метод для использования на стороне сервера или какой-либо плагин, где я могу сказать, что это так, и он автоматически включит модули внутри chrome://flags?

4b9b3361

Ответ 1

Почти каждый флаг Chrome может быть установлен через командную строку. Вот исчерпывающий список параметров командной строки, но также имейте в виду, что в новых версиях будет еще больше!

EDIT: Полный, обновленный список ключей командной строки Chrome

Итак, в основном вы запустили бы хром с уже установленными флагами командной строки. Это лучший способ сделать это.

Вы не можете вручную установить это с помощью Javascript или другого поведения. Единственный способ, которым вы можете установить это программно (кроме флагов командной строки), - это использовать Capybara (инструмент, который может открывать и управлять браузерами, обычно используется для запуска автоматических тестов), откройте Chrome и затем вручную перейдите к "chrome://flags" и щелкните необходимые комбинированные поля.

EDIT: Watir также так же хорош, как Capybara

Watir - это еще одна платформа для автоматизации браузера (похожа на Capybara), но ее намного проще настроить и начать. Ниже приведены примеры о том, как открыть веб-страницу и выбрать поле со списком, и вот инструкции по используя его в Chrome. Вы можете написать один рубиновый файл, который выглядит так:

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), являются описанными здесь. Как правило, WebDriver запускается с временным --user-data-dir, а затем удаляет временную папку после использования. Таким образом, любые флаги, которые вы установили, будут потеряны при повторном запуске Chrome! Поэтому установите --user-data-dir в свой каталог профиля пользователя по умолчанию, а затем все флаги будут сохранены.

Изменить 2: добавлен полный список флагов командной строки chrome

Изменить 3: добавлены инструкции по сохранению флагов в Webdriver

Ответ 2

Корнившись на экране chrome://, я нашел что-то интересное в включенном 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.