Описание
 Используйте API chrome.app.window для создания окон. Окна имеют опциональную рамку с заголовком и элементами управления размером. Они не связаны ни с одним окном браузера Chrome. Демонстрацию этих возможностей см. в примере состояния окна . 
Типы
AppWindow
Характеристики
- contentWindowОкно Объект JavaScript «window» для созданного дочернего элемента. 
- идентификаторнить Идентификатор, с которым было создано окно. 
- внутренние границыПоложение, размер и ограничения содержимого окна, не включая его оформление. Это свойство впервые появилось в Chrome 36. 
- внешние границыПоложение, размер и ограничения окна, включая его оформление, такое как заголовок и рамка. Это свойство впервые появилось в Chrome 36. 
- ясноВниманиепустота Особое внимание к окну. Функция clearAttentionвыглядит так:() => {...}
- закрыватьпустота Закройте окно. Функция closeвыглядит так:() => {...}
- привлечьВниманиепустота Обратите внимание на окно. Функция drawAttentionвыглядит так:() => {...}
- фокуспустота Сфокусируйте окно. Функция focusвыглядит так:() => {...}
- полноэкранныйпустота Разворачивает окно на весь экран. Пользователь сможет восстановить окно, нажав ESC. Приложение может предотвратить выход из полноэкранного режима при нажатии ESC, запросив разрешение app.window.fullscreen.overrideEscи отменив событие, вызвав .preventDefault() в обработчиках keydown и keyup, например:window.onkeydown = window.onkeyup = function(e) { if (e.keyCode == 27 /* ESC *\/) { e.preventDefault(); } };Обратите внимание, что window.fullscreen()разворачивает всё окно на весь экран, не требуя от пользователя никаких действий. Для перехода в полноэкранный режим также можно использовать API полноэкранного режима HTML5 (подробнее см. в разделе «Веб-API» ).Функция fullscreenвыглядит так:() => {...}
- getBoundsпустота УстаревшийИспользуйте innerBounds или outerBounds. Получите внутренние границы окна как объект ContentBounds.Функция getBoundsвыглядит так:() => {...}- возвращается
 
- скрыватьпустота Скрыть окно. Ничего не делает, если окно уже скрыто. Функция hideвыглядит так:() => {...}
- isAlwaysOnTopпустота Окно всегда сверху? Функция isAlwaysOnTopвыглядит так:() => {...}- возвращаетсябулев 
 
- полноэкранный режимпустота Окно отображается в полноэкранном режиме? Это будет верно, если окно создано в полноэкранном режиме или переведено в полноэкранный режим с помощью API AppWindowили полноэкранного режима HTML5.Функция isFullscreenвыглядит так:() => {...}- возвращаетсябулев 
 
- isMaximizedпустота Развернуто ли окно на весь экран? Функция isMaximizedвыглядит так:() => {...}- возвращаетсябулев 
 
- свернутопустота Окно свернуто? Функция isMinimizedвыглядит так:() => {...}- возвращаетсябулев 
 
- максимизироватьпустота Развернуть окно. Функция maximizeвыглядит так:() => {...}
- минимизироватьпустота Свернуть окно. Функция minimizeвыглядит так:() => {...}
- переместить впустота Не рекомендуется с версии Chrome 43Используйте внешние границы. Переместить окно в положение ( left,top).Функция moveToвыглядит так:(left: number, top: number) => {...} - левыйчисло 
- вершиначисло 
 
- изменить размерпустота Не рекомендуется с версии Chrome 43Используйте внешние границы. Измените размер окна до размера в пикселях: widthxheight.Функция resizeToвыглядит так:(width: number, height: number) => {...} - шириначисло 
- высотачисло 
 
- восстановитьпустота Восстановить окно, выйдя из развернутого, свернутого или полноэкранного состояния. Функция restoreвыглядит так:() => {...}
- setAlwaysOnTopпустота Укажите, должно ли окно отображаться поверх большинства других окон. Требуется разрешение alwaysOnTopWindows.Функция setAlwaysOnTopвыглядит так:(alwaysOnTop: boolean) => {...} - всегда наверхубулев 
 
- setBoundsпустота УстаревшийИспользуйте innerBounds или outerBounds. Установите внутренние границы окна. Функция setBoundsвыглядит так:(bounds: ContentBounds) => {...} - границы
 
- setVisibleOnAllWorkspacesпустота Установите, будет ли окно видимо на всех рабочих пространствах. (Только для платформ, которые это поддерживают). Функция setVisibleOnAllWorkspacesвыглядит так:(alwaysVisible: boolean) => {...} - всегдаВидимыйбулев 
 
- показыватьпустота Показать окно. Ничего не делает, если окно уже видимо. Фокусируется на окне, если focusedустановлен в значение true или опущен.Функция showвыглядит так:(focused?: boolean) => {...} - сосредоточенныйлогическое необязательное 
 
Bounds
Характеристики
- высотачисло Это свойство можно использовать для чтения или записи текущей высоты содержимого или окна. 
- левыйчисло Это свойство можно использовать для чтения или записи текущей координаты X содержимого или окна. 
- maxHeightномер необязательно Это свойство можно использовать для чтения или записи текущей максимальной высоты содержимого или окна. Значение nullозначает «не указано».
- максШиринаномер необязательно Это свойство можно использовать для чтения или записи текущей максимальной ширины содержимого или окна. Значение nullозначает «не указано».
- minHeightномер необязательно Это свойство можно использовать для чтения или записи текущей минимальной высоты содержимого или окна. Значение nullозначает «не указано».
- минШиринаномер необязательно Это свойство можно использовать для чтения или записи текущей минимальной ширины содержимого или окна. Значение nullозначает «не указано».
- вершиначисло Это свойство можно использовать для чтения или записи текущей координаты Y содержимого или окна. 
- шириначисло Это свойство можно использовать для чтения или записи текущей ширины содержимого или окна. 
- setMaximumSizeпустота Установите ограничение максимального размера содержимого или окна. Чтобы снять ограничение, можно задать максимальную ширину или высоту равными null. Значениеundefinedне изменит ограничение.Функция setMaximumSizeвыглядит так:(maxWidth: number, maxHeight: number) => {...} - максШириначисло 
- maxHeightчисло 
 
- setMinimumSizeпустота Установите минимальные ограничения размера содержимого или окна. Чтобы снять ограничение, можно задать минимальную ширину или высоту равными null. Значениеundefinedне изменит ограничение.Функция setMinimumSizeвыглядит так:(minWidth: number, minHeight: number) => {...} - минШириначисло 
- minHeightчисло 
 
- setPositionпустота Установите левую и верхнюю позицию содержимого или окна. Функция setPositionвыглядит так:(left: number, top: number) => {...} - левыйчисло 
- вершиначисло 
 
- setSizeпустота Установите ширину и высоту содержимого или окна. Функция setSizeвыглядит так:(width: number, height: number) => {...} - шириначисло 
- высотачисло 
 
BoundsSpecification
Характеристики
- высотаномер необязательно Высота содержимого или окна. 
- левыйномер необязательно Координата X содержимого или окна. 
- maxHeightномер необязательно Максимальная высота содержимого или окна. 
- максШиринаномер необязательно Максимальная ширина содержимого или окна. 
- minHeightномер необязательно Минимальная высота содержимого или окна. 
- минШиринаномер необязательно Минимальная ширина содержимого или окна. 
- вершинаномер необязательно Координата Y содержимого или окна. 
- ширинаномер необязательно Ширина содержимого или окна. 
ContentBounds
Характеристики
- высотаномер необязательно 
- левыйномер необязательно 
- вершинаномер необязательно 
- ширинаномер необязательно 
CreateWindowOptions
Характеристики
- всегда наверхулогическое необязательное Если задано значение true, окно будет располагаться поверх большинства других окон. Если таких окон несколько, текущее окно, находящееся в фокусе, будет на переднем плане. Требуется разрешение alwaysOnTopWindows. Значение по умолчанию — false.Вызовите setAlwaysOnTop()для окна, чтобы изменить это свойство после создания.
- границыContentBounds необязательный УстаревшийИспользуйте innerBounds или outerBounds. Размер и положение содержимого окна (исключая заголовок). Если также указан идентификатор и окно с таким идентификатором уже отображалось ранее, будут использоваться запомненные границы окна. 
- сосредоточенныйлогическое необязательное Если true, окно будет выделено при создании. Значение по умолчанию — true. 
- рамкастрока | FrameOptions необязательно Тип фрейма: noneилиchrome(по умолчаниюchrome). Дляnoneможно использовать CSS-свойство-webkit-app-regionдля добавления возможности перетаскивания к окну приложения.-webkit-app-region: dragможно использовать для обозначения областей, доступных для перетаскивания.no-dragможно использовать для отключения этого стиля для вложенных элементов.Использование FrameOptionsявляется новинкой в M36.
- логическое необязательное - Если значение true, окно будет создано в скрытом состоянии. Вызовите метод show() для окна, чтобы отобразить его после создания. Значение по умолчанию — false. 
- иконастрока необязательная Хром 54+URL значка окна. Окно может иметь собственный значок, если параметр showInShelf установлен в значение true. URL должен быть глобальным или локальным URL расширения. 
- идентификаторстрока необязательная Идентификатор окна. Он будет использоваться для запоминания размера и положения окна и восстановления этой геометрии при последующем открытии окна с тем же идентификатором. Если окно с заданным идентификатором создаётся при наличии другого окна с таким же идентификатором, фокус будет переведён на текущее открытое окно, а не на новое. 
- внутренние границыBoundsSpecification необязательно Используется для указания начального положения, начального размера и ограничений содержимого окна (за исключением декоративных элементов). Если также указан idи окно с такимidуже отображалось ранее, будут использоваться запомненные границы.Обратите внимание, что расстояние между внутренней и внешней границами определяется операционной системой. Поэтому установка одного и того же свойства bounds для innerBoundsиouterBoundsприведёт к ошибке.Это свойство является новым в Chrome 36. 
- maxHeightномер необязательно УстаревшийИспользуйте innerBounds или outerBounds. Максимальная высота окна. 
- максШиринаномер необязательно УстаревшийИспользуйте innerBounds или outerBounds. Максимальная ширина окна. 
- minHeightномер необязательно УстаревшийИспользуйте innerBounds или outerBounds. Минимальная высота окна. 
- минШиринаномер необязательно УстаревшийИспользуйте innerBounds или outerBounds. Минимальная ширина окна. 
- внешние границыBoundsSpecification необязательно Используется для указания начального положения, начального размера и ограничений окна (включая оформление окна, такое как заголовок и рамка). Если также указан idи окно с такимidуже отображалось ранее, будут использоваться запомненные границы.Обратите внимание, что расстояние между внутренней и внешней границами определяется операционной системой. Поэтому установка одного и того же свойства bounds для innerBoundsиouterBoundsприведёт к ошибке.Это свойство является новым в Chrome 36. 
- изменяемый размерлогическое необязательное Если true, размер окна может изменяться пользователем. Значение по умолчанию — true. 
- showInShelfлогическое необязательное Хром 54+Если установлено значение true, у окна будет собственный значок на полке. В противном случае окно будет сгруппировано на полке с другими окнами, связанными с приложением. Значение по умолчанию — false. Если для showInShelf установлено значение true, необходимо указать идентификатор окна. 
- синглтонлогическое необязательное УстаревшийНесколько окон с одинаковым идентификатором больше не поддерживаются. По умолчанию, если указать идентификатор окна, оно будет создано только в том случае, если другое окно с таким же идентификатором ещё не существует. Если окно с таким же идентификатором уже существует, оно активируется. Если вы хотите создать несколько окон с одинаковым идентификатором, установите для этого свойства значение false. 
- состояниеСостояние необязательное Начальное состояние окна, позволяющее создать его в полноэкранном режиме, развёрнутым на весь экран или свёрнутым. По умолчанию — «нормальное». 
- типWindowType необязательно Chrome 45+ Устарело с Chrome 69Все окна приложений используют тип окна «оболочка». Тип создаваемого окна. 
- видимыйНаВсехРабочихПространствахлогическое необязательное Если это правда и поддерживается платформой, окно будет видно на всех рабочих пространствах. 
FrameOptions
Характеристики
- activeColorстрока необязательная Позволяет задать цвет рамки окна, когда оно активно. Изменение цвета рамки доступно только для рамок типа chrome.Окрашивание рамы возможно только в том случае, если тип рамы — chrome.Окрашивание рамок — нововведение в Chrome 36. 
- цветстрока необязательная Позволяет выбрать цвет рамки. Выбор цвета рамки доступен только для chromeрамки.Окрашивание рамок — нововведение в Chrome 36. 
- неактивныйЦветстрока необязательная Позволяет задать цвет рамки неактивного окна, отличный от цвета активного окна. Изменение цвета рамки доступно только для рамок типа chrome.inactiveColorнеобходимо использовать вместе сcolor.Окрашивание рамок — нововведение в Chrome 36. 
- типстрока необязательная Тип рамки: noneилиchrome(по умолчаниюchrome).Для noneсвойство CSS-webkit-app-regionможно использовать для применения перетаскивания к окну приложения.-webkit-app-region: dragможно использовать для обозначения перетаскиваемых областей.no-dragможно использовать для отключения этого стиля для вложенных элементов.
State
Состояние окна: обычное, полноэкранное, развернутое, свернутое.
Перечисление
 "нормальный"   "полноэкранный"   "максимизированный"   "минимизирован" 
WindowType
Указывает тип создаваемого окна.
Перечисление
 "оболочка"  "панель"
 Тип окна по умолчанию. 
 Окно, управляемое ОС (устарело).
Методы
canSetVisibleOnAllWorkspaces()
chrome.app.window.canSetVisibleOnAllWorkspaces(): boolean
Поддерживает ли текущая платформа отображение окон на всех рабочих пространствах.
Возврат
- булев 
create()
chrome.app.window.create(
url: string,
options?: CreateWindowOptions,
callback?: function,
): Promise<AppWindow>
Размер и положение окна можно задать несколькими способами. Самый простой вариант — вообще ничего не указывать. В этом случае будут использоваться размер и положение по умолчанию, зависящие от платформы.
 Чтобы задать положение, размер и ограничения окна, используйте свойства innerBounds или outerBounds . Внутренние границы не включают оформление окна. Внешние границы включают заголовок и рамку окна. Обратите внимание, что отступ между внутренней и внешней границами определяется операционной системой. Поэтому установка одного и того же свойства для внутренней и внешней границ считается ошибкой (например, установка одновременно innerBounds.left и outerBounds.left ).
Чтобы автоматически запоминать положение окон, можно присвоить им идентификаторы. Если у окна есть идентификатор, этот идентификатор используется для запоминания размера и положения окна при его перемещении или изменении размера. Эти размер и положение затем используются вместо указанных границ при последующем открытии окна с тем же идентификатором. Если вам нужно открыть окно с идентификатором в месте, отличном от запомненного по умолчанию, вы можете сделать его скрытым, переместить в нужное место, а затем отобразить.
Параметры
- URL-адреснить 
- параметрыCreateWindowOptions необязательно 
- перезвонитьфункция необязательна Параметр callbackвыглядит так:(createdWindow: AppWindow) => void - createdWindow
 
Возврат
- Обещание< AppWindow > Хром 117+- Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
current()
chrome.app.window.current(): AppWindow | undefined
 Возвращает объект AppWindow для текущего контекста скрипта (т. е. объекта JavaScript «window»). Его также можно вызвать для дескриптора контекста скрипта другой страницы, например: otherWindow.chrome.app.window.current(). 
Возврат
- AppWindow | не определено 
get()
chrome.app.window.get(
id: string,
): AppWindow | undefined
 Получает AppWindow с заданным идентификатором. Если окна с заданным идентификатором не существует, возвращается значение null. Этот метод появился в Chrome 33. 
Параметры
- идентификаторнить 
Возврат
- AppWindow | не определено 
getAll()
chrome.app.window.getAll(): AppWindow[]
Получает массив всех окон приложений, созданных в данный момент. Этот метод появился в Chrome 33.
Возврат
- AppWindow [] 
События
onBoundsChanged
chrome.app.window.onBoundsChanged.addListener(
callback: function,
)
Срабатывает при изменении размера окна.
Параметры
- перезвонитьфункция Параметр callbackвыглядит так:() => void 
onClosed
chrome.app.window.onClosed.addListener(
callback: function,
)
Срабатывает при закрытии окна. Обратите внимание: прослушивать событие следует из окна, отличного от закрываемого, например, с фоновой страницы. Это связано с тем, что закрываемое окно будет находиться в процессе закрытия на момент срабатывания события, а значит, не все API в контексте скрипта окна будут работоспособны.
Параметры
- перезвонитьфункция Параметр callbackвыглядит так:() => void 
onFullscreened
chrome.app.window.onFullscreened.addListener(
callback: function,
)
 Срабатывает, когда окно разворачивается на весь экран (через API AppWindow или HTML5). 
Параметры
- перезвонитьфункция Параметр callbackвыглядит так:() => void 
onMaximized
chrome.app.window.onMaximized.addListener(
callback: function,
)
Срабатывает при развертывании окна на весь экран.
Параметры
- перезвонитьфункция Параметр callbackвыглядит так:() => void 
onMinimized
chrome.app.window.onMinimized.addListener(
callback: function,
)
Срабатывает при сворачивании окна.
Параметры
- перезвонитьфункция Параметр callbackвыглядит так:() => void 
onRestored
chrome.app.window.onRestored.addListener(
callback: function,
)
Срабатывает при восстановлении окна из свернутого или развернутого состояния.
Параметры
- перезвонитьфункция Параметр callbackвыглядит так:() => void