Ошибка соединения с установленной программой e Staff Chrome

Обновлено: 23.11.2024

Если в документе не указано иное, методы в API chrome.* являются асинхронными: они возвращаются немедленно, не дожидаясь завершения операции. Если вам нужно знать результат операции, вы передаете в метод функцию обратного вызова. Для получения дополнительной информации посмотрите это видео.

Стабильные API

Информация о выпуске недоступна для API до Chrome 42, выпущенного в начале 2015 года.

Используйте API chrome.accessibilityFeatures для управления специальными возможностями Chrome. Этот API основан на прототипе ChromeSetting API типа для получения и настройки отдельных функций специальных возможностей. Чтобы получить состояния функций, расширение должно запросить разрешение accessibilityFeatures.read. Для изменения состояния функции расширению требуется разрешение accessibilityFeatures.modify. Обратите внимание, что accessibilityFeatures.modify не подразумевает разрешения accessibilityFeatures.read.

Используйте API chrome.action для управления значком расширения на панели инструментов Google Chrome.

Используйте API chrome.alarms, чтобы запланировать запуск кода периодически или в указанное время в будущем.

API chrome.audio позволяет пользователям получать информацию об аудиоустройствах, подключенных к системе, и управлять ими. В настоящее время этот API доступен только в режиме киоска для ChromeOS.

Используйте API chrome.bookmarks для создания, систематизации и других действий с закладками. Также см. раздел «Переопределение страниц», который можно использовать для создания пользовательской страницы диспетчера закладок.

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

Используйте chrome.browsingData API, чтобы удалить данные просмотра из локального профиля пользователя.

Используйте этот API для предоставления сертификатов платформе, которая может использовать эти сертификаты для аутентификации TLS.

Используйте API команд, чтобы добавить сочетания клавиш, которые запускают действия в вашем расширении, например действие для открытия браузера или отправки команды в расширение.

Используйте API chrome.contextMenus для добавления элементов в контекстное меню Google Chrome. Вы можете выбрать, к каким типам объектов будут применяться ваши дополнения контекстного меню, например к изображениям, гиперссылкам и страницам.

API chrome.debugger служит альтернативным транспортом для протокола удаленной отладки Chrome. Используйте chrome.debugger для подключения к одной или нескольким вкладкам для управления сетевым взаимодействием, отладки JavaScript, изменения DOM и CSS и т. д. Используйте tabId Debuggee для таргетинга вкладок с помощью sendCommand и маршрутизации событий по tabId из обратных вызовов onEvent.

Используйте API chrome.declarativeContent для выполнения действий в зависимости от содержимого страницы, не требуя разрешения на чтение содержимого страницы.

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

API Desktop Capture, который можно использовать для захвата содержимого экрана, отдельных окон или вкладок.

Используйте API chrome.devtools.inspectedWindow для взаимодействия с проверяемым окном: получите идентификатор вкладки для проверяемой страницы, оцените код в контексте проверяемого окна, перезагрузите страницу или получите список ресурсов в пределах проверяемого окна. страница.

Используйте API chrome.devtools.panels для интеграции своего расширения в пользовательский интерфейс окна инструментов разработчика: создавайте собственные панели, получайте доступ к существующим панелям и добавляйте боковые панели.

Используйте API chrome.documentScan для обнаружения и извлечения изображений из подключенных сканеров бумажных документов.

Используйте API chrome.dom для доступа к специальным API DOM для расширений

Используйте API chrome.downloads, чтобы программно инициировать, отслеживать, обрабатывать и искать загрузки.

Используйте API chrome.enterprise.deviceAttributes для чтения атрибутов устройства. Примечание. Этот API доступен только для расширений, принудительно установленных в соответствии с корпоративной политикой.

Используйте API chrome.enterprise.hardwarePlatform, чтобы узнать производителя и модель аппаратной платформы, на которой работает браузер. Примечание. Этот API доступен только для расширений, установленных корпоративной политикой.

Используйте API chrome.enterprise.platformKeys для создания ключей и установки сертификатов для этих ключей. Сертификаты будут управляться платформой и могут использоваться для аутентификации TLS, доступа к сети или другим расширением через .

Пространство имен chrome.events содержит распространенные типы, используемые API-интерфейсами, которые отправляют события, чтобы уведомлять вас, когда происходит что-то интересное.

API chrome.extension содержит утилиты, которые можно использовать на любой странице расширения. Он включает поддержку обмена сообщениями между расширением и сценариями его содержимого или между расширениями, как подробно описано в разделе Передача сообщений.

Хром.API extensionTypes содержит объявления типов для расширений Chrome.

