From 95aca4b4d8fa62815d4bd412fff1a364f842814a Mon Sep 17 00:00:00 2001 From: Ryan Johnson Date: Thu, 29 Apr 2021 16:16:42 -0700 Subject: remove retired locales (#699) --- files/uk/mozilla/add-ons/index.html | 110 ------------- .../mozilla/add-ons/webextensions/api/index.html | 57 ------- .../add-ons/webextensions/api/sessions/index.html | 136 ---------------- .../webextensions/api/sessions/restore/index.html | 108 ------------- files/uk/mozilla/add-ons/webextensions/index.html | 120 --------------- .../interact_with_the_clipboard/index.html | 171 --------------------- .../what_are_webextensions/index.html | 26 ---- 7 files changed, 728 deletions(-) delete mode 100644 files/uk/mozilla/add-ons/index.html delete mode 100644 files/uk/mozilla/add-ons/webextensions/api/index.html delete mode 100644 files/uk/mozilla/add-ons/webextensions/api/sessions/index.html delete mode 100644 files/uk/mozilla/add-ons/webextensions/api/sessions/restore/index.html delete mode 100644 files/uk/mozilla/add-ons/webextensions/index.html delete mode 100644 files/uk/mozilla/add-ons/webextensions/interact_with_the_clipboard/index.html delete mode 100644 files/uk/mozilla/add-ons/webextensions/what_are_webextensions/index.html (limited to 'files/uk/mozilla/add-ons') diff --git a/files/uk/mozilla/add-ons/index.html b/files/uk/mozilla/add-ons/index.html deleted file mode 100644 index 955878627f..0000000000 --- a/files/uk/mozilla/add-ons/index.html +++ /dev/null @@ -1,110 +0,0 @@ ---- -title: Додатки -slug: Mozilla/Add-ons -tags: - - Mozilla - - Додатки - - Розширення -translation_of: Mozilla/Add-ons ---- -

{{AddonSidebar}}

- -
Змінення та розширення застосунків Mozilla
- -

Add-ons add new functionality to Gecko-based applications such as Firefox, SeaMonkey, and Thunderbird. There are two main types of add-on: Extensions add new features to the application, while Themes modify the application's user interface.

- -

Add-ons can greatly affect the behavior of the application that hosts them. We've developed a set of guidelines to help ensure that they provide a good experience to users. These guidelines apply for all sorts of add-ons, whether they are hosted at addons.mozilla.org or not.

- -
-

Розробка розширень

- -

Extensions add new functionality to Mozilla applications such as Firefox and Thunderbird. They can add new features to the browser, such as a different way to manage tabs, and they can modify web content to improve the usability or security of particular websites.

- -

There are three different techniques you can use to build extensions: Add-on SDK-based extensions, manually bootstrapped restartless extensions, and legacy extensions.

- - - -
-

WebExtensions

- -

We're working on a system called WebExtensions, which is a new way to develop WebExtensions for Firefox, that will be largely compatible with the system used by Chrome and Opera.

- -

In the future this will be the preferred way to develop extensions for Firefox.

- -

At the moment the implementation of this is experimental, but you can see the docs here if you want to give it a spin.

-
- -

If you can, it's advisable to use the Add-on SDK, which uses the restartless extension mechanism but simplifies certain tasks and cleans up after itself. If the Add-on SDK isn't sufficient for your needs, implement a manual restartless extension instead.

- -

For more information on choosing which technique to use, read this comparison.

- -

Зневадження

- -

Extension development is hard without being able to debug to see what lines errors were made on. You must enable the developer preferences in order for the logs to be show in the Browser Console. For desktop see here: Setting up an extension development environment.

- -

For desktop follow Setting Up a Development Environment, for Mobile (Android/iOS) follow Debugging Firefox for Android with WebIDE which uses the "Browser Toolbox" from within the desktop WebIDE to catch errors occuring on the mobile device, for Firefox OS also use the WebIDE.

- -
-
- - -

No matter how you develop an extension, there are some guidelines you can follow to help ensure your extension provides as good a user experience as possible.

- -
-
Performance
-
Ensuring your extension is fast, responsive and memory-efficient.
-
Security
-
Ensuring your extension doesn't expose the user to malicious websites.
-
Etiquette
-
Ensuring your extension plays nicely with other extensions.
-
-
- -
-

Application-specific

- -

Most of the documentation assumes you're developing for Firefox Desktop. If you're developing for some other Gecko-based application, there are major differences you need to know about.

- -
-
Thunderbird
-
Developing extensions for the Thunderbird mail client.
-
Firefox for Android
-
Developing extensions for Firefox for Android.
-
SeaMonkey
-
Developing extensions for the SeaMonkey software suite.
-
-
-
- -
-

Оприлюднення нових додатків

- -

Mozilla operates a platform for reviewing, signing, and distributing add-ons and themes at addons.mozilla.org, also known as AMO.

- -

You don't have to list your add-on on AMO, but starting in Firefox 43, you must submit your add-on to AMO so it can be reviewed and signed, or Firefox release users won't be able to install your add-on. If you do list your add-on on AMO, you can benefit from its visibility as a source for useful add-ons.

- - - -
-

Інші типи додатків

- -

Lightweight themes are much simpler to implement than complete themes, but provide very limited customization.

- -

With complete themes you can make much deeper modifications to the application UI. The documentation for complete themes is out of date, but is linked to here as a possible basis for updated documentation.

- -

Search engine plugins are a simple and very specific type of add-on: they add new search engines to the browser's search bar.

- -

Plugins help the application understand web content that it does not natively support. NPAPI plugins are a legacy technology and new sites should not use them. In general, plugins are not available on most modern mobile systems including, and websites should transition away from using plugins.

diff --git a/files/uk/mozilla/add-ons/webextensions/api/index.html b/files/uk/mozilla/add-ons/webextensions/api/index.html deleted file mode 100644 index 0bbd6f9878..0000000000 --- a/files/uk/mozilla/add-ons/webextensions/api/index.html +++ /dev/null @@ -1,57 +0,0 @@ ---- -title: JavaScript APIs -slug: Mozilla/Add-ons/WebExtensions/API -tags: - - NeedsTranslation - - TopicStub - - WebExtensions -translation_of: Mozilla/Add-ons/WebExtensions/API ---- -
{{AddonSidebar}}
- -
-

JavaScript APIs for WebExtensions can be used inside the extension's background scripts and in any other documents bundled with the extension, including browser action or page action popups, sidebars, options pages, or new tab pages. A few of these APIs can also be accessed by an extension's content scripts (see the list in the content script guide).

- -

To use the more powerful APIs you need to request permission in your extension's manifest.json.

- -

You can access the APIs using the browser namespace:

- -
function logTabs(tabs) {
-  console.log(tabs);
-}
-
-browser.tabs.query({currentWindow: true}, logTabs);
-
- -
-

Many of the APIs are asynchronous, returning a Promise:

- -
function logCookie(c) {
-  console.log(c);
-}
-
-function logError(e) {
-  console.error(e);
-}
-
-var setCookie = browser.cookies.set(
-  {url: "https://developer.mozilla.org/"}
-);
-setCookie.then(logCookie, logError);
-
- -
-

Note that this is different from Google Chrome's extension system, which uses the chrome namespace instead of browser, and which uses callbacks instead of promises for asynchronous functions. As a porting aid, the Firefox implementation of WebExtensions APIs supports chrome and callbacks as well as browser and promises. Mozilla has also written a polyfill which enables code that uses browser and promises to work unchanged in Chrome: https://github.com/mozilla/webextension-polyfill.

- -

Firefox also implements these APIs under the chrome namespace using callbacks. This allows code written for Chrome to run largely unchanged in Firefox for the APIs documented here.

- -

Microsoft Edge uses the browser namespace, but doesn't yet support promise-based asynchronous APIs. In Edge, for the time being, asynchronous APIs must use callbacks.

- -

Not all browsers support all the APIs: for the details, see Browser support for JavaScript APIs.

- -

JavaScript API listing

- -

See below for a complete list of JavaScript APIs:

-
- -
{{SubpagesWithSummaries}}
diff --git a/files/uk/mozilla/add-ons/webextensions/api/sessions/index.html b/files/uk/mozilla/add-ons/webextensions/api/sessions/index.html deleted file mode 100644 index 1a1c8fcf2c..0000000000 --- a/files/uk/mozilla/add-ons/webextensions/api/sessions/index.html +++ /dev/null @@ -1,136 +0,0 @@ ---- -title: sessions -slug: Mozilla/Add-ons/WebExtensions/API/sessions -tags: - - API - - Add-ons - - Extensions - - NeedsTranslation - - Non-standard - - Reference - - TopicStub - - WebExtensions - - sessions -translation_of: Mozilla/Add-ons/WebExtensions/API/sessions ---- -
{{AddonSidebar}}
- -

Use the sessions API to list, and restore, tabs and windows that have been closed while the browser has been running.

- -

The {{WebExtAPIRef("sessions.getRecentlyClosed()")}} function returns an array of {{WebExtAPIRef("tabs.Tab")}} and {{WebExtAPIRef("windows.Window")}} objects, representing tabs and windows that have been closed since the browser was running, up to the maximum defined in {{WebExtAPIRef("sessions.MAX_SESSION_RESULTS")}}.

- -

You can then restore a window or tab using the {{WebExtAPIRef("sessions.restore()")}} function. Restoring doesn't just reopen the tab: it also restores the tab's navigation history so the back/forward buttons will work.

- -

This API also provides a group of functions that enable an extension to store additional state associated with a tab or a window. Then, if the tab or window is closed and subsequently restored, the extension can retrieve the state. For example, a tab grouping extension might use this to remember which group a tab is in, so as to restore it into the right group if the user restores the tab.

- -

To use the sessions API you must have the "sessions" API permission.

- -

Types

- -
-
{{WebExtAPIRef("sessions.Filter")}}
-
Enables you to restrict the number of {{WebExtAPIRef("sessions.Session", "Session")}} objects returned by a call to {{WebExtAPIRef("sessions.getRecentlyClosed()")}}.
-
{{WebExtAPIRef("sessions.Session")}}
-
-

Represents a tab or window that the user has closed in the current browsing session.

-
-
- -

Properties

- -
-
{{WebExtAPIRef("sessions.MAX_SESSION_RESULTS")}}
-
The maximum number of sessions that will be returned by a call to sessions.getRecentlyClosed().
-
- -

Functions

- -
-
{{WebExtAPIRef("sessions.forgetClosedTab()")}}
-
Removes a closed tab from the browser's list of recently closed tabs.
-
{{WebExtAPIRef("sessions.forgetClosedWindow()")}}
-
Removes a closed window from the browser's list of recently closed windows.
-
{{WebExtAPIRef("sessions.getRecentlyClosed()")}}
-
Returns an array of {{WebExtAPIRef("sessions.Session", "Session")}} objects, representing windows and tabs that were closed in the current browsing session (that is: the time since the browser was started).
-
{{WebExtAPIRef("sessions.restore()")}}
-
-

Restores a closed tab or window.

-
-
{{WebExtAPIRef("sessions.setTabValue()")}}
-
-

Store a key/value pair associated with a given tab.

-
-
{{WebExtAPIRef("sessions.getTabValue()")}}
-
-

Retrieve a previously stored value for a given tab, given its key.

-
-
{{WebExtAPIRef("sessions.removeTabValue()")}}
-
-

Remove a key/value pair from a given tab.

-
-
{{WebExtAPIRef("sessions.setWindowValue()")}}
-
-

Store a key/value pair associated with a given window.

-
-
{{WebExtAPIRef("sessions.getWindowValue()")}}
-
-

Retrieve a previously stored value for a given window, given its key.

-
-
{{WebExtAPIRef("sessions.removeWindowValue()")}}
-
-

Remove a key/value pair from a given window.

-
-
- -

Events

- -
-
{{WebExtAPIRef("sessions.onChanged")}}
-
-

Fired when a tab or window is closed.

-
-
- -

Browser compatibility

- -

{{Compat("webextensions.api.sessions")}}

- -

{{WebExtExamples("h2")}}

- -
Acknowledgements - -

This API is based on Chromium's chrome.sessions API.

- -

Microsoft Edge compatibility data is supplied by Microsoft Corporation and is included here under the Creative Commons Attribution 3.0 United States License.

-
- - diff --git a/files/uk/mozilla/add-ons/webextensions/api/sessions/restore/index.html b/files/uk/mozilla/add-ons/webextensions/api/sessions/restore/index.html deleted file mode 100644 index f557ad46f1..0000000000 --- a/files/uk/mozilla/add-ons/webextensions/api/sessions/restore/index.html +++ /dev/null @@ -1,108 +0,0 @@ ---- -title: sessions.restore() -slug: Mozilla/Add-ons/WebExtensions/API/sessions/restore -tags: - - API - - WebExtensions - - Додатки - - Розширення -translation_of: Mozilla/Add-ons/WebExtensions/API/sessions/restore ---- -
{{AddonSidebar()}}
- -

Відновлює закрите вікно або вкладку. Відновлення є не просто перевідкриттям: воно також повертає історію переходів, тож кнопки вперед/назад також працюватимуть. Відновлення вікна відновить всі вкладки, які вікно мало перед закриттям.

- -

Це асинхронна функція, що повертає Promise.

- -

Синтаксис

- -
var restoringSession = browser.sessions.restore(
-  sessionId             // рядок
-)
-
- -

Параметри

- -
-
sessionId
-
Рядок, що містить ідентифікатор сесії для відновлення вікна чи вкладки. Його можна дістати із властивості sessionId об'єкта {{WebExtAPIRef("tabs.Tab", "Tab")}} чи {{WebExtAPIRef("windows.Window", "Window")}}, взятого з котрогось із об'єктів {{WebExtAPIRef("sessions.Session", "Session")}}, що їх масив вертає {{WebExtAPIRef("sessions.getRecentlyClosed()")}}.
-
- -

Вертає

- -

Об'єкт Promise. Через нього буде передано об'єкт {{WebExtAPIRef("sessions.Session", "Session")}}, що відповідатиме відновленій сесії.

- -

Підтримка веб-переглядачами

- - - -

{{Compat("webextensions.api.sessions.restore")}}

- -

Приклади

- -

Цей код відновлює останню завершену сессію (вікно або вкладку):

- -
function restoreMostRecent(sessionInfos) {
-  if (!sessionInfos.length) {
-    console.log("No sessions found")
-    return;
-  }
-  let sessionInfo = sessionInfos[0];
-  if (sessionInfo.tab) {
-    browser.sessions.restore(sessionInfo.tab.sessionId);
-  } else {
-    browser.sessions.restore(sessionInfo.window.sessionId);
-  }
-}
-
-function onError(error) {
-  console.log(error);
-}
-
-browser.browserAction.onClicked.addListener(function() {
-  var gettingSessions = browser.sessions.getRecentlyClosed({
-    maxResults: 1
-  });
-  gettingSessions.then(restoreMostRecent, onError);
-});
-
- -

{{WebExtExamples}}

- -
Подяки - -

Цей API ґрунтується на chrome.sessions API з Chromium.

- -

Дані про сумісність з Microsoft Edge надано корпорацією Microsoft і подано тут під ліцензією Creative Commons Attribution 3.0 United States License.

-
- - diff --git a/files/uk/mozilla/add-ons/webextensions/index.html b/files/uk/mozilla/add-ons/webextensions/index.html deleted file mode 100644 index 3d759fc48c..0000000000 --- a/files/uk/mozilla/add-ons/webextensions/index.html +++ /dev/null @@ -1,120 +0,0 @@ ---- -title: Browser extensions -slug: Mozilla/Add-ons/WebExtensions -tags: - - Extensions - - Landing - - NeedsTranslation - - TopicStub - - WebExtensions - - Додатки -translation_of: Mozilla/Add-ons/WebExtensions ---- -
{{AddonSidebar}}
- -

Розширення можуть розширювати і змінювати можливості веб-переглядача. Розширення для Firefox побудовані за допомогою WebExtension APIs, крос-браузерної системи для розробників розширень. To a large extent the system is compatible with the extension API supported by Google Chrome and Opera and the W3C Draft Community Group. Extensions written for these browsers will in most cases run in Firefox or Microsoft Edge with just a few changes. The API is also fully compatible with multiprocess Firefox.

- -

If you have ideas or questions, or need help migrating a legacy add-on to use WebExtension APIs, you can reach us on the dev-addons mailing list or #extdev on IRC.

- -
- - -
-

Довідка

- -

JavaScript APIs

- - - -
{{ ListSubpages ("/en-US/Add-ons/WebExtensions/API") }}
- -

Manifest keys

- - - -
{{ ListSubpages ("/en-US/Add-ons/WebExtensions/manifest.json") }}
-
-
diff --git a/files/uk/mozilla/add-ons/webextensions/interact_with_the_clipboard/index.html b/files/uk/mozilla/add-ons/webextensions/interact_with_the_clipboard/index.html deleted file mode 100644 index b415ba0b0b..0000000000 --- a/files/uk/mozilla/add-ons/webextensions/interact_with_the_clipboard/index.html +++ /dev/null @@ -1,171 +0,0 @@ ---- -title: Interact with the clipboard -slug: Mozilla/Add-ons/WebExtensions/Interact_with_the_clipboard -translation_of: Mozilla/Add-ons/WebExtensions/Interact_with_the_clipboard ---- -
{{AddonSidebar}}
- -

Існує два шляхи взаємодії веб-додатків з буфером обміну:  {{domxref("Document.execCommand()")}} метод і новітній асинхронний Clipboard API.

- -

{{domxref("Document.execCommand()")}} може використовуватись, бажано з наступними командами:

- - - -

Clipboard API надає асинхронний доступ считування та запису прямо в буфер обміну. Наприклад, щоб зчитати текст з буферу обміну виконайте:

- -
navigator.clipboard.readText().then(text => outputElem.innerText = text);
- -

Ця команда запитує текст в буфері та, та коли відповідь надійде з буферу, вона буде записана прямісенько в елемент {{domxref("Node.innerText", "innerText")}}.

- -
-

Примітка: Асинхронний Clipboard API метод нещодавно доданий в специфікацію, і може ще працювати не в усіх веб-оглядачах. Запевнетесь щодо кожного методу в таблиці сумісності перед тим як використовувати його.

-
- -

Запис в буфер обміну

- -

Існує два шляхи запису в буфер обміну. Ви можете використати {{domxref("Document.execCommand", "document.execCommand()")}} для запиту  "cut" та "copy" дій, які замінюють контент в буфері із виділенним даними. Інша опція це Clipboard API's {{domxref("Clipboard.writeText()")}} чи {{domxref("Clipboard.write()")}}.

- -

Використання execCommand()

- -

{{domxref("Document.execCommand", "document.execCommand()")}} метод "cut" та "copy" команди можуть бути використані для заміни буферу із виділенними даними. Ці команди можуть бути виконані без будь яких дозволів, якщо ви використовуєте їх короткочасних обробниках дій користувача(наприклад, обробник кліку).

- -

Наприклад HTML:

- -
<input id="input" type="text"/>
-<button id="copy">Copy</button>
-
- -

Із кнопкою "copy" яка копіює контент {{HTMLElement("input")}} елементу, ви можете використати код такий як:

- -
function copy() {
-  var copyText = document.querySelector("#input");
-  copyText.select();
-  document.execCommand("copy");
-}
-
-document.querySelector("#copy").addEventListener("click", copy);
- -

Тому що execCommand() виклик знаходится всередені обробника кліку, вам не потрібні ніякі спеціальні дозволи.

- -

Однак, якщо наприклад замість того ви копіюєте з alarm:

- -
function copy() {
-  var copyText = document.querySelector("#input");
-  copyText.select();
-  document.execCommand("copy");
-}
-
-browser.alarms.create({
-  delayInMinutes: 0.1
-});
-
-browser.alarms.onAlarm.addListener(copy);
- -

Залежно від веб-оглядача, це може не спрацювати. У Firefox, це не спрацює, і ви побачете повідомлення помилки як:

- -
document.execCommand(‘cut’/‘copy’) was denied because it was not called from inside a short running user-generated event handler.
- -

Щоб надати можливість виконати це, вам потрібно запитати дозвол "clipboardWrite" permission. Тож: "clipboardWrite" дозволяє копіювати поза простих обробників дій користувача.

- -

Використання Clipboard API

- -

Clipboard API додає більшу гнучкість, в такому разі ви не обмежені лише в копіюванні поточного виділення в буфер обміну, ви маєте також можливість вказати будь яку інформацію внести в буфер.

- -

Використання API потребує дозволу "clipboardRead" чи "clipboardWrite" в вашому manifest.json файлі.

- -

Для страничних скриптів, Permissions API's потребує дозвіл "clipboard-write".  Ви можете запросити дозвіл з {{domxref("Permissions.query", "navigator.permissions.query()")}}:

- -
navigator.permissions.query({name: "clipboard-write"}).then(result => {
-  if (result.state == "granted" || result.state == "prompt") {
-    /* write to the clipboard now */
-  }
-});
-
- -

Ця функція приймає строку вводу та вносить ії в буфер обміну:

- -
function updateClipboard(newClip) {
-  navigator.clipboard.writeText(newClip).then(function() {
-    /* clipboard successfully set */
-  }, function() {
-    /* clipboard write failed */
-  });
-}
-
- -

Browser-specific considerations

- -

Буфер обміну та інші APIs активно розвиваются, тож існують варіанти серед веб-оглядачів як вони працюють.

- -

В Chrome:

- - - -

В Firefox:

- - - -
-

execCommand('copy') API не підтримує Safari

-
- -

Зчитування буферу обміну

- -

execCommand() дозволяє виконати "paste" команду, яка дозволяє вставити поточний контент в буфері обміну в область редагування. Ви можете отримати більшу гнучкість із  Clipboard API's {{domxref("Clipboard.read()")}} та {{domxref("Clipboard.readText()")}} методами.

- -

Використання execCommand()

- -

По-перше, вам потрібен дозвіл "clipboardRead" permission визначно до вашого додатку. Це обов'язвокі умови навіть якщо "paste" команда виконується в обробнику дій користувача такі як {{event("click")}} чи {{event("keypress")}}.

- -

Наприклад HTML такий як:

- -
<textarea id="output"></textarea>
-<button id="paste">Paste</button>
-
- -

Щоб вставити контент в {{HTMLElement("textarea")}} з ID "output" з буферу обміну коли користувач нажме на кнопку "paste" {{HTMLElement("button")}}, використовуйте код:

- -
function paste() {
-  var pasteText = document.querySelector("#output");
-  pasteText.focus();
-  document.execCommand("paste");
-  console.log(pasteText.textContent);
-}
-
-document.querySelector("#paste").addEventListener("click", paste);
- -

Використання Clipboard API

- -

Clipboard API's {{domxref("Clipboard.readText", "navigator.clipboard.readText()")}} та {{domxref("Clipboard.read", "navigator.clipboard.read()")}} методи дозволяють вам зчитувати  текст чи бінарні данні з буферу обміну. Вона надає можливість зчитувати данні в буфері без вставки його в елемент редагування.

- -

Щойно ви отримали "clipboard-read" дозвіл з Permissions API, ви можете зчитати данні дуже легко:

- -
navigator.clipboard.readText().then(clipText =>
-  document.getElementById("outbox").innerText = clipText);
- -

Цей код витягує текст з буферу та замінює контент елементу з ID "outbox".

- -

Browser-specific considerations

- -

Firefox підтримує "clipboardRead" permission з версії 54, але личше підтримує вставку в елементи в content editable mode, які в контент скриптах лише працюють з  {{HTMLElement("textarea")}}. Для фонових скриптів, будь який елемент може бути змінений в режим редагування контенту.

- -

Дивись також

- - diff --git a/files/uk/mozilla/add-ons/webextensions/what_are_webextensions/index.html b/files/uk/mozilla/add-ons/webextensions/what_are_webextensions/index.html deleted file mode 100644 index eccf78994d..0000000000 --- a/files/uk/mozilla/add-ons/webextensions/what_are_webextensions/index.html +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: Що таке розширення? -slug: Mozilla/Add-ons/WebExtensions/What_are_WebExtensions -tags: - - Web-Розширення - - Розширення -translation_of: Mozilla/Add-ons/WebExtensions/What_are_WebExtensions -original_slug: Mozilla/Add-ons/WebExtensions/Що_таке_Web_Розширення ---- -
{{AddonSidebar}}
- -

Розширення є частинками коду, які змінюють функціонування web-браузера. Вони написані з використанням стандартних web-технологій - JavaScript, HTML і CSS - плюс деяких спеціальних JavaScript API. Крім того, розширення можуть додавати нові функції до браузера або змінювати зовнішній вигляд або вміст конкретних web-сайтів.

- -

Розширення для Firefox створені з використанням API Web-розширень, крос-браузерної системи для розробки розширень. Значною мірою API сумісний з API розширенням, яке підтримується Google Chrome і Opera. Розширення написані для цих браузерів в більшості випадків запускатимуться у Firefox або Microsoft Edge з лише кількома змінами. API також повністю сумісний з багатопроцесовим Firefox.

- -

В минулому, ви могли розробляти розширення Firefox використовуючи одне з трьох різних систем: XUL/XPCOM overlays, bootstrapped extensions, або Add-on SDK. По закінченню Листопада 2017-го, API Web-розширення будуть єдиним способом розробки розширень Firefox, і інші системи не будуть підтримуватися.

- -

Якщо ви маєте ідеї або питання, чи вам потрібна допомога міграції успадкованого додатку на API Web-розширень, то ви можете зв'язатися з нами на dev-addons списку листування або в #extdev на IRC.

- -

Що далі?

- - -- cgit v1.2.3-54-g00ecf