Какое зарезервированное системой свойство используется для установки заголовка окна веб-браузера

Обновлено: 21.11.2024

Microsoft предоставила нам системный зарезервированный раздел (SRP) во всех настольных и серверных версиях Windows, начиная с Windows 7. Сегодня мы рассмотрим поведение SRP в Windows 10. Чтобы выпустить пресловутого кота из мешка, ничего не изменилось в поведение SRP в Windows 10, но я подумал, что нам все равно будет полезно «глубоко погрузиться» в поведение раздела.

Тимоти Уорнер (Timothy Warner) — самый ценный специалист Microsoft по управлению облачными средами и центрами обработки данных (MVP). Он живет в Нэшвилле, штат Теннесси. Посмотрите его обучающие видео по Azure и Windows Server на Pluralsight и свяжитесь с Тимом через Twitter.

  • Взаимодействие с Azure Cosmos DB с помощью PowerShell — вторник, 14 сентября 2021 г.
  • Службы Azure Health: отслеживание сбоев и обслуживания облака Microsoft — среда, 8 сентября 2021 г.
  • Powerline: настройка консоли PowerShell — вторник, 31 августа 2021 г.

Отображение раздела, зарезервированного системой ^

Во время чистой установки Windows 10 создает простой базовый раздел NTFS размером 500 МБ без букв, который, как вы, вероятно, знаете, называется зарезервированным системой разделом. Откройте консоль MMC «Управление дисками» и добавьте букву диска в SRP; без буквы диска мы не можем увидеть раздел в проводнике. На следующем снимке экрана показан интерфейс управления дисками.

Добавьте букву диска, чтобы показать содержимое раздела, зарезервированного системой

Я обнаружил, что моя тестовая система Windows 10 Enterprise Edition отлично работает с буквой диска, в том числе с включенным шифрованием диска BitLocker на моем системном диске. Тем не менее, я настоятельно рекомендую вам повторить мои сегодняшние эксперименты только на нерабочей виртуальной машине.

Отображение SRP в проводнике — это только полдела. Нам также необходимо отредактировать разрешения NTFS тома, чтобы ваша учетная запись пользователя имела как минимум доступ для записи к содержимому диска.

Это сложнее, чем вы думаете, потому что содержимое SRP не наследует разрешения более высокого уровня. Как показано на следующем снимке экрана, щелкните правой кнопкой мыши SRP и выберите «Свойства» в контекстном меню. В открывшемся листе свойств перейдите на вкладку «Безопасность», нажмите «Дополнительно» и попробуйте стать владельцем тома.

При редактировании списка управления доступом обязательно выберите Заменить все дочерние записи разрешений на наследуемые записи разрешений для этого объекта, чтобы хотя бы попытаться принудительно наследовать разрешения во всем томе.

Я не рекомендую изменять разрешения SRP на рабочем компьютере

Анализ содержимого раздела, зарезервированного системой ^

Теперь, когда мы действительно можем просматривать SRP из Проводника Windows 10, мы можем приступить к изучению всего его содержимого. Если вы использовали панель управления параметрами папок для отображения скрытых и системных файлов, то SRP будет содержать следующие элементы:

  • $RECYCLE.BIN: корзина Windows для каждого диска.
  • Boot: расположение базы данных конфигурации загрузки (BCD) в системах на основе BIOS.
  • Восстановление: загрузочный образ среды восстановления Windows (RE)
  • Информация о SystemVolume: папка, используемая для хранения точек восстановления системы.
  • bootmgr: оркестратор процесса загрузки Windows; он заменил NTLDR, использовавшийся в старых версиях Windows
  • BOOTNXT: считается, что этот небольшой загадочный файл используется в параметрах запуска Windows для USB, таких как Windows to Go; см. эту ссылку для получения более подробной информации.
  • BAK: резервная копия загрузочного сектора диска; используется в дисках с основной загрузочной записью (MBR)