Используйте chrome.fileBrowserHandler API, чтобы расширить файловый браузер Chrome OS. Например, вы можете использовать этот API, чтобы пользователи могли загружать файлы на ваш веб-сайт.

Используйте API chrome.fileSystemProvider для создания файловых систем, к которым можно получить доступ из файлового менеджера в Chrome OS.

Используйте chrome.fontSettings API для управления настройками шрифтов Chrome.

Используйте chrome.gcm, чтобы разрешить приложениям и расширениям отправлять и получать сообщения через Google Cloud Messaging Service.

Используйте API chrome.history для работы с записью браузера о посещенных страницах. Вы можете добавлять, удалять и запрашивать URL-адреса в истории браузера. Чтобы заменить страницу истории своей версией, см. раздел Переопределение страниц.

Используйте инфраструктуру chrome.i18n для интернационализации всего приложения или расширения.

Используйте API chrome.identity для получения токенов доступа OAuth2.

Используйте API chrome.idle для обнаружения изменений состояния простоя компьютера.

Используйте API chrome.input.ime для реализации пользовательского IME для Chrome OS. Это позволяет вашему расширению обрабатывать нажатия клавиш, устанавливать композицию и управлять окном-кандидатом.

Используйте chrome.instanceID для доступа к службе идентификатора экземпляра.

Используйте chrome.loginState API для чтения и отслеживания состояния входа в систему.

API chrome.management позволяет управлять списком установленных и запущенных расширений/приложений. Это особенно полезно для расширений, которые переопределяют встроенную страницу быстрого доступа.

Используйте API chrome.notifications для создания расширенных уведомлений с использованием шаблонов и показа этих уведомлений пользователям на панели задач.

API омнибокса позволяет зарегистрировать ключевое слово в адресной строке Google Chrome, также известной как омнибокс.

Используйте API chrome.pageAction, чтобы разместить значки на главной панели инструментов Google Chrome справа от адресной строки. Действия страницы представляют собой действия, которые можно выполнить на текущей странице, но которые не применимы ко всем страницам. Действия страницы отображаются серым цветом, когда они неактивны.

Используйте API chrome.pageCapture, чтобы сохранить вкладку в формате MHTML.

Используйте API chrome.permissions для запроса объявленных необязательных разрешений во время выполнения, а не во время установки, чтобы пользователи понимали, зачем нужны разрешения, и предоставляли только те, которые необходимы.

Используйте API chrome.platformKeys для доступа к клиентским сертификатам, управляемым платформой. Если пользователь или политика предоставляют разрешение, расширение может использовать такой сертификат в своем пользовательском протоколе проверки подлинности. Например. это позволяет использовать сертификаты, управляемые платформой, в сторонних VPN (см. ).

Используйте API chrome.power, чтобы переопределить функции управления питанием системы.

API chrome.printerProvider предоставляет события, используемые диспетчером печати для запроса принтеров, управляемых расширениями, для запроса их возможностей и отправки заданий печати на эти принтеры.

Используйте API chrome.printing для отправки заданий печати на принтеры, установленные на Chromebook.

Используйте API chrome.printingMetrics для получения данных об использовании печати.

Используйте chrome.privacy API, чтобы контролировать использование функций Chrome, которые могут повлиять на конфиденциальность пользователя. Этот API основан на прототипе ChromeSetting типа API для получения и настройки конфигурации Chrome.

Используйте API chrome.proxy для управления настройками прокси-сервера Chrome. Этот API основан на прототипе ChromeSetting типа API для получения и настройки конфигурации прокси-сервера.

Используйте API chrome.scripting для выполнения скрипта в разных контекстах.

Используйте API chrome.search для поиска через поставщика по умолчанию.

Используйте API chrome.sessions для запроса и восстановления вкладок и окон из сеанса просмотра.

Используйте chrome.storage API для хранения, извлечения и отслеживания изменений пользовательских данных.

Используйте API system.cpu для запроса метаданных ЦП.

Используйте API system.display для запроса отображаемых метаданных.

API chrome.system.memory.

Используйте chrome.system.storage API, чтобы запрашивать информацию об устройстве хранения и получать уведомления о подключении и отключении съемного устройства хранения данных.

Используйте API chrome.tabCapture для взаимодействия с медиапотоками вкладок.

Используйте API chrome.tabGroups для взаимодействия с системой группировки вкладок браузера. Вы можете использовать этот API для изменения и изменения порядка групп вкладок в браузере. Чтобы сгруппировать и разгруппировать вкладки или узнать, какие вкладки находятся в группах, используйте API chrome.tabs.

