Описание
 Используйте API chrome.windows для взаимодействия с окнами браузера. С помощью этого API можно создавать, изменять и переупорядочивать окна в браузере.
Разрешения
 При запросе объект windows.Window содержит массив объектов tabs.Tab . Если вам нужен доступ к свойствам url , pendingUrl , title или favIconUrl объекта tabs.Tab , необходимо объявить разрешение "tabs" в манифесте . Например:
{
  "name": "My extension",
  ...
  "permissions": ["tabs"],
  ...
}
Концепции и использование
Текущее окно
 Многие функции в системе расширений принимают необязательный аргумент windowId , который по умолчанию соответствует текущему окну.
Текущее окно — это окно, содержащее код, который выполняется в данный момент. Важно понимать, что оно может отличаться от самого верхнего или активного окна.
 Например, расширение создаёт несколько вкладок или окон из одного HTML-файла, и этот HTML-файл содержит вызов tabs.query() . Текущим окном считается окно, содержащее страницу, выполнившую вызов, независимо от того, какое окно находится сверху.
В случае сервис-воркеров значение текущего окна возвращается к последнему активному окну. В некоторых случаях для фоновых страниц текущее окно может отсутствовать.
Примеры
Чтобы опробовать этот API, установите пример API Windows из репозитория chrome-extension-samples .

Типы
CreateType
Указывает, какой тип окна браузера следует создать. «panel» устарело и доступно только для существующих разрешенных расширений в Chrome OS.
Перечисление
 "нормальный"  "неожиданно возникнуть"  "панель"
 Определяет окно как стандартное. 
 Определяет окно как всплывающее. 
 Определяет окно как панель.
QueryOptions
Характеристики
- заселятьлогическое необязательное Если значение равно true, объект windows.Windowимеет свойствоtabs, содержащее список объектовtabs.Tab. ОбъектыTabсодержат свойстваurl,pendingUrl,titleиfavIconUrlтолько в том случае, если файл манифеста расширения содержит разрешение"tabs".
- Типы оконWindowType [] необязательно Если установлено, возвращаемое свойство windows.Windowфильтруется по типу. Если не установлено, фильтр по умолчанию устанавливается на['normal', 'popup'].
Window
Характеристики
- всегда наверхубулев Будет ли окно всегда отображаться поверх остальных окон. 
- сосредоточенныйбулев Является ли окно в данный момент активным. 
- высотаномер необязательно Высота окна, включая рамку, в пикселях. В некоторых случаях окну может быть не назначено свойство height, например, при запросе закрытых окон через APIsessions.
- идентификаторномер необязательно Идентификатор окна. Идентификаторы окон уникальны в рамках сеанса браузера. В некоторых случаях окну может быть не назначено свойство ID; например, при запросе окон с использованием APIsessionsидентификатор сеанса может присутствовать.
- инкогнитобулев Является ли окно инкогнито. 
- левыйномер необязательно Смещение окна от левого края экрана в пикселях. В некоторых случаях окну может быть не назначено свойство left, например, при запросе закрытых окон из APIsessions.
- sessionIdстрока необязательная Идентификатор сеанса, используемый для уникальной идентификации окна, полученный из API sessions.
- состояниеWindowState необязательно Состояние этого окна браузера. 
- вкладкиTab [] необязательно Массив объектов tabs.Tabпредставляющих текущие вкладки в окне.
- вершинаномер необязательно Смещение окна от верхнего края экрана в пикселях. В некоторых случаях окну может быть не назначено свойство top, например, при запросе закрытых окон из APIsessions.
- типWindowType необязательно Это тип окна браузера. 
- ширинаномер необязательно Ширина окна, включая рамку, в пикселях. В некоторых случаях окну может быть не назначено свойство width, например, при запросе закрытых окон через APIsessions.
WindowState
 Состояние этого окна браузера. В некоторых случаях окну может быть не назначено свойство state , например, при запросе закрытых окон из API sessions . 