Поскольку bootmgr управляет процессом загрузки Windows, а хранилище данных BCD расположено в SRP, мы можем сделать вывод, что системный зарезервированный раздел имеет решающее значение для запуска Windows и поэтому никогда не должен изменяться или удаляться пользователем.

Напоминаем, что мы можем взаимодействовать с BCD с помощью инструмента командной строки BCDEdit, редактора реестра, WMI или сторонних инструментов с графическим интерфейсом, таких как EasyBCD, Visual BCD и других. Я показываю вам системное хранилище BCD моего компьютера с Windows 10, как показано в Visual BCD на следующем изображении.

Такие инструменты, как Visual BCD, позволяют нам взаимодействовать с BCD в графическом формате

Windows RE и шифрование диска BitLocker ^

Я помню «старые недобрые времена», когда любые операции по восстановлению Windows происходили только в среде командной строки, похожей на MS-DOS. Привет, я парень PowerShell и наслаждаюсь мощью командной строки. Тем не менее, мне также нравится простота использования среды восстановления Windows (Windows RE).

Среда восстановления Windows (RE)

Где хранится файл образа Windows RE .wim? Вы уже догадались - SRP! Поскольку в RE мы загружаемся в виртуальный диск RAM, мы можем «зависать» над системным диском, чтобы выполнять любые действия по диагностике и/или восстановлению, которые нам нужны, не беспокоясь о блокировках открытия файлов и тому подобном. Вот представление Windows RE .wim из Проводника Windows 10:

WIM-файл Windows RE

Угадайте, какая еще технология Microsoft использует Windows RE из SRP? Да, шифрование диска BitLocker! Не волнуйтесь; BitLocker не хранит ключи шифрования в SRP. Вместо этого — и я надеюсь, что это интуитивно понятно — BitLocker должен изначально загружаться с несистемного диска, потому что системный диск уже зашифрован с помощью BitLocker.

BitLocker использует раздел, зарезервированный системой, и Windows RE

Заключительные примечания ^

Обратите внимание, что Microsoft System Reserved Partition — это полностью отдельный объект от системного раздела EFI, который используется в системах на основе Unified Extensible Firmware Interface (UEFI).

Подпишитесь на рассылку новостей 4sysops!

Если вы загружаете Windows 10 с UEFI, есть вероятность, что на системном диске используется макет таблицы разделов GUID (GPT) вместо макета основной загрузочной записи (MBR). Сегодня я хочу, чтобы вы сосредоточились на том, что UEFI и BIOS выполняют одну и ту же задачу (нахождение раздела загрузочного диска), но делают это по-разному. Другими словами, BIOS использует загрузочный сектор, а UEFI использует прямые вызовы файлов загрузчика ОС.

Крис Хоффман

Крис Хоффман
Главный редактор

Крис Хоффман – главный редактор How-To Geek. Он писал о технологиях более десяти лет и два года был обозревателем PCWorld. Крис писал для The New York Times и Reader's Digest, давал интервью в качестве эксперта по технологиям на телевизионных станциях, таких как NBC 6 в Майами, и освещал свою работу в новостных агентствах, таких как Би-би-си. С 2011 года Крис написал более 2000 статей, которые были прочитаны почти миллиард раз — и это только здесь, в How-To Geek. Подробнее.

В Windows 7, 8 и 10 при установке на чистый диск создается специальный раздел «Зарезервировано системой». Обычно Windows не присваивает букву диска этим разделам, поэтому вы увидите их только при использовании программы «Управление дисками» или аналогичной утилиты.

Раздел System Reserved появился в Windows 7, поэтому его не было в предыдущих версиях Windows. Раздел также создается в Windows Serer 2008 R2 и более новых серверных версиях Windows.

Что делает раздел, зарезервированный системой?

Раздел System Reserved содержит две важные вещи:

    Диспетчер загрузки и данные конфигурации загрузки: при запуске компьютера диспетчер загрузки Windows считывает данные загрузки из хранилища данных конфигурации загрузки (BCD). Ваш компьютер запускает загрузчик с раздела System Reserved, который, в свою очередь, запускает Windows с вашего системного диска.

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