Используйте API chrome.tabs для взаимодействия с системой вкладок браузера. Вы можете использовать этот API для создания, изменения и изменения порядка вкладок в браузере.

Используйте API chrome.topSites для доступа к самым популярным сайтам (то есть наиболее посещаемым сайтам), которые отображаются на странице новой вкладки. К ним не относятся ярлыки, настроенные пользователем.

Используйте API chrome.tts для воспроизведения синтезированного текста в речь (TTS). См. также связанный API, который позволяет расширению реализовать речевой движок.

Используйте API chrome.ttsEngine для реализации механизма преобразования текста в речь (TTS) с помощью расширения. Если ваше расширение регистрируется с помощью этого API, оно будет получать события, содержащие высказывание, которое нужно произнести, и другие параметры, когда какое-либо расширение или приложение Chrome использует API для генерации речи. Затем ваше расширение может использовать любую доступную веб-технологию для синтеза и вывода речи, а также отправлять события обратно вызывающей функции для отчета о состоянии.

API chrome.types содержит объявления типов для Chrome.

API chrome.virtualKeyboard предназначен только для киоска и используется для настройки раскладки виртуальной клавиатуры и поведения в сеансах киоска.

Используйте API chrome.vpnProvider для реализации VPN-клиента.

Используйте API chrome.wallpaper для смены обоев ChromeOS.

Используйте chrome.webNavigation API для получения уведомлений о статусе навигационных запросов в процессе выполнения.

Используйте API chrome.webRequest для наблюдения и анализа трафика, а также для перехвата, блокировки или изменения запросов в процессе выполнения.

Используйте API chrome.windows для взаимодействия с окнами браузера. Вы можете использовать этот API для создания, изменения и перестановки окон в браузере.

Бета-API

Эти API доступны только в каналах Chrome Beta и Dev:

Примечание. Этот API устарел. Вместо этого воспользуйтесь API. Используйте API chrome.declarativeWebRequest для перехвата, блокировки или изменения запросов в процессе выполнения. Это значительно быстрее, потому что вы можете регистрировать правила, которые оцениваются в браузере, а не в движке JavaScript, что снижает задержки при передаче и обеспечивает более высокую эффективность.

API для разработчиков

Эти API доступны только на канале Chrome Dev:

API chrome.automation позволяет разработчикам получать доступ к дереву автоматизации (доступности) для браузера. Дерево похоже на дерево DOM, но показывает только семантику структуры страницы. Его можно использовать для программного взаимодействия со страницей путем проверки имен, ролей и состояний, прослушивания событий и выполнения действий на узлах.

Используйте API chrome.processes для взаимодействия с процессами браузера.

Используйте API chrome.signedInDevices, чтобы получить список устройств, на которых выполнен вход в Chrome с той же учетной записью, что и в текущем профиле.

API приложений платформы

Эти API поддерживают приложения Chrome на всех платформах.

Эти API устарели. Chrome прекратит поддержку приложений Chrome на всех платформах. Узнайте больше о переносе приложения.

Используйте API chrome.app.window для создания окон. В Windows есть необязательный фрейм со строкой заголовка и элементами управления размером. Они не связаны ни с какими окнами браузера Chrome. Демонстрацию этих параметров см. в примере состояния окна.

Используйте тег appview для встраивания других приложений Chrome в свое приложение Chrome. (см. Использование).

API chrome.bluetoothLowEnergy используется для связи с устройствами Bluetooth Smart (Low Energy) с использованием общего профиля атрибутов (GATT).

Используйте API chrome.bluetoothSocket для отправки и получения данных на устройства Bluetooth с использованием подключений RFCOMM и L2CAP.

Используйте chrome.browser API для взаимодействия с браузером Chrome, связанным с текущим приложением и профилем Chrome.

API chrome.clipboard позволяет пользователям получать доступ к данным буфера обмена. Это временное решение для приложений платформы Chromeos, пока не будет доступна альтернатива с открытым веб-сайтом. Он станет устаревшим после того, как станет доступным открытое веб-решение, что может произойти в четвертом квартале 2017 года.

Используйте API chrome.hid для взаимодействия с подключенными устройствами HID. Этот API обеспечивает доступ к операциям HID из контекста приложения. Используя этот API, приложения могут работать как драйверы для аппаратных устройств. Об ошибках, генерируемых этим API, сообщается путем установки и выполнения обычного обратного вызова функции. В этом случае обычные параметры обратного вызова будут неопределенными.

Используйте API chrome.mediaGalleries для доступа к медиафайлам (аудио, изображения, видео) с локальных дисков пользователя (с согласия пользователя).

Используйте chrome.serial API для чтения и записи на устройство, подключенное к последовательному порту.