Перечисление
 "нормальный"  "минимизирован"  "максимизированный"  "полноэкранный"  "заблокированный-полноэкранный"
 Нормальное состояние окна (не свернутое, не развернутое и не полноэкранное). 
 Свернутое состояние окна. 
 Развернутое состояние окна. 
 Состояние полноэкранного окна. 
 Заблокированное полноэкранное состояние окна. Из этого полноэкранного состояния невозможно выйти действием пользователя, и оно доступно только для расширений из списка разрешённых в Chrome OS.
WindowType
 Это тип окна браузера. В некоторых случаях окну может быть не назначено свойство type , например, при запросе закрытых окон из API sessions . 
Перечисление
 "нормальный"  "неожиданно возникнуть"  "панель"  "приложение"  "devtools"
 Обычное окно браузера. 
 Всплывающее окно браузера. 
 Устарело в этом API. Окно в стиле панели приложения Chrome. Расширения могут видеть только окна своих панелей. 
 Устарело в этом API. Окно приложения Chrome. Расширения могут видеть только окна своих приложений. 
 Окно «Инструменты разработчика».
Характеристики
WINDOW_ID_CURRENT
Значение windowId, представляющее текущее окно .
Ценить
 -2 
WINDOW_ID_NONE
Значение windowId, представляющее отсутствие окна браузера Chrome.
Ценить
 -1 
Методы
create()
chrome.windows.create(
createData?: object,
): Promise<Window | undefined>
Создает (открывает) новое окно браузера с любыми дополнительными размерами, положением или URL-адресом по умолчанию.
Параметры
- createDataобъект необязательный - сосредоточенныйлогическое необязательное Если true, открывается активное окно. Еслиfalse, открывается неактивное окно.
- высотаномер необязательно Высота нового окна в пикселях, включая рамку. Если не указано, по умолчанию используется естественная высота. 
- инкогнитологическое необязательное Должно ли новое окно быть окном в режиме инкогнито. 
- левыйномер необязательно Число пикселей, на которое нужно отстоять от левого края экрана для нового окна. Если не указано, новое окно смещается естественным образом относительно последнего окна в фокусе. Это значение игнорируется для панелей. 
- setSelfAsOpenerлогическое необязательное Chrome 64+Если true, то свойство 'window.opener' вновь созданного окна устанавливается на вызывающую сторону и находится в той же единице связанных контекстов просмотра, что и вызывающая сторона.
- состояниеWindowState необязательно Хром 44+Начальное состояние окна. Состояния minimized,maximizedиfullscreenне могут сочетаться сleft,top,widthилиheight.
- tabIdномер необязательно Идентификатор вкладки для добавления в новое окно. 
- вершинаномер необязательно Число пикселей, на которое нужно отстоять от верхнего края экрана для нового окна. Если не указано, новое окно смещается естественным образом относительно последнего окна в фокусе. Это значение игнорируется для панелей. 
- типCreateType необязательно Указывает, какой тип окна браузера следует создать. 
- URL-адресстрока | строка[] необязательно URL-адрес или массив URL-адресов, которые будут открываться как вкладки в окне. Полные URL-адреса должны включать схему, например, «http://www.google.com», а не «www.google.com». Неполные URL-адреса считаются относительными в расширении. По умолчанию используется страница «Новая вкладка». 
- ширинаномер необязательно Ширина нового окна в пикселях, включая рамку. Если не указано, по умолчанию используется естественная ширина. 
 