Когда Windows создает системный зарезервированный раздел

Раздел, зарезервированный системой, занимает 100 МБ места в Windows 7, 350 МБ места в Windows 8 и 500 МБ места в Windows 10. Раздел обычно создается в процессе установки Windows, непосредственно перед тем, как установщик выделяет место. для основного системного раздела.

Можно ли удалить раздел, зарезервированный системой?

Вы действительно не должны возиться с разделом System Reserved — проще и безопаснее просто оставить его в покое.

Windows по умолчанию скрывает раздел, а не создает для него букву диска. Большинство людей никогда не замечают, что у них есть раздел, зарезервированный системой, если они не запускают дисковые инструменты по другим причинам. Раздел System Reserved является обязательным, если вы используете BitLocker или хотите использовать его в будущем.

Запретить создание раздела System Reserved

Если вы действительно не хотите, чтобы этот раздел был на вашем диске (по какой-то причине), в идеале лучше вообще предотвратить его создание. Вместо создания нового раздела в нераспределенном пространстве с помощью установщика Windows вы можете создать новый раздел, занимающий все нераспределенное пространство, с помощью другого инструмента для создания разделов диска перед запуском установки Windows.

Когда придет время, укажите установщику Windows созданный раздел. Установщик Windows признает, что для раздела, зарезервированного системой, нет места, и устанавливает Windows на один раздел. Имейте в виду, что вы по-прежнему не сохраняете все 100 МБ, 350 МБ или 500 МБ, которые занял бы раздел. Вместо этого загрузочные файлы должны быть установлены в основной системный раздел.

Для этого вам потребуется любое программное обеспечение для создания разделов диска, кроме графического в установщике Windows. Однако на самом деле вы можете сделать это из установщика Windows. Просто выполните следующие действия:

  • Нажмите Shift+F10 во время установки Windows, чтобы открыть окно командной строки.
  • Введите diskpart в окно командной строки и нажмите Enter.
  • Создайте новый раздел в нераспределенном пространстве с помощью инструмента diskpart. Например, если у вас есть один диск на компьютере, и он совершенно пуст, вы можете просто ввести select disk 0, а затем создать основной раздел, чтобы выбрать первый диск и создать новый раздел, используя весь объем нераспределенного пространства на диске.
  • Продолжить процесс установки. Выберите созданный ранее раздел, когда вас попросят создать раздел.

Удалить существующий раздел, зарезервированный системой

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

Чтобы удалить раздел, зарезервированный системой, сначала необходимо переместить загрузочные файлы из раздела, зарезервированного системой, на основной системный диск Windows. И это сложнее, чем кажется. Это включает в себя возню с реестром, копирование различных файлов между дисками, обновление хранилища BCD и превращение основного системного диска в активный раздел. В Windows 8 это также включает в себя отключение и повторное включение среды восстановления Windows. Затем вам придется удалить раздел, зарезервированный системой, и увеличить существующий раздел, чтобы освободить место.

Все это возможно, и вы найдете в Интернете различные руководства, которые проведут вас через этот процесс. Однако Microsoft официально не поддерживает этот метод, и мы также не рекомендуем его. Вы получите совсем немного места — меньше нескольких сотен МБ, используемых разделом «Зарезервировано системой», — за счет возможного нарушения работы вашей операционной системы и потери возможности использовать шифрование диска BitLocker.

Для справки, вот почему не следует просто удалять раздел, зарезервированный системой. Мы использовали редактор разделов GParted на живом компакт-диске Ubuntu, чтобы удалить раздел System Reserved, а затем сделали основной системный раздел Windows загрузочным, не пытаясь копировать загрузочные файлы. Мы увидели сообщение о том, что наши данные конфигурации загрузки отсутствуют и что нам придется восстановить наш компьютер с помощью установочного носителя Windows.

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

  • › Как настроить шифрование BitLocker в Windows
  • › В чем разница между GPT и MBR при создании разделов диска?
  • › Почему СМС должен умереть
  • › Худшее, что есть в телефонах Samsung, — это программное обеспечение Samsung.
  • › 5 вещей, которые вы, вероятно, не знали о GIF-файлах
  • › Что такое GrapheneOS и как она делает Android более приватным?
  • › 7 основных функций Microsoft Excel для составления бюджета
  • › Что означает XD и как вы его используете?