Используйте API chrome.socket для отправки и получения данных по сети с использованием подключений TCP и UDP. Примечание. Начиная с Chrome 33, этот API устарел, вместо него используются API , и.

Используйте API chrome.sockets.tcp для отправки и получения данных по сети с помощью соединений TCP. Этот API заменяет функциональные возможности TCP, ранее существовавшие в API chrome.socket.

Используйте chrome.sockets.tcpServer API для создания серверных приложений, использующих соединения TCP. Этот API заменяет функциональные возможности TCP, ранее существовавшие в API chrome.socket.

Используйте API chrome.sockets.udp для отправки и получения данных по сети с использованием соединений UDP. Этот API заменяет функции UDP, которые ранее были в API "сокетов".

Используйте API chrome.syncFileSystem для сохранения и синхронизации данных на Google Диске.Этот API НЕ предназначен для доступа к произвольным пользовательским документам, хранящимся на Google Диске. Он предоставляет синхронизируемое хранилище для конкретного приложения для использования в автономном режиме и кэширования, чтобы одни и те же данные могли быть доступны для разных клиентов. Прочтите раздел «Управление данными», чтобы узнать больше об использовании этого API.

Используйте тег webview для активной загрузки контента из Интернета по сети и встраивания его в приложение Chrome. Ваше приложение может управлять внешним видом веб-представления и взаимодействовать с веб-контентом, инициировать навигацию по встроенной веб-странице, реагировать на события ошибок, которые происходят внутри нее, и многое другое (см. Использование).

Если вы получаете сообщение об ошибке при попытке загрузить и установить Google Chrome, попробуйте эти исправления.

Исправить большинство ошибок установки

Получить справку по конкретному сообщению об ошибке

Если вы впервые устанавливаете приложение и получаете одну из этих ошибок, сообщите об этой проблеме на справочном форуме Chrome.

Если вы получаете сообщение об ошибке после установки приложения:

  1. Откройте Microsoft Fix it.
  2. Нажмите "Загрузить".
  3. Запустите программу.
  4. Следуйте инструкциям, чтобы решить проблему.

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

Чтобы устранить проблему, добавьте брандмауэр, антивирусное программное обеспечение или прокси-сервер в список исключений программного обеспечения безопасности. Если вы используете брандмауэр Windows, выполните следующие действия:

  1. На компьютере с ОС Windows откройте меню "Пуск": или .
  2. Откройте приложение "Параметры Windows".
  3. В поле поиска "Найти параметр" введите Брандмауэр.
  4. Нажмите Разрешить приложение через брандмауэр Windows.
  5. Нажмите "Изменить настройки".
  6. Нажмите «Разрешить другое приложение».
  7. В верхней части окна "Обзор" введите %ProgramFiles(x86)%\Google\Update.
  8. Найдите и выберите папку с наибольшим номером.
  9. Нажмите GoogleUpdate.exeДобавить.

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

Если вы не можете подключиться из-за неподдерживаемого прокси-сервера

Проверьте, используете ли вы поддерживаемый прокси-сервер:

  • Согласовать схему аутентификации, включая Kerberos и NTLM.
  • Прокси, использующие «встроенную аутентификацию», если человеку разрешено использовать этот прокси.

Если на компьютере не запускается фоновая интеллектуальная служба передачи (BITS)

Убедитесь, что BITS включен:

  1. На компьютере с ОС Windows откройте меню "Пуск": или .
  2. Нажмите Панель управленияСистема и безопасностьИнструменты администрированияСлужбы.
    • Если вы используете Windows 10, щелкните Система WindowsПанель управленияСистема и безопасностьИнструменты администрированияСлужбы.
  3. Щелкните правой кнопкой мыши Фоновую интеллектуальную службу передачи.
  4. Нажмите "Свойства".
  5. На вкладке «Общие» проверьте, установлен ли для параметра «Тип запуска» значение «Автоматический (отложенный запуск)», «Автоматический» или «Вручную». Убедитесь, что этот параметр не отключен.

Если у вас по-прежнему возникают проблемы, проверьте, можете ли вы редактировать C:\Documents and Settings\All Users\Application Data\Microsoft\Network\Downloader\

Чтобы получить доступ к редактированию:

  1. Щелкните папку правой кнопкой мыши.
  2. Выберите свойства.
  3. В разделе "Общие" включите параметр "Только для чтения".
  4. Нажмите "ОК".

