From 74f1c3c85cf4f0ff1cc631d1320ed90c404c6ed7 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Sun, 11 Jul 2021 13:02:49 -0400 Subject: delete conflicting/orphaned docs in ru (#1426) --- .../index.html" | 275 --------------------- .../index.html" | 26 -- .../index.html" | 16 -- 3 files changed, 317 deletions(-) delete mode 100644 "files/ru/orphaned/\321\201\320\276\320\267\320\264\320\260\320\275\320\270\320\265_\321\200\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217/index.html" delete mode 100644 "files/ru/orphaned/\321\201\320\276\320\267\320\264\320\260\320\275\320\270\320\265_\321\200\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217/\320\275\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260_firefox_\320\264\320\273\321\217_\321\200\320\260\320\267\321\200\320\260\320\261\320\276\321\202\320\272\320\270/index.html" delete mode 100644 "files/ru/orphaned/\321\201\320\276\320\267\320\264\320\260\320\275\320\270\320\265_\321\200\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217/\320\275\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260_firefox_\320\264\320\273\321\217_\321\200\320\260\320\267\321\200\320\260\320\261\320\276\321\202\320\272\320\270_\321\200\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\271/index.html" (limited to 'files/ru/orphaned/создание_расширения') diff --git "a/files/ru/orphaned/\321\201\320\276\320\267\320\264\320\260\320\275\320\270\320\265_\321\200\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217/index.html" "b/files/ru/orphaned/\321\201\320\276\320\267\320\264\320\260\320\275\320\270\320\265_\321\200\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217/index.html" deleted file mode 100644 index 90197c6d9a..0000000000 --- "a/files/ru/orphaned/\321\201\320\276\320\267\320\264\320\260\320\275\320\270\320\265_\321\200\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217/index.html" +++ /dev/null @@ -1,275 +0,0 @@ ---- -title: Создание расширения -slug: orphaned/Создание_расширения -tags: - - Extensions -original_slug: Создание_расширения ---- -

Введение

- -

Этот краткий курс касается построения простейшего расширения для Firefox, которое будет добавлять в строку статуса надпись "Hello, World!".

- -
Примечание: Расширение создаваемое в этой статье не будет работать в версиях Firefox в которых нет статичной строки состояния (Firefox 4 и выше). Более релевантную статью вы можете найти в руководстве Школьный учебник по XUL в разделе Приступая к работе с расширениями Firefox.
- -

Что нужно знать для начала работы

- -

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

- -

Создание проекта расширения

- -

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

- -
/myExtension:
-              /install.rdf
-              /components/*
-              /defaults/
-              /defaults/preferences/*.js
-              /plugins/*
-              /chrome.manifest
-              /chrome/icons/default/*
-              /chrome/
-              /chrome/content/
-
- -

Впрочем, в вашем расширении необязательно должны быть все эти папки. Сейчас мы создадим схожий каркас для нашего расширения. Для начала создадим папку для его хранения (напр. C:\extensions\my_extension\ для Windows или ~/extensions/my_extension/ для Unix/Linux). Эта папка будет корневой. Создайте в ней подпапку chrome, а в последней - папку content.

- -

Теперь создайте в корневой папке 2 пустых файла: chrome.manifest и install.rdf.

- -

Итак, сейчас мы имеем такую структуру расширения:

- -
<ext path>/
-          install.rdf
-          chrome.manifest
-          chrome/
-             content/
-
- -

Для облегчения дальнейшей разработки и тестирования рекомендуем настроить Firefox для разработки расширения.

- -

Создание скрипта ("манифеста") установки

- -

Откройте файл install.rdf в текстовом редакторе и поместите в него следующее:

- -
<?xml version="1.0"?>
-
-<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-     xmlns:em="http://www.mozilla.org/2004/em-rdf#">
-
-  <Description about="urn:mozilla:install-manifest">
-    <em:id>sample@example.net</em:id>
-    <em:version>1.0</em:version>
-    <em:type>2</em:type>
-
-    <!-- Target Application this extension can install into,
-         with minimum and maximum supported versions. -->
-    <em:targetApplication>
-      <Description>
-        <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
-        <em:minVersion>1.5</em:minVersion>
-        <em:maxVersion>2.0.0.*</em:maxVersion>
-      </Description>
-    </em:targetApplication>
-
-    <!-- Front End MetaData -->
-    <em:name>sample</em:name>
-    <em:description>A test extension</em:description>
-    <em:creator>Your Name Here</em:creator>
-    <em:homepageURL>http://www.example.com/</em:homepageURL>
-  </Description>
-</RDF>
-
- -

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

- - - - - - - - - - - -

Расширение браузера с помощью XUL

- -

Интерфейс Firefox написан на XUL и JavaScript. XUL - это язык, основанный на XML. Он отвечает за визуальную часть интерфейса. JavaScript реализует функциональность через привязку к действиям пользователя.

- -

Так как визуально браузер строится на XUL, то, следовательно, он весь представляется в виде XML-файла. Вы можете посмотреть на него (это будет полезно для чёткого понимания своих дальнейших действий). Зайдите в папку установки Firefox, откройте там папку chrome. В ней будет browser.jar. Несмотря на расширение, этот файл - обычный zip-архив. Внутри него вы найдёте файл content/browser/browser.xul. Открыв его, можно полюбоваться на общую структуру визуальной части браузера. Пусть вас не смущает большое количество непонятных пока строк - во всем разберётесь позже. Собственно, корневым узлом этого XML-файла является элемент window, содержащиеся в нем узлы - это отдельные элементы интерфейса. Например, вы можете найти кнопку обновления страницы (поищите узел с id="reload-button") или пункт меню "Правка" (id="edit-menu").

- -

Так вот, суть расширения интерфейса браузера состоит в том, что мы берём некий узел из браузера, описываем его в своём файле с необходимыми нам изменениями, например, добавляя к нему новые дочерние узлы. Таким образом можно добавить новые кнопки в панель инструментов (или создать новую панель и поместить её в нужное место), добавить новый пункт меню (как рядом со "Справкой" так и в подменю, скажем, "Инструменты" (Tools)). Это технология называется en:XUL Overlays.

- -

В нашем случае мы добавим новый элемент в строку статуса. В файле browser.xul можно найти узел с id="status-bar". Это и есть строка статуса. В этом узле есть несколько дочерних узлов. Добавим к ним наш, который будет описывать новую панель. Создайте файл, назовите его, скажем, sample.xul и поместите в папку chrome/content. Внесите туда такой код:

- -
<?xml version="1.0"?>
-<overlay id="sample"
-         xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
- <statusbar id="status-bar">
-  <statusbarpanel id="my-panel" label="Hello, World"/>
- </statusbar>
-</overlay>
-
- -

Здесь <statusbar> с id="status-bar" является "точкой склейки" (merge point), т.е. узлом, который мы намереваемся изменить. <statusbarpanel> - новый виджет, который мы добавляем в <statusbar>.

- -

URI Chrome

- -

XUL-файлы (вроде того, который мы только что создали) загружаются через URI протокола chrome://. Вместо того, чтобы каждый раз определять место установки Firefox и загружать файлы через file://, можно загружать их через chrome://, не беспокоясь об их истинном положении на диске.

- -

Так, окно браузера, которое мы недавно просматривали, находится по адресу chrome://browser/content/browser.xul. Можете попробовать ввести его в адресную строку и посмотреть на результат.

- -

URI хрома состоит из нескольких частей:

- - - -

Так, например, chrome://foo/skin/bar.png загружает файл bar.png из секции skin пакета foo.

- -

Создание манифеста chrome

- -

Для хорошего понимания манифеста просмотрите статью en:Chrome Manifest

- -

Откройте chrome.manifest, созданный нами ранее и добавьте в него следующее:

- -
content     sample    chrome/content/
-
- -

Не забудьте завершающий слеш.

- -

Эта строка объявляет

- -
    -
  1. тип данных в пакете chrome,
  2. -
  3. название пакета (используйте лишь строчные буквы),
  4. -
  5. путь к файлам пакета.
  6. -
- -

Таким образом, здесь мы говорим, что файлы типа content для пакета sample можно найти в chrome/content (путь относительно местоположения chrome.manifest).

- -

Сохраните файл. Позже, при запуске Firefox, пакет chrome вашего расширения будет зарегистрирован с помощью этого файла.

- -

Регистрация оверлея

- -

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

- -
overlay chrome://browser/content/browser.xul chrome://sample/content/sample.xul
-
- -

Это говорит Firefox, что нужно объединить sample.xul и browser.xul

- -

Тестирование

- -

Для начала необходимо уведомить Firefox о нашем расширении. Раньше (ещё во времена Firefox 1.0) необходимо было упаковать расширение как en:XPI и установить через интерфейс браузера. Теперь же достаточно просто указать Firefox, где находится папка с вашим расширением - и он будет подключать его каждый раз при загрузке.

- -

Итак, ваши действия:

- -
    -
  1. Найдите папку с вашим профилем. Если вы не создавали его специально, браузер использует профиль по умолчанию.
    - Как найти папку с профилем.
  2. -
  3. Откройте папку extensions. Если её нет, создайте её.
  4. -
  5. Создайте новый текстовый файл и поместите в него лишь путь к вашему расширению (напр., C:\extensions\my_extension\ для Windows или ~/extensions/my_extension/ для Unix/Linux). Сохраните файл под именем, одинаковым с id вашего расширения.
  6. -
- -

Примечания:

- - - -

Теперь вы готовы к тестированию вашего расширения. Запустите Firefox. Он увидит ссылку к вашему расширению и установит его. Если все прошло успешно, вы увидите надпись "Hello, World!" в строке статуса справа. Для внесения изменений достаточно править xul-файлы и перезапустить Firefox.

- -

Упаковка расширения

- -

Теперь можно упаковать расширение для его дальнейшего распространения и установки.

- -

Создайте zip-архив из содержания корневой папки вашего расширения (но не архивируйте саму папку). Переименуйте файл, чтобы он имел расширение ".xpi". Вот и все. Для установки достаточно перетащить файл на окно браузера.

- -

Установка с веб-страницы

- -

Есть несколько способов это сделать. Можно разместить прямую ссылку на xpi-файл. Однако предпочтительным является InstallTrigger method, как более удобный для пользователей.

- -

Сайт расширений addons.mozilla.org

- -

Сайт расширений Mozilla (http://addons.mozilla.org) является местом, где вы можете бесплатно разместить своё расширение. Сайт является надёжным и удобным местом для распространения своих расширений: достаточно лишь зарегистрироваться - и вы сможете загружать свои файлы на сервер.

- -

Регистрирование расширения в реестре Windows

- -

В Windows информация о расширении может быть добавлена в реестр. Это даёт дополнительный возможности при установке расширений. Подробнее об этом читайте здесь.

- -

Узнайте больше об оверлеях XUL

- -

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

- -

Локализация

- -

Для поддержки более чем одного языка необходимо отделить локализуемые строки от основного содержания с помощью сущностей (entities) и "свёртков строк" (string bundles). Гораздо проще делать это в течение разработки расширения, чем после.

- -

Информация о локализации хранится в подпапке locale папки chrome (т.е. рядом с папкой content). В этой папке необходимо разместить столько папок, сколько локализаций вы намерены сделать. Обычной практикой является называть папки стандартными названиями локалей: скажем, папку с английской локализацией - en-US, русской - ru-RU и т.п., что, впрочем, не является обязательным. Теперь создайте в каждой из папок файл somename.ent (или anothername.dtd) (имя одинаково во всех папках локализаций) и заполните его соответствующим образом (показано ниже).

- -

Локализуем наше расширение на русский и английский языки. После создания 2 папок (назовём их ru-RU и en-US), создаём в каждой из них файл (пусть myStatusBar.ent) Поместите в тот файл, который в папке с английской локализацией, следующую строку:

- -
<!ENTITY statusbarpanel.label "Hello, World!">
-
- -

А в тот, который будет локализовать на русский язык, соответственно

- -
<!ENTITY statusbarpanel.label "Привет, мир!">
-
- -

Сохраните оба файла. Теперь необходимо зарегистрировать локализации. Для этого добавим в chrome.manifest следующие строки:

- -
locale sample en-US chrome/locale/en-US/
-locale sample ru-RU chrome/locale/ru-RU/
-
- -

Теперь для использования локализации достаточно добавить в начало (однако после xml-объявления) xul-файла строку

- -
<!DOCTYPE window SYSTEM "chrome://sample/locale/myStatusBar.ent">
-
- -

где window - это названия корневого элемента xul-документа (в нашем случае это overlay).

- -

Для использования сущностей измените ваш xul-файл так, чтобы атрибут label у новой statusbarpanel был равен "&statusbarpanel.label;".

- -

Исследование браузера

- -

Гораздо более простым (и эффективным) способом исследования браузера является использование DOM Inspector'а. Он позволяет полностью изучить структуру документа, загруженного в браузер. Так, например, можно загрузить вышеописанным способом browser.xul, просмотреть все его узлы и найти подходящий для наложения оверлея. Или же можно просматривать структуру своего расширения.

- -

Отладка расширений

- -

Инструменты для анализа расширений

- - - -

Отладочная распечатка

- - - -

Дополнительная информация

- - diff --git "a/files/ru/orphaned/\321\201\320\276\320\267\320\264\320\260\320\275\320\270\320\265_\321\200\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217/\320\275\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260_firefox_\320\264\320\273\321\217_\321\200\320\260\320\267\321\200\320\260\320\261\320\276\321\202\320\272\320\270/index.html" "b/files/ru/orphaned/\321\201\320\276\320\267\320\264\320\260\320\275\320\270\320\265_\321\200\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217/\320\275\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260_firefox_\320\264\320\273\321\217_\321\200\320\260\320\267\321\200\320\260\320\261\320\276\321\202\320\272\320\270/index.html" deleted file mode 100644 index 05155b96e9..0000000000 --- "a/files/ru/orphaned/\321\201\320\276\320\267\320\264\320\260\320\275\320\270\320\265_\321\200\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217/\320\275\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260_firefox_\320\264\320\273\321\217_\321\200\320\260\320\267\321\200\320\260\320\261\320\276\321\202\320\272\320\270/index.html" +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: Настройка Firefox для разработки -slug: orphaned/Создание_расширения/Настройка_Firefox_для_разработки -original_slug: Создание_расширения/Настройка_Firefox_для_разработки ---- -

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

-

Создание экспериментального профиля

-

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

-

Для того, чтобы вызвать менеджер профилей:

- -
  1. Нажмите кнопку "Пуск".
  2. Выберите пункт "Выполнить".
  3. Введите в строку "firefox -p" (без кавычек).
  4. -
- -
  1. Откройте терминал.
  2. Введите "firefox -p".
  3. -
-

В открывшемся окне менеджера профилей нажмите кнопку "Создать". Далее следуйте инструкциям в менеджере. Он вам предложит ввести для нового профиля название, для нашего пусть будет "Develop" (это уже на ваше усмотрение), а так же предложит выбрать папку, где будет наш профиль храниться. Для папки экспериментального профиля подойдёт открытое и, главное, доступное место, потому что может потребоваться в нем что-нибудь изменить руками или добавить какой-нибудь файл.

-

После того, как профиль создан, нажимаем на "Запуск Firefox". После запуска браузера вводим в адресную строку "about:config" и нажимаем Enter. На это браузер нам выдаст окно с предупреждением о возможности испортить программу, мы пообещаем ему быть осторожными.

-

В открывшемся меню вы увидите множество строк с настройками браузера. Но в настройках "по умолчанию" вписаны не все нужные нам строки - ведь в повседневной жизни они не нужны. Для полноценной настройки экспериментального профиля Firefox следует добавить в настройки некоторые параметры. Для этого достаточно нажать правую кнопку мыши в любом месте списка и выбрать из контекстного меню пункт "Создать" --> "Логичкеское".

- -

Расширения разработчика

-

При создании собственных расширений могут быть очень полезными следующие дополнения для Firefox:

- diff --git "a/files/ru/orphaned/\321\201\320\276\320\267\320\264\320\260\320\275\320\270\320\265_\321\200\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217/\320\275\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260_firefox_\320\264\320\273\321\217_\321\200\320\260\320\267\321\200\320\260\320\261\320\276\321\202\320\272\320\270_\321\200\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\271/index.html" "b/files/ru/orphaned/\321\201\320\276\320\267\320\264\320\260\320\275\320\270\320\265_\321\200\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217/\320\275\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260_firefox_\320\264\320\273\321\217_\321\200\320\260\320\267\321\200\320\260\320\261\320\276\321\202\320\272\320\270_\321\200\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\271/index.html" deleted file mode 100644 index d3ea9e3902..0000000000 --- "a/files/ru/orphaned/\321\201\320\276\320\267\320\264\320\260\320\275\320\270\320\265_\321\200\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217/\320\275\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260_firefox_\320\264\320\273\321\217_\321\200\320\260\320\267\321\200\320\260\320\261\320\276\321\202\320\272\320\270_\321\200\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\271/index.html" +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: Настройка Firefox для разработки расширений -slug: orphaned/Создание_расширения/Настройка_Firefox_для_разработки_расширений -original_slug: Создание_расширения/Настройка_Firefox_для_разработки_расширений ---- -

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

-

Создание экспериментального профиля Firefox

-

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

-

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

-

Для создания профиля в Microsoft Windows сделайте следующее:

- -

Для создания профиля в Linux сделайте следующее:

- -

Это должно запустить программу уже с новым профилем. По умолчанию в нем ничего не установлено и все настройки находятся в состоянии "по умолчанию".

-- cgit v1.2.3-54-g00ecf