В последних версиях Windows существует специальный скрытый раздел, так называемый раздел, зарезервированный системой, для поддержки шифрования полного диска BitLocker, базы данных конфигурации загрузки и среды восстановления Windows (RE). Как мы можем просмотреть этот раздел? Как на самом деле работает содержимое раздела? В этом сообщении блога мы ответим на оба этих вопроса.

Тимоти Уорнер (Timothy Warner) — самый ценный специалист Microsoft по управлению облачными средами и центрами обработки данных (MVP). Он живет в Нэшвилле, штат Теннесси. Посмотрите его обучающие видео по Azure и Windows Server на Pluralsight и свяжитесь с Тимом через Twitter.

  • Взаимодействие с Azure Cosmos DB с помощью PowerShell — вторник, 14 сентября 2021 г.
  • Службы Azure Health: отслеживание сбоев и обслуживания облака Microsoft — среда, 8 сентября 2021 г.
  • Powerline: настройка консоли PowerShell — вторник, 31 августа 2021 г.

Если вы похожи на меня, то вы поддержали пользователей, которые накопили достаточные навыки опытного пользователя Windows, «чтобы быть опасными». Некоторые из этих людей обнаруживают в консоли управления дисками скрытый раздел System Reserved в своей системе и хотят «поэкспериментировать» с ним, полагая, что этот раздел не нужен.

Конечно, те из нас, у кого немного больше опыта, знают, что в большинстве случаев мы не хотим возиться с этим разделом. Однако до этого момента, как бы вы ответили на вопрос «Какова цель раздела, зарезервированного системой?»

Случается, что раздел System Reserved — это небуквенный системный диск, который автоматически создается Windows 7, Windows 8, Windows Server 2008 и Windows Server 2012 во время чистой установки.

В Windows 7 и Windows Server 2008 размер раздела составляет 100 МБ. В Windows 8 и Windows Server 2012 это 350 МБ.

Предусмотрены следующие три важные функции:

  • Загрузить хранилище конфигураций
  • Шифрование диска BitLocker
  • Обновленная версия Windows

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

Просмотр раздела, зарезервированного системой ^

Откройте консоль управления дисками, и вы увидите, почему раздел System Reserved невидим по умолчанию — Windows не связывает букву диска с разделом. Я покажу вам интерфейс ниже:

Вы можете просмотреть раздел System Reserved из DISKPART или консоли управления дисками.

Все, что вам нужно сделать, чтобы просмотреть содержимое раздела, зарезервированного системой, — это прикрепить к диску букву диска. Для этого щелкните раздел правой кнопкой мыши и выберите «Изменить буквы и пути к дискам» в контекстном меню.

Поскольку все содержимое раздела «Зарезервировано системой» скрыто, вам потребуется открыть диалоговое окно «Параметры папки», включить параметр «Показывать скрытые файлы, папки и диски» и отключить параметр «Скрывать защищенные системные файлы» (рекомендуется ) свойство.

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

Выполнив домашнее задание, вы сможете просмотреть содержимое раздела, зарезервированного системой

Вот краткий обзор содержимого файловой системы для конкретного раздела.

  • Boot: эта папка содержит базу данных конфигурации загрузки и вспомогательные файлы.
  • Recovery: эта папка содержит среду Windows RE, которая вызывается в процессе восстановления системы.
  • bootmgr: этот файл отвечает за поиск активного раздела и анализ базы данных конфигурации загрузки для загрузки операционной системы.
  • BOOTNXT: назначение этого файла практически неизвестно. ну почти у всех. Я считаю, что файл имеет отношение к технологии CPU Never eXecute (NX).Дайте мне знать в комментариях, если вы прочитаете или услышите что-то другое.
  • BOOTSECT.BAK: этот файл представляет собой резервную копию загрузочного сектора компьютера, который отвечает за поиск bootmgr и завершение загрузки ОС.