Возврат
- Обещание< Окно | не определено> Хром 88+
get()
chrome.windows.get(
windowId: number,
queryOptions?: QueryOptions,
): Promise<Window>
Получает сведения об окне.
Параметры
- windowIdчисло 
- queryOptionsQueryOptions необязательны Хром 88+
Возврат
- Обещание< Окно > Хром 88+
Параметры
- queryOptionsQueryOptions необязательны Хром 88+
Возврат
- Обещание< Окно []> Хром 88+
getCurrent()
chrome.windows.getCurrent(
queryOptions?: QueryOptions,
): Promise<Window>
Получает текущее окно .
Параметры
- queryOptionsQueryOptions необязательны Хром 88+
Возврат
- Обещание< Окно > Хром 88+
getLastFocused()
chrome.windows.getLastFocused(
queryOptions?: QueryOptions,
): Promise<Window>
Возвращает окно, которое было в фокусе последним — обычно это окно «сверху».
Параметры
- queryOptionsQueryOptions необязательны Хром 88+
Возврат
- Обещание< Окно > Хром 88+
remove()
chrome.windows.remove(
windowId: number,
): Promise<void>
Удаляет (закрывает) окно и все вкладки внутри него.
Параметры
- windowIdчисло 
Возврат
- Обещание<void> Хром 88+
update()
chrome.windows.update(
windowId: number,
updateInfo: object,
): Promise<Window>
Обновляет свойства окна. Укажите только те свойства, которые требуется изменить; неуказанные свойства остаются без изменений.
Параметры
- windowIdчисло 
- обновлениеИнформацияобъект - привлечьВниманиелогическое необязательное Если задано true, окно отображается таким образом, чтобы привлечь внимание пользователя к нему, не меняя при этом фокус окна. Эффект сохраняется до тех пор, пока пользователь не переключит фокус на окно. Этот параметр не действует, если окно уже находится в фокусе. Установите значениеfalse, чтобы отменить предыдущий запросdrawAttention.
- сосредоточенныйлогическое необязательное Если true, окно выводится на передний план; не может сочетаться с состоянием «свёрнуто». Еслиfalse, следующее окно в z-порядке выводится на передний план; не может сочетаться с состоянием «на весь экран» или «развёрнуто».
- высотаномер необязательно Высота окна (в пикселях). Это значение игнорируется для панелей. 
- левыйномер необязательно Смещение окна от левого края экрана (в пикселях). Это значение игнорируется для панелей. 
- состояниеWindowState необязательно Новое состояние окна. Состояния «свёрнуто», «развёрнуто» и «на весь экран» нельзя комбинировать со свойствами «слева», «сверху», «ширина» или «высота». 
- вершинаномер необязательно Смещение окна от верхнего края экрана (в пикселях). Это значение игнорируется для панелей. 
- ширинаномер необязательно Ширина окна (в пикселях). Это значение игнорируется для панелей. 
 
Возврат
- Обещание< Окно > Хром 88+
События
onBoundsChanged
chrome.windows.onBoundsChanged.addListener(
callback: function,
)
Срабатывает при изменении размера окна; это событие отправляется только после фиксации новых границ, а не для текущих изменений.
onCreated
chrome.windows.onCreated.addListener(
callback: function,
filters?: object,
)
Срабатывает при создании окна.
Параметры
onFocusChanged
chrome.windows.onFocusChanged.addListener(
callback: function,
filters?: object,
)
 Срабатывает при смене текущего окна в фокусе. Возвращает chrome.windows.WINDOW_ID_NONE , если все окна Chrome потеряли фокус. Примечание: в некоторых оконных менеджерах Linux WINDOW_ID_NONE всегда отправляется непосредственно перед переключением с одного окна Chrome на другое. 
Параметры
- перезвонитьфункция Хром 46+Параметр callbackвыглядит так:(windowId: number) => void - windowIdчисло Идентификатор нового окна, получившего фокус. 
 
- фильтрыобъект необязательный - Типы оконТипОкна [] Условия, которым должен удовлетворять тип удаляемого окна. По умолчанию он удовлетворяет ['normal', 'popup'].
 
onRemoved
chrome.windows.onRemoved.addListener(
callback: function,
filters?: object,
)
Срабатывает при удалении (закрытии) окна.
Параметры
- перезвонитьфункция Хром 46+Параметр callbackвыглядит так:(windowId: number) => void - windowIdчисло Идентификатор удаленного окна. 
 
- фильтрыобъект необязательный - Типы оконТипОкна [] Условия, которым должен удовлетворять тип удаляемого окна. По умолчанию он удовлетворяет ['normal', 'popup'].