diff options
Diffstat (limited to 'files/uk/mozilla')
21 files changed, 2149 insertions, 0 deletions
diff --git a/files/uk/mozilla/add-ons/index.html b/files/uk/mozilla/add-ons/index.html new file mode 100644 index 0000000000..955878627f --- /dev/null +++ b/files/uk/mozilla/add-ons/index.html @@ -0,0 +1,110 @@ +--- +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/themes/index.html b/files/uk/mozilla/add-ons/themes/index.html new file mode 100644 index 0000000000..0fc6641958 --- /dev/null +++ b/files/uk/mozilla/add-ons/themes/index.html @@ -0,0 +1,61 @@ +--- +title: Themes +slug: Mozilla/Add-ons/Themes +tags: + - Look & Feel + - NeedsTranslation + - Themes + - TopicStub + - Додатки +translation_of: Mozilla/Add-ons/Themes +--- +<p>{{AddonSidebar}}</p> + +<div class="warning"> +<p>The Theme documentation here is out of date.</p> +</div> + +<p>Themes are skins for different Mozilla applications. They allow you to change the look and feel of the user interface and personalize it to your tastes. A theme can simply change the colors of the UI or it can change every piece of its appearance.</p> + +<div class="column-container"> +<div class="column-half"> +<h2 class="Documentation" id="Documentation" name="Documentation">Documentation</h2> + +<dl> + <dt><a href="/en-US/docs/Building_a_Theme" title="Building a Theme">Building a Theme</a></dt> + <dd>A tutorial for building a simple theme in Firefox.</dd> + <dt><a href="/en-US/docs/Themes/Common_Firefox_Theme_Issues_and_Solutions" title="Themes/Common_Firefox_Theme_Issues_and_Solutions">Common Theme Issues and Their Solutions</a></dt> + <dd>Common issues seen when AMO editors review themes and how to fix them.</dd> + <dt><a href="/en-US/docs/Themes/Lightweight_themes" title="Themes/Lightweight themes">Lightweight themes</a></dt> + <dd>Building lightweight themes for Firefox</dd> + <dt><a href="/en-US/docs/Creating_a_Skin_for_SeaMonkey_2.x" title="Creating_a_Skin_for_SeaMonkey_2.x">Creating a Skin for SeaMonkey 2</a></dt> + <dd>An introduction to creating new themes for SeaMonkey 2.</dd> + <dt><a href="/en-US/docs/Making_Sure_Your_Theme_Works_with_RTL_Locales" title="Making_Sure_Your_Theme_Works_with_RTL_Locales">Making Sure Your Theme Works with RTL Locales</a></dt> + <dd>How to make sure your theme will look right with Hebrew, Arabic, Persian and Urdu locales.</dd> + <dt><a href="/en-US/docs/Theme_Packaging" title="Theme_Packaging">Theme Packaging</a></dt> + <dd>How to package themes for Firefox and Thunderbird.</dd> + <dt><a href="http://www.tudobom.de/articles/yatt/" title="http://www.tudobom.de/articles/yatt/">Yet Another Theme Tutorial</a></dt> + <dd>Another tutorial in Mozilla theme construction.</dd> + <dt><a href="/en-US/Mozilla/Add-ons/Themes/Obsolete">Obsolete docs</a></dt> + <dd>These docs are very old and will never be updated, but we've kept them in case the are useful source material for people updating the Theme documentation.</dd> +</dl> +</div> + +<div class="column-half"> +<h2 id="Getting_help">Getting help</h2> + +<ul> + <li><a href="http://forums.mozillazine.org/viewforum.php?f=18">MozillaZine Themes forum</a></li> +</ul> + +<h2 class="Tools" id="Tools" name="Tools">Tools</h2> + +<ul> + <li><a href="/en-US/docs/DOM_Inspector" title="DOM_Inspector">DOM Inspector</a></li> + <li><a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/inspectorwidget/">InspectorWidget</a></li> + <li><a class="link-https" href="https://addons.mozilla.org/en-us/firefox/addon/force-rtl/">Force RTL</a>: Test for RTL compatibility</li> +</ul> +</div> +</div> + +<p> </p> diff --git a/files/uk/mozilla/add-ons/themes/фон/index.html b/files/uk/mozilla/add-ons/themes/фон/index.html new file mode 100644 index 0000000000..88eaf9c00f --- /dev/null +++ b/files/uk/mozilla/add-ons/themes/фон/index.html @@ -0,0 +1,74 @@ +--- +title: Фонові теми +slug: Mozilla/Add-ons/Themes/Фон +translation_of: Mozilla/Add-ons/Themes/Lightweight_themes +--- +<h2 id="Як_створити_власну_фонову_тему">Як створити власну фонову тему</h2> + +<div class="primary auto" id="getting-started"> +<p>Теми робляться з файлу зображення "header", який виставляє фон за замовчанням у користувацькому інтерфейсі Firefox</p> + +<p>Закінчили свій дизайн? <a href="https://addons.mozilla.org/developers/theme/submit">Викладіть його зараз!</a></p> + +<h3 id="Створення_зображення_верхівки_теми">Створення зображення верхівки теми</h3> + +<p>Зображення верхівки зображається як фонове зображення зверху вікна, знаходячись за панеллю інструментів, лінією вводу та вкладок. Воно буде відцентроване за правим верхнім кутом вікна.</p> + +<p class="screenshot"><img alt="" src="https://mdn.mozillademos.org/files/9929/header-step.jpg" style="height: 215px; width: 1059px;"></p> + +<ul> + <li><a href="https://addons.cdn.mozilla.net/static/img/docs/themes/header.jpg">View a sample Theme Header here.</a></li> +</ul> + +<h4 id="Вимоги_до_файлу_зображення">Вимоги до файлу зображення</h4> + +<ul> + <li>Розміри повинні бути <strong>3000px у ширину та 200px у висоту</strong></li> + <li>Формат файлу мусить бути <strong>PNG</strong> або <strong>JPG</strong></li> + <li>Зображення не має займати більше ніж <strong>300КБ</strong></li> +</ul> + +<h4 id="Поради">Поради</h4> + +<ul> + <li>Витончені зображення з м'яким контрастом тa градієнти працюють найкраще; високоякісні зображення гарно компонують з користувацьким інтерфейсом.</li> + <li>Firefox може показувати більшу частину зображення, якщо інша панель інструментів або інший елемент доданий до зверху вікна </li> + <li>Найвища права сторона зображення має мати найнеобхіднішу інформацію - оскільки користувач розширює вікно, браузер більше показує ліву сторону.</li> +</ul> + +<h4 id="Онлайн-ресурси_для_редагування_зображеннь">Онлайн-ресурси для редагування зображеннь</h4> + +<ul> + <li><a href="http://www.pixlr.com">Pixlr</a> — Pixlr пропонує професіональне та водночас просте середовище для редагування зображень прямо в веб-браузері.</li> + <li><a href="http://www.photoshop.com/tools?wf=editor">Photoshop</a> — Редагуйте та перевертайте фото з Photoshop® Express, безкоштомним редактором зображень онлайн.</li> +</ul> + +<h3 id="Викладання_теми_в_мережу">Викладання теми в мережу</h3> + +<p>Щоб почати викладати теми перейдіть до <a href="https://addons.mozilla.org/developers/theme/submit">Сторінки викладення тем:</a></p> + +<ol class="itemized"> + <li><strong>Назвіть свою тему</strong> — виберіть унікальне ім'я для своєї теми. Дуплікати назв не дозволені,тож вам можливо прийдеться подумати над цим якийсь час.</li> + <li><strong>Виберіть категорію та теги</strong> — виберіть категорію and та введіть теги, які найкраще описують вашу тему. Не забувайте про те, що переглядач може відхилити вашу тему, якщо її теги та/або категорія не підходять.</li> + <li><strong>Опишіть свою тему</strong> — напишіть короткий опис своєї теми. Не забувайте про те, що переглядач може відхилити вашу тему, якщо її опис не підходить.</li> + <li><strong>Виберіть ліцензію</strong> — <a href="http://creativecommons.org/licenses/">Прочитайте більше про ліцензії Creative Common.</a> + <ul> + <li><strong>Важливо:</strong> Впевніться, що ви маєте достатні права для зображень з вешої теми</li> + </ul> + </li> + <li><strong>Вивантажте своє зображення</strong></li> + <li><strong>Select text and tab colors</strong> — you can choose the tab ("background") color and foreground text color that work best with your header image.</li> + <li><strong>Preview your theme</strong> — you're ready to preview your theme! Simply mouse over the image above the Submit Theme button, and see how it looks instantly.</li> + <li><strong>Submit your theme</strong> — if everything looks right, click the Submit Theme button and you're done! You can see all the themes you've authored on your profile page. + <ul> + <li><strong>Tip:</strong> to ensure that your theme is approved for the gallery, be sure it complies with the content guidelines and terms of service!</li> + </ul> + </li> +</ol> + +<p class="call-to-submit"><a class="button prominent" href="https://addons.mozilla.org/en-US/developers/theme/submit">Submit Your Theme Now</a></p> + +<h2 class="call-to-submit" id="More_Tutorials">More Tutorials</h2> + +<p><a href="http://vanillaorchidstutorials.blogspot.com/2015/11/mozilla-themes-focal-point-sizing.html">Mozilla Themes Focal Point on Sizing</a> - A tutorial on theming with a focus on sizing, by VanillaOrchids.</p> +</div> diff --git a/files/uk/mozilla/add-ons/webextensions/api/index.html b/files/uk/mozilla/add-ons/webextensions/api/index.html new file mode 100644 index 0000000000..0bbd6f9878 --- /dev/null +++ b/files/uk/mozilla/add-ons/webextensions/api/index.html @@ -0,0 +1,57 @@ +--- +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 new file mode 100644 index 0000000000..1a1c8fcf2c --- /dev/null +++ b/files/uk/mozilla/add-ons/webextensions/api/sessions/index.html @@ -0,0 +1,136 @@ +--- +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 new file mode 100644 index 0000000000..f557ad46f1 --- /dev/null +++ b/files/uk/mozilla/add-ons/webextensions/api/sessions/restore/index.html @@ -0,0 +1,108 @@ +--- +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 new file mode 100644 index 0000000000..3d759fc48c --- /dev/null +++ b/files/uk/mozilla/add-ons/webextensions/index.html @@ -0,0 +1,120 @@ +--- +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 new file mode 100644 index 0000000000..b415ba0b0b --- /dev/null +++ b/files/uk/mozilla/add-ons/webextensions/interact_with_the_clipboard/index.html @@ -0,0 +1,171 @@ +--- +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/що_таке_web_розширення/index.html b/files/uk/mozilla/add-ons/webextensions/що_таке_web_розширення/index.html new file mode 100644 index 0000000000..2a9bc1da15 --- /dev/null +++ b/files/uk/mozilla/add-ons/webextensions/що_таке_web_розширення/index.html @@ -0,0 +1,25 @@ +--- +title: Що таке розширення? +slug: Mozilla/Add-ons/WebExtensions/Що_таке_Web_Розширення +tags: + - Web-Розширення + - Розширення +translation_of: Mozilla/Add-ons/WebExtensions/What_are_WebExtensions +--- +<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> diff --git a/files/uk/mozilla/firefox/experimental_features/index.html b/files/uk/mozilla/firefox/experimental_features/index.html new file mode 100644 index 0000000000..9b68f1611f --- /dev/null +++ b/files/uk/mozilla/firefox/experimental_features/index.html @@ -0,0 +1,537 @@ +--- +title: Експериментальні функції в Firefox +slug: Mozilla/Firefox/Experimental_features +translation_of: Mozilla/Firefox/Experimental_features +--- +<div>{{FirefoxSidebar}}</div><p class="summary">In order to test new features, Mozilla publishes a test version of the Firefox browser, <a href="https://nightly.mozilla.org/">Firefox Nightly</a>, every day. Experimental features, for example implementations of proposed Web platform standards, are available. This page lists features that are in Nightly versions of Firefox along with information on how to activate them, if necessary. You can test your Web sites and applications before these features get released and ensure everything will still work with the latest Web technology capabilities.</p> + +<p>To test these experimental features, you need to download <a href="https://nightly.mozilla.org/">Firefox Nightly</a> or <a href="https://www.mozilla.org/uk/firefox/developer/">Firefox Developer Edition</a>.</p> + +<h2 id="HTML">HTML</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Функція</th> + <th scope="col">Firefox Nightly</th> + <th scope="col">Firefox Developer Edition</th> + <th scope="col">Firefox Бета</th> + <th scope="col">Firefox Release</th> + <th scope="col">Переваги</th> + </tr> + <tr> + <td><strong>Date and time inputs</strong><br> + The UI for the {{HTMLElement("input")}} <a href="/uk/docs/Web/HTML/Element/input/date">date</a> and <a href="/uk/docs/Web/HTML/Element/input/time">time</a> related input types.</td> + <td>Вимкнено<br> + <sub>(available since 51)</sub></td> + <td>Вимкнено<br> + <sub>(available since 51)</sub></td> + <td>Вимкнено<br> + <sub>(available since 51)</sub></td> + <td>---</td> + <td><code>dom.forms.datetime</code></td> + </tr> + </thead> +</table> + +<h2 id="CSS">CSS</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Функція</th> + <th scope="col">Firefox Nightly</th> + <th scope="col">Firefox Developer Edition</th> + <th scope="col">Firefox Бета</th> + <th scope="col">Firefox Release</th> + <th scope="col">Переваги</th> + </tr> + </thead> + <tbody> + <tr> + <td><strong><a href="/uk/docs/Web/CSS/CSS_Grid_Layout">Grid Layout</a></strong></td> + <td>40</td> + <td>40</td> + <td>Увімкнено<br> + <sub>(available since 40, enabled by default since 52)</sub></td> + <td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1217086">Вимкнено</a></td> + <td><code>layout.css.grid.enabled</code></td> + </tr> + <tr> + <td><strong>Subgrids</strong></td> + <td>Вимкнено</td> + <td>Вимкнено</td> + <td>Вимкнено</td> + <td>Вимкнено</td> + <td><code>layout.css.grid-template-subgrid-value.enabled</code></td> + </tr> + <tr> + <td><strong>Logical values for <code>clear</code> and <code>float</code> CSS properties</strong><br> + The values {{cssxref("clear")}}<code>:</code> <code>inline-start</code> and <code>clear:</code> <code>inline-end</code> as well as {{cssxref("float")}}<code>:</code> <code>inline-start</code> and <code>float:</code> <code>inline-end</code> are making easier to create layouts that are agnostic to the text directionality.</td> + <td>45</td> + <td>45</td> + <td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1253919">Вимкнено</a></td> + <td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1253919">Вимкнено</a></td> + <td><code>layout.css.float-logical-values.enabled</code></td> + </tr> + <tr> + <td><strong>Display stray control characters in CSS as hex boxes</strong><br> + This feature renders control characters (Unicode category Cc) other than <em>tab</em> (<code>U+0009</code>), <em>line feed</em> (<code>U+000A</code>), <em>form feed</em> (<code>U+000C</code>), and <em>carriage return</em> (<code>U+000D</code>) as a hexbox when they are not expected.</td> + <td>43</td> + <td>43</td> + <td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1329613">Вимкнено</a></td> + <td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1329613">Вимкнено</a></td> + <td><code>layout.css.control-characters.enabled</code></td> + </tr> + <tr> + <td><strong>The <code>transform-box</code> property</strong><br> + Controls the box the relative values of {{cssxref("transform-origin")}} and {{cssxref("transform")}} relate too.</td> + <td>41</td> + <td>41</td> + <td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1208550">Вимкнено</a></td> + <td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1208550">Вимкнено</a></td> + <td><code>svg.transform-box.enabled</code></td> + </tr> + <tr> + <td><strong>Basic shapes in </strong><code><strong>clip-path</strong></code><br> + Adds the functions <code>circle()</code>, <code>ellipse()</code>, and <code>polygon()</code> to the set of possible values for {{cssxref("clip-path")}}. This is a part of CSS Masks Level 1.</td> + <td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1303654">Увімкнено</a><br> + <sub>(available since 47, enabled by default since 53)</sub></td> + <td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1303654">Увімкнено</a><br> + <sub>(available since 47, enabled by default since 53)</sub></td> + <td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1247229">Вимкнено</a><br> + <sub>(available since 47)</sub></td> + <td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1247229">Вимкнено</a><br> + <sub>(available since 47)</sub></td> + <td><code>layout.css.clip-path-shapes.enabled</code></td> + </tr> + <tr> + <td><strong>Positioned CSS Masks</strong><br> + A subset of CSS Masks that includes <a href="/uk/docs/Web/CSS/CSS_Masks">longhand properties of CSS Masks</a>, as well as a change in the shorthand property</td> + <td>51</td> + <td>51</td> + <td>53</td> + <td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1251161">Вимкнено</a><br> + <sub>(planned for 53)</sub></td> + <td>Controlled by a compile flag (MOZ_ENABLE_MASK_AS_SHORTHAND).</td> + </tr> + <tr> + <td><strong>The <code>font-display</code> descriptor for <code>@font-face</code></strong><br> + To improve Web fonts performance, {{cssxref("@font-face")}} has an experimental {{cssxref("@font-face/font-display", "font-display")}} descriptor.</td> + <td>Вимкнено<br> + <sub>(available since 46)</sub></td> + <td>Вимкнено<br> + <sub>(available since 46)</sub></td> + <td>Вимкнено<br> + <sub>(available since 46)</sub></td> + <td>Вимкнено<br> + <sub>(available since 46)</sub></td> + <td><code>layout.css.font-display.enabled</code></td> + </tr> + <tr> + <td><strong>The <code>touch-action</code> CSS property</strong><br> + The {{cssxref("touch-action")}} CSS property is part of the {{SpecName("Pointer Events")}} specification and allows to specify how and in what way the user is able to manipulate an object by touch.</td> + <td>50</td> + <td>—</td> + <td>—</td> + <td>—</td> + <td><code>layout.css.touch_action.enabled</code></td> + </tr> + <tr> + <td> + <p><strong id="shape-outside">The <code>shape-outside</code> CSS property</strong><br> + The {{cssxref("shape-outside")}} CSS property is part of the {{SpecName("CSS Shapes")}} specification and allows to specify a float area causing inline contents to wrap around a shape.</p> + + <p>Firefox currently implements the <code><shape-box></code> values ({{bug(1309467)}}) as well as the <code>circle()</code> ({{bug(1311244)}}) and <code>ellipse()</code> ({{bug(1326406)}}) functions.</p> + </td> + <td>Вимкнено<br> + <sub>(available since 53)</sub></td> + <td>—</td> + <td>—</td> + <td>—</td> + <td><code>layout.css.shape-outside.enabled</code></td> + </tr> + <tr> + <td><strong>The <code>contain</code> CSS property</strong><br> + The {{cssxref("contain")}} CSS property is part of the {{SpecName("CSS Containment")}} specification and allows to indicate that an element and its contents are independent of the rest of the document tree, allowing {{Glossary("User agent", "user agents")}} to optimize the rendering of a page.</td> + <td>Вимкнено<br> + <sub>(available since 45)</sub></td> + <td>Вимкнено<br> + <sub>(available since 45)</sub></td> + <td>Вимкнено<br> + <sub>(available since 45)</sub></td> + <td>Вимкнено<br> + <sub>(available since 45)</sub></td> + <td><code>layout.css.contain.enabled</code></td> + </tr> + </tbody> +</table> + +<h2 id="JavaScript">JavaScript</h2> + +<p id="ECMAScript_2016">See also <a href="/uk/docs/Web/JavaScript/New_in_JavaScript/ECMAScript_Next_support_in_Mozilla">ECMAScript Next support</a> for implemented features of ECMAScript 2016 and later, that are not experimental and thus available without preferences in Firefox Release.</p> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Функція</th> + <th scope="col">Firefox Nightly</th> + <th scope="col">Firefox Developer Edition</th> + <th scope="col">Firefox Бета</th> + <th scope="col">Firefox Release</th> + <th scope="col">Переваги</th> + </tr> + </thead> + <tbody> + <tr> + <td><strong>Additions to the <code>ArrayBuffer</code> object</strong><br> + Adds the {{jsxref("ArrayBuffer.transfer()")}} that returns a new <code>ArrayBuffer</code> whose contents have been taken from the <code>oldBuffer</code>'s data (<a href="https://gist.github.com/lukewagner/2735af7eea411e18cf20">spec</a>).</td> + <td>36</td> + <td>Вимкнено</td> + <td>Вимкнено</td> + <td>Вимкнено</td> + <td>None</td> + </tr> + <tr> + <td><strong>TypedObject objects</strong> (<a href="https://github.com/dslomov-chromium/typed-objects-es7">spec</a>)</td> + <td>Увімкнено</td> + <td>Вимкнено</td> + <td>Вимкнено</td> + <td>Вимкнено</td> + <td>None</td> + </tr> + <tr> + <td><a href="/uk/docs/Web/JavaScript/Reference/Global_Objects/SIMD">SIMD</a> (<a href="https://github.com/johnmccutchan/ecmascript_simd">specification and polyfill</a>)</td> + <td>Увімкнено</td> + <td>Вимкнено</td> + <td>Вимкнено</td> + <td>Вимкнено</td> + <td>None</td> + </tr> + <tr> + <td><strong>Shared Memory objects</strong><br> + {{jsxref("SharedArrayBuffer")}}<br> + {{jsxref("Atomics")}}</td> + <td>Увімкнено<br> + <sub>(available since 46)</sub></td> + <td>Увімкнено<br> + <sub>(available since 51)</sub></td> + <td>Вимкнено<br> + <sub>(available since 46)</sub></td> + <td>Вимкнено<br> + <sub>(available since 46)</sub></td> + <td><code>javascript.options.shared_memory</code></td> + </tr> + </tbody> +</table> + +<h2 id="APIs">APIs</h2> + +<h3 id="Canvas_WebGL">Canvas & WebGL</h3> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Функція</th> + <th scope="col">Firefox Nightly</th> + <th scope="col">Firefox Developer Edition</th> + <th scope="col">Firefox Бета</th> + <th scope="col">Firefox Release</th> + <th scope="col">Переваги</th> + </tr> + </thead> + <tbody> + <tr> + <td><strong><code>WEBGL_debug_renderer_info</code> extension</strong><br> + The {{domxref("WEBGL_debug_renderer_info")}} extension allows to transmit information useful to help debugging problems to the server.</td> + <td>42</td> + <td>42</td> + <td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=742798">Вимкнено</a></td> + <td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=742798">Вимкнено</a></td> + <td><code>webgl.enable-debug-renderer-info</code></td> + </tr> + <tr> + <td><strong>OffscreenCanvas</strong><br> + The {{domxref("OffscreenCanvas")}} interface provides a canvas that can be rendered off screen. It is available in both the window and <a href="/uk/docs/Web/API/Web_Workers_API">worker</a> contexts.</td> + <td>Вимкнено<br> + <sub>(available since 44)</sub></td> + <td>Вимкнено<br> + <sub>(available since 44)</sub></td> + <td>Вимкнено<br> + <sub>(available since 44)</sub></td> + <td>Вимкнено<br> + <sub>(available since 44)</sub></td> + <td><code>gfx.offscreencanvas.enabled</code></td> + </tr> + <tr> + <td><strong><a href="/uk/docs/Web/API/Canvas_API/Tutorial/Hit_regions_and_accessibility">Hit regions</a></strong><br> + Whether the mouse coordinates are within a particular area on the canvas, is a common problem to solve. The hit region API allows you define an area of your canvas and provides another possibility to expose interactive content on a canvas to accessibility tools.</td> + <td>Вимкнено<br> + <sub>(available since 30)</sub></td> + <td>Вимкнено<br> + <sub>(available since 30)</sub></td> + <td>Вимкнено<br> + <sub>(available since 30)</sub></td> + <td>Вимкнено<br> + <sub>(available since 30)</sub></td> + <td><code>canvas.hitregions.enabled</code></td> + </tr> + </tbody> +</table> + +<h3 id="DOM"> DOM</h3> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Функція</th> + <th scope="col">Firefox Nightly</th> + <th scope="col">Firefox Developer Edition</th> + <th scope="col">Firefox Бета</th> + <th scope="col">Firefox Release</th> + <th scope="col">Переваги</th> + </tr> + </thead> + <tbody> + <tr> + <td><strong>WebVR API</strong><br> + The <a href="/uk/docs/Web/API/WebVR_API">WebVR API</a> allows to control and use virtual reality devices.</td> + <td>46<br> + <sub>A major update of the interface happened in version 51.</sub></td> + <td>46<br> + <sub>A major update of the interface happened in version 51.</sub></td> + <td>Вимкнено</td> + <td>Вимкнено</td> + <td><code>dom.vr.enabled</code></td> + </tr> + <tr> + <td><strong>FlyWeb</strong><br> + <a href="https://flyweb.github.io/">FlyWeb</a> is a project at Mozilla focused on bringing a new set of APIs to the browser for advertising and discovering local-area web servers.</td> + <td>51</td> + <td>Вимкнено</td> + <td>Вимкнено</td> + <td>Вимкнено</td> + <td><code>dom.flyweb.enabled</code></td> + </tr> + <tr> + <td><code><strong>HTMLMediaElement.seekToNextFrame()</strong></code><br> + Part of an experimentation process around support non-real-time access to media for tasks including filtering, editing, and so forth, the {{domxref("HTMLMediaElement.seekToNextFrame()")}} advances the the current play position to the next frame in the media.</td> + <td>49<br> + <sub>(Fundamental update in version 50)</sub></td> + <td>49<br> + <sub>(Fundamental update in version 50)</sub></td> + <td>Вимкнено</td> + <td>Вимкнено</td> + <td><code>media.seekToNextFrame.enabled</code></td> + </tr> + <tr> + <td><strong><code>GeometryUtils.getBoxQuads()</code></strong> ({{bug(917755)}})</td> + <td>31</td> + <td>31</td> + <td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1107559">Вимкнено</a></td> + <td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1107559">Вимкнено</a></td> + <td><code>layout.css.getBoxQuads.enabled</code></td> + </tr> + <tr> + <td><strong><code>GeometryUtils.convertPointFromNode()</code></strong>,<br> + <strong><code>GeometryUtils.RectFromNode()</code></strong>, and<br> + <code><strong>GeometryUtils.convertQuadFromNode()</strong></code><br> + ({{bug(918189)}})</td> + <td>31</td> + <td>31</td> + <td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1107559">Вимкнено</a></td> + <td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1107559">Вимкнено</a></td> + <td><code>layout.css.convertFromNode.enabled</code></td> + </tr> + <tr> + <td><strong><code>Node.rootNode</code></strong><br> + The {{domxref("Node.rootNode")}} property returns a {{domxref("Node")}} object representing the topmost node in the tree, or the current node if it's the topmost node in the tree.<br> + <em>This feature is kept experimental as its naming poses Web compatibility problems. It will be renamed in the future.</em></td> + <td>48</td> + <td>48</td> + <td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1269155">Вимкнено</a></td> + <td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1269155">Вимкнено</a></td> + <td><code>dom.node.rootNode.enabled</code></td> + </tr> + <tr> + <td><strong>Performance Observer API</strong><br> + The {{domxref("PerformanceObserver")}} interface is used to <em>observe</em> performance measurement events and be notified of new <a href="/uk/docs/Web/API/PerformanceEntry" title="The PerformanceEntry object encapsulates a single performance metric that is part of the performance timeline. A performance entry can be directly created by making a performance mark or measure (for example by calling the mark() method) at an explicit point in an application. Performance entries are also created in indirect ways such as loading a resource (such as an image).">performance entries</a> as they are recorded in the browser's <em>performance timeline</em>.</td> + <td>49</td> + <td>Вимкнено</td> + <td>Вимкнено</td> + <td>Вимкнено</td> + <td><code>dom.enable_performance_observer</code></td> + </tr> + <tr> + <td><strong>WebVTT Regions API</strong><br> + <a href="/uk/docs/Web/API/Web_Video_Text_Tracks_Format">WebVTT</a> regions are parts of the video viewport that provide a rendering area for WebVTT cues. The {{domxref("VTTRegion")}} is the interface exposing the WebVTT cues.<br> + <em>This interface is considered to be in flux and isn't therefore activated in any version by default.</em></td> + <td>Вимкнено<br> + <sub>(Experimental implementation since version 30)</sub></td> + <td>Вимкнено</td> + <td>Вимкнено</td> + <td>Вимкнено</td> + <td><code>media.webvtt.regions.enabled</code></td> + </tr> + <tr> + <td><strong>Support for audio and video tracks</strong><br> + Implements {{domxref("HTMLMediaElement.audioTracks")}} and {{domxref("HTMLMediaElment.videoTracks")}}.<br> + <em>Firefox doesn't support multiple audio or video tracks, preventing the most common use cases for these properties to work properly. That's why these properties are not activated by default in any version.</em></td> + <td>Вимкнено<br> + <sub>(Experimental implementation since version 33)</sub></td> + <td>Вимкнено</td> + <td>Вимкнено</td> + <td>Вимкнено</td> + <td><code>media.track.enabled</code></td> + </tr> + <tr> + <td><strong>Better value for <code>Event.timestamp</code></strong><br> + The property {{domxref("Event.timestamp")}} is returning a {{domxref("DOMHighResTimeStamp")}}, but the value is not the time since but since the reboot. This change allow for returning a timestamp relative to the Unix epoch.</td> + <td>32 (Windows)<br> + 43 (Linux)</td> + <td>32 (Windows)<br> + 43 (Linux)</td> + <td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1026804">Вимкнено</a></td> + <td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1026804">Вимкнено</a></td> + <td><code>media.track.enabled</code></td> + </tr> + <tr> + <td><strong>Pointer Events</strong></td> + <td>50</td> + <td>Вимкнено</td> + <td>Вимкнено</td> + <td>Вимкнено</td> + <td><code>dom.w3c_pointer_events.enabled</code></td> + </tr> + <tr> + <td><strong><code>MediaDevices.ondevicechange</code> and the <code>devicechange</code> event</strong><br> + The {{domxref("MediaDevices.ondevicechange")}} event handler and corresponding {{event("devicechange")}} event make it possible to detect and react when audio and video devices are attached to or removed from the computer.</td> + <td> + <p><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1308115">Вимкнено</a><br> + 51 (Mac)</p> + + <p>Увімкнено<br> + 52 (Mac)<br> + 52 (Windows)<br> + 52 (Linux)</p> + </td> + <td> + <p><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1308115">Вимкнено</a><br> + 51 (Mac)</p> + + <p>Увімкнено<br> + 52 (Mac)<br> + 52 (Windows)<br> + 52 (Linux)</p> + </td> + <td> + <p><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1308115">Вимкнено</a><br> + 51 (Mac)</p> + + <p>Увімкнено<br> + 52 (Mac)<br> + 52 (Windows)<br> + 52 (Linux)</p> + </td> + <td> + <p><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1308115">Вимкнено</a><br> + 51 (Mac)</p> + + <p>Увімкнено<br> + 52 (Mac)<br> + 52 (Windows)<br> + 52 (Linux)</p> + </td> + <td><code>media.ondevicechange.enabled</code></td> + </tr> + <tr> + <td><strong>Intersection Observer API</strong><br> + The {{domxref("Intersection Observer API")}} allows you to configure a callback that is called whenever one item, called a target, intersects either the device viewport or a specified element called.</td> + <td>Вимкнено<br> + <sub>(available since 53)</sub></td> + <td>---</td> + <td>---</td> + <td>---</td> + <td><code>dom.IntersectionObserver.enabled</code></td> + </tr> + <tr> + <td><strong><a href="/uk/docs/Web/API/Web_Animations_API">Web Animations API</a></strong><br> + The {{domxref("KeyframeEffectReadOnly.KeyframeEffectReadOnly()")}} and {{domxref("KeyframeEffect.KeyframeEffect()")}} constructors can be used to clone existing {{domxref("KeyframeEffectReadOnly")}} object instances by being given the object to clone as their only parameter (see {{bug(1273784)}}.) The <code>KeyframeEffect.clone()</code> method, which was meant to provide this functionality but was never implemented in Firefox, has been removed from the spec.</td> + <td>52</td> + <td>52</td> + <td>Вимкнено</td> + <td>Вимкнено</td> + <td>None</td> + </tr> + </tbody> +</table> + +<h2 id="Developer_Tools">Developer Tools</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Функція</th> + <th scope="col">Firefox Nightly</th> + <th scope="col">Firefox Developer Edition</th> + <th scope="col">Firefox Бета</th> + <th scope="col">Firefox Release</th> + <th scope="col">Переваги</th> + </tr> + </thead> + <tbody> + <tr> + <td><strong>Debugger rewrite in HTML</strong></td> + <td>52</td> + <td>52</td> + <td>Вимкнено</td> + <td>Вимкнено</td> + <td><code>devtools.debugger.new-debugger-frontend</code></td> + </tr> + <tr> + <td><strong>Console rewrite in HTML</strong></td> + <td>52</td> + <td>Вимкнено</td> + <td>Вимкнено</td> + <td>Вимкнено</td> + <td><code>devtools.webconsole.new-frontend-enabled</code></td> + </tr> + <tr> + <td><strong>Responsive Design Mode rewrite in HTML</strong><br> + A rewrite of Responsive Design Mode using HTML adds new features like a device selector (applies size, UA, dPR), UI redesign, and there's more still to come.</td> + <td>52</td> + <td>52</td> + <td>52</td> + <td>52</td> + <td><code>devtools.responsive.html.enabled</code></td> + </tr> + <tr> + <td><strong>Experimental Performance tool options</strong><br> + Enables options in the UI for JIT optimizations, memory, etc.</td> + <td>41</td> + <td>Вимкнено</td> + <td>Вимкнено</td> + <td>Вимкнено</td> + <td><code>devtools.performance.ui.experimental</code></td> + </tr> + <tr> + <td><strong>Layout side panel</strong><br> + The Layout side panel allows to inspect and manage different CSS layout types like <a href="/uk/docs/Web/CSS/CSS_Grid_Layout">CSS Grid Layout</a>.</td> + <td>Вимкнено<br> + <sub>(available since 52)</sub></td> + <td>Вимкнено<br> + <sub>(available since 52)</sub></td> + <td>---</td> + <td>---</td> + <td><code>devtools.layoutview.enabled</code></td> + </tr> + </tbody> +</table> + +<h2 id="See_also">See also</h2> + +<ul> + <li><a href="/uk/docs/Mozilla/Firefox/Releases">Firefox developer release notes</a></li> + <li><a href="https://nightly.mozilla.org/">Firefox Nightly</a></li> + <li><a href="https://www.mozilla.org/uk/firefox/developer/">Firefox Developer Edition</a></li> +</ul> diff --git a/files/uk/mozilla/firefox/firefox_esr/index.html b/files/uk/mozilla/firefox/firefox_esr/index.html new file mode 100644 index 0000000000..81ac408b05 --- /dev/null +++ b/files/uk/mozilla/firefox/firefox_esr/index.html @@ -0,0 +1,10 @@ +--- +title: Firefox ESR +slug: Mozilla/Firefox/Firefox_ESR +translation_of: Mozilla/Firefox/Firefox_ESR +--- +<div>{{FirefoxSidebar}}</div><p>Firefox з розширеною підтримкою (Extended Support Release - ESR) заснована на офіційній версії Firefox для настільних ПК, для використання організаціями, яким потрібна розширена підтримка для масового розгортання. Unlike other release channels, ESRs are not updated with new features every six weeks.Rather,they are supported for about a year and only updated with major security or stability fixes. The current ESR version is based on Firefox 45 issued on March 8th, 2016. The next ESR version will be released on December 27th, 2016 and will be number 52.</p> + +<p>CCK2 це кращий спосіб, щоб налаштувати Firefox. Завантажити <a href="https://mike.kaply.com/cck2/">тут</a>.</p> + +<p>We strongly encourage Firefox ESR users to sign up for the <a href="https://www.mozilla.org/uk/firefox/organizations/">Enterprise Working Group (EWG) mailing list</a>.</p> diff --git a/files/uk/mozilla/firefox/index.html b/files/uk/mozilla/firefox/index.html new file mode 100644 index 0000000000..1fd1fae05f --- /dev/null +++ b/files/uk/mozilla/firefox/index.html @@ -0,0 +1,86 @@ +--- +title: Firefox +slug: Mozilla/Firefox +tags: + - Firefox + - Landing + - Mozilla + - NeedsTranslation + - TopicStub +translation_of: Mozilla/Firefox +--- +<div>{{FirefoxSidebar}}</div> + +<p><a href="https://www.mozilla.org/firefox/">Firefox</a> is Mozilla's popular Web browser, available for multiple platforms including Windows, macOS, and Linux on the desktop and all Android and iOS mobile devices. With broad compatibility, the latest in Web technologies, and powerful development tools, Firefox is a great choice for both Web developers and end users.</p> + +<p>Firefox is an open source project; much of the code is contributed by our huge community of volunteers. <span class="seoSummary">Here you can learn about how to contribute to the Firefox project and you will also find links to information about the construction of Firefox add-ons, using the developer tools in Firefox, and other topics.</span></p> + +<div class="summary"> +<p>Learn how to create add-ons for <a href="https://www.mozilla.org/firefox/">Firefox</a>, how to develop and build Firefox itself, and how the internals of Firefox and its subprojects work.</p> +</div> + +<ul class="card-grid"> + <li><span>Developer release notes</span> + + <p><a href="/en-US/Firefox/Releases">Developer-focused release notes</a>; learn what new capabilities for both Web sites and add-ons arrive in each version of Firefox.</p> + </li> + <li><span>Project documentation</span> + <p>Get detailed information about <a href="/en-US/docs/Mozilla">the internals of Firefox</a> and its build system, so you can find your way around in the code.</p> + </li> + <li><span>Developer guide</span> + <p>Our <a href="/en-US/docs/Developer_Guide">developer guide</a> provides details on how to get and compile the Firefox source code, how to find your way around, and how to contribute to the project.</p> + </li> +</ul> + +<h2 id="Firefox_channels">Firefox channels</h2> + +<p>Firefox is available in five <strong>channels</strong>.</p> + +<h3 id="Firefox_Nightly">Firefox Nightly</h3> + +<p>Each night we build Firefox from the latest code in <a href="/en-US/docs/mozilla-central">mozilla-central</a>. These builds are for Firefox developers or those who want to try out the very latest cutting edge features while they're still under active development.</p> + +<p><a href="https://nightly.mozilla.org/" style="width: 250px; display: block; margin-left: auto; margin-right: auto; padding: 10px; text-align: center; border-radius: 4px; background-color: #81BC2E; white-space: nowrap; color: white; text-shadow: 0px 1px 0px rgba(0, 0, 0, 0.25); box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.2), 0px -1px 0px 0px rgba(0, 0, 0, 0.3) inset;">Download Firefox Nightly</a></p> + +<h3 id="Firefox_Developer_Edition">Firefox Developer Edition</h3> + +<p>This is a version of Firefox tailored for developers. Every six weeks, we take the features in Firefox Nightly that are stable enough and create a new version of Firefox Developer Edition. We also add some extra features for developers that are only available in this channel.</p> + +<p><a href="/en-US/Firefox/Developer_Edition">Learn more about Firefox Developer Edition</a>.</p> + +<p><a href="https://www.mozilla.org/firefox/developer/" style="width: 280px; display: block; margin-left: auto; margin-right: auto; padding: 10px; text-align: center; border-radius: 4px; background-color: #81BC2E; white-space: nowrap; color: white; text-shadow: 0px 1px 0px rgba(0, 0, 0, 0.25); box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.2), 0px -1px 0px 0px rgba(0, 0, 0, 0.3) inset;">Download Firefox Developer Edition</a></p> + +<h3 id="Firefox_Beta">Firefox Beta</h3> + +<p>After spending six weeks in Firefox Developer Edition, we take the features that are stable enough, and create a new version of Firefox Beta. Firefox Beta builds are for Firefox enthusiasts to test what's destined to become the next released Firefox version.</p> + +<p><a href="https://www.mozilla.org/firefox/channel/#beta" style="width: 250px; display: block; margin-left: auto; margin-right: auto; padding: 10px; text-align: center; border-radius: 4px; background-color: #81BC2E; white-space: nowrap; color: white; text-shadow: 0px 1px 0px rgba(0, 0, 0, 0.25); box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.2), 0px -1px 0px 0px rgba(0, 0, 0, 0.3) inset;">Download Firefox Beta</a></p> + +<h3 id="Firefox">Firefox</h3> + +<p>After stabilizing for another six weeks in Beta, we're ready to ship the new features to hundreds of millions of users in a new release version of Firefox.</p> + +<p><a href="https://www.mozilla.org/firefox/channel/#firefox" style="width: 250px; display: block; margin-left: auto; margin-right: auto; padding: 10px; text-align: center; border-radius: 4px; background-color: #81BC2E; white-space: nowrap; color: white; text-shadow: 0px 1px 0px rgba(0, 0, 0, 0.25); box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.2), 0px -1px 0px 0px rgba(0, 0, 0, 0.3) inset;">Download Firefox</a></p> + +<h3 id="Firefox_Extended_Support_Release_(ESR)">Firefox Extended Support Release (ESR)</h3> + +<p>Firefox ESR is the long-term support edition of Firefox for desktop for use by organizations including schools, universities, businesses and others who need extended support for mass deployments.</p> + +<p><a href="/en-US/Firefox/Firefox_ESR">Learn more about Firefox Extended Support Release</a>.</p> + +<p><a href="https://www.mozilla.org/firefox/organizations/all/" style="width: 250px; display: block; margin-left: auto; margin-right: auto; padding: 10px; text-align: center; border-radius: 4px; background-color: #81BC2E; white-space: nowrap; color: white; text-shadow: 0px 1px 0px rgba(0, 0, 0, 0.25); box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.2), 0px -1px 0px 0px rgba(0, 0, 0, 0.3) inset;">Download Firefox ESR</a></p> + +<h2 id="Contents">Contents</h2> + +<p>{{LandingPageListSubpages}}</p> + +<h2 id="Firefox_profiles">Firefox profiles</h2> + +<p>If you find yourself using multiple Firefox channels—or just multiple configurations—on a regular basis, you should read how to <a href="/en-US/docs/Mozilla/Firefox/Multiple_profiles">use multiple Firefox profiles</a> by turning Firefox's Profile Manager and other profile management tools to your advantage.</p> + +<h2 id="See_also">See also</h2> + +<ul> + <li><a href="https://mail.mozilla.org/listinfo/firefox-dev">Mailing list</a></li> + <li><a href="https://wiki.mozilla.org/Release_Management/Calendar">Release schedule</a></li> +</ul> diff --git a/files/uk/mozilla/firefox/multiprocess_firefox/index.html b/files/uk/mozilla/firefox/multiprocess_firefox/index.html new file mode 100644 index 0000000000..db6e8d0c3e --- /dev/null +++ b/files/uk/mozilla/firefox/multiprocess_firefox/index.html @@ -0,0 +1,85 @@ +--- +title: Multiprocess Firefox +slug: Mozilla/Firefox/Multiprocess_Firefox +tags: + - Electrolysis + - Firefox + - Mozilla + - Multiprocess + - NeedsTranslation + - TopicStub + - e10s +translation_of: Mozilla/Firefox/Multiprocess_Firefox +--- +<p>{{FirefoxSidebar}}</p> + +<p>In older versions of Firefox for desktop, the entire browser ran within a single operating system process. Specifically, the JavaScript that ran the browser UI (also known as "chrome code") and the JavaScript that ran within web pages (also known as "content" or "web content") were not separated.<br> + <br> + Currently, the latest versions of Firefox run the browser UI and the web content in separate processes. In the current iteration of this architecture, all browser tabs run within the same process and the browser UI runs in its own individual process. In future iterations of Firefox, there will be more than one process to exclusively handle web content. The internal name for this project is called Electrolysis, sometimes abbreviated to e10s.</p> + +<p>The good news is that normal web pages and their developers are unaffected by this changeover to a multiprocess-based Firefox. Unfortunately, people developing for Firefox or Firefox add-ons will be affected if their code relies on being able to access web content directly since the system for accessing this data is going to change.</p> + +<p>Instead of accessing web content directly, chrome code will have to use the <a href="/en-US/docs/Mozilla/Firefox/Multiprocess_Firefox/Message_manager">message manager</a> instead. To help ease this transition we've implemented <a href="/en-US/docs/Mozilla/Firefox/Multiprocess_Firefox/Cross_Process_Object_Wrappers">Cross Process Object Wrappers</a> and some <a href="/en-US/docs/Mozilla/Firefox/Multiprocess_Firefox/Limitations_of_chrome_scripts#Compatibility_shims">compatibility shims for add-on developers</a>. If you are an add-on developer wondering whether or not you are affected by this change, see the <a href="/Mozilla/Add-ons/Working_with_multiprocess_Firefox">guide to working with multiprocess Firefox</a>.</p> + +<hr> +<div class="topicpage-table"> +<div class="section"> +<dl> + <dt><a href="/en-US/docs/Mozilla/Firefox/Multiprocess_Firefox/Technical_overview">Technical overview</a></dt> + <dd>A high-level overview of how multiprocess Firefox is implemented.</dd> + <dt><a href="/en-US/docs/Mozilla/Firefox/Multiprocess_Firefox/Web_content_compatibility">Web content compatibility guide</a></dt> + <dd>Guidelines and details on potential website compatibility issues that may arise due to the transition. Tip: there aren't very many!</dd> + <dt><a href="/en-US/docs/Mozilla/Firefox/Multiprocess_Firefox/Glossary">Glossary</a></dt> + <dd>A glossary of terms used in multiprocess Firefox.</dd> + <dt><a href="/en-US/docs/Mozilla/Firefox/Multiprocess_Firefox/Message_Manager">Message manager</a></dt> + <dd>A complete guide to the objects used to communicate between chrome code and web content.</dd> + <dt><a href="/en-US/docs/Mozilla/Add-ons/SDK/Guides/Multiprocess_Firefox_and_the_SDK">SDK-based add-ons</a></dt> + <dd>How to migrate add-ons developed using the Add-on SDK.</dd> + <dt><a href="/en-US/docs/Mozilla/Firefox/Multiprocess_Firefox/Which_URIs_load_where">Which URIs load where</a></dt> + <dd>A quick guide to which URIs - chrome:, about:, file:, resource: - are loaded into which process.</dd> +</dl> +</div> + +<div class="section"> +<dl> + <dt><a href="/en-US/docs/Mozilla/Firefox/Multiprocess_Firefox/Motivation">Motivation</a></dt> + <dd>Why we are implementing multiprocess Firefox: performance, security, and stability.</dd> + <dt><a href="/en-US/docs/Mozilla/Add-ons/Working_with_multiprocess_Firefox">Add-on migration guide</a></dt> + <dd>If you are an add-on developer, find out if you are affected and how to update your code.</dd> + <dt><a href="/en-US/docs/Mozilla/Firefox/Multiprocess_Firefox/Cross_Process_Object_Wrappers">Cross Process Object Wrappers</a></dt> + <dd>Cross Process Object Wrappers are a migration aid, giving chrome code synchronous access to web content.</dd> + <dt><a href="/en-US/docs/Mozilla/Firefox/Multiprocess_Firefox/Debugging_frame_scripts">Debugging content processes</a></dt> + <dd>How to debug code running in the content process, including frame and process scripts.</dd> + <dt><a href="/en-US/docs/Mozilla/Firefox/Multiprocess_Firefox/Tab_selection_in_multiprocess_Firefox">Tab selection in multiprocess Firefox</a></dt> + <dd>How switching tabs works in multiprocess Firefox.</dd> +</dl> +</div> +</div> + +<hr> +<div class="topicpage-table"> +<div class="section"> +<dl> + <dt><a href="/en-US/docs/Mozilla/Firefox/Multiprocess_Firefox/Limitations_of_chrome_scripts">Limitations of chrome scripts</a></dt> + <dd>Practices that will no longer work in chrome code, and how to update them.</dd> +</dl> +</div> + +<div class="section"> +<dl> + <dt><a href="/en-US/docs/Mozilla/Firefox/Multiprocess_Firefox/Limitations_of_frame_scripts">Limitations of frame scripts</a></dt> + <dd>Practices that will not work inside frame scripts, and what to do instead.</dd> +</dl> +</div> +</div> + +<hr> +<h2 id="Contact_us">Contact us</h2> + +<p>Find out more about the project, get involved, or ask us your questions.</p> + +<ul> + <li><strong>Electrolysis project page</strong>: <a href="https://wiki.mozilla.org/Electrolysis">https://wiki.mozilla.org/Electrolysis</a></li> + <li><strong>IRC</strong>: #e10s on <a href="https://wiki.mozilla.org/IRC">irc.mozilla.org</a></li> + <li><strong>Mailing list</strong>: <a href="https://groups.google.com/forum/#!forum/mozilla.dev.tech.electrolysis">dev.tech.electrolysis</a></li> +</ul> diff --git a/files/uk/mozilla/firefox/multiprocess_firefox/message_manager/index.html b/files/uk/mozilla/firefox/multiprocess_firefox/message_manager/index.html new file mode 100644 index 0000000000..3ee94a8191 --- /dev/null +++ b/files/uk/mozilla/firefox/multiprocess_firefox/message_manager/index.html @@ -0,0 +1,71 @@ +--- +title: Message manager +slug: Mozilla/Firefox/Multiprocess_Firefox/Message_Manager +translation_of: Mozilla/Firefox/Multiprocess_Firefox/Message_Manager +--- +<div>{{FirefoxSidebar}}</div> + +<p><span class="tlid-translation translation" lang="uk">n старих версій Firefox для настільних ПК весь браузер працював в рамках однієї операційної системи. Зокрема, JavaScript, який керував користувальницьким інтерфейсом браузера (також відомий як "хромний код"), і JavaScript, який працює на веб-сторінках (також відомий як "вміст" або "веб-контент"), не були розділені.<br> + <br> + В даний час останні версії Firefox запускають інтерфейс браузера та веб-вміст в окремих процесах. У поточній ітерації цієї архітектури всі вкладки браузера запускаються в межах одного процесу, а інтерфейс браузера працює у своєму індивідуальному процесі. У майбутніх ітераціях Firefox буде не один процес виключно обробки веб-контенту. Внутрішня назва цього проекту називається Електроліз, іноді скорочується до e10s.<br> + <br> + Хороша новина полягає в тому, що звичайні веб-сторінки та їх розробники не впливають на цю перехід на багатопроцесорний Firefox. На жаль, люди, що розробляють додатки для Firefox або Firefox, будуть впливати, якщо їх код покладається на можливість доступу до веб-контенту безпосередньо, оскільки система доступу до цих даних зміниться.<br> + <br> + Замість доступу до веб-вмісту безпосередньо, хромований код повинен буде використовувати замість цього менеджер повідомлень. Щоб полегшити цей перехід, ми впровадили перехресні об єкти обгортки та деякі програми сумісності для розробників додатків. Якщо ви розробник додатку, цікавитесь, чи впливає ви на цю зміну чи ні, перегляньте посібник із роботи з багатопроцесорним Firefox.</span></p> + +<h2 id="Guides">Guides</h2> + +<div class="column-container"> +<div class="column-half"> +<dl> + <dt><a href="/en-US/Firefox/Multiprocess_Firefox/Message_Manager/Message_manager_overview">Message manager overview</a></dt> + <dd></dd> + <dt><a href="/en-US/Firefox/Multiprocess_Firefox/Message_Manager/Frame_script_loading_and_lifetime">Frame script loading and lifetime</a></dt> + <dd></dd> + <dt><a href="/en-US/Firefox/Multiprocess_Firefox/Message_Manager/Communicating_with_frame_scripts">Communicating with frame scripts</a></dt> + <dd></dd> + <dt><a href="/en-US/Firefox/Multiprocess_Firefox/Message_Manager/Performance">Performance Best Practices</a></dt> + <dd></dd> +</dl> +</div> + +<div class="column-half"> +<dl> + <dt><a href="/en-US/Firefox/Multiprocess_Firefox/Message_Manager/Frame_script_environment">Frame script environment</a></dt> + <dd></dd> + <dt><a href="/en-US/Firefox/Multiprocess_Firefox/Message_Manager/_Limitations_of_frame_scripts">Limitations of frame scripts</a></dt> + <dd></dd> + <dt><a href="/en-US/Firefox/Multiprocess_Firefox/Message_Manager/Process_scripts">Process scripts</a></dt> + <dd></dd> +</dl> +</div> +</div> + +<hr> +<h2 id="API_reference">API reference</h2> + +<div class="column-container"> +<div class="column-half"> +<dl> + <dt><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIFrameScriptLoader">nsIFrameScriptLoader</a></dt> + <dd></dd> + <dt><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIMessageListenerManager">nsIMessageListenerManager</a></dt> + <dd></dd> + <dt><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIMessageBroadcaster">nsIMessageBroadcaster</a></dt> + <dd></dd> + <dt><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIMessageSender">nsIMessageSender</a></dt> + <dd></dd> +</dl> +</div> + +<div class="column-half"> +<dl> + <dt><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsISyncMessageSender">nsISyncMessageSender</a></dt> + <dd></dd> + <dt><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIContentFrameMessageManager">nsIContentFrameMessageManager</a></dt> + <dd></dd> + <dt><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIProcessScriptLoader">nsIProcessScriptLoader</a></dt> + <dd></dd> +</dl> +</div> +</div> diff --git a/files/uk/mozilla/firefox/releases/53/index.html b/files/uk/mozilla/firefox/releases/53/index.html new file mode 100644 index 0000000000..8345a0be47 --- /dev/null +++ b/files/uk/mozilla/firefox/releases/53/index.html @@ -0,0 +1,135 @@ +--- +title: Firefox 53 для розробників +slug: Mozilla/Firefox/Releases/53 +tags: + - Примітки До Випуску +translation_of: Mozilla/Firefox/Releases/53 +--- +<div>{{FirefoxSidebar}}</div><p><span id="result_box" lang="uk"><span>Firefox 53 бу</span></span><span lang="uk"><span>в випущений 19 квітня 2017 року. У цій статті перераховані основні зміни, корисні не тільки для веб-розробників, але також для розробників Firefox і Gecko, разом із розробниками додатків.</span></span></p> + +<h2 id="Зміни_для_веб_розробників">Зміни для веб розробників</h2> + +<h3 id="Інструменти_для_розробників">Інструменти для розробників</h3> + +<ul> + <li><span id="result_box" lang="uk"><span>Уникання затримки прокрутки на підказках, наданих АПМ</span></span> ({{bug(1312103)}}).</li> + <li>Додана можливість <a href="https://developer.mozilla.org/en-US/docs/Tools/Page_Inspector/How_to/Examine_and_edit_HTML#Copy CSS Path">копіювати повний CSS-шлях</a> елементу ({{bug(1323700)}}).</li> + <li><span id="result_box" lang="uk"><span>Інструменти для розробників тепер підтримують css-color-4 ({{bug (1310681)}}).</span></span></li> + <li><span lang="uk"><span>Перегляд розмітки: додавано візуальну підказку між відкриваючим та закритваючим тегами згорнутого вузла ({{bug (1323193)}}).</span></span></li> +</ul> + +<h3 id="CSS">CSS</h3> + +<ul> + <li>Видалено {{property_prefix("-moz")}} prefixed variant of {{cssxref(":dir", ":dir()")}} pseudo-class ({{bug(1270406)}}).</li> + <li>{{cssxref("tab-size", "-moz-tab-size")}} does now accept {{cssxref("<length>")}} values ({{bug(943918)}}).</li> + <li>The <code>-moz</code> prefixed version of {{cssxref("text-align-last")}} got removed ({{bug(1276808)}}).</li> + <li>Enable mask longhands on SVG elements ({{bug(1319667)}}).</li> + <li>Додано <code>flow-root</code> значення до {{cssxref("display")}} властивості ({{bug(1322191)}}).</li> + <li>Додано {{cssxref("caret-color")}} властивість ({{bug(1063162)}}).</li> + <li>Реалізовано {{cssxref("place-items")}}/{{cssxref("place-self")}}/{{cssxref("place-content")}} shorthands ({{bug(1319958)}}).</li> + <li>[css-grid] align-self/justify-self:stretch/normal doesn't work on <table> grid items ({{bug(1316051)}}).</li> +</ul> + +<h3 id="JavaScript">JavaScript</h3> + +<ul> + <li>Non-standard {{jsxref("Statements/for_each...in", "for each...in")}} statement is removed only on nightly ({{bug(1293305)}}).</li> + <li>Removed non-standard {{jsxref("ArrayBuffer.slice()")}} (but kept the standardized version {{jsxref("ArrayBuffer.prototype.slice()")}}) ({{bug(1313112)}}).</li> +</ul> + +<h3 id="InterfacesAPIsDOM">Interfaces/APIs/DOM</h3> + +<h4 id="DOM_HTML_DOM">DOM & HTML DOM</h4> + +<p><em>Без змін.</em></p> + +<h4 id="Canvas">Canvas</h4> + +<p><em>Без змін.</em></p> + +<h4 id="WebGL">WebGL</h4> + +<p><em>Без змін.</em></p> + +<h4 id="IndexedDB">IndexedDB</h4> + +<p><em>Без змін.</em></p> + +<h4 id="Service_Workers">Service Workers</h4> + +<p><em>Без змін.</em></p> + +<h4 id="WebRTC">WebRTC</h4> + +<p><em>Без змін.</em></p> + +<h4 id="New_APIs">New APIs</h4> + +<p><em>Без змін.</em></p> + +<h4 id="Others">Others</h4> + +<p><em>Без змін.</em></p> + +<h3 id="MathML">MathML</h3> + +<p><em>Без змін.</em></p> + +<h3 id="SVG">SVG</h3> + +<ul> + <li>Partly implemented {{domxref("SVGGeometryElement")}} interface ({{bug(1239100)}}).</li> +</ul> + +<h3 id="AudioVideo">Audio/Video</h3> + +<p><em>Без змін.</em></p> + +<h2 id="HTTP">HTTP</h2> + +<p><em>Без змін.</em></p> + +<h2 id="Networking">Networking</h2> + +<p><em>Без змін.</em></p> + +<h2 id="Безпека">Безпека</h2> + +<p><em>Без змін.</em></p> + +<h2 id="Changes_for_add-on_and_Mozilla_developers">Changes for add-on and Mozilla developers</h2> + +<h3 id="Інтерфейси">Інтерфейси</h3> + +<p><em>Без змін.</em></p> + +<h3 id="XUL">XUL</h3> + +<p><em>Без змін.</em></p> + +<p><em>Без змін.</em></p> + +<h3 id="JavaScript_code_modules">JavaScript code modules</h3> + +<ul> + <li>The asynchronous <a href="../../../Add-ons/Add-on_Manager/AddonManager">AddonManager APIs</a> now support {{jsxref("Promise", "Promises")}} as well as callbacks ({{bug(987512)}}.</li> +</ul> + +<h3 id="XPCOM">XPCOM</h3> + +<p><em>Без змін.</em></p> + +<h3 id="Шнше">Шнше</h3> + +<p><em>Без змін.</em></p> + +<h2 id="See_also">See also</h2> + +<ul> + <li><a href="https://www.fxsitecompat.com/uk/versions/53">Cайт сумісності для Firefox 53</a></li> +</ul> + +<h2 id="Більш_ранні_версії">Більш ранні версії</h2> + +<p>{{Firefox_for_developers(53)}}</p> diff --git a/files/uk/mozilla/firefox/releases/54/index.html b/files/uk/mozilla/firefox/releases/54/index.html new file mode 100644 index 0000000000..8a7d95ede3 --- /dev/null +++ b/files/uk/mozilla/firefox/releases/54/index.html @@ -0,0 +1,116 @@ +--- +title: Firefox 54 для розробників +slug: Mozilla/Firefox/Releases/54 +translation_of: Mozilla/Firefox/Releases/54 +--- +<div>{{FirefoxSidebar}}</div><article class="text-content" id="wikiArticle"> +<p>Реліз Firefox 54 від 13 червня 2017. У цій статті наведено перелік ключових змін, корисних для веб-розробників.</p> + +<h2 id="Зміни_для_веб-розробників">Зміни для веб-розробників</h2> + +<h3 id="Інструменти_для_розробників">Інструменти для розробників</h3> + +<p><em>Без змін.</em></p> + +<h3 id="HTML">HTML</h3> + +<p><em>Без змін.</em></p> + +<h3 id="CSS">CSS</h3> + +<p><em>Без змін.</em></p> + +<h3 id="JavaScript">JavaScript</h3> + +<p><em>Без змін.</em></p> + +<h3 id="ІнтерфейсиAPIDOM">Інтерфейси/API/DOM</h3> + +<h4 id="DOM_HTML_DOM">DOM & HTML DOM</h4> + +<p><em>Без змін.</em></p> + +<h4 id="Canvas">Canvas</h4> + +<p><em>Без змін.</em></p> + +<h4 id="WebGL">WebGL</h4> + +<p><em>Без змін.</em></p> + +<h4 id="IndexedDB">IndexedDB</h4> + +<p><em>Без змін.</em></p> + +<h4 id="Service_Workers">Service Workers</h4> + +<p><em>Без змін.</em></p> + +<h4 id="WebRTC">WebRTC</h4> + +<p><em>Без змін.</em></p> + +<h4 id="Нові_API">Нові API</h4> + +<p><em>Без змін.</em></p> + +<h4 id="Інші">Інші</h4> + +<p><em>Без змін.</em></p> + +<h3 id="MathML">MathML</h3> + +<p><em>Без змін.</em></p> + +<h3 id="SVG">SVG</h3> + +<p><em>Без змін.</em></p> + +<h3 id="АудіоВідео">Аудіо/Відео</h3> + +<p><em>Без змін.</em></p> + +<h2 id="HTTP">HTTP</h2> + +<p><em>Без змін.</em></p> + +<h2 id="Мережа">Мережа</h2> + +<p><em>Без змін.</em></p> + +<h2 id="Безпека">Безпека</h2> + +<p><em>Без змін.</em></p> + +<h2 id="Зміни_для_доповненнь_і_розробників_Mozilla">Зміни для доповненнь і розробників Mozilla</h2> + +<h3 id="Інтерфейси">Інтерфейси</h3> + +<p><em>Без змін.</em></p> + +<h3 id="XUL">XUL</h3> + +<p><em>Без змін.</em></p> + +<h3 id="Модулі_JavaScript_коду">Модулі JavaScript коду</h3> + +<p><em>Без змін.</em></p> + +<h3 id="XPCOM">XPCOM</h3> + +<p><em>Без змін.</em></p> + +<h3 id="Інше">Інше</h3> + +<p><em>Без змін.</em></p> + +<h2 id="Дивіться_також">Дивіться також</h2> + +<ul> + <li><a href="https://www.fxsitecompat.com/en-US/versions/54">Cайт сумісності для Firefox 54</a></li> +</ul> + +<h2 id="Більш_ранні_версії">Більш ранні версії</h2> + +<p>{{Firefox_for_developers(53)}}</p> +</article> diff --git a/files/uk/mozilla/firefox/releases/56/index.html b/files/uk/mozilla/firefox/releases/56/index.html new file mode 100644 index 0000000000..de30397e9e --- /dev/null +++ b/files/uk/mozilla/firefox/releases/56/index.html @@ -0,0 +1,122 @@ +--- +title: Firefox 56 for developers +slug: Mozilla/Firefox/Releases/56 +translation_of: Mozilla/Firefox/Releases/56 +--- +<div>{{FirefoxSidebar}}</div><article class="text-content" id="wikiArticle"> +<p>Ця стаття надає інформацію щодо змін в Firefox 56, які стосуються розробників. Firefox 56 є поточною <a href="https://www.mozilla.org/en-US/firefox/channel/desktop/#beta">Beta версією Firefox</a>, і буде довершено <a href="https://wiki.mozilla.org/RapidRelease/Calendar#Future_branch_dates">26 вересня 2017</a>.</p> + +<article class="text-content" id="wikiArticle"> +<h2 id="Зміни_для_розробників_Web">Зміни для розробників Web</h2> + +<h3 id="Засоби_розробника">Засоби розробника</h3> + +<p><em>Без змін.</em></p> + +<h3 id="HTML">HTML</h3> + +<ul> + <li>Реалізована властивість <code>labels</code> для елементів форми, які можуть мати мітки, наприклад {{domxref("HTMLInputElement.labels")}} ({{bug(556743)}}).</li> + <li>Реалізовано <code><link rel="preload"></code>; див. <a href="/en-US/docs/Web/HTML/Preloading_content">Preloading content with rel="preload"</a> для деталей ({{bug(1222633)}}).</li> +</ul> + +<h3 id="CSS">CSS</h3> + +<ul> + <li>Implemented the proprietary Mozilla-specific {{cssxref("<color>")}} values <code>-moz-win-accentcolor</code> and <code>-moz-win-accentcolortext</code> (see {{bug(1344910)}}), and the proprietary media query <code><a href="/en-US/docs/Web/CSS/Media_Queries/Using_media_queries#-moz-windows-accent-color-in-titlebar">-moz-windows-accent-color-in-titlebar</a></code> (see {{bug(1379938)}}).</li> +</ul> + +<h3 id="SVG">SVG</h3> + +<p><em>No changes.</em></p> + +<h3 id="JavaScript">JavaScript</h3> + +<ul> + <li>The <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl">Intl API</a> has been enabled on Firefox for Android ({{bug(1344625)}}).</li> +</ul> + +<h3 id="APIs">APIs</h3> + +<h4 id="New_APIs">New APIs</h4> + +<p><em>No changes.</em></p> + +<h4 id="DOM">DOM</h4> + +<ul> + <li>On Mac, {{domxref("Document.hidden")}} is now true when the window is behind another non-translucent application {{bug(1236512)}}.</li> + <li>The {{domxref("Gamepad.displayId")}} property has been implemented ({{bug(1375816)}}).</li> + <li>The {{domxref("CanvasRenderingContext2D.drawImage()")}} method has been updated so that smoothing occurs when downscaling even if <code>imageSmoothingEnabled</code> is <code>false</code>. This is not mandatory as per spec, but follows Chrome's behaviour. See {{bug(1360415)}}.</li> + <li>The {{domxref("PerformanceTiming.secureConnectionStart")}} property has been implemented ({{bug(772589)}}).</li> + <li>Firefox used to accept <code>iso-2022-jp-2</code> sequences silently when an <code>iso-2022-jp</code> {{domxref("TextDecoder.TextDecoder","TextDecoder()")}} was instantiated, however this has now been removed to simplify the API, as no other browsers support it and no pages seem to use it. ({{bug(715833)}}).</li> + <li>The 4ms clamping behaviour of {{domxref("WindowOrWorkerGlobalScope.setTimeout","setTimeout()")}} and {{domxref("WindowOrWorkerGlobalScope.setInterval","setInterval()")}} has been updated to be more in line with other browsers, as described in <a href="/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout#Timeouts_throttled_to_%3E4ms">Timeouts throttled to >=4ms</a> ({{bug(1378586)}}).</li> + <li>The <a href="/en-US/docs/Web/API/Page_Visibility_API">Page Visibility API's</a> {{domxref("Document.onvisibilitychange")}} handler has been added ({{bug("1333912")}}).</li> +</ul> + +<h4 id="DOM_events">DOM events</h4> + +<ul> + <li>{{domxref("GlobalEventHandlers.onwheel")}} is now available on {{domxref("HTMLElement")}} — it wasn't before ({{bug(1370550)}}).</li> +</ul> + +<h4 id="WebRTC">WebRTC</h4> + +<ul> + <li>Firefox now supports the {{domxref("RTCPeerConnection")}} properties which let you examine the current and pending configurations of the local and remote ends of the connection, to help manage changes in configuration: {{domxref("RTCPeerConnection.currentLocalDescription", "currentLocalDescription")}}, {{domxref("RTCPeerConnection.pendingLocalDescription", "pendingLocalDescription")}}, {{domxref("RTCPeerConnection.currentRemoteDescription", "currentRemoteDescription")}}, and {{domxref("RTCPeerConnection.pendingRemoteDescription", "pendingRemoteDescription")}}.</li> +</ul> + +<h3 id="Security">Security</h3> + +<p><em>No changes.</em></p> + +<h3 id="Plugins">Plugins</h3> + +<p><em>No changes.</em></p> + +<h3 id="Other">Other</h3> + +<ul> + <li>Gecko now encodes URLs internally as <a href="https://en.wikipedia.org/wiki/Punycode">punycode</a>, to avoid URL encoding problems (see {{bug("945240")}}, also see discussion in {{bug("942074")}}).</li> + <li>Firefox on Windows and Mac OS X can now be made to run in <a href="/en-US/docs/Mozilla/Firefox/Headless_mode">headless mode</a> using the <code>-headless</code> flag (see {{bug(1355150)}} and {{bug(1355147)}}).</li> +</ul> + +<h2 id="Removals_from_the_web_platform">Removals from the web platform</h2> + +<h3 id="HTML_2">HTML</h3> + +<ul> + <li>The {{htmlelement("isindex")}} element has been removed from the HTML parser, and from form submission ({{bug(1266495)}}).</li> + <li>The {{htmlelement("applet")}} element has been removed ({{bug(1279218)}}).</li> +</ul> + +<h3 id="APIs_2">APIs</h3> + +<ul> + <li>The {{domxref("KeyframeEffectReadOnly.spacing")}} property has been removed from the {{SpecName('Web Animations')}} spec, and therefore has been removed from Gecko as well ({{bug(1339690)}}).</li> +</ul> + +<h3 id="SVG_2">SVG</h3> + +<p><em>No changes.</em></p> + +<h2 id="Changes_for_add-on_and_Mozilla_developers">Changes for add-on and Mozilla developers</h2> + +<h3 id="WebExtensions">WebExtensions</h3> + +<p><em>No changes.</em></p> + +<h2 id="See_also">See also</h2> + +<ul> + <li><a href="https://www.fxsitecompat.com/en-US/versions/56">Site Compatibility for Firefox 56</a></li> +</ul> +</article> + +<ul> +</ul> + +<h2 id="Older_versions">Older versions</h2> + +<p>{{Firefox_for_developers(55)}}</p> +</article> diff --git a/files/uk/mozilla/firefox/releases/index.html b/files/uk/mozilla/firefox/releases/index.html new file mode 100644 index 0000000000..76a543b9bb --- /dev/null +++ b/files/uk/mozilla/firefox/releases/index.html @@ -0,0 +1,12 @@ +--- +title: Firefox developer release notes +slug: Mozilla/Firefox/Releases +tags: + - Firefox + - Примітки До Випуску + - Список змін +translation_of: Mozilla/Firefox/Releases +--- +<div>{{FirefoxSidebar}}</div><p>Нижче ви знайдете посилання на примітки до випуску розробникам для кожної нової версії Firefox. Ці з любв'ю оброблені примітки містять детальну інформацію про те, які функції додані вдосконалені і які помилки були усунені в кожній версії Firefox. Все написано, щоб дати розробникам інформацію, необхідну їм найбільше. Ласкаво просимо.</p> + +<div class="multiColumnList">{{ListSubpages("",1,1,1)}}</div> diff --git a/files/uk/mozilla/index.html b/files/uk/mozilla/index.html new file mode 100644 index 0000000000..cf62cf1852 --- /dev/null +++ b/files/uk/mozilla/index.html @@ -0,0 +1,14 @@ +--- +title: Mozilla +slug: Mozilla +tags: + - Advanced + - CodingScripting + - Landing + - Mozilla + - Додатки +translation_of: Mozilla +--- +<p><span class="seoSummary">Наведені нижче статті описують завантаження й побудову коду Mozilla. Також Ви знайдете корисні статті про те, як цей код працює, як здійснювати побудову додатків Mozilla різного призначення тощо.</span></p> + +<p>{{LandingPageListSubpages}}</p> diff --git a/files/uk/mozilla/preferences/index.html b/files/uk/mozilla/preferences/index.html new file mode 100644 index 0000000000..1169ecabf1 --- /dev/null +++ b/files/uk/mozilla/preferences/index.html @@ -0,0 +1,48 @@ +--- +title: Preferences +slug: Mozilla/Preferences +tags: + - NeedsTranslation + - TopicStub +translation_of: Mozilla/Preferences +--- +<p>The preference system makes it possible to store data for Mozilla applications using a key/value pairing system. These articles provide information about how to use the preference system.</p> +<table class="topicpage-table"> + <tbody> + <tr> + <td> + <h2 class="Documentation" id="Documentation" name="Documentation">Documentation</h2> + <dl> + <dt><a href="/en-US/docs/Preferences/Preferences_system" title="Preferences/Preferences system">Preferences system</a></dt> + <dd>An introduction to using the preference system in Mozilla.</dd> + <dt><a href="/en-US/docs/XUL_School/Handling_Preferences" title="XUL School/Handling Preferences">XUL School: Handling preferences</a></dt> + <dd>The XUL School tutorial chapter on preferences.</dd> + <dt><a href="/en-US/docs/Preferences/Preference_reference" title="Preferences/Preference_reference">Mozilla preference reference</a></dt> + <dd>A reference guide to all Mozilla preferences; currently a work in progress.</dd> + <dt><a href="/en-US/docs/Preferences/A_brief_guide_to_Mozilla_preferences" title="Preferences/A brief guide to Mozilla preferences">A brief guide to Mozilla preferences</a></dt> + <dd>An introductory guide to where preferences are stored and other useful information about the core preference system.</dd> + <dt><a href="/en-US/docs/Preferences/Using_preferences_from_application_code" title="Preferences/Using preferences from application code">Using preferences from application code</a> {{gecko_minversion_inline("6.0")}}</dt> + <dd>Firefox 6 introduced static functions for accessing preferences efficiently from within application code. This API is not available for add-ons, but if you're working on a Gecko application, this API is the preferred way to access preferences.</dd> + <dt><a href="/en-US/docs/Preferences/Mozilla_networking_preferences" title="Preferences/Mozilla networking preferences">Mozilla networking preferences</a></dt> + <dd>A guide to key networking-related preferences.</dd> + <dt><a href="/en-US/docs/Preferences/Mozilla_preferences_for_uber-geeks" title="Preferences/Mozilla preferences for uber-geeks">Mozilla preferences for uber-geeks</a></dt> + <dd>A guide to preferences that only truly elite geeks should play with.</dd> + </dl> + <p><span class="alllinks"><a href="/en-US/docs/tag/Preferences" title="tag/Preferences">View all pages tagged with "Preferences"...</a></span></p> + </td> + <td> + <h2 class="Community" id="Examples" name="Examples">Examples</h2> + <dl> + <dt><a href="/en-US/docs/Code_snippets/Preferences" title="Code snippets/Preferences">Code snippets</a></dt> + <dd>Preference-related code snippets.</dd> + <dt><a href="/en-US/docs/Adding_preferences_to_an_extension" title="Adding preferences to an extension">Adding preferences to an extension</a></dt> + <dd>How to add preferences to an existing extension.</dd> + </dl> + <h2 class="Related_Topics" id="Related_Topics" name="Related_Topics">Related Topics</h2> + <ul> + <li><a href="/en-US/docs/XUL" title="XUL">XUL</a>, <a href="/en-US/docs/JavaScript" title="JavaScript">JavaScript</a>, <a href="/en-US/docs/XPCOM" title="XPCOM">XPCOM</a>, <a href="/en-US/docs/Extensions" title="Extensions">Extensions</a>, <a href="/en-US/docs/Developer_Guide" title="Developing_Mozilla">Developing Mozilla</a></li> + </ul> + </td> + </tr> + </tbody> +</table> diff --git a/files/uk/mozilla/preferences/система_уподобань/index.html b/files/uk/mozilla/preferences/система_уподобань/index.html new file mode 100644 index 0000000000..9d59879fd2 --- /dev/null +++ b/files/uk/mozilla/preferences/система_уподобань/index.html @@ -0,0 +1,51 @@ +--- +title: Система уподобань +slug: Mozilla/Preferences/Система_уподобань +tags: + - XUL + - Система уподобань +translation_of: Mozilla/Preferences/Preferences_system +--- +<p>Цей документ описує нову систему уподобань. Її використання уможливлює створення вікон із вподобаннями, що відповідно виглядають та працюють на різних платформах (Windows, MacOS X та GNOME).</p> + + + +<p>The system is implemented through a few <a href="/en/XUL" title="en/XUL">XUL</a> elements and attributes. Reference information about them is available below:</p> + +<div class="moreinfo"> <p><strong><a href="/en-US/docs/Preferences_System">Preferences System</a> documentation:</strong></p> <ul> <li>Introduction: <a href="/en-US/docs/Preferences_System/Getting_Started">Getting Started</a> | <a href="/en-US/docs/Preferences_System/Examples">Examples</a> | <a href="/en-US/docs/Preferences_System/Troubleshooting">Troubleshooting</a></li> <li>Reference: <code><a href="/uk/docs/Mozilla/Tech/XUL/prefwindow" title="prefwindow">prefwindow</a></code> | <code><a href="/uk/docs/Mozilla/Tech/XUL/prefpane" title="prefpane">prefpane</a></code> | <code><a href="/uk/docs/Mozilla/Tech/XUL/preferences" title="preferences">preferences</a></code> | <code><a href="/uk/docs/Mozilla/Tech/XUL/preference" title="preference">preference</a></code> | <a href="/en-US/docs/Preferences_System/New_attributes">XUL attributes</a></li> </ul></div> + +<h3 id="Use">Use</h3> + +<p>Code for a typical preferences window may look like this:</p> + +<pre><prefwindow id="appPreferences" + xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> + <prefpane id="pane1" label="&pane1.title;"> + <preferences> + <preference id="pref1" name="pref.name" type="bool"/> + </preferences> + + .. UI elements that refer to the preferences above, e.g.: + <checkbox id="check1" preference="pref1" + label="&check1.label;" accesskey="&check1.accesskey;"/> + </prefpane> + + <prefpane id="pane2" label="&pane2.title;" src="chrome://uri/to/pane.xul"/> +</prefwindow> +</pre> + +<p>Pane content can be specified inline or an external chrome URI supplied for pane content to be loaded in via a dynamic overlay. You should be careful to read the <a class="external" href="http://en.wikipedia.org/wiki/Human_interface_guidelines" title="http://en.wikipedia.org/wiki/Human_interface_guidelines">HIGs</a> for the platforms you are targeting and use the XUL preprocessor if necessary to set different window titles as appropriate. You should also be careful to specify the width of the window (in em) as appropriate using the preprocessor for each targeted platform, as well as the height (in em) for platforms where the window size does not change as the selected panel is changed (e.g. Windows).</p> + +<h3 id="Usage_in_XULRunner_applications" name="Usage_in_XULRunner_applications">Usage in XULRunner applications</h3> + +<p>When calling openDialog() to open a preferences dialog, "toolbar" should be included in the features string. Not using "toolbar" will cause the preferences dialog to only display one preference pane.</p> + +<p>Example:</p> + +<pre class="eval">var features = "chrome,titlebar,toolbar,centerscreen,modal"; +window.openDialog(url, "Preferences", features); +</pre> + +<h3 id="Bugzilla">Bugzilla</h3> + +<p>The component for bugs in the Preferences bindings (but not in Firefox/Thunderbird Options UI) is Toolkit:Preferences (<a class="link-https" href="https://bugzilla.mozilla.org/enter_bug.cgi?product=Toolkit">file a bug</a> <a class="link-https" href="https://bugzilla.mozilla.org/buglist.cgi?query_format=advanced&product=Toolkit&component=Preferences&resolution=---&chfieldto=Now">list open bugs</a>)</p> |