Хранилище данных конфигурации загрузки

Хранилище данных конфигурации загрузки (BCD) появилось в Windows Vista (blech) и коренным образом изменило способ запуска компьютеров Windows. BCD физически представляет собой двоичный файл в том же формате, что и бинарные кусты реестра. Поэтому нам нужен специальный инструмент для просмотра и управления BCD точно так же, как нам нужен редактор реестра для изменения реестра Windows.

Для этого мы можем использовать встроенный инструмент командной строки BCDEdit или стороннюю утилиту, такую ​​как замечательная EasyBCD от NeoSmart Technologies. Я показываю этот интерфейс на рис. 3.

EasyBCD дает вам полный контроль над BCD

Суть, друзья, в том, что BCD и связанные с ним файлы показывают, как система определяет, сколько (и какие) операционных систем присутствуют на фиксированных дисках, где они находятся и как они загружаются при каждом запуске системы.< /p>

Шифрование диска BitLocker ^

Когда вы рассматриваете цель шифрования диска BitLocker, то есть шифрование системного тома вашего компьютера, необходимость раздела System Reserved сразу становится очевидной.

Короче говоря, проверка подлинности перед запуском BitLocker и проверка целостности системы выполняются в разделе System Reserved. В литературе Microsoft раздел, зарезервированный системой, ошибочно называют системным диском.

Обновленная версия Windows ^

Среда восстановления Windows (RE) — это графическая среда устранения неполадок, основанная на среде предустановки Windows (Win PE), которую Microsoft так активно использует в своих корпоративных инструментах развертывания.

Мы можем получить доступ к Windows RE, либо нажав F8 во время запуска системы (значение тайм-аута абсурдно мало, поэтому вам может потребоваться выполнить взлом системы, чтобы настроить более подходящее значение), либо открыв новые параметры расширенного запуска в Windows. 8.

Загрузившись в Windows RE, мы запустили систему с несистемного диска и, следовательно, можем выполнять задачи по устранению неполадок в системном разделе, не опасаясь блокировки файлов и/или проблем с входом пользователя в систему. На следующем снимке экрана я показываю вам большую часть интерфейса Windows RE, где вы можете увидеть, какие задачи диагностики или устранения неполадок возможны.

Интерфейс Windows RE в Windows 8

Конечно, мы можем получить доступ к Windows RE, загрузив компьютер с носителя Windows 8 или Windows Server 2012. Однако наличие двоичных файлов RE в разделе System Reserved значительно упрощает доступ к RE в любое время.

Удаление раздела, зарезервированного системой ^

По моему скромному мнению, вам следует оставить раздел System Reserved в покое. Помимо очевидных вещей (этот раздел содержит загрузочные файлы, ключи BitLocker, среду восстановления и т. д.), правда в том, что раздел невероятно мал — по всей вероятности, вам не нужно восстанавливать 350 МБ пространства.

Эта фиксация не принадлежит ни к одной из веток в этом репозитории и может принадлежать ответвлению за пределами репозитория.

  • Открыть с рабочего стола
  • Просмотреть в необработанном виде
  • Копировать исходное содержимое Копировать необработанное содержимое

Копировать необработанное содержимое

Копировать необработанное содержимое

Оверлей оконных элементов управления для установленных настольных веб-приложений

Статус этого документа

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

Оглавление

