diff options
author | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:42:52 -0500 |
---|---|---|
committer | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:42:52 -0500 |
commit | 074785cea106179cb3305637055ab0a009ca74f2 (patch) | |
tree | e6ae371cccd642aa2b67f39752a2cdf1fd4eb040 /files/pl/mozilla/add-ons | |
parent | da78a9e329e272dedb2400b79a3bdeebff387d47 (diff) | |
download | translated-content-074785cea106179cb3305637055ab0a009ca74f2.tar.gz translated-content-074785cea106179cb3305637055ab0a009ca74f2.tar.bz2 translated-content-074785cea106179cb3305637055ab0a009ca74f2.zip |
initial commit
Diffstat (limited to 'files/pl/mozilla/add-ons')
15 files changed, 1350 insertions, 0 deletions
diff --git a/files/pl/mozilla/add-ons/amo/index.html b/files/pl/mozilla/add-ons/amo/index.html new file mode 100644 index 0000000000..e1684b2100 --- /dev/null +++ b/files/pl/mozilla/add-ons/amo/index.html @@ -0,0 +1,15 @@ +--- +title: AMO +slug: Mozilla/Add-ons/AMO +tags: + - NeedsTranslation + - TopicStub +translation_of: Mozilla/Add-ons/AMO +--- +<p>Pages documenting <a href="https://addons.mozilla.org/en-US/firefox/">addons.mozilla.org</a>:</p> + +<p>{{Listsubpages("/en-US/Add-ons/AMO", 10)}}</p> + +<p> </p> + +<p> </p> diff --git a/files/pl/mozilla/add-ons/amo/policy/index.html b/files/pl/mozilla/add-ons/amo/policy/index.html new file mode 100644 index 0000000000..703a751b21 --- /dev/null +++ b/files/pl/mozilla/add-ons/amo/policy/index.html @@ -0,0 +1,20 @@ +--- +title: AMO Policies +slug: Mozilla/Add-ons/AMO/Policy +translation_of: Mozilla/Add-ons/AMO/Policy +--- +<p>{{AddonSidebar}}</p> + +<p>Mozilla is committed to ensuring an excellent experience for both our users and developers of add-ons. Please review the policies below before submitting your add-on.</p> + +<dl> + <dt><a href="/Mozilla/Add-ons/AMO/Policy/Agreement">Developer Agreement</a></dt> + <dd>Effective January 5, 2016</dd> + <dt><a href="/Mozilla/Add-ons/AMO/Policy/Reviews">Review Process</a></dt> + <dd>Add-ons extend the core capabilities of Firefox, allowing users to modify and personalize their Web experience. A healthy add-on ecosystem, built on trust, is vital for developers to be successful and users to feel safe making Firefox their own. For these reasons, Mozilla requires all add-ons to comply with the following set of policies on acceptable practices. The below is not intended to serve as legal advice, nor is it intended to serve as a comprehensive list of terms to include in your add-on’s privacy policy.</dd> + <dt><a href="/Mozilla/Add-ons/AMO/Policy/Featured">Featured Add-ons</a></dt> + <dd>How up-and-coming add-ons become featured and what's involved in the process.</dd> + <dd><strong><a href="/en-US/Add-ons#Contact_us">Contacting us</a></strong> + <p>How to get in touch with us regarding these policies or your add-on.</p> + </dd> +</dl> diff --git a/files/pl/mozilla/add-ons/index.html b/files/pl/mozilla/add-ons/index.html new file mode 100644 index 0000000000..3500d5f048 --- /dev/null +++ b/files/pl/mozilla/add-ons/index.html @@ -0,0 +1,90 @@ +--- +title: Dodatki +slug: Mozilla/Add-ons +tags: + - Add-ons + - NeedsTranslation + - TopicStub +translation_of: Mozilla/Add-ons +--- +<div class="summary">Modyfikacje i rozszerzenia programu Mozilla</div> + +<p><span class="seoSummary">Dodatki dodają nowych funkcji do aplikacji bazujących na Gecko takich jak Firefox, SeaMonkey i Thunderbird.</span><strong> </strong>Istnieją dwa główne typy dodatków : Rozszerzenia, które dodają nowych właściwości do programu, oraz motywy które zmieniają wygląd programu</p> + +<p>Dla obu rodzajów rozszerzeń, Mozilla wprowadziła specjalną stronę <a href="https://addons.mozilla.org/">addons.mozilla.org</a>, znaną również jako "AMO" . <a href="/en-US/Add-ons/Submitting_an_add-on_to_AMO">submit add-ons to AMO</a> they are reviewed, and after passing review they are made available to users. You don't have to submit add-ons to AMO, but if you do, users can take confidence in the fact that they have been reviewed, and you can benefit from AMO's visibility as a source for useful add-ons.</p> + +<p>Add-ons can greatly affect the behaviour 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="Rozszerzenia"><a name="Extensions">Rozszerzenia</a></h2> + +<p>Rozszerzenia dodają nową funkcjonalność do aplikacji Mozilla takich jak Firefox czy Thunderbird. Mogą dodawać nowe funkcje do przeglądarki, na przykład inny sposób zarządzania zakładkami. Mogą także modyfikować zawartość witryn, by ulepszyć użytkowanie i bezpieczeństwo określonych stron.</p> + +<p>Istnieją trzy różne techniki, których możesz użyć, by stworzyć rozszerzenie: rozszerzenia bazujące na dodatkach SDK, rozszerzenia niewymagające restartu (bootstrap) oraz rozszerzenia legacy.</p> + +<ul class="card-grid"> + <li><span><a href="https://developer.mozilla.org/en-US/Add-ons/SDK">Rozszerzenia bazujące na dodatkach SDK</a></span><br> + Rozszerzenia tworzone z użyciem wysokopoziomowych JavaScript APIs, które nie potrzebują ponownego uruchamiania przeglądarki do zainstalowania.</li> + <li><span><a href="/en-US/Add-ons/Bootstrapped_extensions">Rozszerzenia niewymagające restartu</a></span><br> + Rozszerzenia, które nie potrzebują ponownego uruchamiania przeglądarki do zainstalowania.</li> + <li><a href="/en-US/Add-ons/Overlay_Extensions"><span>Rozszerzenia legacy</span></a><br> + Rozszerzenia wymagające ponowne uruchamianie przeglądarki do zainstalowania; głównie z użyciem <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Overlays">XUL overlays</a>.</li> +</ul> + +<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. Overlay extensions are mostly obsolete now, although there are still many of them in the wild.</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> + +<div class="column-container"> +<div class="column-half"> +<h3 id="Good_practices">Good 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="Motywy"><a name="Themes">Motywy</a></h2> + +<p>Motywy to dodatki modyfikujące interfejs użytkownika. Istnieją dwa rodzaje motywów: lekkie i kompletne motywy.</p> + +<div class="column-container"> +<div class="column-half"> +<p><a href="https://addons.mozilla.org/en-US/developers/docs/themes">Lekkie motywy</a> są prostsze w implementacji od kompletnych motywów, ale są też bardzo ograniczone.<br> + <br> + Z <a href="/en-US/docs/Themes">kompletnymi motywami</a> możesz dokonywać głębszych modyfikacji w UI. Dokumentacja tych motywów jest nieaktualna, ale jest tutaj podlinkowana zaktualizowana wersja.</p> +</div> +</div> + +<hr> +<h2 id="Inne_rodzaje_dodatków">Inne rodzaje dodatków</h2> + +<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><a href="/en-US/docs/Plugins">Plugins</a> help the application understand content that it does not natively support. We're in the process of deprecating support for these plugins, as they have a history of causing stability, performance, and security problems.</p> + +<p>{{AddonSidebar}}</p> diff --git a/files/pl/mozilla/add-ons/sdk/index.html b/files/pl/mozilla/add-ons/sdk/index.html new file mode 100644 index 0000000000..c45ccb437f --- /dev/null +++ b/files/pl/mozilla/add-ons/sdk/index.html @@ -0,0 +1,113 @@ +--- +title: Add-on SDK +slug: Mozilla/Add-ons/SDK +tags: + - Dodatek SDK +translation_of: Archive/Add-ons/Add-on_SDK +--- +<p> </p> + +<div class="warning"> +<p>Support for extensions using XUL/XPCOM or the Add-on SDK was removed in Firefox 57, released November 2017. As there is no supported version of Firefox enabling these technologies, this page will be removed by December 2020.</p> + +<p>Add-ons using the techniques described in this document are considered a legacy technology in Firefox. Don't use these techniques to develop new add-ons. Use <a href="/en-US/Add-ons/WebExtensions">WebExtensions</a> instead. If you maintain an add-on which uses the techniques described here, consider migrating it to use WebExtensions.</p> + +<p><strong>Starting from <a href="https://wiki.mozilla.org/RapidRelease/Calendar">Firefox 53</a>, no new legacy add-ons will be accepted on addons.mozilla.org (AMO) for desktop Firefox and Firefox for Android.</strong></p> + +<p><strong>Starting from <a href="https://wiki.mozilla.org/RapidRelease/Calendar">Firefox 57</a>, only extensions developed using WebExtensions APIs will be supported on Desktop Firefox and Firefox for Android. </strong></p> + +<p>Even before Firefox 57, changes coming up in the Firefox platform will break many legacy extensions. These changes include multiprocess Firefox (e10s), sandboxing, and multiple content processes. Legacy extensions that are affected by these changes should migrate to use WebExtensions APIs if they can. See the <a href="https://blog.mozilla.org/addons/2017/02/16/the-road-to-firefox-57-compatibility-milestones/">"Compatibility Milestones" document</a> for more information.</p> + +<p>A wiki page containing <a href="https://wiki.mozilla.org/Add-ons/developer/communication">resources, migration paths, office hours, and more</a>, is available to help developers transition to the new technologies.</p> +</div> + +<p>za pomocą dodatku sdk można tworzyć dodatki dla firefoksa. można użyć różnych standardowych technologii internetowych: javascript, html i css, aby utworzyć dodatki. sdk zawiera javascript apis, które można wykorzystać do tworzenia dodatków i narzędzi do tworzenia, uruchamiania, testowania i pakowania dodatków.</p> + +<hr> +<h3 id="sect1"></h3> + +<p>samouczki</p> + +<p>zacząć</p> + +<p> jak zainstalować sdk i używać narzędzia jpm do tworzenia, testowania i dodawania pakietów.</p> + +<div class="column-container"> +<div class="column-half"> +<dl> + <dt> + <div class="column-half"> + <dl> + <dt> + <p>Współpracuj z przeglądarką</p> + + <p> Otwieranie stron internetowych, słuchanie stron wczytywania i wyświetlania otwartych stron.</p> + + <p>Techniki rozwoju</p> + + <p> Dowiedz się więcej o wspólnych technikach rozwoju, takich jak testowanie jednostkowe, logowanie, tworzenie modułów wielokrotnego użytku, lokalizacja i rozwój mobilny.</p> + + + + <p>Utwórz składniki interfejsu użytkownika</p> + + <p> Utwórz elementy interfejsu użytkownika, takie jak przyciski paska narzędzi, menu kontekstowe, pozycje menu i okna dialogowe.</p> + + <p>Modyfikuj strony internetowe</p> + + <p> Modyfikuj strony pasujące do wzoru adresu URL lub dynamicznie modyfikuj określoną kartę.</p> + + <p>Łącząc je razem</p> + + <p> Przykład dodatku do przykładu adnotatora</p> + </dt> + </dl> + </div> + </dt> +</dl> +</div> +</div> + +<hr> +<p>Przewodniki</p> + +<p>Przewodnik dla współtwórców<br> + Dowiedz się, jak rozpocząć wkład do pakietu SDK oraz o najważniejsze idiom użyte w kodzie SDK, takie jak moduły, klasy i dziedziczenie, właściwości prywatne i procesy zawartości.<br> + Infrastruktura SDK<br> + Aspekty technologii bazującej na technologii SDK: moduły, identyfikator programu i reguły określające zgodność z Firefoksem.<br> + Skrypty zawartości<br> + Szczegółowy przewodnik po pracy z skryptami zawartości.</p> + +<p>Idiomy SDK<br> + Ramka zdarzeń SDK i rozróżnienie między dodatkowymi skryptami a skryptami zawartości.<br> + Migracja XUL<br> + Przewodnik po przenoszeniu dodatków XUL do pakietu SDK. W tym przewodniku znajdziesz porównanie obu zestawów narzędzi i przykładowy przykład przenoszenia dodatku XUL.<br> + Multiprocess Firefox i SDK<br> + Jak sprawdzić, czy dodatek jest zgodny z wieloma procesorami Firefox, czy nie, i odpowiednio go naprawić.</p> + +<div class="column-container"> +<div class="column-half"> +<dl> + <dd></dd> +</dl> +</div> +</div> + +<hr> +<p>Odniesienie</p> + + + +<p>API wysokiego poziomu</p> + +<p> Dokumentacja dla interfejsów API SDK wysokiego poziomu.</p> + +<p>Narzędzie odniesienia</p> + +<p> Dokumentacja referencyjna narzędzia jpm służącego do tworzenia, testowania i dodawania pakietów, konsoli globalnej używanej do logowania i pliku package.json.</p> + +<p>API niskiego poziomu</p> + +<p> Dokumentacja dla interfejsów API SDK niskiego poziomu.</p> + +<hr> diff --git a/files/pl/mozilla/add-ons/thunderbird/index.html b/files/pl/mozilla/add-ons/thunderbird/index.html new file mode 100644 index 0000000000..b15b535a59 --- /dev/null +++ b/files/pl/mozilla/add-ons/thunderbird/index.html @@ -0,0 +1,135 @@ +--- +title: Thunderbird extensions +slug: Mozilla/Add-ons/Thunderbird +tags: + - Add-ons + - Extensions + - NeedsTranslation + - TopicStub + - thunderbird +translation_of: Mozilla/Thunderbird/Thunderbird_extensions +--- +<div class="callout-box"><strong><a href="/en/Extensions/Thunderbird/Building_a_Thunderbird_extension" title="en/Building_a_Thunderbird_extension">Building a Thunderbird extension</a></strong><br> +Step-by-step explanation on how to build an extension for Thunderbird.</div> + +<div> +<p>{{AddonSidebar}}</p> +The following documentation provides help for creating extensions for Mozilla's <a class="internal" href="/en/Thunderbird" title="En/Thunderbird">Thunderbird</a> email client. Although there are many similarities with <a href="/en/Extensions" title="en/Extensions">Firefox extensions</a> there are also some differences that may confound the starting developer.</div> + +<div><br> +<strong>Please help!</strong> You can <a class="internal" href="/en/Extensions/Thunderbird/HowTos" title="en/Extensions/Thunderbird/HowTos">add a how-to</a> (a question or an answer or a code snippet), <a class="internal" href="/en/Extensions/Thunderbird/Useful_newsgroups_discussions" title="En/Extensions/Thunderbird/Useful newsgroups discussions">summarize and link to a relevant newsgroup discussion</a>, or create a tutorial. Need help? Contact <a class="internal" href="/User:jenzed" title="User:jenzed">jenzed</a>.</div> + +<table class="topicpage-table"> + <tbody> + <tr> + <td> + <h2 id="Documentation" name="Documentation"><a href="/Special:Tags?tag=Extensions&language=en" title="Special:Tags?tag=Extensions&language=en">Documentation</a></h2> + + <h3 id="Getting_started_with_Thunderbird">Getting started with Thunderbird</h3> + + <p>A brave, young developer wants to develop an add-on for Thunderbird. Here's a few links to help them through this journey.</p> + + <ul> + <li>Start by reading the tutorial and learn how to<a class="internal" href="/en/Extensions/Thunderbird/Building_a_Thunderbird_extension" title="En/Building a Thunderbird extension"> build a Thunderbird extension</a> (Outdated, still talks about overlays and the add-on builder is no longer available but the tutorial has not been updated.)</li> + <li>Read about the <a href="/en/Thunderbird/Main_Windows" title="Main Windows">main windows</a> so that you know what one means when they say « thread pane », « preview pane », and « folder pane ».</li> + + <li>Want to do some real stuff? See <a class="external" href="http://blog.xulforum.org/index.php?post/2011/03/14/Basic-MimeMessage-demo" title="http://blog.xulforum.org/index.php?post/2011/03/14/Basic-MimeMessage-demo">how to inspect a message</a> (demo add-on included!)</li> + <li>Play with our other <a href="/en/Extensions/Thunderbird/Demo_Addon" title="Demo Addon">demo add-on</a> that exercises some more advanced Thunderbird-specific features</li> + <li>Want to do even more stuff? Don't reinvent the wheel: steal functions from the <a class="link-https" href="https://github.com/protz/thunderbird-stdlib" title="https://github.com/protz/thunderbird-stdlib">thunderbird-stdlib</a> project (doc <a class="external" href="http://protz.github.com/thunderbird-stdlib/doc/symbols/_global_.html" title="http://protz.github.com/thunderbird-stdlib/doc/symbols/_global_.html">here</a>). Functions for dealing with messages (delete them, archive them, change their tags, etc.) are included.</li> + <li>Haven't found what you're looking for? Read the <a class="internal" href="/en/Extensions/Thunderbird/HowTos" rel="internal" title="en/Extensions/Thunderbird/HowTos">Thunderbird how-tos</a>; they contain a lot of recipes for things extensions want to do.</li> + <li>Still haven't managed to do what you wanted? See the list of all <a class="external" href="http://wiki.mozilla.org/Thunderbird/CommunicationChannels" title="http://wiki.mozilla.org/Thunderbird/CommunicationChannels">Thunderbird communication channels </a>so that you know where to ask when you get stuck :-).</li> + <li>Feeling really brave? Read the source using a <a class="external" href="http://doxygen.db48x.net/comm-central/html/" title="http://doxygen.db48x.net/comm-central/html/">fancy interface</a>; you can often find tests that demonstrate how to do what you're trying to achieve.</li> + </ul> + + <h3 id="The_Gloda_database">The Gloda database</h3> + + <p>Thunderbird has a subsystem called Gloda. Gloda stands for « Global Database », and creates Thunderbird-wide relations between objects. Gloda provides concepts such as Conversations, Messages, Identities, Contacts. All these concepts are related together: a Conversation contains Messages which are linked to Identities (<strong>from</strong> field, <strong>to</strong> field) which are themselves part of a Contact: indeed, a contact has multiple identities.</p> + + <p>Typical use cases for Gloda: find all messages whose subject matches [search term], find all messages from [person], find all messages in the same thread as [a given message], find all messages involving [person], etc. etc.</p> + + <p>Gloda is extremely powerful and is used heavily by add-ons such as <a class="link-https" href="https://addons.mozilla.org/en-US/thunderbird/addon/gmail-conversation-view/" title="https://addons.mozilla.org/en-US/thunderbird/addon/gmail-conversation-view/">Thunderbird Conversations</a>. Learn more about Gloda:</p> + + <ul> + <li>an overview of <a href="/en/Thunderbird/gloda" title="Gloda">Gloda</a></li> + <li>learn how to create <a href="/en/Thunderbird/Creating_a_Gloda_message_query" title="Creating a gloda message query">your first message query</a> and read the <a href="/en/Thunderbird/Gloda_examples" title="Gloda examples">gloda examples</a></li> + <li>learn about the Gloda internals: <a href="/en/Thunderbird/Gloda_debugging" title="Gloda debugging">Gloda debugging</a>, <a href="/en/Thunderbird/Gloda_indexing" title="Gloda indexing">Gloda indexing</a></li> + </ul> + + <h3 id="More_Thunderbird-specific_links">More Thunderbird-specific links</h3> + + <p>Some of these links may be wildly out of date, but they still provide valuable information on the codebase.</p> + + <ul> + <li><a class="internal" href="/en/Extensions/Thunderbird/An_overview_of_the_Thunderbird_interface" title="En/Extensions/Thunderbird/An overview of the Thunderbird interface">An overview of Thunderbird components</a></li> + <li><a class="internal" href="/en/Extensions/Thunderbird/Thunderbird_developer_reference_docs" title="en/Extensions/Thunderbird/Thunderbird developer reference docs">Developer reference docs</a>: + <ul> + <li><a class="internal" href="/en/Folders" title="En/Folders">Folder classes</a></li> + <li><a class="internal" href="/en/DB_Views_(message_lists)" title="En/DB Views (message lists)">DB views (message list)</a></li> + <li><a class="internal" href="/en/Message_Summary_Database" title="En/Message Summary Database">Message summary database</a></li> + <li><a class="internal" href="/en/MailNews_Protocols" title="En/MailNews Protocols">MailNews protocols</a></li> + <li><a class="internal" href="/En/MailNews_Filters" rel="internal" title="En/MailNews Filters">MailNews filters</a></li> + <li><a class="internal" href="/en/Extensions/Thunderbird/Error_reporting_tools" title="en/Extension Library/Extensions/Thunderbird/Error reporting tools">Error reporting tools</a></li> + <li><a href="/en/Toolkit_API/STEEL" title="en/Toolkit API/STEEL">STEEL library</a> (obsolete as of Thunderbird 52, use <a class="link-https" href="https://github.com/protz/thunderbird-stdlib" title="https://github.com/protz/thunderbird-stdlib">https://github.com/protz/thunderbird-stdlib</a>)</li> + <li><a class="external" href="http://quetzalcoatal.blogspot.com/2010/01/developing-new-account-types-part-0.html" title="http://quetzalcoatal.blogspot.com/2010/01/developing-new-account-types-part-0.html">Developing new account types</a> <strong>NEW!</strong></li> + </ul> + </li> + <li><a class="internal" href="/en/Extensions/Thunderbird/Useful_newsgroups_discussions" title="En/Extensions/Thunderbird/Useful newsgroups discussions">Useful newsgroup discussions</a> (watch out, anything that's too old should be regarded suspiciously; there's been significant API rewrite over the past years, and most of these techniques are considerably easier now) </li> + <li><a href="/en/Thunderbird/Thunderbird_API_documentation" title="en/Thunderbird/Thunderbird API documentation">Thunderbird API docs</a> (mostly a collection of out-of-date pages, relevance is rather dubious) </li> + <li><a href="/en/Mozilla/Thunderbird/Releases" title="Thunderbird developer release notes">Thunderbird developer release notes</a> - changes in the recent Thunderbird updates affecting add-on developers. <a href="/Thunderbird_5_for_developers" title="Thunderbird 5 for developers">Thunderbird 5 for developers</a> has important information on MsgHdrToMimeMessage which is a central piece of code.</li> + </ul> + + <h3 id="General_links">General links</h3> + + <ul> + <li><a href="/en/Extensions/Thunderbird/Finding_the_code_for_a_feature" title="en/Extensions/Thunderbird/Finding the code for a feature">Finding the code for a feature</a></li> + <li><a class="external" href="http://kb.mozillazine.org/Category:Thunderbird" title="http://kb.mozillazine.org/Category:Thunderbird">Mozillazine articles on Thunderbird</a></li> + <li><a href="/Special:Tags?tag=Thunderbird" title="https://developer.mozilla.org/Special:Tags?tag=Thunderbird">All pages tagged with Thunderbird</a></li> + <li><a href="/Special:Tags?tag=MailNews" title="https://developer.mozilla.org/Special:Tags?tag=MailNews">All pages tagged with MailNews</a></li> + </ul> + </td> + <td> + <h2 id="Community" name="Community">Community</h2> + + <ul> + <li>See the list of all <a class="external" href="http://wiki.mozilla.org/Thunderbird/CommunicationChannels" title="http://wiki.mozilla.org/Thunderbird/CommunicationChannels">Thunderbird communication channels </a>first</li> + <li>Among these are:</li> + </ul> + + <p>{{ DiscussionList("dev-extensions", "mozilla.dev.extensions") }}</p> + + <ul> + <li><a class="link-irc" href="irc://moznet/#extdev">#extdev IRC channel</a> / <a class="link-irc" href="irc://moznet/#maildev">#maildev IRC channel</a></li> + <li><a class="external" href="http://forums.mozillazine.org/viewforum.php?f=19">MozillaZine forum</a></li> + <li><a class="external" href="http://mozdev.org/mailman/listinfo/project_owners">mozdev project owners</a></li> + <li><a href="/en/Extensions/Community" title="en/Extensions/Community">Other community links...</a></li> + </ul> + + <h2 id="Tools" name="Tools">Tools</h2> + + <ul> + <li><a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/6622" rel="external nofollow" title="https://addons.mozilla.org/en-US/firefox/addon/6622">DOM Inspector</a> edit the live DOM (Firefox and Thunderbird)</li> + <li><a class="link-https" href="https://addons.mozilla.org/thunderbird/addon/workspace-for-thunderbird/" title="https://addons.mozilla.org/thunderbird/addon/workspace-for-thunderbird/">Workspace for Thunderbird</a>, allows running code snippets in Thunderbird and inspecting variable structure and content</li> + <li><a class="external" href="http://www.hacksrus.com/~ginda/venkman/" rel="external nofollow" title="http://www.hacksrus.com/~ginda/venkman/">Venkman</a>, a JavaScript debugger (<a class="external" href="http://addons.mozilla.org/en-US/firefox/addon/216" rel="external nofollow" title="http://addons.mozilla.org/en-US/firefox/addon/216">Firefox</a>, <a class="external" href="http://addons.mozilla.org/en-US/thunderbird/addon/216" rel="external nofollow" title="http://addons.mozilla.org/en-US/thunderbird/addon/216">Thunderbird</a>)</li> + <li><a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/7434/" rel="external nofollow" title="https://addons.mozilla.org/en-US/firefox/addon/7434/">Extension Developer's Extension</a> a suite of development tools</li> + <li><a class="external" href="http://www.gijsk.com/" rel="external nofollow" title="http://www.gijsk.com/">Chrome List</a> view files in chrome:// (<a class="external" href="http://addons.mozilla.org/en-US/firefox/addon/4453" rel="external nofollow" title="http://addons.mozilla.org/en-US/firefox/addon/4453">Firefox</a>, <a class="external" href="http://addons.mozilla.org/en-US/thunderbird/addon/4453" rel="external nofollow" title="http://addons.mozilla.org/en-US/thunderbird/addon/4453">Thunderbird</a>)</li> + <li><a href="/en/Mozmill" title="en/Mozmill">Mozmill</a> test tool and framework</li> + <li><a class="external" href="http://xpcomviewer.mozdev.org/" rel="external nofollow" title="http://xpcomviewer.mozdev.org">XPCOMViewer</a> an XPCOM inspector (Firefox and Thunderbird)</li> + </ul> + + <p>... <a class="internal" href="/en/Setting_up_extension_development_environment#Development_extensions" title="en/Setting up extension development environment#Development extensions">more tools</a> ...</p> + + <p><span class="alllinks"><a href="/Special:Tags?tag=Extensions:Tools&language=en" title="Special:Tags?tag=Extensions:Tools&language=en">View All...</a></span></p> + + <h2 id="Related_Topics" name="Related_Topics">Related Topics</h2> + + <dl> + <dd><a href="/en/XUL" title="en/XUL">XUL</a>, <a href="/en/JavaScript" title="en/JavaScript">JavaScript</a>, <a href="/en/XPCOM" title="en/XPCOM">XPCOM</a>, <a href="/en/Themes" title="en/Themes">Themes</a>, <a href="/En/Developer_Guide" title="en/Developing_Mozilla">Developing Mozilla</a></dd> + </dl> + </td> + </tr> + </tbody> +</table> + +<p><span class="comment">Categories</span></p> + +<p>{{ languages( { "ja": "ja/Extensions/Thunderbird" } ) }}</p> diff --git a/files/pl/mozilla/add-ons/webextensions/api/index.html b/files/pl/mozilla/add-ons/webextensions/api/index.html new file mode 100644 index 0000000000..724bf34516 --- /dev/null +++ b/files/pl/mozilla/add-ons/webextensions/api/index.html @@ -0,0 +1,61 @@ +--- +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 <code>manifest.json</code>.</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> + +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></code></pre> +</div> + +<div> +<p>Many of the APIs are asynchronous, returning a {{JSxRef("Promise")}}:</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="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="keyword token">let</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></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> + +<p>Tip: Throughout the JavaScript API listings you will find short code examples that illustrate how the API is used. You can exercise these examples, without needing to create a web extension, using the console in the <a href="https://extensionworkshop.com/documentation/develop/debugging/#developer-tools-toolbox">Toolbox</a>. For example, here is the first code example on this page running in the Toolbox console in Firefox Developer Edition:</p> + +<p><img alt="Illustration of a snippet of web extension code run from the console in the Toolbox" src="https://mdn.mozillademos.org/files/17186/JavaScript_exercised_in_console.jpg" style="height: 347px; width: 680px;"></p> + +<h2 id="JavaScript_API_listing">JavaScript API listing</h2> + +<p>See below for a complete list of JavaScript APIs:</p> +</div> + +<div>{{LandingPageListSubpages}}</div> diff --git a/files/pl/mozilla/add-ons/webextensions/api/privacy/index.html b/files/pl/mozilla/add-ons/webextensions/api/privacy/index.html new file mode 100644 index 0000000000..321f0f8834 --- /dev/null +++ b/files/pl/mozilla/add-ons/webextensions/api/privacy/index.html @@ -0,0 +1,72 @@ +--- +title: privacy +slug: Mozilla/Add-ons/WebExtensions/API/privacy +tags: + - API + - Add-ons + - Extensions + - NeedsTranslation + - Privacy + - Reference + - TopicStub + - WebExtensions +translation_of: Mozilla/Add-ons/WebExtensions/API/privacy +--- +<div>{{AddonSidebar}}</div> + +<p>Access and modify various privacy-related browser settings.</p> + +<p>To use the privacy API, you must have the "privacy" <a href="/en-US/Add-ons/WebExtensions/manifest.json/permissions#API_permissions">API permission</a>.</p> + +<h2 id="Properties">Properties</h2> + +<dl> + <dt>{{WebExtAPIRef("privacy.network")}}</dt> + <dd>Access and modify privacy settings relating to the network.</dd> + <dt>{{WebExtAPIRef("privacy.services")}}</dt> + <dd>Access and modify privacy settings relating to the services provided by the browser or third parties.</dd> + <dt>{{WebExtAPIRef("privacy.websites")}}</dt> + <dd>Access and modify privacy settings relating to the behavior of websites.</dd> +</dl> + +<h2 id="Browser_compatibility">Browser compatibility</h2> + +<p>{{Compat("webextensions.api.privacy", 10, 1)}}</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/privacy"><code>chrome.privacy</code></a> API.</p> +</div> + +<div class="hidden"> +<pre class="notranslate">// 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/pl/mozilla/add-ons/webextensions/index.html b/files/pl/mozilla/add-ons/webextensions/index.html new file mode 100644 index 0000000000..1682fefbed --- /dev/null +++ b/files/pl/mozilla/add-ons/webextensions/index.html @@ -0,0 +1,125 @@ +--- +title: Browser extensions +slug: Mozilla/Add-ons/WebExtensions +tags: + - Landing + - Manifest + - Rozszerzenia + - WebExtensions + - Wtyczki +translation_of: Mozilla/Add-ons/WebExtensions +--- +<div>{{AddonSidebar}}</div> + +<div>Rozszerzenia mogą być poszerzane i modyfikowane możliwościami przeglądarki. Rozszerzenia dla Firefox są budowane przy użyciu WebExtension APIs, systemu wspólnego dla przeglądarek do rozwoju rozszerzeń. Duży zakres systemu jest zgodny z <a href="https://developer.chrome.com/extensions">extension API</a> wspieranych przez Google Chrome, Opera oraz the <a href="https://browserext.github.io/browserext/">W3C Draft Community Group</a>.</div> + +<div> </div> + +<div>Rozszerzenia napisane dla tych przeglądarek będą w większości przypadków działać w Firefox czy <a href="https://developer.microsoft.com/en-us/microsoft-edge/platform/documentation/extensions/">Microsoft Edge</a> z kilkoma zmianami (<a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Porting_from_Google_Chrome">just a few changes</a>). API jest także w pełni zgodny z wieloprocesowością Firefox (<a href="https://developer.mozilla.org/en-US/Firefox/Multiprocess_Firefox">multiprocess Firefox</a>).</div> + +<p> </p> + +<p>Jeśli masz pomysły czy pytania lub potrzebujesz pomocy w zamieszczeniu dodatku do użycia przez WebExtension APIs, możesz dotrzeć do nas poprzez <a href="https://mail.mozilla.org/listinfo/dev-addons">dev-addons mailing list</a> lub zamieszczenie hasztagu: <a href="irc://irc.mozilla.org/extdev">#extdev</a> na <a href="https://wiki.mozilla.org/IRC">IRC</a>.</p> + +<div class="row topicpage-table"> +<div class="section"> +<h2 id="Na_początek">Na początek</h2> + +<ul> + <li><a href="/en-US/Add-ons/WebExtensions/What_are_WebExtensions">Co to są rozszerzenia?</a></li> + <li><a href="/en-US/Add-ons/WebExtensions/Your_first_WebExtension">Twoje pierwsze rozszerzenie</a></li> + <li><a href="/en-US/Add-ons/WebExtensions/Your_second_WebExtension">Twoje drugie rozszerzenie</a></li> + <li><a href="/en-US/Add-ons/WebExtensions/Anatomy_of_a_WebExtension">Anatomia rozszerzeń</a></li> + <li><a href="/en-US/Add-ons/WebExtensions/Examples">Przykłady rozszerzeń</a></li> +</ul> + +<h2 id="Jak">Jak </h2> + +<ul> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Intercept_HTTP_requests">Przechwycić zapytania HTTP</a></li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Modify_a_web_page">Modyfikować stronę internetową</a></li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Add_a_button_to_the_toolbar">Dodać przycisk do paska narzędzi</a></li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Implement_a_settings_page">Wprowdzić ustawienia strony</a></li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Interact_with_the_clipboard">Oddziaływać na schowek (clipboard)</a></li> +</ul> + +<h2 id="Interface_użytkownika">Interface użytkownika</h2> + +<ul> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface">Wprowadzenie</a></li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Browser_action">Przycisk paska narzędzi przeglądarki</a></li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Popups">Przycisk paska narzędzi z popup</a></li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Page_actions">Adres przycisku na pasku</a></li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Popups">Adres przycisku na pasku z oknem popup</a></li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Context_menu_items">Elementy kontekstu menu</a></li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Sidebars">Paski boczne</a></li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Options_pages">Opcje strony</a></li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Bundled_web_pages">Powiązane witryny internetowe</a></li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Notifications">Powiadomienia</a></li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Omnibox">Sugestie paska adresowego</a></li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/devtools_panels">Panele narzędzi deweloperskich</a></li> +</ul> + +<h2 id="Pojęcia">Pojęcia</h2> + +<ul> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API">Przegląd JavaScript API</a></li> + <li><a href="/en-US/Add-ons/WebExtensions/Content_scripts">Skrypty kontekstu</a></li> + <li><a href="/en-US/Add-ons/WebExtensions/Match_patterns">Dopasowanie wzorów</a></li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Working_with_files">Praca z plikami</a></li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Internationalization">Umiędzynarodowienie (internationalization)</a></li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Content_Security_Policy">Polityka bezpieczeństwa kontekstu</a></li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Native_messaging">Wiadomości w języku ojczystym</a></li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Using_the_devtools_APIs">Używanie narzędzi deweloperskich API</a></li> + <li><a href="/en-US/Add-ons/WebExtensions/User_experience_best_practices">Najlepsze praktyki doświadczeń użytkownika</a></li> +</ul> + +<h2 id="Porty">Porty</h2> + +<ul> + <li><a href="/en-US/Add-ons/WebExtensions/Porting_from_Google_Chrome">Porty rozszerzeń Google Chrome</a></li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Porting_a_legacy_Firefox_add-on">Porty rozszerzeń dodatku Firefox</a></li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Embedded_WebExtensions">Osadzone (embedded) rozszerzenia sieciowe</a></li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Comparison_with_the_Add-on_SDK">Porównanie z dodatkiem SDK</a></li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Comparison_with_XUL_XPCOM_extensions">Porównanie z rozszerzeniami XUL/XPCOM</a></li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Chrome_incompatibilities">Niezgodności Chrome</a></li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Differences_between_desktop_and_Android">Różnice pomiędzy wersją deskopową (komputerową), a Androidem</a></li> +</ul> + +<h2 id="Dynamika_pracy_Firefox">Dynamika pracy Firefox</h2> + +<ul> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/User_experience_best_practices">Doświadczenie użytkownika</a></li> + <li><a href="/en-US/Add-ons/WebExtensions/Temporary_Installation_in_Firefox">Instalacja</a></li> + <li><a href="/en-US/Add-ons/WebExtensions/Debugging">Debugowanie (reagowanie na niezgodności)</a> </li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Developing_WebExtensions_for_Firefox_for_Android">Rozwój Firefox dla Androida</a></li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Getting_started_with_web-ext">Początki z web-ext</a></li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/web-ext_command_reference">Odnośnik poleceń web-ext</a></li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/WebExtensions_and_the_Add-on_ID">Rozszerzenia i dodatki ID</a></li> + <li><a href="/en-US/Add-ons/WebExtensions/Alternative_distribution_options">Opcje alternatywne dystrybucji</a></li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Publishing_your_WebExtension">Publikowanie twojego rozszerzenia</a></li> +</ul> +</div> + +<div class="section"> +<h2 id="Odsyłacz">Odsyłacz</h2> + +<h3 id="JavaScript_API">JavaScript API</h3> + +<ul> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API">Przegląd JavaScript API</a></li> + <li><a href="/en-US/Add-ons/WebExtensions/Browser_support_for_JavaScript_APIs">Przeglądarka zgodna z tabelami JavaScript API</a></li> +</ul> + +<div class="twocolumns">{{ ListSubpages ("/en-US/Add-ons/WebExtensions/API") }}</div> + +<h3 id="Klucze_Manifest">Klucze Manifest </h3> + +<ul> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json">przegląd manifest.json</a></li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Browser_compatibility_for_manifest.json">Zgodność przeglądarki dla manifest.json</a></li> +</ul> + +<div class="twocolumns">{{ ListSubpages ("/en-US/Add-ons/WebExtensions/manifest.json") }}</div> +</div> +</div> diff --git a/files/pl/mozilla/add-ons/webextensions/manifest.json/description/index.html b/files/pl/mozilla/add-ons/webextensions/manifest.json/description/index.html new file mode 100644 index 0000000000..fdeb8fa3f9 --- /dev/null +++ b/files/pl/mozilla/add-ons/webextensions/manifest.json/description/index.html @@ -0,0 +1,40 @@ +--- +title: description +slug: Mozilla/Add-ons/WebExtensions/manifest.json/description +translation_of: Mozilla/Add-ons/WebExtensions/manifest.json/description +--- +<div>{{AddonSidebar}}</div> + +<table class="fullwidth-table standard-table"> + <tbody> + <tr> + <th scope="row" style="width: 30%;">Typ</th> + <td><code>String (ciąg znaków)</code></td> + </tr> + <tr> + <th scope="row">Obowiązkowe</th> + <td>Nie</td> + </tr> + <tr> + <th scope="row">Przykład</th> + <td> + <pre class="brush: json no-line-numbers"> +"description": "Zastępuje rysunki zdjęciami kotów."</pre> + </td> + </tr> + </tbody> +</table> + +<p>Krótki opis rozszerzenia, który jest przeznaczony do wyświetlenia w interfejsie przeglądarki użytkownika.</p> + +<p>Jest to <a href="/en-US/Add-ons/WebExtensions/Internationalization#Internationalizing_manifest.json">właściwość umiejscowiona</a>.</p> + +<h2 id="Przykład">Przykład</h2> + +<pre class="brush: json no-line-numbers">"description": "Zastępuje obrazki zdjęciami kotów."</pre> + +<h2 id="Zgodność_z_przeglądarkami">Zgodność z przeglądarkami</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("webextensions.manifest.description")}}</p> diff --git a/files/pl/mozilla/add-ons/webextensions/manifest.json/index.html b/files/pl/mozilla/add-ons/webextensions/manifest.json/index.html new file mode 100644 index 0000000000..3421ac49a3 --- /dev/null +++ b/files/pl/mozilla/add-ons/webextensions/manifest.json/index.html @@ -0,0 +1,105 @@ +--- +title: manifest.json +slug: Mozilla/Add-ons/WebExtensions/manifest.json +tags: + - Add-ons + - Extensions + - NeedsTranslation + - TopicStub + - WebExtensions +translation_of: Mozilla/Add-ons/WebExtensions/manifest.json +--- +<div>{{AddonSidebar}}</div> + +<p>The manifest.json file is a <a href="/en-US/docs/Glossary/JSON">JSON</a>-formatted file, and is the only file that every extension using WebExtension APIs must contain.</p> + +<p>Using manifest.json, you specify basic metadata about your extension such as the name and version, and can also specify aspects of your extension's functionality, such as background scripts, content scripts, and browser actions.</p> + +<p>manifest.json keys are listed below:</p> + +<div class="twocolumns">{{ ListSubpages ("/en-US/Add-ons/WebExtensions/manifest.json") }}</div> + +<div class="twocolumns"> </div> + +<p><code>"manifest_version"</code>, <code>"version"</code>, and <code>"name"</code> are the only mandatory keys. <code>"default_locale"</code> must be present if the "_locales" directory is present and must be absent otherwise. <code>"applications"</code> is not supported in Google Chrome, and is mandatory in Firefox before Firefox 48 and Firefox for Android.</p> + +<h2 id="Browser_compatibility">Browser compatibility</h2> + +<p>{{Compat("webextensions.manifest")}}</p> + +<h2 id="Example">Example</h2> + +<p>Quick syntax example for manifest.json:</p> + +<pre class="brush: json">{ + "applications": { + "gecko": { + "id": "addon@example.com", + "strict_min_version": "42.0" + } + }, + + "background": { + "scripts": ["jquery.js", "my-background.js"], + "page": "my-background.html" + }, + + "browser_action": { + "default_icon": { + "19": "button/geo-19.png", + "38": "button/geo-38.png" + }, + "default_title": "Whereami?", + "default_popup": "popup/geo.html" + }, + + "commands": { + "toggle-feature": { + "suggested_key": { + "default": "Ctrl+Shift+Y", + "linux": "Ctrl+Shift+U" + }, + "description": "Send a 'toggle-feature' event" + } + }, + + "content_security_policy": "script-src 'self' https://example.com; object-src 'self'", + + "content_scripts": [ + { + "exclude_matches": ["*://developer.mozilla.org/*"], + "matches": ["*://*.mozilla.org/*"], + "js": ["borderify.js"] + } + ], + + "default_locale": "en", + + "description": "...", + + "icons": { + "48": "icon.png", + "96": "icon@2x.png" + }, + + "manifest_version": 2, + + "name": "...", + + "page_action": { + "default_icon": { + "19": "button/geo-19.png", + "38": "button/geo-38.png" + }, + "default_title": "Whereami?", + "default_popup": "popup/geo.html" + }, + + "permissions": ["webNavigation"], + + "version": "0.1", + + "web_accessible_resources": ["images/my-image.png"] +}</pre> + +<p> </p> diff --git a/files/pl/mozilla/add-ons/webextensions/manifest.json/manifest_version/index.html b/files/pl/mozilla/add-ons/webextensions/manifest.json/manifest_version/index.html new file mode 100644 index 0000000000..f220ce01c9 --- /dev/null +++ b/files/pl/mozilla/add-ons/webextensions/manifest.json/manifest_version/index.html @@ -0,0 +1,41 @@ +--- +title: manifest_version +slug: Mozilla/Add-ons/WebExtensions/manifest.json/manifest_version +translation_of: Mozilla/Add-ons/WebExtensions/manifest.json/manifest_version +--- +<p>{{AddonSidebar}}</p> + +<table class="fullwidth-table standard-table"> + <tbody> + <tr> + <th scope="row" style="width: 30%;">Typ</th> + <td><code>Number (numer)</code></td> + </tr> + <tr> + <th scope="row">Obowiązkowy</th> + <td>Tak</td> + </tr> + <tr> + <th scope="row">Przykład</th> + <td> + <pre class="brush: json no-line-numbers"> +"manifest_version": 2</pre> + </td> + </tr> + </tbody> +</table> + +<p>Ten klucz określa wersję pliku manifest.json użytego w rozszerzeniu.</p> + +<p>Obecnie zawsze musi to być 2.</p> + +<h2 id="Przykład">Przykład</h2> + +<pre class="brush: json no-line-numbers">"manifest_version": 2 +</pre> + +<h2 id="Zgodność_z_przeglądarkami">Zgodność z przeglądarkami</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("webextensions.manifest.manifest_version")}}</p> diff --git a/files/pl/mozilla/add-ons/webextensions/manifest.json/name/index.html b/files/pl/mozilla/add-ons/webextensions/manifest.json/name/index.html new file mode 100644 index 0000000000..1e4ade2df8 --- /dev/null +++ b/files/pl/mozilla/add-ons/webextensions/manifest.json/name/index.html @@ -0,0 +1,40 @@ +--- +title: name +slug: Mozilla/Add-ons/WebExtensions/manifest.json/name +translation_of: Mozilla/Add-ons/WebExtensions/manifest.json/name +--- +<div>{{AddonSidebar}}</div> + +<table class="fullwidth-table standard-table"> + <tbody> + <tr> + <th scope="row" style="width: 30%;">Typ</th> + <td><code>String (Ciąg znaków)</code></td> + </tr> + <tr> + <th scope="row">Obowiązkowy</th> + <td>Tak</td> + </tr> + <tr> + <th scope="row">Przykład</th> + <td> + <pre class="brush: json no-line-numbers"> +"name": "Moje rozszerzenie"</pre> + </td> + </tr> + </tbody> +</table> + +<p>Nazwa rozszerzenia. Jest używana do zidentyfikowania rozszerzenia w przeglądarce użytkownika i na takich serwisach jak np. addons.mozilla.org.</p> + +<p>Jest to <a href="/en-US/Add-ons/WebExtensions/Internationalization#Internationalizing_manifest.json">"właściwość zlokalizowana"</a>.</p> + +<h2 id="Przykład">Przykład</h2> + +<pre class="brush: json no-line-numbers">"name": "Moje rozszerzenie"</pre> + +<h2 id="Zgodność_z_przeglądarkami">Zgodność z przeglądarkami</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("webextensions.manifest.name")}}</p> diff --git a/files/pl/mozilla/add-ons/webextensions/manifest.json/version/index.html b/files/pl/mozilla/add-ons/webextensions/manifest.json/version/index.html new file mode 100644 index 0000000000..327d877861 --- /dev/null +++ b/files/pl/mozilla/add-ons/webextensions/manifest.json/version/index.html @@ -0,0 +1,45 @@ +--- +title: version +slug: Mozilla/Add-ons/WebExtensions/manifest.json/version +translation_of: Mozilla/Add-ons/WebExtensions/manifest.json/version +--- +<p>{{AddonSidebar}}</p> + +<table class="fullwidth-table standard-table"> + <tbody> + <tr> + <th scope="row" style="width: 30%;">Typ</th> + <td><code>String (ciąg znaków)</code></td> + </tr> + <tr> + <th scope="row">Obowiązkowe</th> + <td>Tak</td> + </tr> + <tr> + <th scope="row">Przykład</th> + <td> + <pre class="brush: json no-line-numbers"> +"version": "0.1"</pre> + </td> + </tr> + </tbody> +</table> + +<p>Wersja rozszerzenia, sformatowana jako liczby i znaki ASCII oddzielone kropkami. Szczegółowe informacje na temat formatu wersji znajdują się na stronie <a href="https://developer.mozilla.org/en-US/docs/Toolkit_version_format">Format Wersji</a>.</p> + +<p>Pamiętaj, że <a href="https://developer.chrome.com/extensions/manifest/version">składnia zdefiniowana dla <code>version</code> w Chromie</a> jest bardziej restrykcyjna niż ta używana w przeglądarce Firefox:</p> + +<ul> + <li>wartości <code>version</code> ważne w Chrome zawsze będą ważne w Firefox</li> + <li>wartości <code>version</code> ważne w Firefox mogą nie być ważne w Chrome</li> +</ul> + +<h2 id="Przykład">Przykład</h2> + +<pre class="brush: json no-line-numbers">"version": "0.1"</pre> + +<h2 id="Zgodność_z_przeglądarkami">Zgodność z przeglądarkami</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("webextensions.manifest.version")}}</p> diff --git a/files/pl/mozilla/add-ons/webextensions/pierwsze_kroki_z_web-ext/index.html b/files/pl/mozilla/add-ons/webextensions/pierwsze_kroki_z_web-ext/index.html new file mode 100644 index 0000000000..d88ccda07e --- /dev/null +++ b/files/pl/mozilla/add-ons/webextensions/pierwsze_kroki_z_web-ext/index.html @@ -0,0 +1,296 @@ +--- +title: Pierwsze kroki z web-ext +slug: Mozilla/Add-ons/WebExtensions/Pierwsze_kroki_z_web-ext +translation_of: Mozilla/Add-ons/WebExtensions/Getting_started_with_web-ext +--- +<div>{{AddonSidebar}}</div> + +<p class="summary">web-ext is a command line tool designed to speed up various parts of the extension development process, making development faster and easier. This article explains how to install and use web-ext.</p> + +<h2 id="Instalacja">Instalacja</h2> + +<p>web-ext is a node-based application that you install with the <a href="https://nodejs.org/">nodejs/npm</a> tool. Install web-ext using the following command:</p> + +<pre class="brush: bash"><code>npm install --global web-ext</code></pre> + +<p>web-ext requires the current <a href="https://github.com/nodejs/Release#release-schedule">LTS</a> (long-term support) version of <a href="https://nodejs.org/">NodeJS</a>.</p> + +<p>To test whether the installation worked run the following command, which displays the web-ext version number:</p> + +<pre class="brush: bash"><code>web-ext --version</code></pre> + +<h2 id="Użycie_web-ext">Użycie web-ext</h2> + +<p>Before you start using web-ext, locate an example extension to use—if you don't have one, use one from the <a href="https://github.com/mdn/webextensions-examples">webextensions-examples</a> repo.</p> + +<h3 id="Testing_out_an_extension">Testing out an extension</h3> + +<p>Test an extension in Firefox by <code>cd</code>'ing into your extension's root directory and entering:</p> + +<pre class="brush: bash"><code>web-ext run</code></pre> + +<p>This starts Firefox and loads the extension temporarily in the browser, just as you can on the <a href="/en-US/docs/Tools/about:debugging#Add-ons">about:debugging page</a>.</p> + +<p>See the <a href="/en-US/Add-ons/WebExtensions/web-ext_command_reference#web-ext_run">run reference guide</a> to learn more.</p> + +<h3 id="Automatic_extension_reloading">Automatic extension reloading</h3> + +<p>The <code>run</code> command watches your source files and tells Firefox to reload the extension after you edit and save a file. For example, if you changed the <code>name</code> property in your <code>manifest.json</code> file, Firefox displays the new name. This makes it easy to try out new features because you can see the effect immediately. The automatic reloading feature is active by default, you use it like this:</p> + +<pre class="brush: bash"><code>web-ext run</code></pre> + +<p>You can also press the <code>r</code> key in the <code>web-ext</code> terminal to trigger an extension reload.</p> + +<p>If you experience unexpected behavior with the reloading feature, please <a href="https://github.com/mozilla/web-ext/issues">file a bug</a>. You can also disable reloading like this:</p> + +<pre class="brush: bash"><code>web-ext run --no-reload</code></pre> + +<div class="note"> +<p>Extension reloading is only supported in Firefox 49 or higher.</p> +</div> + +<h3 id="Testing_in_different_versions_of_Firefox">Testing in different versions of Firefox</h3> + +<p>To run your extension in a version of <a href="https://www.mozilla.org/en-US/firefox/">Firefox Desktop</a> other than the default, use the <code>--firefox</code> option to specify a full path to the binary file. Here is an example for Mac OS:</p> + +<pre class="brush: bash">web-ext run --firefox=/Applications/FirefoxNightly.app/Contents/MacOS/firefox-bin</pre> + +<p>On Windows, the path needs to include <code>firefox.exe</code>, for example:</p> + +<pre class="brush: bash">web-ext run --firefox="C:\Program Files\Mozilla Firefox\firefox.exe"</pre> + +<p>See the <a href="/en-US/Add-ons/WebExtensions/web-ext_command_reference#web-ext_run">run command</a> reference to learn more.</p> + +<h3 id="Testing_in_Firefox_48">Testing in Firefox 48</h3> + +<p>Firefox 48 was the first stable version to use the WebExtension platform, but it doesn't allow <code>web-ext</code> to install an extension remotely. You need to run your extension in Firefox 48 using:</p> + +<pre class="brush: bash">web-ext run --pre-install</pre> + +<h3 id="Testing_in_Firefox_for_Android">Testing in Firefox for Android</h3> + +<p>To run your extension in <a href="https://www.mozilla.org/en-US/firefox/mobile/">Firefox for Android</a>, follow these instructions to <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Developing_WebExtensions_for_Firefox_for_Android#Set_up_your_computer_and_Android_emulator_or_device">set up your computer and device</a>.</p> + +<p>With your device connected to your development computer, run:</p> + +<pre class="brush: bash">web-ext run --target=firefox-android</pre> + +<p>This command displays the device ID for your connected Android device or devices. If you don't see a list of device IDs, make sure you set up the device for development correctly.</p> + +<p><span style="background-color: #ffffff;">N</span>ow, add the device ID to the command:</p> + +<pre class="brush: bash">web-ext run --target=firefox-android --android-device=<device ID></pre> + +<p>If you've multiple versions of Firefox installed, you may need to choose a specific version. For example:</p> + +<pre class="brush: bash">web-ext run --target=firefox-android ... --firefox-apk=org.mozilla.firefox</pre> + +<p>The first time you run this command, you may need to grant Android permissions for the APK. This is because the command needs read / write access to the device storage, so that Firefox for Android can run on a temporary profile. The <code>web-ext</code> output guides you in how to grant these permissions.</p> + +<p>The <code>web-ext</code> command does not alter any of your existing Firefox for Android preferences or data. To see more information about how <code>web-ext</code> is interacting with your device, run the command with <code>--verbose</code>.</p> + +<p>See the <a href="/en-US/Add-ons/WebExtensions/web-ext_command_reference#web-ext_run">run command</a> reference to learn more.</p> + +<h3 id="Debugging_in_Firefox_for_Android">Debugging in Firefox for Android</h3> + +<p>When using <code>web-ext run</code> to test an extension on Firefox for Android, you'll notice a message like this in the console output:</p> + +<pre>You can connect to this Android device on TCP port 51499 +</pre> + +<p>This is a remote debugger port that you can <a href="/en-US/docs/Tools/Remote_Debugging/Firefox_for_Android#Connecting">connect to with Firefox's developer tools</a>. In this case, you'd connect to host <code>localhost</code> on port <code>51499</code>.</p> + +<p>See <a href="/en-US/Add-ons/WebExtensions/Developing_WebExtensions_for_Firefox_for_Android#Debug_your_extension">this guide</a> for more information about debugging an extension on Firefox for Android.</p> + +<h3 id="Testing_unsigned_extensions">Testing unsigned extensions</h3> + +<p>When you execute <a href="/en-US/Add-ons/WebExtensions/web-ext_command_reference#web-ext_run">web-ext run</a>, the extension gets installed temporarily until you close Firefox. This does not violate any signing restrictions. If instead you create a zip file with <a href="/en-US/Add-ons/WebExtensions/web-ext_command_reference#web-ext_build">web-ext build</a> and try to install it into Firefox, you will see an error telling you that the add-on is not signed. You will need to use an <a href="https://wiki.mozilla.org/Addons/Extension_Signing#Unbranded_Builds">unbranded build</a> or use a <a href="https://www.mozilla.org/en-US/firefox/developer/">development build</a> to install unsigned extensions.</p> + +<h3 id="Using_a_custom_profile">Using a custom profile</h3> + +<p>By default, the <code>run</code> command will create a temporary Firefox profile. To run your extension with a specific profile use the <code>--firefox-profile</code> option, like this:</p> + +<pre class="brush: bash">web-ext run --firefox-profile=your-custom-profile</pre> + +<p>This option accepts a string containing the name of your profile or an absolute path to the profile directory. This is helpful if you want to manually configure some settings that will always be available to the <code>run</code> command.</p> + +<h3 id="Keeping_profile_changes">Keeping profile changes</h3> + +<p>The <code>run</code> command does not save any changes made to the custom profile specified by <code>--firefox-profile</code>. To keep changes, add this option:</p> + +<pre class="brush: bash">web-ext run --keep-profile-changes --firefox-profile=your-custom-profile</pre> + +<p>This may be helpful if your extension has many different run states.</p> + +<div class="warning"> +<p>This option makes the profile specified by <code>--firefox-profile</code> completely insecure for daily use. It turns off auto-updates and allows silent remote connections, among other things. Specifically, it will make destructive changes to the profile that are required for <code>web-ext</code> to operate.</p> +</div> + +<h3 id="Packaging_your_extension">Packaging your extension</h3> + +<p>Once you've tested your extension and verified that it's working, you can turn it into a package for submitting to <a href="https://addons.mozilla.org">addons.mozilla.org</a> using the following command:</p> + +<pre class="brush: bash"><code>web-ext build</code></pre> + +<p>This outputs a full path to the generated <code>.zip</code> file that can be loaded into a browser.</p> + +<div class="warning"> +<p>The generated <code>.zip</code> file doesn't work on Firefox without signing or adding <code><a href="/en-US/Add-ons/WebExtensions/manifest.json/applications">applications</a>.gecko.id</code> key into <code><a href="/en-US/Add-ons/WebExtensions/manifest.json">manifest.json</a></code>. For more information, please refer <a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/WebExtensions_and_the_Add-on_ID">WebExtensions and the Add-on ID</a> page.</p> +</div> + +<p><code>web-ext build</code> is designed to ignore files that are commonly not wanted in packages, such as <code>.git</code>, <code>node_modules</code>, and other artifacts.</p> + +<p>See the <a href="/en-US/Add-ons/WebExtensions/web-ext_command_reference#web-ext_build">build reference guide</a> to learn more.</p> + +<h3 id="Signing_your_extension_for_distribution">Signing your extension for distribution</h3> + +<p>As an alternative to publishing your extension on <a href="https://addons.mozilla.org/">addons.mozilla.org</a>, you can self-host your package file but it needs to be <a href="https://developer.mozilla.org/Add-ons/Distribution">signed by Mozilla</a> first. The following command packages and signs a ZIP file, then returns it as a signed XPI file for distribution:</p> + +<pre class="brush: bash"><code>web-ext sign --api-key=$AMO_JWT_ISSUER --api-secret=$AMO_JWT_SECRET </code></pre> + +<p>The API options are required to specify your <a href="https://addons.mozilla.org/en-US/developers/addon/api/key/">addons.mozilla.org credentials</a>.</p> + +<ul> + <li><code>--api-key</code>: the API key (JWT issuer) from <code>addons.mozilla.org</code> needed to sign the extension. This is a string that will look something like <code>user:12345:67</code>.</li> + <li><code>--api-secret</code>: the API secret (JWT secret) from <code>addons.mozilla.org</code> needed to sign the extension. This is a string that will look something like <code>634f34bee43611d2f3c0fd8c06220ac780cff681a578092001183ab62c04e009</code>.</li> +</ul> + +<p>See the <a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/web-ext_command_reference#web-ext_sign">sign reference guide</a> to learn more.</p> + +<h3 id="Signing_extensions_without_an_explicit_ID">Signing extensions without an explicit ID</h3> + +<p><code>web-ext</code> supports signing extensions that do not declare the <a href="/en-US/Add-ons/WebExtensions/manifest.json/applications">applications.gecko.id</a> property in their manifest. The first time you sign an extension without an explicit ID, <a href="https://addons.mozilla.org/">addons.mozilla.org</a> will generate an ID and <code>web-ext</code> will save it to <code>.web-extension-id</code> in the working directory. You should save the ID file so that you can sign future versions of the same extension. If you lose the ID file, you will have to add back the <code>applications.gecko.id</code> property or use the <code>--id</code> option when signing, for example:</p> + +<pre class="brush: bash"><code>web-ext sign --api-key=... --api-secret=... --id="</code>{c23c69a7-f889-447c-9d6b-7694be8035bc}<code>"</code></pre> + +<h3 id="Signing_in_a_restricted_environment">Signing in a restricted environment</h3> + +<p>If you're working in an environment that restricts access to certain domains, you can try using a proxy when signing:</p> + +<pre class="brush: bash"><code>web-ext sign --api-key=... --api-secret=... --api-proxy=https://yourproxy:6000</code></pre> + +<p>See the <a href="/en-US/Add-ons/WebExtensions/web-ext_command_reference#--api-proxy">--api-proxy</a> option to learn more.</p> + +<p>The following domains are used for signing and downloading files:</p> + +<ul> + <li><code>addons.mozilla.org</code></li> + <li><code>addons.cdn.mozilla.net</code></li> +</ul> + +<h3 id="Checking_for_code_lint">Checking for code "lint"</h3> + +<p>Before trying out your extension with the <a href="/en-US/Add-ons/WebExtensions/web-ext_command_reference#web-ext_run">run</a> command or submitting your package to <a href="https://addons.mozilla.org/en-US/firefox/">addons.mozilla.org</a>, use the <code>lint</code> command to make sure your <a href="/en-US/Add-ons/WebExtensions/manifest.json">manifest</a> and other source files do not contain any errors. Example:</p> + +<pre class="brush: bash">web-ext lint</pre> + +<p>This uses the <a href="https://github.com/mozilla/addons-linter">addons-linter</a> library to walk through your source code directory and report any errors, such as the declaration of an unknown permission.</p> + +<p>See the <a href="/en-US/Add-ons/WebExtensions/web-ext_command_reference#web-ext_lint">lint reference guide</a> to learn more.</p> + +<h3 id="Setting_option_defaults_in_a_configuration_file">Setting option defaults in a configuration file</h3> + +<p>You can specify <code>--config=my-config.js</code> to set default values for any option. Here is an example with the <code>build</code> command:</p> + +<pre class="brush: bash">web-ext --config=my-config.js build</pre> + +<p>The file should be a CommonJS module <a href="https://nodejs.org/docs/latest/api/modules.html#modules_modules">as understood by NodeJS</a> and must export each configuration value. Here is how you would set the default value of <a href="/en-US/Add-ons/WebExtensions/web-ext_command_reference#--verbose_-v">--verbose</a> to <code>true</code>:</p> + +<pre class="brush: javascript">module.exports = { + verbose: true, +};</pre> + +<p>If you want to specify options that only apply to a specific command, you nest the configuration under the command name. Here is an example of adding configuration for <a href="/en-US/Add-ons/WebExtensions/web-ext_command_reference#--overwrite-dest_-o">--overwrite-dest</a> that only applies to the <code>build</code> command as well as <a href="/en-US/Add-ons/WebExtensions/web-ext_command_reference#--firefox_-f">--firefox</a> that only applies to the <code>run</code> command:</p> + +<pre class="brush: javascript">module.exports = { + // Global options: + verbose: true, + // Command options: + build: { + overwriteDest: true, + }, + run: { + firefox: 'nightly', + }, +};</pre> + +<p>To create a configuration key for a command line option, you remove the preceding dashes and convert the name to camel case. As you can see from this example, <code>--overwrite-dest</code> was converted to <code>overwriteDest</code>.</p> + +<p>If an option can be specified multiple times on the command line then you define it as an array. For example, here is how to specify multiple <a href="/en-US/Add-ons/WebExtensions/web-ext_command_reference#--ignore-files_-i">--ignore-files</a> patterns:</p> + +<pre class="brush: javascript">module.exports = { + ignoreFiles: [ + 'package-lock.json', + 'yarn.lock', + ], +};</pre> + +<h3 id="Automatic_discovery_of_configuration_files">Automatic discovery of configuration files</h3> + +<p><code>web-ext</code> will load existing configuration files in the following order:</p> + +<ul> + <li>A config file named <code>.web-ext-config.js</code> in your home directory, for example: + + <ul> + <li>On Windows: <code>C:\Users\<username>\.web-ext-config.js</code></li> + <li>On macOS: <code>/Users/<username>/.web-ext-config.js</code></li> + <li>On Linux: <code>/home/<username>/.web-ext-config.js</code></li> + </ul> + </li> + <li>A config file named <code>web-ext-config.js</code> in the current directory.</li> +</ul> + +<p>If a home directory config and a local directory config define the same option, the value from the latter file will be used.</p> + +<p>To disable automatic loading of configuration files, set this option:</p> + +<pre class="brush: bash">web-ext --no-config-discovery run</pre> + +<p>To diagnose an issue related to config files, re-run your command with <code>--verbose</code>. This will tell you which config file affected which option value.</p> + +<h3 id="Specifying_different_source_and_destination_directories">Specifying different source and destination directories</h3> + +<p>The preceding commands use default directories for the extension source and artifact creation (for example, built <code>.zip</code> files). The defaults are:</p> + +<ul> + <li>Source: The directory you are in.</li> + <li>Artifacts: A directory called <code>./web-ext-artifacts</code>, created inside the current directory.</li> +</ul> + +<p>You can specify different source and destination directories using the <code>--source-dir</code> and <code>--artifacts-dir</code> options when running your commands. Their values can be relative or absolute paths, but must always be specified as strings. Here is an example of specifying both options when building an extension:</p> + +<pre class="brush: bash"><code>web-ext build --source-dir=webextension-examples/notify-link-clicks-i18n --artifacts-dir=zips</code></pre> + +<h3 id="Outputting_verbose_messages">Outputting verbose messages</h3> + +<p>To see in detail what web-ext is doing when you run a command, include the <code>--verbose</code> option. For example:</p> + +<pre class="brush: bash"><code>web-ext build --verbose</code></pre> + +<h3 id="Viewing_all_commands_and_options">Viewing all commands and options</h3> + +<p>You can list all commands and options like this:</p> + +<pre class="brush: bash"><code>web-ext --help</code></pre> + +<p>You can list options for a specific command by adding it as an argument:</p> + +<pre class="brush: bash"><code>web-ext --help run</code></pre> + +<h3 id="Detecting_temporary_installation">Detecting temporary installation</h3> + +<p>Your extension can detect whether it was installed using <code>web-ext run</code>, rather than as a built and signed extension downloaded from <code>addons.mozilla.org</code>. Listen for the {{WebExtAPIRef("runtime.onInstalled")}} event and check the value of <code>details.temporary</code>.</p> + +<h3 id="Using_web-ext_from_a_script">Using web-ext from a script</h3> + +<p>You can use <code>web-ext</code> as a <code>NodeJS</code> module. Here is <a href="https://github.com/mozilla/web-ext#using-web-ext-in-nodejs-code">more information</a>, with example code.</p> + +<h2 id="See_also">See also</h2> + +<ul> + <li><a class="external external-icon" href="https://github.com/mozilla/web-ext">web-ext repo</a></li> + <li> + <p><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/web-ext_command_reference">web-ext command reference</a></p> + </li> +</ul> diff --git a/files/pl/mozilla/add-ons/webextensions/twój_pierwszy_webextension/index.html b/files/pl/mozilla/add-ons/webextensions/twój_pierwszy_webextension/index.html new file mode 100644 index 0000000000..f5f1f8e3fc --- /dev/null +++ b/files/pl/mozilla/add-ons/webextensions/twój_pierwszy_webextension/index.html @@ -0,0 +1,152 @@ +--- +title: Twoje pierwsze rozszerzenie +slug: Mozilla/Add-ons/WebExtensions/Twój_pierwszy_WebExtension +translation_of: Mozilla/Add-ons/WebExtensions/Your_first_WebExtension +--- +<div>{{AddonSidebar}}</div> + +<p>W tym artykule przejdziemy przez tworzenie rozszerzenia dla przeglądarki Firefox od początku do końca. Rozszerzenie to tylko dodaje czerwoną ramkę do stron załadowanych z "mozilla.org" lub dowolnej z jej poddomen.</p> + +<p>Kod źródłowy dla tego przykładu znajduje się na GitHub'ie: <a href="https://github.com/mdn/webextensions-examples/tree/master/borderify">https://github.com/mdn/webextensions-examples/tree/master/borderify</a>.</p> + +<p>Najpierw, będziesz potrzebować przeglądarki Firefox w wersji 45 lub nowszej.</p> + +<h2 id="Pisanie_rozszerzenia">Pisanie rozszerzenia</h2> + +<p>Stwórz nowy folder i przejdź do niego:</p> + +<pre class="brush: bash">mkdir borderify +cd borderify</pre> + +<h3 id="manifest.json">manifest.json</h3> + +<p>Teraz stwórz nowy plik o nazwie "manifest.json" bezpośrednio w katalogu "borderify". Wprowadź do niego poniższy kod:</p> + +<pre class="brush: json">{ + + "manifest_version": 2, + "name": "Borderify", + "version": "1.0", + + "description": "Dodaje czerwoną ramkę we wszystkich stronach powiązanych z domeną mozilla.org.", + + "icons": { + "48": "icons/border-48.png" + }, + + "content_scripts": [ + { + "matches": ["*://*.mozilla.org/*"], + "js": ["borderify.js"] + } + ] + +}</pre> + +<ul> + <li>Pierwsze trzy klucze: <code><a href="/en-US/Add-ons/WebExtensions/manifest.json/manifest_version">manifest_version</a></code>, <code><a href="/en-US/Add-ons/WebExtensions/manifest.json/name">name</a></code>, oraz <code><a href="/en-US/Add-ons/WebExtensions/manifest.json/version">version</a></code>, są obowiązkowe i zawierają podstawowe metadane dla rozszerzenia.</li> + <li><code><a href="/en-US/Add-ons/WebExtensions/manifest.json/description">description</a></code> jest opcjonalny, ale zalecany: jest on wyświetlany w menadżerze rozszerzeń.</li> + <li><code><a href="/en-US/Add-ons/WebExtensions/manifest.json/icons">icons</a></code> jest opcjonalna, ale zalecana: pozwala ona nadać ikonę rozszerzeniu, która będzie wyświetlana w menadżerze rozszerzeń.</li> +</ul> + +<p>Najbardziej interesującym kluczem jest tutaj <code><a href="/en-US/Add-ons/WebExtensions/manifest.json/content_scripts">content_scripts</a></code>, który mówi przeglądarce, który skrypt wczytać do stron internetowych, których adres spełnia określony wzór. W tym przypadku prosimy przeglądarkę o wczytanie skryptu o nazwie "borderify.js" na wszystkich stronach HTTP i HTTPS obsługiwanych przez domenę "mozilla.org" bądź jakąkolwiek jej poddomenę.</p> + +<ul> + <li><a href="/en-US/Add-ons/WebExtensions/Content_scripts">Dowiedz się więcek na temat zawartości skryptów.</a></li> + <li><a href="/en-US/Add-ons/WebExtensions/Match_patterns">Dowiedz się więcej na temat wzorców</a>.</li> +</ul> + +<div class="warning"> +<p><a href="/en-US/Add-ons/WebExtensions/WebExtensions_and_the_Add-on_ID#When_do_you_need_an_Add-on_ID">W niektórych sytuacjach musisz nadać ID swojemu rozszerzeniu</a>. Jeśli potrzebujesz nadać rozszerzeniu ID, dołącz klucz <code><a href="/en-US/Add-ons/WebExtensions/manifest.json/applications">applications</a></code> do <code>manifest.json</code> i przypisz mu pole <code>id</code>:</p> + +<pre class="brush: json">"applications": { + "gecko": { + "id": "borderify@przyklad.pl" + } +}</pre> +</div> + +<h3 id="iconsborder-48.png">icons/border-48.png</h3> + +<p>Rozszerzenie powinno mieć ikonę. Będzie ona wyświetlona na liście dodatków w menadżerze rozszerzeń. Nasz manifest.json zapowiada, że będziemy mieć ikonę w "icons/border-48.png".</p> + +<p>Stwórz folder "icons" bezpośrednio w katalogu "borderify". Zapisz tam ikonę o nazwie "border-48.png". Możesz użyć <a href="https://github.com/mdn/webextensions-examples/blob/master/borderify/icons/border-48.png">tej naszej przykładowej</a>, która pochodzi ze zbioru ikon Google Material Design i jest używana zgodnie z warunkami licencji <a href="https://creativecommons.org/licenses/by-sa/3.0/">Creative Commons Attribution-ShareAlike</a>.</p> + +<p>Jeśli zdecydujesz się dodać własną ikonę, to powinna być w formacie 48x48 pikseli. Możesz także dodać ikonę o rozmiarze 96x96 pikseli dla ekranów o wysokiej rozdzielczości i jeśli dodasz ją, to powinna ona zostać przypisana jako wartość pola 96 obiektu <code>icons</code> <br> + w pliku manifest.json:</p> + +<pre class="brush: json">"icons": { + "48": "icons/border-48.png", + "96": "icons/border-96.png" +}</pre> + +<p>Ewentualnie możesz dodać plik SVG tutaj, więc zostanie on poprawnie przeskalowany. (Jeśli jednak używasz SVG, a twoja ikona zawiera napisy, możesz chcieć użyć narzędzia "przekonwertuj do ścieżki" w edytorze SVG, by spłaszczyć tekst, więc będzie skalowo dopasowany do położenia/rozmiaru).</p> + +<ul> + <li><a href="/en-US/Add-ons/WebExtensions/manifest.json/icons">Dowiedz się więcej o określaniu ikon.</a></li> +</ul> + +<h3 id="borderify.js">borderify.js</h3> + +<p>Ostatecznie stwórz plik o nazwie "borderify.js" bezpośrednio w katalogu "borderify". Wpisz do niego poniższy kod:</p> + +<pre class="brush: js">document.body.style.border = <code class="language-js"><span class="string token">"5px solid red"</span></code>;</pre> + +<p>Ten skrypt b<span class="st">ę</span>dzie załadowany na stronach spełniających wzór określony w kluczu <code>content_scripts</code> w pliku manifest.json. Skrypt ma bezpośredni dostęp do dokumentu, podobnie jak skrypty wczytane przez stronę.</p> + +<ul> + <li><a href="/en-US/Add-ons/WebExtensions/Content_scripts">Dowiedz się więcej o zawartości skryptów.</a></li> +</ul> + +<h2 id="Wypróbujmy">Wypróbujmy</h2> + +<p>Najpierw dokładnie sprawdź, czy odpowiedne pliki są w właściwych miejsacach:</p> + +<pre>borderify/ + icons/ + border-48.png + borderify.js + manifest.json</pre> + +<h3 id="Instalacja">Instalacja</h3> + +<p>Otwórz "about:debugging" w przeglądarce Firefox, kliknij "Załaduj tymczasową wtyczkę" i wybierz jakikolwiek plik z katalogu z Twoim rozszerzeniem:</p> + +<p>{{EmbedYouTube("cer9EUKegG4")}}</p> + +<p>Rozszerzenie zostanie teraz zainstalowane i pozostanie tam do momentu ponownego uruchomienia Firefoksa.</p> + +<p>Alternatywnie, możesz także uruchomić swoje rozszerzenie za pomocą wiersza poleceń używając narzędzie <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Getting_started_with_web-ext">web-ext</a>.</p> + +<h3 id="Testowanie">Testowanie</h3> + +<p>Teraz spróbuj odwiedzić jakąś stronę należącą do "mozilla.org" i powinienieś zobaczyć czerwoną ramkę wokół strony:</p> + +<p>{{EmbedYouTube("rxBQl2Z9IBQ")}}</p> + +<div class="note"> +<p>Jednakże nie próbuj tego na addons.mozilla.org! Obecnie skrypty są blokowane na tej domenie.</p> +</div> + +<p>Spróbuj trochę poeksperymentować. Edytuj zawartość skryptu by zmienić kolor ramki lub zrób coś innego z zawartością strony. Zapisz skrypt i przeładuj pliki rozszerzenia kilkając przycisk "Przeładuj" w about:debugging. Możesz zobaczy<span class="st">ć</span> zmiany odrazu:</p> + +<p>{{EmbedYouTube("NuajE60jfGY")}}</p> + +<ul> + <li><a href="/en-US/Add-ons/WebExtensions/Temporary_Installation_in_Firefox">Dowiedz się więcej o wczytywaniu rozszerzeń</a></li> +</ul> + +<h2 id="Pakowanie_i_publikowanie">Pakowanie i publikowanie</h2> + +<p>Aby inni użytkownicy mogli korzystać z Twojego rozszerzenia, musisz je zapakować i wysłać do Mozilli w celu podpisania go. <br> + Aby dowiedzieć się więcej, zajrzyj do artykułu <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Publishing_your_WebExtension">"Publikowanie własnego rozszerzenia"</a>.</p> + +<h2 id="Co_dalej">Co dalej?</h2> + +<p>Teraz gdy ty masz <span class="short_text" id="result_box" lang="pl"><span>pomysł</span></span> na temat procesu tworzenia rozszerzeń (WebExtension) dla Firefoxa, to spróbuj:</p> + +<ul> + <li><a href="/en-US/Add-ons/WebExtensions/Anatomy_of_a_WebExtension">przeczytać więcej na temat anatomi rozszerzeń</a></li> + <li><a href="/en-US/Add-ons/WebExtensions/Your_second_WebExtension">napisać bardziej rozbudowane rozszerzenie</a></li> + <li><a href="/en-US/Add-ons/WebExtensions/API">przeczytać o JavaScript API dostępnym dla rozszerzeń.</a></li> +</ul> |