Если вы не можете установить флажок, обратитесь к системному администратору.

  1. Выключите S-режим на своем компьютере. Чтобы узнать о S-режиме и о том, как установить Chrome, перейдите в Справочный центр Microsoft. для Chrome.
  2. При появлении запроса нажмите «Выполнить» или «Сохранить».
  3. Если вы выбрали «Сохранить», дважды щелкните загруженный файл, чтобы начать установку.
  4. Запустите Chrome:
    • Windows 7: после завершения всех действий открывается окно Chrome.
    • Windows 8 и 8.1: появляется диалоговое окно приветствия. Нажмите «Далее», чтобы выбрать браузер по умолчанию.
    • Windows 10: после выполнения всех действий открывается окно Chrome. Вы можете сделать Chrome браузером по умолчанию.
  1. На компьютере с ОС Windows откройте меню "Пуск": или .
  2. Нажмите "Выполнить".
  3. В окне "Выполнить" введите regedit .
  4. Нажмите OKДа.
  5. В окне «Редактор реестра» откройте раздел HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Google\Update\Clients.
    • Если вы не видите приложение под этим ключом, попробуйте найти HKEY_LOCAL_MACHINE\SOFTWARE\Google\Update\Clients .
  6. Нажмите правой кнопкой мыши 430FD4D0-B729-4F61-AA34-91526481799D .
  7. Нажмите "Удалить".
  8. Закройте «Редактор реестра».
  9. Переустановите Chrome.

Если вам нужна помощь, обратитесь к системному администратору.

Ваш системный диск заполнен. Чтобы это исправить, освободите место на системном диске (обычно на диске C).

GoogleCrashHandler.exe отправляет информацию о сбоях в Google, когда они затрагивают ваши приложения Google.

Если вы не хотите отправлять информацию о сбоях в Google, отключите отправку статистики использования вашего компьютера.

Для получения дополнительной информации посетите Справочный центр продукта.

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

На вашем компьютере уже установлен Google Chrome. Будет запущена версия Chrome, которая у вас уже есть.

Если вы хотите использовать другую версию Chrome, удалите Google Chrome, а затем снова загрузите и установите его.

Чтобы проверить, являетесь ли вы администратором:

  1. На компьютере с ОС Windows откройте меню "Пуск": или .
  2. Нажмите "Выполнить".
  3. Введите контрольные пароли пользователей2
  4. Нажмите "ОК".
  5. Проверьте, есть ли в вашем имени пользователя «Группа администраторов».

Чтобы получить доступ администратора, обратитесь к системному администратору.

Если у вас возникли проблемы с установкой Chrome на компьютер, вы можете увидеть следующие ошибки:

  • Ошибка 4. На компьютере уже установлена ​​более новая версия Chrome.
  • Ошибки 7, 12, 13, 35, 57, 102, 103: установка не удалась по неизвестным причинам.
  • Ошибка 31: не удалось переустановить Chrome.

Попробуйте возможные исправления ниже.

Шаг 1. Проверьте, достаточно ли места на вашем компьютере

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

Шаг 2. Отключите антивирусное ПО

Некоторые антивирусные программы могут препятствовать установке Google Chrome на компьютер.

Если вы не можете установить Google Chrome с выключенным антивирусным ПО, возможно, вам потребуется обновить антивирусное ПО.

Шаг 3. Загрузите Chrome еще раз

Если вы не можете выполнить эти шаги, обратитесь к системному администратору.

Если при установке или обновлении приложения возникает ошибка, вот как получить помощь:

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

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

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

Что вы узнаете

  • Как добавить базового сервисного работника в существующий проект.
  • Как имитировать автономный режим, а также проверять и отлаживать сервис-воркер с помощью Chrome DevTools.
  • Простая стратегия автономного кэширования.

Что вам понадобится

  • Chrome 52 или более поздней версии.
  • Основное понимание Promises, Git и Chrome DevTools.
  • Пример кода.
  • Текстовый редактор.
  • Локальный веб-сервер. Если вы хотите использовать веб-сервер, описанный в этой лаборатории кода, вам необходимо установить Python в вашей командной строке.

Получить пример кода

Клонируйте репозиторий GitHub из командной строки через SSH:

Запустите пример приложения

Во-первых, давайте посмотрим, как выглядит готовый пример приложения (подсказка: оно великолепно).

Убедитесь, что вы находитесь на правильной (последней) ветке, просмотрев главную ветку.

В этом репозитории есть одна основная папка "app". Эта папка содержит статические ресурсы (HTML, CSS и JavaScript), которые вы будете использовать в этом проекте.

Откройте сайт в Chrome. Вы должны увидеть:

Протестируйте приложение

Нажмите на гудок. Он должен издавать звук.

Теперь вы смоделируете переход в автономный режим с помощью Chrome DevTools.

Откройте DevTools, перейдите на панель приложений и установите флажок "Не в сети". На снимке экрана ниже указатель мыши находится над флажком.