Установленные веб-приложения, размещенные во фрейме пользовательского агента (UA), могут объявлять, какой режим отображения браузера лучше всего соответствует потребностям приложения, с помощью элемента display файла манифеста. В настоящее время поддерживается 4 значения, и их поведение в браузерах Chromium описано ниже:

  • полноэкранный режим: используется весь доступный экран, а UA Chrome не отображается. Это реализовано только для мобильных устройств под управлением Android или iOS.
  • автономное : веб-приложение выглядит как отдельное приложение.Строка заголовка включает заголовок приложения, кнопку меню веб-приложения и кнопки управления окном (свернуть, развернуть/восстановить, закрыть).
  • minimal-ui : аналогичен standalone , за исключением того, что он также содержит кнопку «Назад» и «Обновить».
  • браузер: в настоящее время такой же, как и минимальный интерфейс.

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

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

Примеры настольных приложений, настраивающих область строки заголовка

Область строки заголовка настольных приложений настраивается во многих популярных приложениях. Область строки заголовка относится к пространству слева или справа от элементов управления окна (свернуть, развернуть, закрыть и т. д.) и часто содержит заголовок приложения. В Windows эта область может быть настроена разработчиком, и приложения, основанные на Electron, часто освобождают это пространство строки заголовка для часто используемого пользовательского интерфейса, такого как окно поиска, значок профиля, значок нового сообщения и т. д.

Код Visual Studio

Visual Studio Code – это популярный редактор кода, созданный на основе Electron, который поставляется на нескольких настольных платформах.

На этом снимке экрана показано, как VS Code использует строку заголовка, чтобы максимизировать доступное пространство экрана. Они включают имя файла, открытого в данный момент, и структуру меню верхнего уровня в пространстве строки заголовка.

Популярный сервис потоковой передачи музыки Spotify также основан на Electron, и они используют пространство в строке заголовка, чтобы максимизировать пространство экрана, чтобы показать текущую учетную запись пользователя, вошедшего в систему, окно поиска и кнопки вперед/назад, разработанные специально для работы со Spotify.< /p>

Инструмент для совместной работы и общения на рабочем месте Microsoft Teams, также основанный на Electron для переносимости, настраивает строку заголовка аналогично Spotify, предоставляя информацию о пользователе, панель поиска и команд, а также собственные элементы управления навигацией вперед/назад в приложении.

Проблема, которую необходимо решить: область заголовка установленных настольных веб-приложений зарезервирована системой

Сравните приведенные выше примеры популярных настольных приложений с текущим ограничением автономного режима отображения в настольных веб-приложениях на основе Chromium.

  • Стиль строки заголовка, предоставляемой UA, определяется браузером (при участии разработчика с помощью параметров display и theme_color манифеста)
  • Меню с тремя точками отображается рядом с элементами управления окном.

Ни одна из этих областей недоступна для разработчиков приложений. Это проблема, когда

  • недвижимость на экране стоит дороже, когда оконные приложения имеют уменьшенную область просмотра
  • разработчик вынужден выделить еще одну область под строкой заголовка для элементов управления приложением, которые они хотели бы отобразить на видном месте
  • Элементы управления, предоставляемые UA, нельзя стилизовать или скрыть, что лишает разработчика возможности полностью контролировать работу приложения.
  • Предоставьте разработчикам декларативный способ разместить установленное веб-приложение на UA с областью строки заголовка, доступной для их контента.
  • Убедитесь, что доступное для пользователя управление окном приложения поддерживается (как минимум – предоставленные UA элементы управления свертыванием, закрытием и перетаскиванием окна)
  • АП учитывает дизайн оконных элементов управления операционной системы хоста, адаптируясь к цвету/теме приложения.

Решение, предлагаемое в этом объяснении, состоит из нескольких частей

  1. Новый параметр модификатора отображения для манифеста веб-приложения — "window-controls-overlay"
  2. Новые API-интерфейсы для разработчиков, позволяющие запрашивать ограничивающие прямоугольники и другие состояния ПА, предоставляли наложение элементов управления окном, которое будет накладываться на область веб-контента с помощью нового объекта в свойстве window.navigator с именем windowControlsOverlay
  3. Новые переменные среды CSS для определения левого и правого отступов от краев окна: unsafe-area-top-inset-left и unsafe-area-top-inset-right
  4. Стандартный способ для разработчиков определять области системного перетаскивания в своем контенте.

