Пользовательские скрипты преобразуются в расширения Chrome при загрузке. Выполните следующие действия, чтобы создать и поддерживать расширение с тем же идентификатором:
- Установите пользовательский скрипт.
- Посетите
chrome://extensions/
и активируйте режим разработчика.
- Прокрутите вниз до пользовательского сценария и найдите идентификатор:
![Userscript 1.0 Описание идентификатора пользовательского сценария: hjcgfecgldpgebeeflnjldogphkilfdo](https://i.stack.imgur.com/FpDYw.png)
Обратите внимание, что версия вашего пользовательского скрипта — 1.0 (по умолчанию переопределяется через @version
).
- Затем перейдите в каталог расширений вашего профиля пользователя Chrome/Chromium. Пути по умолчанию можно найти здесь. Если вы запускаете Chrome/Chromium с флагом
--user-data-dir=...
, перейдите на страницу ...
.
Когда вы окажетесь внутри каталога, найдите каталог с идентификатором 3.
- Скопируйте весь каталог в другое место, например
/tmp/
или %tmp%
.
- Используйте кнопку «Загрузить распакованное расширение» и выберите первый подкаталог ранее скопированного каталога: Имя этого подкаталога зависит от версии.
- Прокрутите вниз, чтобы увидеть, что преобразованный пользовательский скрипт является настоящим расширением (он загружается!):
![Userscript 1.0 Описание пользователя ID сценария: hjcgfecgldpgebeeflnjldogphkilfdo Загружено из: /tmp/hjcgfecgldpgebeeflnjldogphkilfdo/1.0_0](https://i.stack.imgur.com/Hofld.png)
Хорошо, шаги 6-7 необязательны, они были включены только для того, чтобы показать, что пользовательский скрипт преобразуется в истинное расширение с установленным специальным флагом. Вы также можете заметить красное предупреждение о версии манифеста. Чтобы исправить это, отредактируйте manifest.json
и добавьте "manifest_version": 2,
. Итак, в нашем случае:
...
"converted_from_user_script": true,
"description": "Description of user script",
"key": "eYxnPzfSPtfL3ji4nQX3ujTXpzz3YQ6dVlvHWf1gvW8=",
"name": "Userscript",
"version": "1.0",
"manifest_version": 2
}
Теперь у вас есть расширение Chrome, которое ведет себя как расширение Chrome с некоторым дополнительным вкусом. Следуйте инструкциям из официальной документации, чтобы обновить свой пакет:
Чтобы создать обновленную версию расширения:
- Увеличьте номер версии в
manifest.json
.
- Откройте страницу управления расширениями, перейдя по этому URL-адресу: chrome://extensions.
- Нажмите кнопку Упаковать расширение. Появится диалоговое окно.
- В поле Корневой каталог расширения укажите путь к папке расширения, например,
c:\myext
.
- В поле Файл закрытого ключа укажите расположение уже созданного файла
.pem
для этого расширения, например, c:\myext.pem
.
- Нажмите ОК.
Вы можете использовать панель инструментов разработчика Chrome, чтобы загрузить расширение, которое вы ранее упаковали самостоятельно. Однако, если вы не предпримете специальных шагов, идентификатор расширения в Интернет-магазине Chrome будет отличаться от его идентификатора в созданном вами пакете. Этот другой идентификатор может быть проблемой, если вы распространили свой пакет расширения, поскольку он позволяет пользователям устанавливать несколько версий вашего расширения, каждая со своими локальными данными.
Если вы хотите сохранить идентификатор расширения, выполните следующие действия:
- Переименуйте закрытый ключ, сгенерированный при создании файла
.crx
, в key.pem
.
- Поместите
key.pem
в верхний каталог вашего расширения.
- Сожмите этот каталог в ZIP-файл.
- Загрузите ZIP-файл с помощью панели инструментов разработчика Chrome.
Приложение: Сохранение одного и того же ID в распакованных/упакованных расширениях.
Идентификатор расширения можно контролировать с помощью параметра "key"
в файле манифеста. Самый простой способ иметь одинаковый ID для распакованного и упакованного расширения также указан в документации:
key Это значение можно использовать для управления уникальным идентификатором расширения, приложения или темы при их загрузке во время разработки.
Примечание. Обычно вам не нужно использовать это значение. Вместо этого напишите свой код так, чтобы значение ключа не имело значения, используя относительные пути. и chrome.extension.getURL()
.
Чтобы получить подходящее значение ключа, сначала установите расширение из файла .crx (может потребоваться загрузить ваше расширение или упакуйте его вручную). Затем в своем каталоге пользовательских данных найдите файл Default/Extensions/<extensionId>/<versionString>/manifest.json
. Вы увидите значение ключа, заполненное там.
Если поле key
не существует, оно генерируется случайным образом. Затем из этого ключа генерируется идентификатор расширения. Алгоритм создания extensionID объяснен здесь. В силу особенностей алгоритма вы не можете выполнить его в обратном порядке (extensionID -> key
).
person
Rob W
schedule
02.08.2012