После установки флажка обратите внимание на значок предупреждения (желтый треугольник с восклицательным знаком) рядом с вкладкой панели "Сеть". Это означает, что вы не в сети.

Чтобы подтвердить, что вы не в сети, перейдите на https://google.com. Вы должны увидеть сообщение Chrome об ошибке "нет подключения к Интернету".

Теперь вернитесь к своему приложению. Хотя вы не в сети, страница все равно должна полностью перезагрузиться. Вы должны быть в состоянии использовать рожок по-прежнему.

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

Создайте начальное приложение

Теперь вы собираетесь удалить всю автономную поддержку из приложения и узнаете, как использовать сервис-воркер, чтобы вернуть автономную поддержку обратно в приложение

Проверьте "сломанную" версию приложения, в которой не реализован сервис-воркер.

Вернитесь на панель приложений DevTools и снимите флажок "Не в сети", чтобы снова подключиться к сети.

Запустите страницу. Приложение должно работать должным образом.

Теперь используйте DevTools, чтобы снова имитировать автономный режим (установив флажок "Автономный режим" на панели приложений). Берегись! Если вы мало что знаете о сервис-воркерах, вы можете столкнуться с неожиданным поведением.

Что вы ожидаете увидеть? Что ж, поскольку вы находитесь в автономном режиме и поскольку в этой версии приложения нет сервисного работника, вы ожидаете увидеть типичное сообщение об ошибке "нет подключения к Интернету" от Chrome.

Но то, что вы видите на самом деле. полнофункциональное автономное приложение!

Что случилось? Вспомните, когда вы начинали эту лабораторную работу, вы пробовали законченную версию приложения. Когда вы запускали эту версию, приложение фактически устанавливало сервис-воркер. Этот сервис-воркер теперь автоматически запускается каждый раз, когда вы запускаете приложение. После того, как сервис-воркер установлен в области, такой как localhost:3000 (вы узнаете больше об области в следующем разделе), этот сервис-воркер автоматически запускается каждый раз, когда вы получаете доступ к области, если только вы не удалите его программно или вручную.

Чтобы исправить это, перейдите на панель приложений DevTools, щелкните вкладку Service Workers, а затем нажмите кнопку Unregister. На скриншоте ниже мышь наведена на кнопку.

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

Зарегистрируйте сервис-воркера на сайте

Пришло время снова добавить в приложение автономную поддержку. Он состоит из двух шагов:

  1. Создайте файл JavaScript, который будет исполнителем службы.
  2. Укажите браузеру зарегистрировать файл JavaScript в качестве "сервисного работника".

Сначала создайте пустой файл с именем sw.js и поместите его в папку /app.

Местонахождение сервисного работника важно! Из соображений безопасности сервис-воркер может управлять только теми страницами, которые находятся в том же каталоге или его подкаталогах. Это означает, что если вы поместите файл сервис-воркера в каталог scripts, он сможет взаимодействовать только со страницами в каталоге scripts или ниже.

Теперь откройте index.html и добавьте следующий код в конец файла .

Сценарий проверяет, поддерживает ли браузер сервис-воркеры. Если это так, то он регистрирует наш в настоящее время пустой файл sw.js как сервис-воркер, а затем входит в консоль.

Прежде чем снова запустить сайт, вернитесь в DevTools и посмотрите на вкладку Service Workers на панели Application. В настоящее время он должен быть пустым, что означает, что на сайте не установлены сервис-воркеры.

Убедитесь, что флажок "Не в сети" в DevTools отключен. Перезагрузите страницу еще раз. Когда страница загружается, вы можете видеть, что сервис-воркер зарегистрирован.

Рядом с меткой Source вы можете увидеть ссылку на исходный код зарегистрированного сервисного работника.

Если вы когда-нибудь захотите проверить текущий установленный сервис-воркер для страницы, нажмите на ссылку. Это покажет вам исходный код работника службы на панели «Источники» DevTools. Например, щелкните ссылку сейчас, и вы должны увидеть пустой файл.

Установите ресурсы сайта

Если сервис-воркер зарегистрирован, при первом переходе пользователя на страницу инициируется событие установки. В этом событии вы хотите кэшировать ресурсы страницы.

Добавьте следующий код в sw.js.

Первая строка добавляет полифил Cache. Этот полифилл уже включен в репозиторий. Нам нужно использовать полифил, потому что Cache API еще не полностью поддерживается во всех браузерах. Далее идет прослушиватель событий установки.Прослушиватель событий установки открывает объект caches, а затем заполняет его списком ресурсов, которые мы хотим кэшировать. Одна важная особенность операции addAll заключается в том, что это либо все, либо ничего. Если один из файлов отсутствует или не может быть извлечен, вся операция addAll завершается сбоем. Хорошее приложение справится с этим сценарием.

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