Наложение элементов управления окна на окно без рамки

Чтобы обеспечить максимальную адресуемую область для веб-контента, пользовательский агент (UA) создаст безрамочное окно, удалив все хромированные элементы, предоставленные UA, за исключением наложения элементов управления окном.

Наложение оконных элементов управления позволяет пользователям сворачивать, разворачивать или восстанавливать, а также закрывать приложение, а также обеспечивает доступ к соответствующим элементам управления браузера через меню веб-приложения. В браузерах Chromium, отображаемых на языках с письмом слева направо (LTR), содержимое будет располагаться следующим образом, начиная с левого/внутреннего края оверлея:

Кроме того, есть два сценария, в которых другой контент будет отображаться в оверлее элементов управления окном. Когда они отображаются или скрываются, размер наложения будет изменяться в соответствии с размерами, а для объекта navigator.windowControlsOverlay будет запущено событие геометрического изменения.

  • При запуске установленного веб-приложения источник страницы отображается слева от кнопки с тремя точками на несколько секунд, а затем исчезает.
  • Если пользователь взаимодействует с расширением через меню "Настройки и прочее", значок расширения появится в оверлее слева от кнопки с тремя точками. После выхода из модального диалогового окна значок удаляется из наложения.

Для браузеров Chromium, отображаемых на языках с письмом справа налево (RTL), порядок наложения элементов управления окном будет изменен, и наложение появится в верхнем левом углу клиентской области.

Наложение оконных элементов управления всегда будет находиться поверх Z-последовательности веб-контента и будет принимать все вводимые пользователем данные, не передавая их в веб-контент. См. Система координат.

Если ОС и браузер поддерживают цветную строку заголовка, наложение элементов управления окном будет использовать "theme_color" из манифеста в качестве цвета фона. При наведении курсора и щелчке элементы управления должны соответствовать поведению операционной системы. Если цветная строка заголовка не поддерживается, наложение элементов управления окном будет отображаться в теме, поддерживаемой ОС и браузером.

Желание поместить содержимое в область строки заголовка и использовать наложение для элементов управления окном будет объявлено в манифесте веб-приложения путем добавления модификатора отображения window-controls-overlay и установки автономного режима отображения. Этот модификатор отображения будет игнорироваться на Android и iOS, а также при использовании в сочетании с любыми другими режимами отображения.

Работа с наложением оконных элементов управления

Веб-контент должен учитывать зарезервированную для UA область наложения оконных элементов управления и обеспечивать, чтобы эти области не ожидали взаимодействия с пользователем. Это наложение можно обойти так же, как разработчики обходят выемки на экране телефона.

В примере операционных систем Windows элементы управления окнами отображаются либо в правом верхнем, либо в левом верхнем углу фрейма в зависимости от используемого системного языка:

  • Языки слева направо – кнопка закрытия отображается в правом верхнем углу фрейма.
  • Языки справа налево – кнопка закрытия отображается в левом верхнем углу фрейма.

Ограничивающий прямоугольник и видимость наложения оконных элементов управления должны быть доступны для веб-контента. Эта информация предоставляется разработчику через API-интерфейсы JavaScript и переменные среды CSS.

Чтобы обеспечить видимость и ограничивающий прямоугольник наложения, этот объяснитель предлагает новый объект в свойстве window.navigator с именем windowControlsOverlay .

windowControlsOverlay сделает доступными следующие объекты:

  • getBoundingClientRect(), который вернет DOMRect, представляющий область под наложением оконных элементов управления. Интерактивный веб-контент не должен отображаться под оверлеем.
  • visible логическое значение, определяющее, было ли отрисовано наложение оконных элементов управления

В целях конфиденциальности windowControlsOverlay не будет доступен для фреймов внутри веб-страницы. См. раздел «Соображения о конфиденциальности» ниже

Всякий раз, когда размер наложения изменяется, в объекте navigator.windowControlsOverlay будет запущено событие геометрического изменения, чтобы уведомить клиента о том, что он должен пересчитать макет на основе нового ограничивающего прямоугольника наложения.

