diff options
author | Ryan Johnson <rjohnson@mozilla.com> | 2021-04-29 16:16:42 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-29 16:16:42 -0700 |
commit | 95aca4b4d8fa62815d4bd412fff1a364f842814a (patch) | |
tree | 5e57661720fe9058d5c7db637e764800b50f9060 /files/uk/mozilla/add-ons | |
parent | ee3b1c87e3c8e72ca130943eed260ad642246581 (diff) | |
download | translated-content-95aca4b4d8fa62815d4bd412fff1a364f842814a.tar.gz translated-content-95aca4b4d8fa62815d4bd412fff1a364f842814a.tar.bz2 translated-content-95aca4b4d8fa62815d4bd412fff1a364f842814a.zip |
remove retired locales (#699)
Diffstat (limited to 'files/uk/mozilla/add-ons')
7 files changed, 0 insertions, 728 deletions
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 ---- -<p>{{AddonSidebar}}</p> - -<div class="summary">Змінення та розширення застосунків Mozilla</div> - -<p><span class="seoSummary">Add-ons add new functionality to <a href="/en-US/docs/Mozilla/Gecko">Gecko</a>-based applications such as Firefox, SeaMonkey, and Thunderbird.</span><strong> </strong>There are two main types of add-on: <a href="#Extensions">Extensions</a> add new features to the application, while <a href="#Themes">Themes</a> modify the application's user interface.</p> - -<p>Add-ons can greatly affect the behavior of the application that hosts them. We've developed a <a href="/en-US/docs/Mozilla/Add-ons/Add-on_guidelines">set of guidelines</a> 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 <a href="https://addons.mozilla.org/">addons.mozilla.org</a> or not.</p> - -<hr> -<h2 id="Розробка_розширень">Розробка розширень</h2> - -<p>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.</p> - -<p>There are three different techniques you can use to build extensions: Add-on SDK-based extensions, manually bootstrapped restartless extensions, and legacy extensions.</p> - -<ul class="card-grid"> - <li><span><a href="https://developer.mozilla.org/en-US/Add-ons/SDK">Add-on SDK extensions</a></span><br> - Extensions built using a set of high-level JavaScript APIs, which don't require a browser restart to install.</li> - <li><span><a href="/en-US/Add-ons/Bootstrapped_extensions">Restartless extensions</a></span><br> - Extensions which don't require a browser restart to install.</li> - <li><a href="/en-US/Add-ons/Overlay_Extensions"><span>Legacy extensions</span></a><br> - Legacy extensions which require a browser restart to install, generally using <a href="/en-US/docs/Mozilla/Tech/XUL/Overlays">XUL overlays</a>.</li> -</ul> - -<div class="note"> -<p><strong>WebExtensions</strong></p> - -<p>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.</p> - -<p>In the future this will be the preferred way to develop extensions for Firefox.</p> - -<p>At the moment the implementation of this is experimental, but you can <a href="/en-US/Add-ons/WebExtensions">see the docs here</a> if you want to give it a spin.</p> -</div> - -<p>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.</p> - -<p>For more information on choosing which technique to use, read this <a href="/en-US/Add-ons/Comparing_Extension_Toolchains">comparison</a>.</p> - -<h3 id="Зневадження">Зневадження</h3> - -<p>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: <a href="/en-US/docs/Mozilla/Add-ons/Setting_up_extension_development_environment#Development_preferences">Setting up an extension development environment</a>.</p> - -<p>For desktop follow <a href="/en-US/Add-ons/Overlay_Extensions/XUL_School/Setting_Up_a_Development_Environment">Setting Up a Development Environment</a>, for Mobile (Android/iOS) follow <a href="/en-US/docs/Tools/Remote_Debugging/Debugging_Firefox_for_Android_with_WebIDE">Debugging Firefox for Android with WebIDE </a>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.</p> - -<div class="column-container"> -<div class="column-half"> -<h3 id="Recommended_practices">Recommended practices</h3> - -<p>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.</p> - -<dl> - <dt><a href="/en-US/Add-ons/Performance_best_practices_in_extensions">Performance</a></dt> - <dd>Ensuring your extension is fast, responsive and memory-efficient.</dd> - <dt><a href="/en-US/Add-ons/Security_best_practices_in_extensions">Security</a></dt> - <dd>Ensuring your extension doesn't expose the user to malicious websites.</dd> - <dt><a href="/en-US/Add-ons/Extension_etiquette">Etiquette</a></dt> - <dd>Ensuring your extension plays nicely with other extensions.</dd> -</dl> -</div> - -<div class="column-half"> -<h3 id="Application-specific">Application-specific</h3> - -<p>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.</p> - -<dl> - <dt><a href="/en-US/Add-ons/Thunderbird">Thunderbird</a></dt> - <dd>Developing extensions for the Thunderbird mail client.</dd> - <dt><a href="/en-US/Add-ons/Firefox_for_Android">Firefox for Android</a></dt> - <dd>Developing extensions for Firefox for Android.</dd> - <dt><a href="/en-US/Add-ons/SeaMonkey_2">SeaMonkey</a></dt> - <dd>Developing extensions for the <a href="http://www.seamonkey-project.org/">SeaMonkey</a> software suite.</dd> -</dl> -</div> -</div> - -<hr> -<h2 id="Оприлюднення_нових_додатків">Оприлюднення нових додатків</h2> - -<p>Mozilla operates a platform for reviewing, signing, and distributing add-ons and themes at <a href="https://addons.mozilla.org/">addons.mozilla.org</a>, also known as AMO.</p> - -<p>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.</p> - -<ul> - <li><a href="https://developer.mozilla.org/en-US/Add-ons/Distribution">Signing and distributing your add-on</a>: how to get your add-on signed and published, whether it's listed on AMO or not.</li> - <li><a href="https://developer.mozilla.org/en-US/Add-ons/AMO/Policy/Reviews">AMO review policies</a>: the checks that are made on add-ons when they are reviewed.</li> - <li><a href="/en-US/Add-ons/AMO/Add-ons_manager_API">AMO API</a>: the <a href="https://addons.mozilla.org">addons.mozilla.org</a> website has an API that allows you to retrieve data about a single add-on, groups of add-ons, or to search add-ons.</li> - <li><a href="https://developer.mozilla.org/en-US/Add-ons/AMO/Policy/Featured">Policies for Featured add-ons</a>: featured add-ons are top-quality extensions and themes highlighted on <a class="external external-icon" href="https://addons.mozilla.org/en-US/firefox/extensions/?sort=featured">AMO</a>, Firefox's Add-ons Manager, and across other Mozilla websites.</li> - <li><a href="/en-US/Add-ons/AMO/Policy/Contact">AMO contact information</a></li> -</ul> - -<hr> -<h2 id="Інші_типи_додатків">Інші типи додатків</h2> - -<p><a href="/Add-ons/Themes/Background">Lightweight themes</a> are much simpler to implement than complete themes, but provide very limited customization.</p> - -<p>With <a href="/en-US/docs/Themes">complete themes</a> 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.</p> - -<p><a href="/en-US/docs/Creating_OpenSearch_plugins_for_Firefox">Search engine plugins</a> are a simple and very specific type of add-on: they add new search engines to the browser's search bar.</p> - -<p><strong><a href="/en-US/docs/Plugins">Plugins</a> </strong>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.</p> 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 ---- -<div>{{AddonSidebar}}</div> - -<div> -<p>JavaScript APIs for WebExtensions can be used inside the extension's <a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Anatomy_of_a_WebExtension#Background_scripts">background scripts</a> and in any other documents bundled with the extension, including <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Browser_action">browser action</a> or <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Page_actions">page action</a> popups, <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Sidebars">sidebars</a>, <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Options_pages">options pages</a>, or <a href="/en-US/Add-ons/WebExtensions/manifest.json/chrome_url_overrides">new tab pages</a>. A few of these APIs can also be accessed by an extension's <a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Anatomy_of_a_WebExtension#Content_scripts">content scripts</a> (see the <a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Content_scripts#WebExtension_APIs">list in the content script guide</a>).</p> - -<p>To use the more powerful APIs you need to <a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/manifest.json/permissions">request permission</a> in your extension's manifest.json.</p> - -<p>You can access the APIs using the <code>browser</code> namespace:</p> - -<pre class="brush: js line-numbers language-js"><code class="language-js"><span class="keyword token">function</span> <span class="function token">logTabs</span><span class="punctuation token">(</span>tabs<span class="punctuation token">)</span> <span class="punctuation token">{</span> - console<span class="punctuation token">.</span><span class="function token">log</span><span class="punctuation token">(</span>tabs<span class="punctuation token">)</span><span class="punctuation token">;</span> -<span class="punctuation token">}</span> - -browser<span class="punctuation token">.</span>tabs<span class="punctuation token">.</span><span class="function token">query</span><span class="punctuation token">(</span><span class="punctuation token">{</span>currentWindow<span class="punctuation token">:</span> <span class="keyword token">true</span><span class="punctuation token">}</span><span class="punctuation token">,</span> logTabs<span class="punctuation token">)</span><span class="punctuation token">;</span></code></pre> -</div> - -<div> -<p>Many of the APIs are asynchronous, returning a <code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise">Promise</a></code>:</p> - -<pre class="brush: js line-numbers language-js"><code class="language-js"><span class="keyword token">function</span> <span class="function token">logCookie</span><span class="punctuation token">(</span>c<span class="punctuation token">)</span> <span class="punctuation token">{</span> - console<span class="punctuation token">.</span><span class="function token">log</span><span class="punctuation token">(</span>c<span class="punctuation token">)</span><span class="punctuation token">;</span> -<span class="punctuation token">}</span> - -<span class="keyword token">function</span> <span class="function token">logError</span><span class="punctuation token">(</span>e<span class="punctuation token">)</span> <span class="punctuation token">{</span> - console<span class="punctuation token">.</span><span class="function token">error</span><span class="punctuation token">(</span>e<span class="punctuation token">)</span><span class="punctuation token">;</span> -<span class="punctuation token">}</span> - -<span class="keyword token">var</span> setCookie <span class="operator token">=</span> browser<span class="punctuation token">.</span>cookies<span class="punctuation token">.</span><span class="keyword token">set</span><span class="punctuation token">(</span> - <span class="punctuation token">{</span>url<span class="punctuation token">:</span> <span class="string token">"https://developer.mozilla.org/"</span><span class="punctuation token">}</span> -<span class="punctuation token">)</span><span class="punctuation token">;</span> -setCookie<span class="punctuation token">.</span><span class="function token">then</span><span class="punctuation token">(</span>logCookie<span class="punctuation token">,</span> logError<span class="punctuation token">)</span><span class="punctuation token">;</span></code></pre> -</div> - -<div> -<p>Note that this is different from Google Chrome's extension system, which uses the <code>chrome</code> namespace instead of <code>browser</code>, and which uses callbacks instead of promises for asynchronous functions. As a porting aid, the Firefox implementation of WebExtensions APIs supports <code>chrome</code> and callbacks as well as <code>browser</code> and promises. Mozilla has also written a polyfill which enables code that uses <code>browser</code> and promises to work unchanged in Chrome: <a class="external external-icon" href="https://github.com/mozilla/webextension-polyfill">https://github.com/mozilla/webextension-polyfill</a>.</p> - -<p>Firefox also implements these APIs under the <code>chrome</code> namespace using callbacks. This allows code written for Chrome to run largely unchanged in Firefox for the APIs documented here.</p> - -<p>Microsoft Edge uses the <code>browser</code> namespace, but doesn't yet support promise-based asynchronous APIs. In Edge, for the time being, asynchronous APIs must use callbacks.</p> - -<p>Not all browsers support all the APIs: for the details, see <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Browser_support_for_JavaScript_APIs">Browser support for JavaScript APIs</a>.</p> - -<h2 id="JavaScript_API_listing">JavaScript API listing</h2> - -<p>See below for a complete list of JavaScript APIs:</p> -</div> - -<div>{{SubpagesWithSummaries}}</div> 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 ---- -<div>{{AddonSidebar}}</div> - -<p>Use the sessions API to list, and restore, tabs and windows that have been closed while the browser has been running.</p> - -<p>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")}}.</p> - -<p>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.</p> - -<p>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.</p> - -<p>To use the sessions API you must have the "sessions" <a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/manifest.json/permissions#API_permissions">API permission</a>.</p> - -<h2 id="Types">Types</h2> - -<dl> - <dt>{{WebExtAPIRef("sessions.Filter")}}</dt> - <dd>Enables you to restrict the number of {{WebExtAPIRef("sessions.Session", "Session")}} objects returned by a call to {{WebExtAPIRef("sessions.getRecentlyClosed()")}}.</dd> - <dt>{{WebExtAPIRef("sessions.Session")}}</dt> - <dd> - <p>Represents a tab or window that the user has closed in the current browsing session.</p> - </dd> -</dl> - -<h2 id="Properties">Properties</h2> - -<dl> - <dt>{{WebExtAPIRef("sessions.MAX_SESSION_RESULTS")}}</dt> - <dd>The maximum number of sessions that will be returned by a call to <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/sessions/getRecentlyClosed" title="Returns an array Session objects, representing windows and tabs that were closed in the current browsing session (that is: the time since the browser was started)."><code>sessions.getRecentlyClosed()</code></a>.</dd> -</dl> - -<h2 id="Functions">Functions</h2> - -<dl> - <dt>{{WebExtAPIRef("sessions.forgetClosedTab()")}}</dt> - <dd>Removes a closed tab from the browser's list of recently closed tabs.</dd> - <dt>{{WebExtAPIRef("sessions.forgetClosedWindow()")}}</dt> - <dd>Removes a closed window from the browser's list of recently closed windows.</dd> - <dt>{{WebExtAPIRef("sessions.getRecentlyClosed()")}}</dt> - <dd>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).</dd> - <dt>{{WebExtAPIRef("sessions.restore()")}}</dt> - <dd> - <p>Restores a closed tab or window.</p> - </dd> - <dt>{{WebExtAPIRef("sessions.setTabValue()")}}</dt> - <dd> - <p>Store a key/value pair associated with a given tab.</p> - </dd> - <dt>{{WebExtAPIRef("sessions.getTabValue()")}}</dt> - <dd> - <p>Retrieve a previously stored value for a given tab, given its key.</p> - </dd> - <dt>{{WebExtAPIRef("sessions.removeTabValue()")}}</dt> - <dd> - <p>Remove a key/value pair from a given tab.</p> - </dd> - <dt>{{WebExtAPIRef("sessions.setWindowValue()")}}</dt> - <dd> - <p>Store a key/value pair associated with a given window.</p> - </dd> - <dt>{{WebExtAPIRef("sessions.getWindowValue()")}}</dt> - <dd> - <p>Retrieve a previously stored value for a given window, given its key.</p> - </dd> - <dt>{{WebExtAPIRef("sessions.removeWindowValue()")}}</dt> - <dd> - <p>Remove a key/value pair from a given window.</p> - </dd> -</dl> - -<h2 id="Events">Events</h2> - -<dl> - <dt>{{WebExtAPIRef("sessions.onChanged")}}</dt> - <dd> - <p>Fired when a tab or window is closed.</p> - </dd> -</dl> - -<h2 id="Browser_compatibility">Browser compatibility</h2> - -<p>{{Compat("webextensions.api.sessions")}}</p> - -<p>{{WebExtExamples("h2")}}</p> - -<div class="note"><strong>Acknowledgements</strong> - -<p>This API is based on Chromium's <a href="https://developer.chrome.com/extensions/sessions"><code>chrome.sessions</code></a> API.</p> - -<p>Microsoft Edge compatibility data is supplied by Microsoft Corporation and is included here under the Creative Commons Attribution 3.0 United States License.</p> -</div> - -<div class="hidden"> -<pre>// Copyright 2015 The Chromium Authors. All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -</pre> -</div> 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 ---- -<div>{{AddonSidebar()}}</div> - -<p>Відновлює закрите вікно або вкладку. Відновлення є не просто перевідкриттям: воно також повертає історію переходів, тож кнопки вперед/назад також працюватимуть. Відновлення вікна відновить всі вкладки, які вікно мало перед закриттям.</p> - -<p>Це асинхронна функція, що повертає <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise">Promise</a></code>.</p> - -<h2 id="Синтаксис">Синтаксис</h2> - -<pre class="syntaxbox brush:js">var restoringSession = browser.sessions.restore( - sessionId // рядок -) -</pre> - -<h3 id="Параметри">Параметри</h3> - -<dl> - <dt><code>sessionId</code></dt> - <dd>Рядок, що містить ідентифікатор сесії для відновлення вікна чи вкладки. Його можна дістати із властивості <code>sessionId</code> об'єкта {{WebExtAPIRef("tabs.Tab", "Tab")}} чи {{WebExtAPIRef("windows.Window", "Window")}}, взятого з котрогось із об'єктів {{WebExtAPIRef("sessions.Session", "Session")}}, що їх масив вертає {{WebExtAPIRef("sessions.getRecentlyClosed()")}}.</dd> -</dl> - -<h3 id="Вертає">Вертає</h3> - -<p>Об'єкт <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise">Promise</a></code>. Через нього буде передано об'єкт {{WebExtAPIRef("sessions.Session", "Session")}}, що відповідатиме відновленій сесії.</p> - -<h2 id="Підтримка_веб-переглядачами">Підтримка веб-переглядачами</h2> - -<div class="hidden">Таблиця сумісності на цій сторінці створена зі структурованих даних. Якщо ви хочете долучитися до розробки цих даних, пропонуйте нам свої pull request до репозиторію <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a>.</div> - -<p>{{Compat("webextensions.api.sessions.restore")}}</p> - -<h2 id="Приклади">Приклади</h2> - -<p>Цей код відновлює останню завершену сессію (вікно або вкладку):</p> - -<pre class="brush: js">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); -}); -</pre> - -<p>{{WebExtExamples}}</p> - -<div class="note"><strong>Подяки</strong> - -<p>Цей API ґрунтується на <a href="https://developer.chrome.com/extensions/sessions"><code>chrome.sessions</code></a> API з Chromium.</p> - -<p>Дані про сумісність з Microsoft Edge надано корпорацією Microsoft і подано тут під ліцензією Creative Commons Attribution 3.0 United States License.</p> -</div> - -<div class="hidden"> -<pre>// Copyright 2015 The Chromium Authors. All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -</pre> -</div> 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 ---- -<div>{{AddonSidebar}}</div> - -<p>Розширення можуть розширювати і змінювати можливості веб-переглядача. Розширення для Firefox побудовані за допомогою WebExtension APIs, крос-браузерної системи для розробників розширень. To a large extent the system is compatible with the <a class="external-icon external" href="https://developer.chrome.com/extensions">extension API</a> supported by Google Chrome and Opera and the <a href="https://browserext.github.io/browserext/">W3C Draft Community Group</a>. Extensions written for these browsers will in most cases run in Firefox or <a href="https://developer.microsoft.com/en-us/microsoft-edge/platform/documentation/extensions/">Microsoft Edge</a> with <a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Porting_from_Google_Chrome">just a few changes</a>. The API is also fully compatible with <a href="https://developer.mozilla.org/en-US/Firefox/Multiprocess_Firefox">multiprocess Firefox</a>.</p> - -<p>If you have ideas or questions, or need help migrating a legacy add-on to use WebExtension APIs, you can reach us on the <a href="https://mail.mozilla.org/listinfo/dev-addons">dev-addons mailing list</a> or <a href="irc://irc.mozilla.org/extdev">#extdev</a> on <a href="https://wiki.mozilla.org/IRC">IRC</a>.</p> - -<div class="row topicpage-table"> -<div class="section"> -<h2 id="Починаємо">Починаємо</h2> - -<ul> - <li><a href="/en-US/Add-ons/WebExtensions/What_are_WebExtensions">What are extensions?</a></li> - <li><a href="/en-US/Add-ons/WebExtensions/Your_first_WebExtension">Your first extension</a></li> - <li><a href="/en-US/Add-ons/WebExtensions/Your_second_WebExtension">Your second extension</a></li> - <li><a href="/en-US/Add-ons/WebExtensions/Anatomy_of_a_WebExtension">Anatomy of an extension</a></li> - <li><a href="/en-US/Add-ons/WebExtensions/Examples">Example extensions</a></li> -</ul> - -<h2 id="How_to">How to</h2> - -<ul> - <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Intercept_HTTP_requests">Intercept HTTP requests</a></li> - <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Modify_a_web_page">Modify a web page</a></li> - <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Add_a_button_to_the_toolbar">Add a button to the toolbar</a></li> - <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Implement_a_settings_page">Implement a settings page</a></li> - <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Interact_with_the_clipboard">Interact with the clipboard</a></li> -</ul> - -<h2 id="Користувацький_інтерфейс">Користувацький інтерфейс</h2> - -<ul> - <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface">Introduction</a></li> - <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Browser_action">Browser toolbar button</a></li> - <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Popups">Browser toolbar button with a popup</a></li> - <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Page_actions">Address bar button</a></li> - <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Popups">Address bar button with a popup</a></li> - <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Context_menu_items">Context menu items</a></li> - <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Sidebars">Sidebars</a></li> - <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Options_pages">Options page</a></li> - <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Bundled_web_pages">Bundled web pages</a></li> - <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Notifications">Notifications</a></li> - <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Omnibox">Address bar suggestions</a></li> - <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/devtools_panels">Developer tools panels</a></li> -</ul> - -<h2 id="Концепції">Концепції</h2> - -<ul> - <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API">JavaScript API overview</a></li> - <li><a href="/en-US/Add-ons/WebExtensions/Content_scripts">Content scripts</a></li> - <li><a href="/en-US/Add-ons/WebExtensions/Match_patterns">Match patterns</a></li> - <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Working_with_files">Working with files</a></li> - <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Internationalization">Internationalization</a></li> - <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Content_Security_Policy">Content Security Policy</a></li> - <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Native_messaging">Native messaging</a></li> - <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Using_the_devtools_APIs">Using the devtools APIs</a></li> - <li><a href="/en-US/Add-ons/WebExtensions/User_experience_best_practices">User experience best practices</a></li> -</ul> - -<h2 id="Перенесення">Перенесення</h2> - -<ul> - <li><a href="/en-US/Add-ons/WebExtensions/Porting_from_Google_Chrome">Porting a Google Chrome extension</a></li> - <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Porting_a_legacy_Firefox_add-on">Porting a legacy Firefox extension</a></li> - <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Developing_WebExtensions_for_Firefox_for_Android">Developing for Firefox for Android</a></li> - <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Embedded_WebExtensions">Embedded WebExtensions</a></li> - <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Comparison_with_the_Add-on_SDK">Comparison with the Add-on SDK</a></li> - <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Comparison_with_XUL_XPCOM_extensions">Comparison with XUL/XPCOM extensions</a></li> - <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Chrome_incompatibilities">Chrome incompatibilities</a></li> - <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Differences_between_desktop_and_Android">Differences between desktop and Android</a></li> -</ul> - -<h2 id="Firefox_workflow">Firefox workflow</h2> - -<ul> - <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/User_experience_best_practices">User experience</a></li> - <li><a href="/en-US/Add-ons/WebExtensions/Temporary_Installation_in_Firefox">Installation</a></li> - <li><a href="/en-US/Add-ons/WebExtensions/Debugging">Debugging</a></li> - <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Getting_started_with_web-ext">Getting started with web-ext</a></li> - <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/web-ext_command_reference">web-ext command reference</a></li> - <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/WebExtensions_and_the_Add-on_ID">Extensions and the Add-on ID</a></li> - <li><a href="/en-US/Add-ons/WebExtensions/Alternative_distribution_options">Alternative distribution options</a></li> - <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Publishing_your_WebExtension">Publishing your extension</a></li> -</ul> -</div> - -<div class="section"> -<h2 id="Довідка">Довідка</h2> - -<h3 id="JavaScript_APIs">JavaScript APIs</h3> - -<ul> - <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API">JavaScript API overview</a></li> - <li><a href="/en-US/Add-ons/WebExtensions/Browser_support_for_JavaScript_APIs">Browser compatibility tables for JavaScript APIs</a></li> -</ul> - -<div class="twocolumns">{{ ListSubpages ("/en-US/Add-ons/WebExtensions/API") }}</div> - -<h3 id="Manifest_keys">Manifest keys</h3> - -<ul> - <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json">manifest.json overview</a></li> - <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Browser_compatibility_for_manifest.json">Browser compatibility for manifest.json</a></li> -</ul> - -<div class="twocolumns">{{ ListSubpages ("/en-US/Add-ons/WebExtensions/manifest.json") }}</div> -</div> -</div> 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 ---- -<div>{{AddonSidebar}}</div> - -<p>Існує два шляхи взаємодії веб-додатків з буфером обміну: {{domxref("Document.execCommand()")}} метод і новітній асинхронний <a href="/en-US/docs/Web/API/Clipboard_API">Clipboard API</a>.</p> - -<p>{{domxref("Document.execCommand()")}} може використовуватись, бажано з наступними командами:</p> - -<ul> - <li><code>document.execCommand("copy")</code></li> - <li><code>document.execCommand("cut")</code></li> - <li><code>document.execCommand("paste")</code></li> -</ul> - -<p>Clipboard API надає асинхронний доступ считування та запису прямо в буфер обміну. Наприклад, щоб зчитати текст з буферу обміну виконайте:</p> - -<pre class="brush: js">navigator.clipboard.readText().then(text => outputElem.innerText = text);</pre> - -<p>Ця команда запитує текст в буфері та, та коли відповідь надійде з буферу, вона буде записана прямісенько в елемент {{domxref("Node.innerText", "innerText")}}.</p> - -<div class="note"> -<p><strong>Примітка:</strong> Асинхронний Clipboard API метод нещодавно доданий в специфікацію, і може ще працювати не в усіх веб-оглядачах. Запевнетесь щодо кожного методу в таблиці сумісності перед тим як використовувати його.</p> -</div> - -<h2 id="Запис_в_буфер_обміну">Запис в буфер обміну</h2> - -<p>Існує два шляхи запису в буфер обміну. Ви можете використати {{domxref("Document.execCommand", "document.execCommand()")}} для запиту "cut" та "copy" дій, які замінюють контент в буфері із виділенним даними. Інша опція це Clipboard API's {{domxref("Clipboard.writeText()")}} чи {{domxref("Clipboard.write()")}}.</p> - -<h3 id="Використання_execCommand()">Використання execCommand()</h3> - -<p>{{domxref("Document.execCommand", "document.execCommand()")}} метод <code>"cut"</code> та <code>"copy"</code> команди можуть бути використані для заміни буферу із виділенними даними. Ці команди можуть бути виконані без будь яких дозволів, якщо ви використовуєте їх короткочасних обробниках дій користувача(наприклад, обробник кліку).</p> - -<p>Наприклад HTML:</p> - -<pre class="brush: html"><input id="input" type="text"/> -<button id="copy">Copy</button> -</pre> - -<p>Із кнопкою <code>"copy"</code> яка копіює контент {{HTMLElement("input")}} елементу, ви можете використати код такий як:</p> - -<pre class="brush: js">function copy() { - var copyText = document.querySelector("#input"); - copyText.select(); - document.execCommand("copy"); -} - -document.querySelector("#copy").addEventListener("click", copy);</pre> - -<p>Тому що <code>execCommand()</code> виклик знаходится всередені обробника кліку, вам не потрібні ніякі спеціальні дозволи.</p> - -<p>Однак, якщо наприклад замість того ви копіюєте з alarm:</p> - -<pre class="brush: js">function copy() { - var copyText = document.querySelector("#input"); - copyText.select(); - document.execCommand("copy"); -} - -browser.alarms.create({ - delayInMinutes: 0.1 -}); - -browser.alarms.onAlarm.addListener(copy);</pre> - -<p>Залежно від веб-оглядача, це може не спрацювати. У Firefox, це не спрацює, і ви побачете повідомлення помилки як:</p> - -<pre>document.execCommand(‘cut’/‘copy’) was denied because it was not called from inside a short running user-generated event handler.</pre> - -<p>Щоб надати можливість виконати це, вам потрібно запитати дозвол <code>"clipboardWrite"</code> <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions">permission</a>. Тож: <code>"clipboardWrite"</code> дозволяє копіювати поза простих обробників дій користувача.</p> - -<h3 id="Використання_Clipboard_API">Використання Clipboard API</h3> - -<p>Clipboard API додає більшу гнучкість, в такому разі ви не обмежені лише в копіюванні поточного виділення в буфер обміну, ви маєте також можливість вказати будь яку інформацію внести в буфер.</p> - -<p>Використання API потребує дозволу "clipboardRead" чи "clipboardWrite" в вашому manifest.json файлі.</p> - -<p>Для страничних скриптів, Permissions API's потребує дозвіл <code>"clipboard-write"</code>. Ви можете запросити дозвіл з {{domxref("Permissions.query", "navigator.permissions.query()")}}:</p> - -<pre class="brush: js">navigator.permissions.query({name: "clipboard-write"}).then(result => { - if (result.state == "granted" || result.state == "prompt") { - /* write to the clipboard now */ - } -}); -</pre> - -<p>Ця функція приймає строку вводу та вносить ії в буфер обміну:</p> - -<pre class="brush: js">function updateClipboard(newClip) { - navigator.clipboard.writeText(newClip).then(function() { - /* clipboard successfully set */ - }, function() { - /* clipboard write failed */ - }); -} -</pre> - -<h3 id="Browser-specific_considerations">Browser-specific considerations</h3> - -<p>Буфер обміну та інші APIs активно розвиваются, тож існують варіанти серед веб-оглядачів як вони працюють.</p> - -<p>В Chrome:</p> - -<ul> - <li>Ви можете записувати в буфер обміну як інші операції з контекстом сторінки.</li> - <li>Вам не потрібні <code>"clipboardWrite"</code>, навіть поза функцією оброки дій користувача(event handler).</li> -</ul> - -<p>В Firefox:</p> - -<ul> - <li>Ви можете записувата в буфер з execCommand в усіх обробках контенту, <em>виключно в фонових сторінках</em>. В Firefox ви не можете виділяти текст чи ставити фокус на input в фонових сторінках, тож ви не можете записувати в буфер з execCommand у фонових сторінках. Clipboard Web API не має таких обмежень.</li> - <li>З версії 57 і вищче, ви можете копіювати зображення в буфер використовуючи <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/clipboard/setImageData">clipboard.setImageData()</a></code> API.</li> - <li>Підтримка Clipboard API's {{domxref("Clipboard.writeText", "navigator.clipboard.writeText()")}} було додано Firefox 63.</li> - <li>Із використанням скриптів сторінок, Clipboard API доступна лише з HTTPS сторінками. В іншому випадку, використовуйте messaging між вашим контент скриптом та фоновим скриптом.</li> -</ul> - -<div class="blockIndicator note"> -<p><code>execCommand('copy')</code> API не підтримує <strong>Safari</strong></p> -</div> - -<h2 id="Зчитування_буферу_обміну">Зчитування буферу обміну</h2> - -<p><code>execCommand()</code> дозволяє виконати <code>"paste"</code> команду, яка дозволяє вставити поточний контент в буфері обміну в область редагування. Ви можете отримати більшу гнучкість із Clipboard API's {{domxref("Clipboard.read()")}} та {{domxref("Clipboard.readText()")}} методами.</p> - -<h3 id="Використання_execCommand()_2">Використання execCommand()</h3> - -<p>По-перше, вам потрібен дозвіл <code>"clipboardRead"</code> <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions">permission</a> визначно до вашого додатку. Це обов'язвокі умови навіть якщо <code>"paste"</code> команда виконується в обробнику дій користувача такі як {{event("click")}} чи {{event("keypress")}}.</p> - -<p>Наприклад HTML такий як:</p> - -<pre class="brush: html"><textarea id="output"></textarea> -<button id="paste">Paste</button> -</pre> - -<p>Щоб вставити контент в {{HTMLElement("textarea")}} з ID <code>"output"</code> з буферу обміну коли користувач нажме на кнопку <code>"paste"</code> {{HTMLElement("button")}}, використовуйте код:</p> - -<pre class="brush: js">function paste() { - var pasteText = document.querySelector("#output"); - pasteText.focus(); - document.execCommand("paste"); - console.log(pasteText.textContent); -} - -document.querySelector("#paste").addEventListener("click", paste);</pre> - -<h3 id="Використання_Clipboard_API_2">Використання Clipboard API</h3> - -<p>Clipboard API's {{domxref("Clipboard.readText", "navigator.clipboard.readText()")}} та {{domxref("Clipboard.read", "navigator.clipboard.read()")}} методи дозволяють вам зчитувати текст чи бінарні данні з буферу обміну. Вона надає можливість зчитувати данні в буфері без вставки його в елемент редагування.</p> - -<p>Щойно ви отримали <code>"clipboard-read"</code> дозвіл з <a href="/en-US/docs/Web/API/Permissions_API">Permissions API</a>, ви можете зчитати данні дуже легко:</p> - -<pre class="brush: js">navigator.clipboard.readText().then(clipText => - document.getElementById("outbox").innerText = clipText);</pre> - -<p>Цей код витягує текст з буферу та замінює контент елементу з ID <code>"outbox"</code>.</p> - -<h3 id="Browser-specific_considerations_2">Browser-specific considerations</h3> - -<p>Firefox підтримує <code>"clipboardRead"</code> <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions">permission</a> з версії 54, але личше підтримує вставку в елементи в <a href="/en-US/docs/Web/Guide/HTML/Editable_content">content editable mode</a>, які в контент скриптах лише працюють з {{HTMLElement("textarea")}}. Для фонових скриптів, будь який елемент може бути змінений в режим редагування контенту.</p> - -<h2 id="Дивись_також">Дивись також</h2> - -<ul> - <li><a href="/en-US/docs/Web/API/Clipboard_API">Clipboard API</a></li> - <li><a href="/en-US/docs/Web/API/Permissions_API">Permissions API</a></li> - <li><a href="/en-US/docs/Web/Guide/HTML/Editable_content">Making content editable</a></li> - <li>{{htmlattrxref("contenteditable")}}</li> -</ul> 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_Розширення ---- -<div>{{AddonSidebar}}</div> - -<p>Розширення є частинками коду, які змінюють функціонування web-браузера. Вони написані з використанням стандартних web-технологій - JavaScript, HTML і CSS - плюс деяких спеціальних JavaScript API. Крім того, розширення можуть додавати нові функції до браузера або змінювати зовнішній вигляд або вміст конкретних web-сайтів.</p> - -<p>Розширення для Firefox створені з використанням API Web-розширень, крос-браузерної системи для розробки розширень. Значною мірою API сумісний з <a class="external external-icon" href="https://developer.chrome.com/extensions">API розширенням</a>, яке підтримується Google Chrome і Opera. Розширення написані для цих браузерів в більшості випадків запускатимуться у Firefox або Microsoft Edge з <a href="/uk/docs/Mozilla/Add-ons/WebExtensions/Porting_a_Google_Chrome_extension">лише кількома змінами</a>. API також повністю сумісний з <a href="/uk/Firefox/Multiprocess_Firefox">багатопроцесовим Firefox</a>.</p> - -<p>В минулому, ви могли розробляти розширення Firefox використовуючи одне з трьох різних систем: <a href="/uk/Add-ons/Overlay_Extensions">XUL/XPCOM overlays</a>, <a href="/uk/docs/Mozilla/Add-ons/Bootstrapped_extensions">bootstrapped extensions</a>, або <a href="/uk/docs/Mozilla/Add-ons/SDK">Add-on SDK</a>. По закінченню Листопада 2017-го, API Web-розширення будуть єдиним способом розробки розширень Firefox, і інші системи не будуть підтримуватися.</p> - -<p>Якщо ви маєте ідеї або питання, чи вам потрібна допомога міграції успадкованого додатку на API Web-розширень, то ви можете зв'язатися з нами на <a class="external external-icon" href="https://mail.mozilla.org/listinfo/dev-addons">dev-addons списку листування</a> або в <a href="irc://irc.mozilla.org/extdev">#extdev</a> на <a class="external external-icon" href="https://wiki.mozilla.org/IRC">IRC</a>.</p> - -<h2 id="Що_далі">Що далі?</h2> - -<ul> - <li>Спробувати деякі приклади розширень, див. <a href="/uk/Add-ons/WebExtensions/Examples">Приклад розширень</a>.</li> - <li>Дізнатися про структуру розширення, див. <a href="/uk/docs/Mozilla/Add-ons/WebExtensions/Anatomy_of_a_WebExtension">Анатомія розширення</a>.</li> - <li>Перейти до розробки простого розширення, див. <a href="/uk/docs/Mozilla/Add-ons/WebExtensions/Your_first_WebExtension">Ваше перше розширення</a>.</li> -</ul> |