Часто задаваемые вопросы

  • Где полифилл?
  • Зачем нужен полифилл?
  • В настоящее время Chrome и другие браузеры еще не полностью поддерживают метод addAll (примечание: Chrome 46 будет совместим).
  • Почему у вас ?homescreen=1

URL-адреса с параметрами строки запроса обрабатываются как отдельные URL-адреса и должны кэшироваться отдельно.

Перехватывать запросы веб-страницы

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

Первый шаг — прикрепить обработчик события к событию выборки. Это событие запускается для каждого сделанного запроса.

Добавьте следующий код в конец файла sw.js, чтобы регистрировать запросы, сделанные с родительской страницы.

Давайте проверим это. Берегись! Вы скоро увидите неожиданное поведение сервис-воркера.

Откройте DevTools и перейдите на панель приложений. Флажок Offline должен быть отключен. Нажмите клавишу Esc, чтобы открыть ящик консоли в нижней части окна DevTools. Ваше окно DevTools должно выглядеть примерно так, как показано на следующем снимке экрана:

Обновите страницу и снова посмотрите в окно DevTools. Во-первых, мы ожидаем увидеть множество запросов, зарегистрированных в консоли, но этого не происходит. Во-вторых, на панели Service Worker мы видим, что статус изменился:

В статусе указан новый сервисный работник, ожидающий активации. Это должен быть новый сервис-воркер, включающий только что внесенные изменения. Итак, по какой-то причине старый сервис-воркер, который мы установили (который был просто пустым файлом), все еще контролирует страницу. Если вы нажмете ссылку sw.js рядом с Source, вы сможете убедиться, что старый сервис-воркер все еще работает.

Такое поведение предусмотрено дизайном. Ознакомьтесь со статьей Обновление сервис-воркера, чтобы узнать больше о жизненном цикле сервис-воркера.

Чтобы устранить это неудобство, установите флажок Обновлять при перезагрузке.

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

Перезагрузите страницу сейчас, и вы увидите, что новый сервис-воркер установлен и что URL-адреса запросов регистрируются в консоли, как и ожидалось.

Теперь вам нужно решить, что делать со всеми этими запросами. По умолчанию, если вы ничего не делаете, запрос передается в сеть, а ответ возвращается на веб-страницу.

Чтобы ваше приложение работало в автономном режиме, вам необходимо получить запрос из кеша, если он доступен.

Обновите прослушиватель событий выборки, чтобы он соответствовал приведенному ниже коду.

Метод event.respondWith() сообщает браузеру, что нужно оценить результат события в будущем. caches.match(event.request) принимает текущий веб-запрос, вызвавший событие выборки, и ищет в кеше соответствующий ресурс. Сопоставление выполняется путем просмотра строки URL. Метод match возвращает обещание, которое разрешается, даже если файл не найден в кеше. Это означает, что у вас есть выбор того, что вы делаете. В вашем простом случае, когда файл не найден, вы просто хотите получить его из сети и вернуть в браузер.

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

Поздравляем!

Теперь у вас есть автономная поддержка.Перезагрузите свою страницу, пока вы все еще в сети, чтобы обновить сервис-воркер до последней версии, а затем используйте DevTools, чтобы перейти в автономный режим. Перезагрузите страницу еще раз, и у вас должен быть полнофункциональный автономный звуковой сигнал!

Что мы рассмотрели

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

Дальнейшие шаги

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

Подробнее

Нашли проблему или хотите оставить отзыв?

Помогите нам улучшить наши лаборатории кода, отправив сообщение об ошибке сегодня. И спасибо!

Если не указано иное, содержимое этой страницы предоставляется по лицензии Creative Commons Attribution 4.0, а образцы кода — по лицензии Apache 2.0. Подробнее см. в Правилах сайта Google Developers. Java является зарегистрированным товарным знаком Oracle и/или ее дочерних компаний.

Краткое руководство по устранению ошибки Chrome «Этот сайт не может обеспечить безопасное соединение» или «ERR_SSL_PROTOCOL_ERROR».

Если Google Chrome — это ваше окно в мир Интернета, вы должны хотя бы раз сталкиваться с ошибкой «Этот сайт не может обеспечить безопасное соединение» или с сообщением ERR_SSL_PROTOCOL_ERROR. Разочаровывающая вещь в этой ошибке (на самом деле семейство ошибок) заключается в том, что в большинстве случаев за ней нет легко различимой причины. Ошибки SSL могут появляться как на самых популярных, так и на наименее популярных сайтах. Черт возьми, я получил один здесь, на нашем веб-сайте, и я могу заверить вас, что наша конфигурация SSL/TLS соответствует требованиям.

Как мы только что обсуждали, причину, по которой Google иногда говорит: «Этот сайт не может обеспечить безопасное соединение», почти невозможно свести к одной единственной причине. Это может быть что угодно, от такой тривиальной проблемы, как неправильная системная дата, до гораздо более сложных проблем с сервером — это может быть что угодно.

Давайте ненадолго оставим в стороне диагностическую часть и сосредоточимся на том, ради чего вы здесь – на лечении.

Вот краткое руководство по устранению неполадок ERR_SSL_PROTOCOL_ERROR в Google Chrome. Если один не работает, попробуйте следующий. Рано или поздно вы сможете избавиться от этой проблемы.

Исправьте ERR_SSL_PROTOCOL_ERROR, установив правильную дату и время

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

По теме: Защитите свой домен и поддомены с помощью подстановочного сертификата RapidSSL.

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

Исправьте ERR_SSL_PROTOCOL_ERROR, очистив данные браузера Chrome

От одного очевидного решения к другому.

Исправьте ERR_SSL_PROTOCOL_ERROR, очистив состояние SSL

Если ни один из вышеперечисленных способов не работает, вам следует попробовать очистить состояние SSL. Для этого выполните следующие действия:

  1. Сначала перейдите в раздел "Настройка и управление Google Chrome" — три точки, которые вы видите прямо под кнопкой X (закрыть).
  2. Теперь нажмите "Настройки".
  3. Прокрутите страницу вниз и откройте Дополнительные настройки.
  4. Перейдите к Открыть настройки прокси, прокрутив вниз или выполнив поиск в строке поиска.
  5. Откроется окно «Свойства обозревателя».
  6. Перейдите в окно "Содержимое" и нажмите кнопку "Очистить состояние SSL".

Исправить ERR_SSL_PROTOCOL_ERROR, отключив протокол QUIC

Мы не обязательно рекомендуем это, но было доказано, что это работает в некоторых неясных случаях, поэтому мы помещаем его в список.

Исправьте ERR_SSL_PROTOCOL_ERROR, проверив настройки антивируса

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

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

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

Примечание редактора. Как правило, причина, по которой антивирусная программа вызывает тревогу о подключении SSL/TLS, заключается в том, что сервер пытается согласовать подключение с использованием устаревшей или уязвимой версии SSL или TLS, такой как SSL 3.0. или TLS 1.0. Как мы писали в подобных статьях с советами, не вмешивайтесь в свой антивирус и не уменьшайте настройки версии TLS, чтобы приспособиться к плохой конфигурации SSL/TLS веб-сайта. Риски намного перевешивают выгоды.

Исправить ERR_SSL_PROTOCOL_ERROR, включив все версии SSL/TLS — последнее средство

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

Когда вы посещаете веб-сайт с поддержкой SSL, он использует протоколы SSL/TLS для связи с сервером. Иногда версия веб-сайта SSL/TLS может быть несовместима с вашей версией Chrome, поскольку Chrome по умолчанию не разрешает запуск устаревших протоколов SSL/TLS. Поэтому вам необходимо изменить эти настройки протокола SSL/TLS. Вот как это сделать:

  1. Нажмите на три точки в правом верхнем углу Chrome и выберите "Настройки".
  2. Теперь прокрутите вниз и перейдите в Дополнительные настройки.
  3. Найдите настройки прокси-сервера и откройте их.
  4. Нажмите "Дополнительно".
  5. Прокрутите вниз, пока не появится раздел "Безопасность". Теперь убедитесь, что вы проверили все версии SSL и TLS.
  6. Нажмите "Применить".
  7. Перезапустите Chrome.

Примечание редактора. Опять же, считайте это предложение чисто академическим. Все основные браузеры объявили о планах отключить поддержку всех предыдущих версий TLS, за исключением TLS 1.2 и недавно опубликованной TLS 1.3. Это делается из соображений безопасности. Не включайте поддержку устаревших версий TLS и SSL с известными уязвимостями. Ни одна законная организация не будет просить вас нарушить настройки безопасности вашего браузера для взаимодействия с ее веб-сайтом.

Мы надеемся, что это руководство помогло вам исправить сообщения ERR_SSL_PROTOCOL_ERROR или «Этот сайт не может обеспечить безопасное соединение» в Chrome. А если это не так, поделитесь своими проблемами в разделе комментариев, и мы постараемся помочь вам с этим.

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