Переменные среды CSS

Хотя содержимое строки заголовка и веб-страницы можно оформить с помощью только перечисленных выше API-интерфейсов JavaScript, они не так быстро реагируют, как решение CSS. Это проблематично либо при изменении размера оверлея для размещения исходного текста, либо при заполнении оверлея новым значком расширения, либо при изменении размера окна.

Решение состоит в том, чтобы рассматривать наложение как выемку на экране телефона и располагать область строки заголовка рядом с наложением элементов управления окна "выемка". Положение наложения можно определить с помощью существующей переменной среды CSS safe-area-inset-top для определения высоты и двух новых переменных среды CSS, описывающих левую и правую вставки наложения: unsafe-area-top-inset- лево право . См. приведенный ниже пример кода одного из способов размещения строки заголовка с помощью этих переменных среды CSS.

Мы рассмотрели и отклонили альтернативный подход, в котором вместо этого используются переменные среды CSS для описания безопасной области строки заголовка, title-bar-area-[top/left/bottom/right] . Хотя разработчикам будет проще использовать этот подход "безопасной зоны", чем подход "небезопасной зоны", его будет сложно стандартизировать, учитывая, что это такой нишевый вариант использования (доступен только в установленных веб-приложениях для настольных компьютеров).

Определение перетаскиваемых областей в веб-контенте

Веб-разработчикам потребуется основанный на стандартах способ определения того, какие области их контента в пределах общей области строки заголовка следует рассматривать как перетаскиваемые. Предлагаемое решение заключается в стандартизации существующего свойства CSS: -webkit-app-region .

Браузеры на базе Chromium имеют нестандартное свойство CSS с префиксом -webkit-app-region: drag и -webkit-app-region: no-drag, которое позволяет разработчикам помечать прямоугольные области своего контента как перетаскиваемые. Это свойство используется для полной настройки строки заголовка для приложений на основе Electron, упомянутых здесь.

Согласно документации Electron, выделение текста может случайно произойти в перетаскиваемых областях, поэтому рекомендуется также использовать свойство CSS user-select: none для элемента, чтобы избежать случайного выделения текста.

Оба этих префиксных свойства webkit поставляются в Chromium уже несколько лет и могут быть использованы UA для решения этой проблемы. Это потребует стандартизации свойства app-region через рабочую группу CSS.

Результирующие изменения в браузере

Система координат не будет затронута наложением, хотя содержимое может быть закрыто наложением.

  • Точка (0,0) будет левым верхним углом области просмотра. Эта точка окажется под наложением, если наложение находится в верхнем левом углу.
  • window.innerHeight вернет полную высоту клиентской области, включая область под наложением. В операционных системах, которые не включают границы вокруг окна, window.innerHeight === window.outerHeight
  • На единицы измерения vh и vw это не повлияет. Они по-прежнему будут представлять собой 1/100 высоты/ширины области просмотра, на которую также не влияет наложение.

Диалоговые окна, такие как печать [Ctrl+P] и поиск на странице [Ctrl + F], обычно привязаны к омнибоксу.

Если омнибокс скрыт, установленные веб-приложения привязывают эти элементы к значку слева от трехточечной кнопки "Настройки и другое". Чтобы обеспечить единообразие всех установленных веб-приложений, наложение элементов управления окнами также будет использовать этот шаблон.

Ниже приведен пример того, как эти новые функции можно использовать для создания веб-приложения с настраиваемой строкой заголовка.

В манифесте установите "display": "standalone" и "display_modifiers": ["window-controls-overlay"] . Установите для параметра theme_color желаемый цвет строки заголовка.

Внизу есть две основные области: titleBarContainer и mainContent . Поле titleBar настроено на перетаскивание, а поле поиска внутри настроено на nonDraggable .

Внутри titleBarContainer находится элемент titleBar, представляющий видимую часть области строки заголовка.

Читайте также: