Описание
 Используйте API chrome.devtools.inspectedWindow для взаимодействия с проверяемым окном: получите идентификатор вкладки для проверяемой страницы, оцените код в контексте проверяемого окна, перезагрузите страницу или получите список ресурсов на странице.
Общие сведения об использовании API инструментов инструментов разработчика см. в обзоре API-интерфейсов DevTools .
 Свойство tabId предоставляет идентификатор вкладки, который можно использовать с вызовами API chrome.tabs.* . Однако обратите внимание, что API chrome.tabs.* не доступен на страницах расширения инструментов разработчика из соображений безопасности — вам нужно будет передать идентификатор вкладки на фоновую страницу и вызвать функции API chrome.tabs.* оттуда.
 Метод reload можно использовать для перезагрузки проверяемой страницы. Кроме того, вызывающая сторона может указать переопределение строки пользовательского агента, сценарий, который будет внедрен сразу после загрузки страницы, или опцию принудительной перезагрузки кэшированных ресурсов.
 Используйте вызов getResources и событие onResourceContent , чтобы получить список ресурсов (документов, таблиц стилей, сценариев, изображений и т. д.) на проверяемой странице. Методы getContent и setContent класса Resource вместе с событием onResourceContentCommitted могут использоваться для поддержки изменения содержимого ресурса, например, внешним редактором.
Манифест
Выполнить код в проверяемом окне
 Метод eval предоставляет расширениям возможность выполнять код JavaScript в контексте проверяемой страницы. Этот метод эффективен при использовании в правильном контексте и опасен при неправильном использовании. Используйте метод tabs.executeScript если вам не нужны конкретные функции, предоставляемые методом eval .
 Вот основные различия между методами eval и tabs.executeScript :
-  Метод evalне использует изолированный мир для оцениваемого кода, поэтому состояние JavaScript проверяемого окна доступно коду. Используйте этот метод, когда требуется доступ к состоянию JavaScript проверяемой страницы.
-  Контекст выполнения оцениваемого кода включает API консоли инструментов разработчика . Например, код может использовать inspectи$0.
- Оцененный код может возвращать значение, которое передается в обратный вызов расширения. Возвращаемое значение должно быть допустимым объектом JSON (оно может содержать только примитивные типы JavaScript и ациклические ссылки на другие объекты JSON). Соблюдайте особую осторожность при обработке данных, полученных с проверяемой страницы: контекст выполнения по сути контролируется проверяемой страницей; вредоносная страница может повлиять на данные, возвращаемые в расширение.
Обратите внимание, что страница может включать в себя несколько различных контекстов выполнения JavaScript. Каждый кадр имеет свой собственный контекст, а также дополнительный контекст для каждого расширения, в котором в этом кадре выполняются сценарии содержимого.
 По умолчанию метод eval выполняется в контексте основного фрейма проверяемой страницы.
 Метод eval принимает необязательный второй аргумент, который можно использовать для указания контекста, в котором оценивается код. Этот объект параметров может содержать один или несколько следующих ключей:
-  frameURL
- Используйте, чтобы указать фрейм, отличный от основного фрейма проверяемой страницы.
-  contextSecurityOrigin
- Используйте для выбора контекста внутри указанного фрейма в соответствии с его веб-происхождением .
-  useContentScriptContext
- Если это правда, выполните сценарий в том же контексте, что и сценарии содержимого расширений. (Эквивалентно указанию собственного веб-источника расширения в качестве источника контекстной безопасности.) Это можно использовать для обмена данными со сценарием содержимого.
Примеры
Следующий код проверяет версию jQuery, используемую проверяемой страницей:
chrome.devtools.inspectedWindow.eval(
  "jQuery.fn.jquery",
  function(result, isException) {
    if (isException) {
      console.log("the page is not using jQuery");
    } else {
      console.log("The page is using jQuery v" + result);
    }
  }
);
Чтобы попробовать этот API, установите примеры API devtools из репозитория chrome-extension-samples .
Типы
Resource
Ресурс на проверяемой странице, например документ, скрипт или изображение.
Характеристики
- URLнить URL-адрес ресурса. 
- получить контентпустота Получает содержимое ресурса. Функция getContentвыглядит так:(callback: function) => {...} - перезвонитьфункция Параметр callbackвыглядит так:(content: string, encoding: string) => void - содержаниенить Содержимое ресурса (возможно, закодированное). 
- кодированиенить Пусто, если содержимое не закодировано, в противном случае — имя кодировки. В настоящее время поддерживается только base64. 
 
 
- setContentпустота Устанавливает содержимое ресурса. Функция setContentвыглядит так:(content: string, commit: boolean, callback?: function) => {...} - содержаниенить Новое содержание ресурса. В настоящее время поддерживаются только ресурсы текстового типа. 
- совершитьлогическое значение Значение true, если пользователь завершил редактирование ресурса и новое содержимое ресурса должно сохраниться; false, если это незначительное изменение, отправленное в процессе редактирования пользователем ресурса. 
- перезвонитьфункция необязательна Параметр callbackвыглядит так:(error?: object) => void - ошибкаобъект необязательный Устанавливается в неопределенное значение, если содержимое ресурса было установлено успешно; иначе описывает ошибку. 
 
 
Характеристики
tabId
Идентификатор проверяемой вкладки. Этот идентификатор можно использовать с API chrome.tabs.*.
Тип
число
Методы
eval()
chrome.devtools.inspectedWindow.eval(
expression: string,
options?: object,
callback?: function,
): void
 Оценивает выражение JavaScript в контексте основного фрейма проверяемой страницы. Выражение должно возвращать JSON-совместимый объект, в противном случае будет выдано исключение. Функция eval может сообщать либо об ошибке на стороне DevTools, либо об исключении JavaScript, возникающем во время оценки. В любом случае параметр result обратного вызова undefined . В случае ошибки на стороне DevTools параметр isException имеет ненулевое значение, для isError установлено значение true, а для code установлен код ошибки. В случае ошибки JavaScript isException устанавливается значение true, а value устанавливается строковое значение выброшенного объекта. 
Параметры
- выражениенить Выражение для оценки. 
- параметрыобъект необязательный Параметр options может содержать один или несколько параметров. - фреймURLстрока необязательна Если указано, выражение оценивается в iframe, URL-адрес которого соответствует указанному. По умолчанию выражение оценивается в верхнем фрейме проверяемой страницы. 
- scriptExecutionContextстрока необязательна Хром 107+Оцените выражение в контексте сценария содержимого расширения, соответствующего указанному источнику. Если задано, scriptExecutionContext переопределяет значение true для useContentScriptContext. 
- useContentScriptContextлогическое значение необязательно Оцените выражение в контексте сценария содержимого вызывающего расширения при условии, что сценарий содержимого уже внедрен на проверяемую страницу. В противном случае выражение не оценивается, и обратный вызов вызывается с параметром исключения, установленным для объекта, у которого для поля isErrorустановлено значение true, а для поляcodeустановлено значениеE_NOTFOUND.
 
- перезвонитьфункция необязательна Параметр callbackвыглядит так:(result: object, exceptionInfo: object) => void - результатобъект Результат оценки. 
- исключениеИнформацияобъект Объект, предоставляющий подробную информацию, если при вычислении выражения возникло исключение. - коднить Установите, если ошибка произошла на стороне DevTools до вычисления выражения. 
- описаниенить Установите, если ошибка произошла на стороне DevTools до вычисления выражения. 
- подробностилюбой[] Устанавливается, если ошибка произошла на стороне DevTools до оценки выражения. Содержит массив значений, которые можно подставить в строку описания, чтобы предоставить дополнительную информацию о причине ошибки. 
- isErrorлогическое значение Установите, если ошибка произошла на стороне DevTools до вычисления выражения. 
- isExceptionлогическое значение Установите, если оцененный код создает необработанное исключение. 
- ценитьнить Установите, если оцененный код создает необработанное исключение. 
 
 
getResources()
chrome.devtools.inspectedWindow.getResources(
callback: function,
): void
Получает список ресурсов с проверяемой страницы.
Параметры
reload()
chrome.devtools.inspectedWindow.reload(
reloadOptions?: object,
): void
Перезагружает проверенную страницу.
Параметры
- перезагрузитьОпцииобъект необязательный - игнорировать кэшлогическое значение необязательно Если установлено значение true, загрузчик будет обходить кеш для всех проверяемых ресурсов страницы, загруженных до запуска события load. Эффект аналогичен нажатию Ctrl+Shift+R в проверяемом окне или в окне инструментов разработчика.
- введенный скриптстрока необязательна Если указано, сценарий будет внедрен в каждый кадр проверяемой страницы сразу после загрузки, перед любым из сценариев фрейма. Сценарий не будет внедрен после последующих перезагрузок, например, если пользователь нажмет Ctrl+R. 
- пользовательский агентстрока необязательна Если указано, строка будет переопределять значение HTTP-заголовка User-Agent, отправленного при загрузке ресурсов проверяемой страницы. Эта строка также переопределит значение свойстваnavigator.userAgent, которое возвращается всем сценариям, выполняющимся на проверяемой странице.
 
События
onResourceAdded
chrome.devtools.inspectedWindow.onResourceAdded.addListener(
callback: function,
)
Запускается, когда на проверяемую страницу добавляется новый ресурс.
Параметры
- перезвонитьфункция Параметр callbackвыглядит так:(resource: Resource) => void - ресурс
 
onResourceContentCommitted
chrome.devtools.inspectedWindow.onResourceContentCommitted.addListener(
callback: function,
)
Запускается, когда фиксируется новая версия ресурса (например, пользователь сохраняет отредактированную версию ресурса в Инструментах разработчика).