aboutsummaryrefslogtreecommitdiff
path: root/files/pl/archive/add-ons
diff options
context:
space:
mode:
Diffstat (limited to 'files/pl/archive/add-ons')
-rw-r--r--files/pl/archive/add-ons/add-on_sdk/tools/index.html158
-rw-r--r--files/pl/archive/add-ons/add-on_sdk/tools/jpm/index.html883
-rw-r--r--files/pl/archive/add-ons/api_przechowywania_sesji/index.html85
-rw-r--r--files/pl/archive/add-ons/index.html8
-rw-r--r--files/pl/archive/add-ons/wsparcie_dla_podpowiedzi_wyszukiwania_w_wyszukiwarkach/index.html58
5 files changed, 1192 insertions, 0 deletions
diff --git a/files/pl/archive/add-ons/add-on_sdk/tools/index.html b/files/pl/archive/add-ons/add-on_sdk/tools/index.html
new file mode 100644
index 0000000000..7ce4fa6d2f
--- /dev/null
+++ b/files/pl/archive/add-ons/add-on_sdk/tools/index.html
@@ -0,0 +1,158 @@
+---
+title: Tools
+slug: Archive/Add-ons/Add-on_SDK/Tools
+tags:
+ - Add-on SDK
+ - CFX
+ - JPM
+ - NeedsTranslation
+ - TopicStub
+translation_of: Archive/Add-ons/Add-on_SDK/Tools
+---
+<p></p><div class="warning"><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><section class="Quick_links" id="Quick_Links">
+ <ol>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions"><strong>Browser extensions</strong></a></li>
+
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions#Getting_started">Getting started</a>
+ <ol>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/What_are_WebExtensions">What are extensions?</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Your_first_WebExtension">Your first extension</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Your_second_WebExtension">Your second extension</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Anatomy_of_a_WebExtension">Anatomy of an extension</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Examples">Example extensions</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/What_next_">What next?</a></li>
+ </ol>
+ </li>
+
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions#Concepts">Concepts</a>
+ <ol>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Using_the_JavaScript_APIs">Using the JavaScript APIs</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Content_scripts">Content scripts</a></li>
+ <li><a href="/en-US/docs/Mozilla/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/Security_best_practices">Security best practices</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>
+ </ol>
+ </li>
+
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions#User_Interface">User interface</a>
+ <ol>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface">User Interface</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Browser_action">Toolbar button</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/Sidebars">Sidebars</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/Options_pages">Options page</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Extension_pages">Extension 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>
+ </ol>
+ </li>
+
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions#How_to">How to</a>
+ <ol>
+ <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/Safely_inserting_external_content_into_a_page">Insert external content</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/Working_with_the_Tabs_API">Work with the Tabs API</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Work_with_the_Bookmarks_API">Work with the Bookmarks API</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Work_with_the_Cookies_API">Work with the Cookies API</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Work_with_contextual_identities">Work with contextual identities</a></li>
+ </ol>
+ </li>
+
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions#Porting">Porting</a>
+ <ol>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Porting_a_Google_Chrome_extension">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/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>
+ </ol>
+ </li>
+
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions#Firefox_workflow">Firefox workflow</a>
+ <ol>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/User_experience_best_practices">User Experience</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Temporary_Installation_in_Firefox">Temporary Installation in Firefox</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Debugging">Debugging</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Testing_persistent_and_restart_features">Testing persistent and restart features</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/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/docs/Mozilla/Add-ons/WebExtensions/Request_the_right_permissions">Request the right permissions</a></li>
+
+ </ol>
+ </li>
+
+ <li data-default-state="closed"><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API">JavaScript APIs</a>
+ <ol><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Browser_support_for_JavaScript_APIs">Browser support for JavaScript APIs</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/alarms">alarms</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/bookmarks">bookmarks</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/browserAction">browserAction</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/browserSettings">browserSettings</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/browsingData">browsingData</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/clipboard">clipboard</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/commands">commands</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/contentScripts">contentScripts</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/contextualIdentities">contextualIdentities</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/cookies">cookies</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/devtools.inspectedWindow">devtools.inspectedWindow</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/devtools.network">devtools.network</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/devtools.panels">devtools.panels</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/dns">dns</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/downloads">downloads</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/events">events</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/extension">extension</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/extensionTypes">extensionTypes</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/find">find</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/history">history</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/i18n">i18n</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/identity">identity</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/idle">idle</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/management">management</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/menus">menus</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/notifications">notifications</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/omnibox">omnibox</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/pageAction">pageAction</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/permissions">permissions</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/pkcs11">pkcs11</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/privacy">privacy</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/proxy">proxy</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime">runtime</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/search">search</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/sessions">sessions</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/sidebarAction">sidebarAction</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/storage">storage</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs">tabs</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/theme">theme</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/topSites">topSites</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/types">types</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/webNavigation">webNavigation</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/webRequest">webRequest</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/windows">windows</a></li></ol>
+ </li>
+
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json">Manifest keys</a>
+ <ol><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/applications">applications</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/author">author</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/background">background</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/browser_action">browser_action</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/chrome_settings_overrides">chrome_settings_overrides</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/chrome_url_overrides">chrome_url_overrides</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/commands">commands</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/content_scripts">content_scripts</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/content_security_policy">content_security_policy</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/default_locale">default_locale</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/description">description</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/developer">developer</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/devtools_page">devtools_page</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/homepage_url">homepage_url</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/icons">icons</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/incognito">incognito</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/manifest_version">manifest_version</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/name">name</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/omnibox">omnibox</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/optional_permissions">optional_permissions</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/options_ui">options_ui</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/page_action">page_action</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions">permissions</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/protocol_handlers">protocol_handlers</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/short_name">short_name</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/sidebar_action">sidebar_action</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/theme">theme</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/version">version</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/version_name">version_name</a></li><li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/web_accessible_resources">web_accessible_resources</a></li></ol>
+ </li>
+
+ <li><a href="/en-US/docs/Mozilla/Add-ons/Themes"><strong>Themes</strong></a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/Themes/Theme_concepts">Browser themes</a>
+ <ol>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/Themes/Theme_concepts">Browser theme concepts</a></li>
+ </ol>
+ </li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/Themes/Lightweight_themes">Lightweight themes</a>
+ <ol>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/Themes/Lightweight_themes">Lightweight themes</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/Themes/Lightweight_Themes/FAQ">Lightweight themes FAQ</a></li>
+ </ol>
+ </li>
+
+ <li><a href="/en-US/docs/Mozilla/Add-ons/Distribution"><strong>Publishing and Distribution</strong></a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/Distribution">Publishing add-ons</a>
+ <ol>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/Distribution">Signing and distribution overview</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Package_your_extension_">Package your extension</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/Distribution/Submitting_an_add-on">Submit an add-on</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/Source_Code_Submission">Source code submission</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/Distribution/Resources_for_publishers">Resources for publishers</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/Listing">Creating an appealing listing</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/AMO/Policy/Reviews">Review policies</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/AMO/Policy/Agreement">Developer agreement</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/AMO/Policy/Featured">Featured add-ons</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/Distribution/Retiring_your_extension">Retiring your extension</a></li>
+ </ol>
+ </li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Alternative_distribution_options">Distributing add-ons</a>
+ <ol>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Alternative_distribution_options/Sideloading_add-ons">For sideloading</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Alternative_distribution_options/Add-ons_for_desktop_apps">For desktop apps</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Alternative_distribution_options/Add-ons_in_the_enterprise">For an enterprise</a></li>
+ </ol>
+ </li>
+
+ <li><a href="https://discourse.mozilla.org/c/add-ons"><strong>Community and Support</strong></a></li>
+ <li><a href="#">Channels</a>
+ <ol>
+ <li><a href="https://blog.mozilla.org/addons">Add-ons blog</a></li>
+ <li><a href="https://discourse.mozilla.org/c/add-ons">Add-on forums</a></li>
+ <li><a href="http://stackoverflow.com/questions/tagged/firefox-addon">Stack Overflow</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/#Contact_us">Contact us</a></li>
+ </ol>
+ </li>
+
+ </ol>
+</section><p></p>
+
+<p>Articles listed here provide a reference for the SDK's tools:</p>
+
+<p></p><div class="row topicpage-table">
+ <div class="section"><dl><dl><dt class="landingPageList"><a href="/en-US/docs/Archive/Add-ons/Add-on_SDK/Tools/cfx">cfx</a></dt><dd class="landingPageList">Enables you to test, run, and package add-ons. cfx is is no longer supported as of Firefox 44 and no longer accepted for add-on submission, jpm should now be used instead.</dd><dt class="landingPageList"><a href="/en-US/docs/Archive/Add-ons/Add-on_SDK/Tools/cfx_to_jpm">cfx to jpm</a></dt><dd class="landingPageList">A guide to working with jpm if you're already familiar with cfx.</dd><dt class="landingPageList"><a href="/en-US/docs/Archive/Add-ons/Add-on_SDK/Tools/console">console</a></dt><dd class="landingPageList">Enables your add-on to log error, warning or informational messages.</dd><dt class="landingPageList"><a href="/en-US/docs/Archive/Add-ons/Add-on_SDK/Tools/jpm">jpm</a></dt><dd class="landingPageList">jpm is a command-line tool that enables you to test, run, and package add-ons.</dd><dt class="landingPageList"><a href="/en-US/docs/Archive/Add-ons/Add-on_SDK/Tools/jpm-mobile">jpm-mobile</a></dt><dd class="landingPageList">The Node-based replacement for <a href="/en-US/Add-ons/SDK/Tools/cfx"><code>cfx --force-mobile</code></a>. Enables you to run and test add-ons for Firefox Mobile (aka Fennec).</dd></dl></dl></div>
+ <div class="section"><dl><dt class="landingPageList"><a href="/en-US/docs/Archive/Add-ons/Add-on_SDK/Tools/jpmignore">jpmignore</a></dt><dd class="landingPageList">Use <code>.jpmignore</code> to ignore files from your XPI builds created via <a href="/en-US/docs/Mozilla/Add-ons/SDK/Tools/jpm">jpm</a>.</dd><dt class="landingPageList"><a href="/en-US/docs/Archive/Add-ons/Add-on_SDK/Tools/package_json">package.json</a></dt><dd class="landingPageList">The <code>package.json</code> file contains manifest data for your add-on, providing not only descriptive information about the add-on for presentation in the Add-ons Manager, but other metadata required of add-ons.</dd></dl></div>
+ </div><p></p>
diff --git a/files/pl/archive/add-ons/add-on_sdk/tools/jpm/index.html b/files/pl/archive/add-ons/add-on_sdk/tools/jpm/index.html
new file mode 100644
index 0000000000..853afb805a
--- /dev/null
+++ b/files/pl/archive/add-ons/add-on_sdk/tools/jpm/index.html
@@ -0,0 +1,883 @@
+---
+title: jpm
+slug: Archive/Add-ons/Add-on_SDK/Tools/jpm
+translation_of: Archive/Add-ons/Add-on_SDK/Tools/jpm
+---
+<div>
+<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>
+
+<section class="Quick_links" id="Quick_Links">
+<ol>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions"><strong>Browser extensions</strong></a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions#Getting_started">Getting started</a>
+ <ol>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/What_are_WebExtensions">What are extensions?</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Your_first_WebExtension">Your first extension</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Your_second_WebExtension">Your second extension</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Anatomy_of_a_WebExtension">Anatomy of an extension</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Examples">Example extensions</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/What_next_">What next?</a></li>
+ </ol>
+ </li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions#Concepts">Concepts</a>
+ <ol>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Using_the_JavaScript_APIs">Using the JavaScript APIs</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Content_scripts">Content scripts</a></li>
+ <li><a href="/en-US/docs/Mozilla/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/Security_best_practices">Security best practices</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>
+ </ol>
+ </li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions#User_Interface">User interface</a>
+ <ol>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface">User Interface</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Browser_action">Toolbar button</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/Sidebars">Sidebars</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/Options_pages">Options page</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Extension_pages">Extension 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>
+ </ol>
+ </li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions#How_to">How to</a>
+ <ol>
+ <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/Safely_inserting_external_content_into_a_page">Insert external content</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/Working_with_the_Tabs_API">Work with the Tabs API</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Work_with_the_Bookmarks_API">Work with the Bookmarks API</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Work_with_the_Cookies_API">Work with the Cookies API</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Work_with_contextual_identities">Work with contextual identities</a></li>
+ </ol>
+ </li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions#Porting">Porting</a>
+ <ol>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Porting_a_Google_Chrome_extension">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/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>
+ </ol>
+ </li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions#Firefox_workflow">Firefox workflow</a>
+ <ol>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/User_experience_best_practices">User Experience</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Temporary_Installation_in_Firefox">Temporary Installation in Firefox</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Debugging">Debugging</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Testing_persistent_and_restart_features">Testing persistent and restart features</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/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/docs/Mozilla/Add-ons/WebExtensions/Request_the_right_permissions">Request the right permissions</a></li>
+ </ol>
+ </li>
+ <li data-default-state="closed"><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API">JavaScript APIs</a>
+ <ol>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Browser_support_for_JavaScript_APIs">Browser support for JavaScript APIs</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/alarms">alarms</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/bookmarks">bookmarks</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/browserAction">browserAction</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/browserSettings">browserSettings</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/browsingData">browsingData</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/clipboard">clipboard</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/commands">commands</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/contentScripts">contentScripts</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/contextualIdentities">contextualIdentities</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/cookies">cookies</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/devtools.inspectedWindow">devtools.inspectedWindow</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/devtools.network">devtools.network</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/devtools.panels">devtools.panels</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/dns">dns</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/downloads">downloads</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/events">events</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/extension">extension</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/extensionTypes">extensionTypes</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/find">find</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/history">history</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/i18n">i18n</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/identity">identity</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/idle">idle</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/management">management</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/menus">menus</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/notifications">notifications</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/omnibox">omnibox</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/pageAction">pageAction</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/permissions">permissions</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/pkcs11">pkcs11</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/privacy">privacy</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/proxy">proxy</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime">runtime</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/search">search</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/sessions">sessions</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/sidebarAction">sidebarAction</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/storage">storage</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs">tabs</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/theme">theme</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/topSites">topSites</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/types">types</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/webNavigation">webNavigation</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/webRequest">webRequest</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/windows">windows</a></li>
+ </ol>
+ </li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json">Manifest keys</a>
+ <ol>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/applications">applications</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/author">author</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/background">background</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/browser_action">browser_action</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/chrome_settings_overrides">chrome_settings_overrides</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/chrome_url_overrides">chrome_url_overrides</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/commands">commands</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/content_scripts">content_scripts</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/content_security_policy">content_security_policy</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/default_locale">default_locale</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/description">description</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/developer">developer</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/devtools_page">devtools_page</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/homepage_url">homepage_url</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/icons">icons</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/incognito">incognito</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/manifest_version">manifest_version</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/name">name</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/omnibox">omnibox</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/optional_permissions">optional_permissions</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/options_ui">options_ui</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/page_action">page_action</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions">permissions</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/protocol_handlers">protocol_handlers</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/short_name">short_name</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/sidebar_action">sidebar_action</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/theme">theme</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/version">version</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/version_name">version_name</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/web_accessible_resources">web_accessible_resources</a></li>
+ </ol>
+ </li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/Themes"><strong>Themes</strong></a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/Themes/Theme_concepts">Browser themes</a>
+ <ol>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/Themes/Theme_concepts">Browser theme concepts</a></li>
+ </ol>
+ </li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/Themes/Lightweight_themes">Lightweight themes</a>
+ <ol>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/Themes/Lightweight_themes">Lightweight themes</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/Themes/Lightweight_Themes/FAQ">Lightweight themes FAQ</a></li>
+ </ol>
+ </li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/Distribution"><strong>Publishing and Distribution</strong></a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/Distribution">Publishing add-ons</a>
+ <ol>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/Distribution">Signing and distribution overview</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Package_your_extension_">Package your extension</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/Distribution/Submitting_an_add-on">Submit an add-on</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/Source_Code_Submission">Source code submission</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/Distribution/Resources_for_publishers">Resources for publishers</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/Listing">Creating an appealing listing</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/AMO/Policy/Reviews">Review policies</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/AMO/Policy/Agreement">Developer agreement</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/AMO/Policy/Featured">Featured add-ons</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/Distribution/Retiring_your_extension">Retiring your extension</a></li>
+ </ol>
+ </li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Alternative_distribution_options">Distributing add-ons</a>
+ <ol>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Alternative_distribution_options/Sideloading_add-ons">For sideloading</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Alternative_distribution_options/Add-ons_for_desktop_apps">For desktop apps</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Alternative_distribution_options/Add-ons_in_the_enterprise">For an enterprise</a></li>
+ </ol>
+ </li>
+ <li><a href="https://discourse.mozilla.org/c/add-ons"><strong>Community and Support</strong></a></li>
+ <li><a href="#">Channels</a>
+ <ol>
+ <li><a href="https://blog.mozilla.org/addons">Add-ons blog</a></li>
+ <li><a href="https://discourse.mozilla.org/c/add-ons">Add-on forums</a></li>
+ <li><a href="http://stackoverflow.com/questions/tagged/firefox-addon">Stack Overflow</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/#Contact_us">Contact us</a></li>
+ </ol>
+ </li>
+</ol>
+</section>
+</div>
+
+<p><span class="seoSummary">jpm is a command-line tool that enables you to test, run, and package add-ons.</span></p>
+
+<p>This is the reference page for jpm. See also <a href="/en-US/Add-ons/SDK/Tutorials/Getting_Started_%28jpm%29">jpm tutorial</a> for getting started.</p>
+
+<p>jpm <span class="tlid-translation translation" lang="pl"><span title="">użyj go</span></span> :</p>
+
+<pre class="brush: bash">jpm [command] [options]
+</pre>
+
+<p>jpm <span class="tlid-translation translation" lang="pl"><span title="">obsługuje następujące opcje globalne</span></span> :</p>
+
+<pre class="brush: bash">-h, --help - show a help message and exit
+-V, --version - print the jpm version number
+--addon-dir - directory for your source code,
+ defaulting to the current directory
+</pre>
+
+<h2 id="Instalacja"><span class="tlid-translation translation" lang="pl"><span title="">Instalacja</span></span></h2>
+
+<p>jpm is distributed with the node package manager <a class="external external-icon" href="https://www.npmjs.org/package/jpm">npm</a>.</p>
+
+<h3 id="Instalowanie_npm"><span class="tlid-translation translation" lang="pl"><span title="">Instalowanie</span></span>  npm</h3>
+
+<p>  <span class="tlid-translation translation" lang="pl"><span title="">Istnieją dwa sposoby uzyskania</span></span> npm.</p>
+
+<ul>
+ <li><span class="tlid-translation translation" lang="pl"><span class="alt-edited" title="">Pobierz i zainstaluj</span></span> Node.js z <a class="external external-icon" href="https://nodejs.org/">nodejs.org</a>. Node.js <span class="tlid-translation translation" lang="pl"><span title="">zawiera</span></span> npm.</li>
+ <li><span class="tlid-translation translation" lang="pl"><span title="">Lub</span></span> , <span class="tlid-translation translation" lang="pl"><span title="">jeśli masz</span></span> <span class="tlid-translation translation" lang="pl"><span title="">menedżer pakietów, taki jak APT</span></span>, zainstaluj npm <span class="tlid-translation translation" lang="pl"><span title="">przez to</span></span>. <span class="tlid-translation translation" lang="pl"><span title="">Na przykład</span></span>, <span class="tlid-translation translation" lang="pl"><span title="">w oknie terminalu Ubuntu lub Debian</span></span>, <span class="tlid-translation translation" lang="pl"><span class="alt-edited" title="">wpisz</span></span> <code>sudo apt-get install nodejs nodejs-legacy npm</code>.</li>
+</ul>
+
+<p><span class="tlid-translation translation" lang="pl"><span title="">Aby przetestować instalację, uruchom</span></span>:</p>
+
+<pre class="lang-js prettyprint prettyprinted">/usr/bin/env node -v</pre>
+
+<p><span class="tlid-translation translation" lang="pl"><span title="">Jeśli pojawi się komunikat o błędzie z informacją</span></span>  <em>/usr/bin/env: node: No such file or directory</em> and you have installed nodejs through a package manager, <span class="tlid-translation translation" lang="pl"><span title="">nodejs mógł zostać zainstalowany pod inną nazwą wykonywalną</span></span>. <span class="tlid-translation translation" lang="pl"><span title="">Aby zapewnić zgodność z jpm</span></span>,  <span class="tlid-translation translation" lang="pl"><span title="">jednak musi znajdować się w Twoim PATH pod nazwą</span></span> <code>node</code>. <span class="tlid-translation translation" lang="pl"><span title="">W Debianie i Ubuntu można temu zaradzić, zapewniając zainstalowanie pakietu zgodności</span></span>, <code>nodejs-legacy</code>:</p>
+
+<pre class="brush:bash">sudo apt-get install nodejs-legacy</pre>
+
+<p><span class="tlid-translation translation" lang="pl"><span title="">W innych dystrybucjach konieczne może być ręczne utworzenie lokalnego dowiązania symbolicznego do nodejs:</span></span></p>
+
+<pre class="brush:bash">sudo ln -s "$(which nodejs)" /usr/local/bin/node</pre>
+
+<h3 id="Instalowanie_jpm"><span class="tlid-translation translation" lang="pl"><span title="">Instalowanie</span></span> jpm</h3>
+
+<p>After you have npm installed and <code>node</code> on your PATH, install jpm just as you would any other npm package.</p>
+
+<h4 id="Installing_jpm_globally">Installing jpm globally</h4>
+
+<pre class="brush: bash">npm install jpm --global</pre>
+
+<p>Depending on your setup, you might need to run this as an administrator: <code>sudo npm install jpm --global</code></p>
+
+<h4 id="Installing_jpm_locally">Installing jpm locally</h4>
+
+<p>If you do not wish to, or are unable to, install jpm globally, you may instead install it locally:</p>
+
+<pre class="brush: bash">cd $HOME &amp;&amp; npm install jpm</pre>
+
+<p>To run <code>jpm</code> from a terminal when installed locally, you must add the directory <code>"$HOME/node_modules/.bin/"</code> to your terminal's PATH first. Add the following line to the end of the file <code>$HOME/.profile</code> to add it to your PATH permanently (as the file <code>.profile</code> is executed every time a new terminal is opened):</p>
+
+<pre class="brush: bash">export PATH="$HOME/node_modules/.bin/:$PATH"</pre>
+
+<h4 id="Installing_jpm_from_git">Installing jpm from git</h4>
+
+<p>Alternatively, you can also get the latest version of jpm using git:</p>
+
+<pre class="brush:bash">git clone https://github.com/mozilla-jetpack/jpm.git
+cd jpm
+npm install
+npm link
+</pre>
+
+<h3 id="After_installing_jpm">After installing jpm</h3>
+
+<p>After installation, at the command prompt, type:</p>
+
+<pre class="brush: bash">jpm</pre>
+
+<p>You should see a screen summarizing the available jpm commands. Note that unlike cfx, jpm is available in every command prompt you start, as long as you installed it with the <code>--global</code> flag.</p>
+
+<h3 id="Install_a_different_version_of_Firefox">Install a different version of Firefox</h3>
+
+<p>As of Firefox 48, it is not possible to use <a href="/en-US/docs/Mozilla/Add-ons/Distribution">unsigned add-ons</a> (i.e. any add-on which you are in the process of developing) in the branded release or beta versions of Firefox. Thus, you will need to download and install a different version of Firefox. Assuming you don't want an <a href="ftp.mozilla.org/pub/firefox/releases/">old version</a> of Firefox, your options are <a href="https://www.mozilla.org/en-US/firefox/developer/">Firefox Developer Edition</a>, <a href="https://nightly.mozilla.org/">Firefox Nightly</a>, <a href="https://wiki.mozilla.org/Add-ons/Extension_Signing#Unbranded_Builds">Unbranded Beta, or Unbranded Release</a>.</p>
+
+<p>When testing your add-on, you will need to use the <code>-b</code> option to <code>jpm run.</code> See <a href="/en-US/Add-ons/SDK/Tools/jpm#Selecting_a_browser_version">Selecting a browser version</a>.</p>
+
+<h3 id="Problems">Problems?</h3>
+
+<p>If you do not see this, ask for help. SDK users and project team members discuss problems and proposals on the <a class="external external-icon" href="https://groups.google.com/forum/#!forum/mozilla-labs-jetpack">project mailing list</a>. Someone else may have had the same problem you do, so try searching the list. You are welcome to post a question, too. You can also chat with other SDK users in <a class="external external-icon" href="https://mibbit.com/?channel=%23jetpack&amp;server=irc.mozilla.org">#jetpack</a> on <a class="external external-icon" href="http://irc.mozilla.org/">Mozilla's IRC network</a>.</p>
+
+<h2 id="Command_reference">Command reference</h2>
+
+<p>jpm supports the following commands:</p>
+
+<table class="fullwidth-table standard-table">
+ <tbody>
+ <tr>
+ <td style="width: 20%;"><a href="/en-US/Add-ons/SDK/Tools/jpm#jpm_init"><code>jpm init</code></a></td>
+ <td>Create a skeleton add-on as a starting point for your add-on.</td>
+ </tr>
+ <tr>
+ <td><a href="/en-US/Add-ons/SDK/Tools/jpm#jpm_run"><code>jpm run</code></a></td>
+ <td>Launch an instance of Firefox with your add-on installed.</td>
+ </tr>
+ <tr>
+ <td><a href="/en-US/Add-ons/SDK/Tools/jpm#jpm_test"><code>jpm test</code></a></td>
+ <td>Runs your add-on's unit tests.</td>
+ </tr>
+ <tr>
+ <td><a href="/en-US/Add-ons/SDK/Tools/jpm#jpm_xpi"><code>jpm xpi</code></a></td>
+ <td>Package your add-on as an <a href="/en-US/docs/XPI">XPI</a> file, which is the install file format for Firefox add-ons.</td>
+ </tr>
+ <tr>
+ <td><a href="/en-US/Add-ons/SDK/Tools/jpm#jpm_post"><code>jpm post</code></a></td>
+ <td>Package your add-on as an <a href="/en-US/docs/XPI">XPI</a> file, and then post it to some URL.</td>
+ </tr>
+ <tr>
+ <td><a href="/en-US/Add-ons/SDK/Tools/jpm#jpm_watchpost"><code>jpm watchpost</code></a></td>
+ <td>Package your add-on as an <a href="/en-US/docs/XPI">XPI</a> file whenever there is a file change and post that to some URL.</td>
+ </tr>
+ <tr>
+ <td><a href="/en-US/Add-ons/SDK/Tools/jpm#jpm_sign"><code>jpm sign</code></a></td>
+ <td>Package your add-on as an <a href="/en-US/docs/XPI">XPI</a> file, and then retrieve a new XPI signed by Mozilla.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h3 id="jpm_init">jpm init</h3>
+
+<p>This command initializes a new add-on from scratch.</p>
+
+<p>Create a new directory, change into it, and run <code>jpm init</code>.</p>
+
+<pre class="brush: bash">mkdir my-addon
+cd my-addon
+jpm init</pre>
+
+<p>You'll then be asked to supply some information about your add-on: this will be used to create your add-on's <a href="/en-US/Add-ons/SDK/Tools/package_json">package.json</a> file.</p>
+
+<ul>
+ <li><a href="/en-US/Add-ons/SDK/Tools/package_json#title">title</a></li>
+ <li><a href="/en-US/Add-ons/SDK/Tools/package_json#name">name</a>: this defaults to the name of the directory in which you are running <code>jpm init</code>. Unless an <a href="https://developer.mozilla.org/en-US/Add-ons/SDK/Tools/package_json#id"><code>id</code></a> field is present in package.json, jpm prepends "@" to <code>name</code> and use the result as the <a href="/en-US/Add-ons/Install_Manifests#id"><code>id</code> field in the add-on's install manifest</a>.</li>
+ <li><a href="/en-US/Add-ons/SDK/Tools/package_json#version">version</a></li>
+ <li><a href="/en-US/Add-ons/SDK/Tools/package_json#description">description</a></li>
+ <li><a href="/en-US/Add-ons/SDK/Tools/package_json#main">entry point</a> (which maps to "main" in package.json)</li>
+ <li><a href="/en-US/Add-ons/SDK/Tools/package_json#author">author</a></li>
+ <li><a href="/en-US/Add-ons/SDK/Tools/package_json#engines">engines</a> (supported applications)</li>
+ <li><a href="/en-US/Add-ons/SDK/Tools/package_json#license">license</a></li>
+</ul>
+
+<p>Most of these fields have a default, which is shown in brackets after the question. If you just press Enter, your add-on gets the default value.</p>
+
+<p>Once you've supplied a value or accepted the default for these properties, you'll be shown the complete contents of "package.json" and asked to accept it.</p>
+
+<p>Then jpm creates a skeleton add-on, as a starting point for your add-on development, with the following file structure:</p>
+
+<ul class="directory-tree">
+ <li>my-addon
+ <ul>
+ <li>index.js</li>
+ <li>package.json</li>
+ <li>test
+ <ul>
+ <li>test-index.js</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+</ul>
+
+<h3 id="jpm_run">jpm run</h3>
+
+<p>This command runs a new instance of Firefox with the add-on installed:</p>
+
+<pre class="brush: bash">jpm run</pre>
+
+<p><code>jpm run</code> accepts the following options:</p>
+
+<table class="fullwidth-table standard-table">
+ <tbody>
+ <tr>
+ <td style="width: 30%;"><code>-b --binary BINARY</code></td>
+ <td>
+ <p>Use the version of Firefox specified in BINARY. BINARY may be specified as a full path or as a path relative to the current directory.</p>
+
+ <pre class="brush: bash">
+jpm run -b /path/to/Firefox/Nightly</pre>
+ See <a href="/en-US/Add-ons/SDK/Tools/jpm#Selecting_a_browser_version">Selecting a browser version</a>.</td>
+ </tr>
+ <tr>
+ <td><code>--binary-args CMDARGS</code></td>
+ <td>
+ <p>Pass <a href="/en-US/docs/Mozilla/Command_Line_Options">extra arguments</a> to Firefox.</p>
+
+ <p>For example, to pass the <code>-jsconsole</code> argument to Firefox and launch the <a href="/en-US/docs/Tools/Browser_Console">Browser Console</a>, try the following:</p>
+
+ <pre class="brush: bash">
+jpm run --binary-args -jsconsole</pre>
+
+ <p>To pass multiple arguments, or arguments containing spaces, quote them:</p>
+
+ <pre class="brush: bash">
+jpm run --binary-args '-url mzl.la -jsconsole'</pre>
+ </td>
+ </tr>
+ <tr>
+ <td><code>--debug</code></td>
+ <td>Run the <a href="/en-US/Add-ons/Add-on_Debugger">Add-on Debugger</a> attached to the add-on.</td>
+ </tr>
+ <tr>
+ <td><code>-o --overload PATH</code></td>
+ <td>
+ <p>Rather than use the SDK modules built into Firefox, use the modules found at PATH. If <code>-o</code> is specified and PATH is omitted, jpm looks for the JETPACK_ROOT environment variable and use its value as the path.</p>
+
+ <p>See <a href="/en-US/Add-ons/SDK/Tools/jpm#Overloading_the_built-in_modules">Overloading the built-in modules</a> for more information.</p>
+ </td>
+ </tr>
+ <tr>
+ <td><code>-p --profile=<code> PROFILE</code></code></td>
+ <td>
+ <p>By default, jpm uses a clean temporary Firefox <a href="https://support.mozilla.org/en-US/kb/profiles-where-firefox-stores-user-data">profile</a> each time you call jpm run. Use the <code>--profile</code> option to instruct jpm to launch Firefox with an existing profile.</p>
+
+ <p>The PROFILE value may be a profile name or the path to the profile.</p>
+
+ <p>See <a href="#Using_profiles">Using profiles</a> for more information.</p>
+ </td>
+ </tr>
+ <tr>
+ <td><code>-v --verbose</code></td>
+ <td>Verbose operation.</td>
+ </tr>
+ <tr>
+ <td><code>--no-copy</code></td>
+ <td>
+ <div class="warning">Use with caution because <code>jpm run|test</code> changes many preferences, never use with your main profile.</div>
+
+ <div class="note">This only applies when <code>--profile</code> is used.</div>
+ Disables the copying of the profile used, which allows one to reuse a profile.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h3 id="jpm_test">jpm test</h3>
+
+<p>Use this command to run an add-on's unit tests. The command:</p>
+
+<ul>
+ <li>Looks for a directory called "test" within the current directory (or <code>--addon-dir</code>).</li>
+ <li>Opens every file in there whose name starts with "test-". Make note of the hyphen after "test" in the filename. <code>jpm test</code> include a file called "test-myCode.js", but will exclude files called "test_myCode.js" or "testMyCode.js")</li>
+ <li>call every function exported from that file whose name starts with "test".</li>
+</ul>
+
+<pre class="brush: bash">jpm test
+</pre>
+
+<p>See the <a href="/en-US/Add-ons/SDK/Tutorials/Unit_testing">tutorial on unit testing</a> and the <a href="/en-US/Add-ons/SDK/Low-Level_APIs/test_assert">reference documentation for the <code>assert</code> module</a> for more details on this.</p>
+
+<p><code>jpm test</code> accepts the following options:</p>
+
+<table class="fullwidth-table standard-table">
+ <tbody>
+ <tr>
+ <td><code>-b --binary BINARY</code></td>
+ <td>
+ <p>Use the version of Firefox specified in BINARY. BINARY may be specified as a full path or as a path relative to the current directory.</p>
+
+ <pre class="brush: bash">
+jpm test -b /path/to/Firefox/Nightly</pre>
+
+ <p>See <a href="/en-US/Add-ons/SDK/Tools/jpm#Selecting_a_browser_version">Selecting a browser version</a>.</p>
+ </td>
+ </tr>
+ <tr>
+ <td><code>--binary-args CMDARGS</code></td>
+ <td>
+ <p>Pass <a href="http://kb.mozillazine.org/Command_line_arguments">extra arguments</a> to Firefox.</p>
+
+ <p>For example, to pass the <code>-jsconsole</code> argument to Firefox, which will launch the <a href="/en-US/docs/Tools/Browser_Console">Browser Console</a>, try the following:</p>
+
+ <pre class="brush: bash">
+jpm test --binary-args -jsconsole</pre>
+
+ <p>To pass multiple arguments, or arguments containing spaces, quote them:</p>
+
+ <pre class="brush: bash">
+jpm test --binary-args '-url mzl.la -jsconsole'</pre>
+ </td>
+ </tr>
+ <tr>
+ <td><code>--debug</code></td>
+ <td>Run the <a href="/en-US/Add-ons/Add-on_Debugger">Add-on Debugger</a> attached to the add-on.</td>
+ </tr>
+ <tr>
+ <td style="width: 30%;"><code>-f --filter FILE[:TEST]</code></td>
+ <td>
+ <p>Only run tests whose filenames match FILE and optionally match TEST, both regexps.</p>
+
+ <pre class="brush: bash">
+jpm test --filter base64:btoa</pre>
+
+ <p>The above command only runs tests in files whose names contain "base64", and in those files only runs tests whose names contain "btoa".</p>
+ </td>
+ </tr>
+ <tr>
+ <td style="width: 30%;"><code>-o --overload PATH</code></td>
+ <td>
+ <p>Rather than use the SDK modules built into Firefox, use the modules found at PATH. If <code>-o</code> is specified and PATH is omitted, jpm will look for the JETPACK_ROOT environment variable and use its value as the path.</p>
+
+ <p>See <a href="/en-US/Add-ons/SDK/Tools/jpm#Overloading_the_built-in_modules">Overloading the built-in modules</a> for more information.</p>
+ </td>
+ </tr>
+ <tr>
+ <td style="width: 30%;"><code>-p --profile<code> PROFILE</code></code></td>
+ <td>
+ <p>By default, jpm uses a clean temporary Firefox <a href="https://support.mozilla.org/en-US/kb/profiles-where-firefox-stores-user-data">profile</a> each time you call jpm run. Use the <code>--profile</code> option to instruct jpm to launch Firefox with an existing profile.</p>
+
+ <p>The PROFILE value may be a profile name or the path to the profile.</p>
+
+ <p>See <a href="#Using_profiles">Using profiles</a> for more information.</p>
+ </td>
+ </tr>
+ <tr>
+ <td><code>--stop-on-error</code></td>
+ <td>
+ <p>By default, jpm test keeps running tests even after tests fail. Specify <code>--stop-on-error</code> to stop running tests after the first failure:</p>
+
+ <pre class="brush: bash">
+jpm test --stop-on-error</pre>
+ </td>
+ </tr>
+ <tr>
+ <td><code>--tbpl</code></td>
+ <td>Print test output in <a href="https://treeherder.mozilla.org/">Treeherder</a> format</td>
+ </tr>
+ <tr>
+ <td><code>--times NUMBER</code></td>
+ <td>
+ <p>Run tests NUMBER of times:</p>
+
+ <pre class="brush: bash">
+jpm test --times 2</pre>
+ </td>
+ </tr>
+ <tr>
+ <td><code>-v --verbose</code></td>
+ <td>Verbose operation.</td>
+ </tr>
+ <tr>
+ <td><code>--no-copy</code></td>
+ <td>
+ <div class="warning">Use with caution because <code>jpm run|test</code> changes many preferences, never use with your main profile.</div>
+
+ <div class="note">This only applies when <code>--profile</code> is used.</div>
+ Disables the copying of the profile used, which allows one to reuse a profile.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h3 id="jpm_xpi">jpm xpi</h3>
+
+<p>This command packages the add-on as an <a href="/en-US/docs/XPI">XPI</a> file, which is the install file format for Mozilla add-ons.</p>
+
+<pre class="brush: bash">jpm xpi</pre>
+
+<p>It looks for a file called <code>package.json</code> in the current directory (or <code>--addon-dir</code>) and creates the corresponding XPI file. It ignores any ZIPs or XPIs in the add-on's root, and any test files. It includes all other files. If you want to exclude extra files, see <a href="/en-US/Add-ons/SDK/Tools/jpmignore">the .jpmignore file</a>.</p>
+
+<p>Once you have built an XPI file, you can distribute your add-on by submitting it to <a href="https://addons.mozilla.org/">addons.mozilla.org</a>.</p>
+
+<p><code>jpm xpi</code> accepts the following option:</p>
+
+<table class="fullwidth-table standard-table">
+ <tbody>
+ <tr>
+ <td><code>--dest-dir</code></td>
+ <td>
+ <p>Optional destination directory for the generated XPI file. The current working directory is the default destination.</p>
+ </td>
+ </tr>
+ <tr>
+ <td><code>-v --verbose</code></td>
+ <td>
+ <p>Verbose operation:</p>
+
+ <pre class="brush: bash">
+jpm xpi -v</pre>
+ </td>
+ </tr>
+ </tbody>
+</table>
+
+<h3 id="jpm_post">jpm post</h3>
+
+<p>This command packages the add-on as an <a href="/en-US/docs/XPI">XPI</a> file then posts it to some URL.</p>
+
+<pre class="brush: bash">jpm post</pre>
+
+<p>It looks for a file called <code>package.json</code> in the current directory (or <code>--addon-dir</code>) and creates an XPI file with which to post to the <code>--post-url</code>.</p>
+
+<p><code>jpm post</code> accepts the following options:</p>
+
+<table class="fullwidth-table standard-table">
+ <tbody>
+ <tr>
+ <td><code>--post-url URL</code></td>
+ <td>
+ <p>The URL to post the extension to after creating an XPI.</p>
+
+ <pre class="brush: bash">
+jpm post --post-url http://localhost:8888/</pre>
+
+ <p>See <a href="https://www.npmjs.com/package/jpm#using-post-and-watchpost">Using Post and Watchpost</a> for more information.</p>
+ </td>
+ </tr>
+ <tr>
+ <td><code>-v --verbose</code></td>
+ <td>
+ <p>Verbose operation:</p>
+
+ <pre class="brush: bash">
+jpm post --post-url http://localhost:8888/ -v</pre>
+ </td>
+ </tr>
+ </tbody>
+</table>
+
+<h3 id="jpm_watchpost">jpm watchpost</h3>
+
+<p>This command packages the add-on as an <a href="/en-US/docs/XPI">XPI</a> file then posts it to some URL whenever a file in the current working directory changes.</p>
+
+<pre class="brush: bash">jpm watchpost</pre>
+
+<p>Creates an XPI whenever a file changes in the current working directory (or <code>--addon-dir</code>) and posts that to the <code>--post-url</code>.</p>
+
+<p><code>jpm watchpost</code> accepts the following options:</p>
+
+<table class="fullwidth-table standard-table">
+ <tbody>
+ <tr>
+ <td><code>--post-url URL</code></td>
+ <td>
+ <p>The URL to post the extension to after creating an XPI.</p>
+
+ <pre class="brush: bash">
+jpm watchpost --post-url http://localhost:8888/</pre>
+
+ <p>See <a href="https://www.npmjs.com/package/jpm#using-post-and-watchpost">Using Post and Watchpost</a> for more information.</p>
+ </td>
+ </tr>
+ <tr>
+ <td><code>-v --verbose</code></td>
+ <td>
+ <p>Verbose operation:</p>
+
+ <pre class="brush: bash">
+jpm watchpost --post-url http://localhost:8888/ -v</pre>
+ </td>
+ </tr>
+ </tbody>
+</table>
+
+<h3 id="jpm_sign">jpm sign</h3>
+
+<div class="note">
+<p>This feature is only supported from jpm 1.0.4 onwards.</p>
+</div>
+
+<p>This command retrieves a new <a href="/en-US/docs/XPI">XPI</a> for your add-on signed by Mozilla. This allows you to <a href="#Supporting_updates_for_self-hosted_add-ons">self-host your add-on</a> so that users can install it without error when <a href="https://wiki.mozilla.org/Add-ons/Extension_Signing">signed add-ons are required</a>.</p>
+
+<p>You can sign an XPI you've already generated by passing the XPI file in the <code>--xpi</code> argument, like this:</p>
+
+<pre class="bz_comment_text" id="comment_text_2">jpm sign --api-key ${JWT_ISSUER} --api-secret ${JWT_SECRET} --xpi &lt;xpi file&gt;</pre>
+
+<p>Alternatively, you can omit the <code>--xpi</code> argument, in which case <code>jpm sign</code> will generate an XPI from the current directory (or <code>--addon-dir</code>).</p>
+
+<pre class="brush: bash">jpm sign --api-key ${JWT_ISSUER} --api-secret ${JWT_SECRET}</pre>
+
+<p>This submits an <a href="/en-US/docs/XPI">XPI</a> it to the <a href="https://addons.mozilla.org/">addons.mozilla.org</a> <a href="https://olympia.readthedocs.org/en/latest/topics/api/signing.html">signing API</a>, then downloads a signed XPI to the working directory if it passes validation.</p>
+
+<p>To get values for <code>--api-key</code> and <code>--api-secret</code>, you will need to <a href="https://addons.mozilla.org/en-US/developers/addon/api/key/">create API credentials on addons.mozilla.org</a>. On the AMO key management page, these values are labeled "JWT_Issuer" and "JWT_Secret".</p>
+
+<p>Here are some possible outcomes of running the <code>sign</code> command:</p>
+
+<ul>
+ <li>Your add-on passed validation, was signed by Mozilla, and a new signed <a href="/en-US/docs/XPI">XPI</a> was downloaded to your working directory.</li>
+ <li>Your add-on failed validation, was not signed, and you got a link to a detailed report. After fixing the validation errors, you can run the command again.</li>
+ <li>You add-on passed validation but it could not be automatically signed because your add-on is <a href="/en-US/Add-ons/Distribution">listed</a>. Listed add-ons will require a manual review before they can be signed.</li>
+ <li>Your add-on at this exact version number already exists, so it was not signed. Increment the version number in your <a href="/en-US/Add-ons/SDK/Tools/package_json">package.json</a> file and run the command again.</li>
+</ul>
+
+<p>Under the hood, <code>jpm sign</code> creates an unlisted add-on inside <a href="https://addons.mozilla.org/">addons.mozilla.org</a>, which means you must distribute the XPI file yourself for your users to install it. If you need to create a listed add-on, just <a href="https://addons.mozilla.org/en-US/developers/addon/submit/2">submit it directly to addons.mozilla.org</a> where it is signed automatically. See the <a href="/en-US/docs/Extension_Versioning%2C_Update_and_Compatibility#Debugging_and_solving_problems">debugging</a> section if you are experiencing difficulty installing a signed add-on.</p>
+
+<p><code>jpm sign</code> accepts the following options:</p>
+
+<table class="fullwidth-table standard-table">
+ <tbody>
+ <tr>
+ <td><code>--api-key=JWT_ISSUER</code></td>
+ <td>
+ <p>API access key (string) generated on the <a href="https://addons.mozilla.org/en-US/developers/addon/api/key/">addons.mozilla.org key management page</a>.</p>
+
+ <p>On the AMO key management page, this value is labeled "JWT Issuer".</p>
+ </td>
+ </tr>
+ <tr>
+ <td><code>--api-secret=JWT_SECRET</code></td>
+ <td>
+ <p>API access secret (string) generated on the <a href="https://addons.mozilla.org/en-US/developers/addon/api/key/">addons.mozilla.org key management page</a>. This value should be guarded with care and never checked into version control. If your secret is compromised, another developer could upload add-ons to your account. You should revoke and regenerate compromised API credentials immediately.</p>
+
+ <p>On the AMO key management page, this value is labeled "JWT Secret".</p>
+ </td>
+ </tr>
+ <tr>
+ <td><code>--api-url-prefix=http://.../api</code></td>
+ <td>
+ <p>An optional API URL prefix in case you'd like to use a pre-production signing API.</p>
+
+ <p>For example, you could pass <code>https://addons-dev.allizom.org/api/v3</code> to use the dev instance of <a href="https://addons.mozilla.org/">addons.mozilla.org</a>.</p>
+ </td>
+ </tr>
+ <tr>
+ <td><code>--xpi=/path/to/file.xpi</code></td>
+ <td>
+ <p>An <a href="/en-US/docs/XPI">XPI</a> file to sign. When no file is specified, a new XPI will be generated from the current directory (or <code>--addon-dir</code>).</p>
+ </td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Techniques">Techniques</h2>
+
+<h3 id="Selecting_a_browser_version">Selecting a browser version</h3>
+
+<p>By default, <code>jpm run</code> and <code>jpm test</code> runs the release version of Firefox. You can instruct jpm to use a different version in one of two ways:</p>
+
+<ul>
+ <li>
+ <p>You can use the <code>-b</code> or <code>--binary</code> option to instruct jpm to run a different version of Firefox. You can supply a path to a specific binary:</p>
+
+ <pre class="brush: bash">jpm run -b /path/to/Firefox/Nightly</pre>
+
+ <p>As a shorthand for this, you can pass "nightly", "firefoxdeveloperedition", "aurora", "beta", or "firefox" and jpm will look in the default location for these Firefox versions [Note: As of Firefox 48, the shorthands "firefox" and "beta" will resolve to versions of Firefox which will not run your add-on. This is due to Firefox 48, and later, not having the option to run add-ons which are <a href="/en-US/docs/Mozilla/Add-ons/Distribution">unsigned</a>.]:</p>
+
+ <pre class="brush: bash">jpm run -b nightly</pre>
+ </li>
+ <li>
+ <p>You can set the <code>JPM_FIREFOX_BINARY</code> environment variable with the path to the version of Firefox you want to run. When you invoke <code>jpm run</code> or <code>jpm test</code> without the <code>-b</code> option, jpm first checks <code>JPM_FIREFOX_BINARY</code>, and use this as the path if it is set.</p>
+ </li>
+</ul>
+
+<h3 id="Using_.jpmignore_to_ignore_files">Using <code>.jpmignore</code> to ignore files</h3>
+
+<p>Using <code>.jpmignore</code> is similar to using <code>.gitignore</code> with <code>git</code>, <code>.hgignore</code> with Mercurial, or <code>.npmignore</code> with <code>npm</code>. By using this file, you can let <code>jpm</code> know which files you would like it to ignore when building a <code>.xpi</code> file with <code>jpm xpi</code>.</p>
+
+<p>Here is an example:</p>
+
+<pre class="brush: bash"># Ignore .DS_Store files created by mac
+.DS_Store
+
+# Ignore any zip or xpi files
+*.zip
+*.xpi
+</pre>
+
+<p>A <code>.jpmignore</code> file with the above contents would ignore all zip files and <code>.DS_Store</code> files from the xpi generated by <code>jpm xpi</code>.</p>
+
+<h3 id="Using_profiles">Using profiles</h3>
+
+<p>By default, <code>jpm run</code> uses a new profile each time it is executed. This means that any profile-specific data entered from one run of <code>jpm</code> is not, by default, available in the next run.</p>
+
+<p>This includes, for example, any extra add-ons you installed, or your history, or any data stored using the <a href="/en-US/Add-ons/SDK/High-Level_APIs/simple-storage">simple-storage</a> API.</p>
+
+<p>To make <code>jpm</code> use a specific profile, pass the <code>--profile</code> option, specifying the name of the profile you wish to use, or the path to the profile.</p>
+
+<pre class="brush: bash">jpm run --profile boogaloo
+</pre>
+
+<pre class="brush: bash">jpm run --profile path/to/boogaloo</pre>
+
+<p>Use the <a href="https://support.mozilla.org/en-US/kb/profile-manager-create-and-remove-firefox-profiles">profile manager</a> to create a new profile if needed.</p>
+
+<p>If you need changes to the profile to persist, add the <code>--no-copy</code> argument. However beware that jpm might also apply changes to the profile, setting some preferences that will make it unusable for daily usage.</p>
+
+<h3 id="Developing_without_browser_restarts">Developing without browser restarts</h3>
+
+<p>Because <code>jpm run</code> restarts the browser each time you invoke it, it can be a little cumbersome if you are making very frequent changes to an add-on. An alternative development model is to use the <a href="https://addons.mozilla.org/en-US/firefox/addon/autoinstaller/" rel="noreferrer">Extension Auto-Installer</a> add-on: this listens for new XPI files on a specified port and installs them automatically. That way you can test new changes without needing to restart the browser:</p>
+
+<ul>
+ <li>make a change to your add-on</li>
+ <li>run <code>jpm post --post-url http://localhost:8888/</code>, to make an XPI and post it.</li>
+</ul>
+
+<p>You could even automate this workflow with a simple script. For example:</p>
+
+<pre class="brush: bash">jpm watchpost --post-url http://localhost:8888/
+</pre>
+
+<p>Note that the logging level defined for the console is different when you use this method, compared to the logging level used when an add-on is run using <code>jpm run</code>. This means that if you want to see the output from <a href="/en-US/Add-ons/SDK/Tutorials/Logging" rel="noreferrer"><code>console.log()</code></a> messages, you have to tweak a setting. See the documentation on <a href="/en-US/Add-ons/SDK/Tools/console#Logging_Levels" rel="noreferrer">logging levels</a> for the details on this.</p>
+
+<h3 id="Overloading_the_built-in_modules">Overloading the built-in modules</h3>
+
+<p>The SDK modules you use to implement your add-on are built into Firefox. When you run or package an add-on using <code>jpm run</code> or <code>jpm xpi</code>, the add-on uses the versions of the modules in the version of Firefox that hosts it.</p>
+
+<p>As an add-on developer, this is usually what you want. But if you're developing the SDK modules themselves, of course, it isn't. In this case you need to:</p>
+
+<ul>
+ <li>Get a local copy of the SDK modules that you want: this usually means checking out the SDK from its <a href="https://github.com/mozilla/addon-sdk" rel="noreferrer">GitHub repo</a></li>
+ <li>Set the <code>JETPACK_ROOT</code> environment variable to your local copy</li>
+ <li>Pass the <code>-o</code> option to <code>jpm run</code> or <code>jpm xpi</code>:</li>
+</ul>
+
+<pre class="brush:bash">jpm run -o
+</pre>
+
+<p>This instructs jpm to use the local copies of the SDK modules, not the ones in Firefox. If you do not want to set the <code>JETPACK_ROOT</code> environment variable, you can pass the location of your copy of the SDK modules along with <code>-o</code>:</p>
+
+<pre class="brush:bash">jpm run -o "/path/to/addon-sdk/"</pre>
+
+<p>The path must be an absolute path and point to the SDK's root (not <code>addon-sdk/sdk</code> or <code>addon-sdk/sdk/lib</code>, for instance).</p>
+
+<h3 id="Supporting_updates_for_self-hosted_add-ons">Supporting updates for self-hosted add-ons</h3>
+
+<div class="note">
+<p>This feature is only supported from jpm 1.0.3 onwards.</p>
+</div>
+
+<p>When you make updates to your add-on to add features or fix bugs, you'll want any previously installed versions of the add-on to update themselves to the new version.</p>
+
+<p>If you list your add-on on <a href="https://addons.mozilla.org/">addons.mozilla.org</a>, then all you have to do here is submit the new version; add-ons default to checking <a href="https://addons.mozilla.org/">addons.mozilla.org</a> for new versions of themselves. You can stop reading this section.</p>
+
+<p>If you do not list your add-on on <a href="https://addons.mozilla.org/">addons.mozilla.org</a>, you need to generate a Mozilla-signed XPI and tell Firefox where it can find new versions of your add-on. The way this works is:</p>
+
+<ul>
+ <li>you run <a href="/en-US/Add-ons/SDK/Tools/jpm#jpm_sign">jpm sign</a> anytime you need to create a new version</li>
+ <li>you host the signed add-on XPI and update it when you need to</li>
+ <li>you host an "update manifest", which, among other things, contains a URL pointing to the XPI</li>
+ <li>your add-on tells Firefox where it can find the update manifest</li>
+</ul>
+
+<p>To do this, include two extra keys in package.json:</p>
+
+<ul>
+ <li><code><a href="/en-US/Add-ons/SDK/Tools/package_json#updateURL">updateURL</a></code>: This URL is included in the <a href="/en-US/docs/Mozilla/Add-ons/Install_Manifests">install manifest</a> of the XPI file that <code>jpm xpi</code> builds. It points to your update manifest. The <code>updateURL</code> value <em>may</em> be HTTPS. If it is not, then you'll also need to sign the update manifest, and then include the public key using the <code><a href="/en-US/Add-ons/SDK/Tools/package_json#updateKey">updateKey</a></code> field in package.json. See <a href="/en-US/docs/Extension_Versioning%2C_Update_and_Compatibility#Securing_Updates">Securing updates</a> for more on this.</li>
+ <li><code><a href="/en-US/Add-ons/SDK/Tools/package_json#updateLink">updateLink</a></code>: This URL is included in the update manifest file. It points to the XPI, and <em>must</em> be an HTTPS URL.</li>
+</ul>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/11847/addons-update.svg" title="[https://mdn.mozillademos.org]"></p>
+
+<p>If you include <code>updateURL</code> and <code>updateLink</code> (and also <code>updateKey</code> in case <code>updateURL</code> is not HTTPS), then <code>jpm xpi</code> will:</p>
+
+<ul>
+ <li>Embed the value you supplied for <code>updateURL</code> in the XPI it generates.</li>
+ <li>Generate an update manifest alongside the XPI, and embed the value you supplied for <code>updateLink</code> in the manifest.</li>
+</ul>
+
+<p>You then host the update manifest at <code>updateURL</code>, and host new versions of the XPI at <code>updateLink</code>.</p>
+
+<p>For some more details on this, see <a href="/en-US/docs/Extension_Versioning,_Update_and_Compatibility#Automatic_Add-on_Update_Checking">Automatic Add-on Update Checking</a>.</p>
diff --git a/files/pl/archive/add-ons/api_przechowywania_sesji/index.html b/files/pl/archive/add-ons/api_przechowywania_sesji/index.html
new file mode 100644
index 0000000000..ec38997ac2
--- /dev/null
+++ b/files/pl/archive/add-ons/api_przechowywania_sesji/index.html
@@ -0,0 +1,85 @@
+---
+title: API przechowywania sesji
+slug: Archive/Add-ons/API_przechowywania_sesji
+tags:
+ - Dodatki
+ - Rozszerzenia
+ - Wszystkie_kategorie
+translation_of: Archive/Add-ons/Session_store_API
+---
+<p>
+</p><p><a href="pl/Firefox_2">Firefox 2</a> wprowadza mechanizm przechowywania sesji który umożliwia <a href="pl/Rozszerzenia">rozszerzeniom</a> łatwo zapisywać i przywracać dane pomiędzy sesjami Firefoksa. Istnieje też proste API, które umożliwia rozszerzeniom łatwy dostęp do zapisanych sesji.
+</p><p>Przykładem sytuacji, w której wsparcie dla tej funkcji może być kluczowe: Firefox 2 pozwala użytkownikom przywrócić uprzednio zamknięte karty. W celu prawidłowego przechowania stanu Twojego rozszerzenia kiedy karta zostaje przywrócona, musi ono skorzystać z metody API przechowywania sesji <code>setTabValue()</code>, aby zachować wszelkie dane, które potem będzie należało przywrócić, a następnie, podczas przywracania karty, wywołać <code>getTabValue()</code>, aby odzyskać uprzednio zachowane ustawienia.
+</p><p>API przechowywania sesji jest zaimplementowane przy użyciu interfejsu <code><a href="pl/NsISessionStore">nsISessionStore</a></code>.
+</p>
+<h2 id="Sk.C4.85d_wiedzie.C4.87_kiedy_przywraca.C4.87.3F">Skąd wiedzieć kiedy przywracać?</h2>
+<p>Za każdym razem kiedy Firefox ma przywrócić uprzednio zamkniętą kartę, zostaje wysłane zdarzenie <code>SSTabRestoring</code>. Jeżeli chcesz, aby Twoje rozszerzenie mogło przywracać dane podczas przywracania karty, wystarczy, że ustawisz nasłuch (listener) na to zdarzenie:
+</p>
+<pre>function myExtensionHandleRestore(aEvent) {
+ Components.classes["@mozilla.org/consoleservice;1"].
+ getService(Components.interfaces.nsIConsoleService).
+ logStringMessage("przywracanie kart");
+};
+
+document.addEventListener("SSTabRestoring", myExtensionHandleRestore, false);
+</pre>
+<p>Po prostu zastąp treść funkcji <code>myExtensionHandleRestore()</code> swoim własnym kodem. W powyższym przykładzie został użyty serwis (service) <code><a href="pl/NsIConsoleService">nsIConsoleService</a></code>, do wyświetlenia wiadomość w <a href="pl/Konsola_b%c5%82%c4%99d%c3%b3w">konsoli</a>.
+</p><p>Zdarzenie jest wysyłane tuż przed przywróceniem karty. Zdarzenie typu <code>SSTabRestored</code> jest wysyłane po przywróceniu ostatniej karty.
+</p>
+<h2 id="Proces_przywracania_sesji">Proces przywracania sesji</h2>
+<p>Dokładna sekwencja zdarzeń, która jest wykonywana podczas przywracania sesji wygląda tak:
+</p>
+<ol><li> Stan sesji ma zostać przywrócony. Może się to zdarzyć podczas startu przeglądarki, albo w wyniku akcji Przywróć Zamkniętą Kartę, ponieważ zamknięte karty są przywracane jako sesje pojedyńczych kart.
+</li><li> Nowe okna są otwierane zgodnie z kolejnością (jedno na każde okno, które zostało zachowane), następnie przywracane są ciastka oraz ostatnio zamknięte karty.
+</li></ol>
+<p>Po tym, dla każdej przywracanej karty, zostają podjęte następujące kroki:
+</p>
+<ol><li> Albo wykorzystywana jest istniejąca karta, albo tworzona nowa. W drugim przypadku, wysyłane jest zdarzenie <code>TabOpen</code>.
+</li><li> Przywracane są przechowywane stałe atrybuty XUL (ang. persistent attributes) (te zapisane poprzez odwołania do <code><a href="pl/NsISessionStore#persistTabAttribute.28.29">persistTabAttribute()</a></code>) oraz uprawnienia.
+</li><li> Wysyłane jest zdarzenie <code>SSTabRestoring</code>.
+</li><li> Karta zaczyna pobierać URL, który ma wyświetlić.
+</li><li> Po zakończeniu ładowania strony, przywracane są stany pól tekstowych i przewijania.
+</li><li> Na końcu, wysyłane jest zdarzenie <code>SSTabRestored</code>.
+</li></ol>
+<p>Jeżeli chcesz ustawić uprawnienia lub w inny sposób zmieniać przywracaną kartę przed załadowaniem strony, powinieneś obserwować <code>SSTabRestoring</code>. Jeżeli chcesz zrobić coś po załadowaniu strony, należy obserwować <code>SSTabRestored</code>.
+</p><p>Oba zdarzenia są zawsze wysyłane dla każdej, przywracanej, karty. Możesz określić, która karta jest przywracana przez sprawdzenie pola <code>originalTarget</code> z obiektu zdarzenia.
+</p><p>Właściwie nie istnieje metoda na określenie kiedy ostatnia karta została przywrócona, chyba, że określisz ile kart ma zostać przywróconych, a następnie policzysz zdarzenia <code>SSTabRestored</code>.
+</p>
+<h2 id="Wykorzystanie_API_przechowywania_sesji">Wykorzystanie API przechowywania sesji</h2>
+<p>Tutaj opisujemy kilka prostych przykładów wykorzystania API przechowywania sesji.
+</p>
+<h3 id="Zachowywanie_warto.C5.9Bci_dla_karty">Zachowywanie wartości dla karty</h3>
+<p>Poniższy kod dołączy do karty parę klucz/wartość. Po przywróceniu karty, ta para będzie z nią powiązana.
+</p>
+<pre class="eval"> var ss = Components.classes["@mozilla.org/browser/sessionstore;1"].
+ getService(Components.interfaces.nsISessionStore);
+ var currentTab = getBrowser().selectedTab;
+ var dataToAttach = "Chcę to przyłączyć";
+ ss.setTabValue(currentTab, "key-name-here", dataToAttach);
+</pre>
+<p>Ten kod ustawia wartość klucza "key-name-here" na &lt;var&gt;dataToAttach&lt;/var&gt;. Możesz tu użyć dowolnego obiektu JavaScript jako danych.
+</p>
+<h3 id="Pobieranie_zachowanej_warto.C5.9Bci">Pobieranie zachowanej wartości</h3>
+<p>W dowolnym momencie możesz pobrać wartość powiązaną z kartą (niezależnie czy karta jest w takcie przywracania czy nie), używając takiego kodu:
+</p>
+<pre class="eval"> var ss = Components.classes["@mozilla.org/browser/sessionstore;1"].
+ getService(Components.interfaces.nsISessionStore);
+ var currentTab = getBrowser().selectedTab;
+ var retrievedData = ss.getTabValue(currentTab, "key-name-here");
+</pre>
+<p>Po wykonaniu tego kodu, zmienna &lt;var&gt;retrivedData&lt;/var&gt; zawiera zachowaną wartość dla klucza "key-name-here". &lt;var&gt;retrievedData&lt;/var&gt; pozostanie jako undefined jeśli nie została zachowana żadna wartość dla tego klucza.
+</p>
+<h3 id="Usuwanie_warto.C5.9Bci_powi.C4.85zanej_z_kart.C4.85">Usuwanie wartości powiązanej z kartą</h3>
+<p>Aby usunąć wartość z karty, możesz skorzystać z poniższego kodu:
+</p>
+<pre class="eval"> var ss = Components.classes["@mozilla.org/browser/sessionstore;1"].
+ getService(Components.interfaces.nsISessionStore);
+ var currentTab = getBrowser().selectedTab;
+ ss.deleteTabValue(currentTab, "key-name-here");
+</pre>
+<h3 id="Uwagi">Uwagi</h3>
+<p>Funkcje zachowywania i przywracania dla okien działają tak samo jak te dla kart (z uwzględnieniem zmian w nazwach).
+</p>
+<h2 id="Zobacz_te.C5.BC">Zobacz też</h2>
+<p><a href="pl/NsISessionStore">nsISessionStore</a>
+</p>{{ languages( { "es": "es/API_de_restauraci\u00f3n_de_sesi\u00f3n", "fr": "fr/API_de_restauration_de_session", "ja": "ja/Session_store_API", "en": "en/Session_store_API" } ) }}
diff --git a/files/pl/archive/add-ons/index.html b/files/pl/archive/add-ons/index.html
new file mode 100644
index 0000000000..caac45ae4c
--- /dev/null
+++ b/files/pl/archive/add-ons/index.html
@@ -0,0 +1,8 @@
+---
+title: Add-ons
+slug: Archive/Add-ons
+translation_of: Archive/Add-ons
+---
+<p>In progress. Archived add-ons documentation.</p>
+
+<p>{{SubpagesWithSummaries}}</p>
diff --git a/files/pl/archive/add-ons/wsparcie_dla_podpowiedzi_wyszukiwania_w_wyszukiwarkach/index.html b/files/pl/archive/add-ons/wsparcie_dla_podpowiedzi_wyszukiwania_w_wyszukiwarkach/index.html
new file mode 100644
index 0000000000..abea49f93b
--- /dev/null
+++ b/files/pl/archive/add-ons/wsparcie_dla_podpowiedzi_wyszukiwania_w_wyszukiwarkach/index.html
@@ -0,0 +1,58 @@
+---
+title: Wsparcie dla podpowiedzi wyszukiwania w wyszukiwarkach
+slug: Archive/Add-ons/Wsparcie_dla_podpowiedzi_wyszukiwania_w_wyszukiwarkach
+tags:
+ - Dodatki
+ - Wszystkie_kategorie
+ - Wtyczki_wyszukiwarek
+translation_of: Archive/Add-ons/Supporting_search_suggestions_in_search_plugins
+---
+<p>
+</p><p>MozSearch wspiera podpowiedzi wyszukiwania; gdy użytkownik wprowadza dane w panelu wyszukiwania, <a href="pl/Firefox_2">Firefox 2</a> przesyła zapytanie do adresu URL określonego przez wtyczkę wyszukiwarki, aby dostarczyć dynamiczne podpowiedzi wyszukiwania.
+</p><p>Gdy lista zostanie dostarczona, może ona być wyświetlona w wyskakującym okienku (popup), które pojawia się pod panelem wyszukiwania i pozwala użytkownikowi wybrać jeden z sugerowanych wyników. Jeśli użytkownik będzie kontynuował wpisywanie, zażądany zostanie nowy zestaw podpowiedzi z silnika wyszukiwarki i zastąpi on obecnie wyświetlaną listę.
+</p><p>Wtyczki wyszukiwania Yahoo i Google dołączone z Firefoksem 2 obsługują podpowiedzi wyszukiwania.
+</p>
+<h2 id="Implementowanie_obs.C5.82ugi_podpowiedzi_we_wtyczkach_wyszukiwarek" name="Implementowanie_obs.C5.82ugi_podpowiedzi_we_wtyczkach_wyszukiwarek">Implementowanie obsługi podpowiedzi we wtyczkach wyszukiwarek</h2>
+<p>Aby obsługiwać podpowiedzi wyszukiwania, wtyczka musi posiadać zdefiniowany dodatkowy element <code>&lt;Url&gt;</code> wraz z atrybutem <code>type</code> ustawionym na <code>"application/x-suggestions+json"</code> (oznacza to, że wtyczka wyszukiwarki obsługująca podpowiedzi będzie mieć dwa elementy <code>&lt;Url&gt;</code>, z których jeden jest głównym adresem URL typu <code>text/html</code> i odpowiada za wyszukiwarkę).
+</p><p>Na przykład, wtyczka wyszukiwarki Yahoo posiada taki wpis <code>&lt;Url&gt;</code>:
+</p>
+<pre>&lt;Url type="application/x-suggestions+json" template="http://ff.search.yahoo.com/gossip?output=fxjson&amp;command={searchTerms}"/&gt;
+</pre>
+<p>Jeśli użytkownik wprowadzi "fir" w panelu wyszukiwania, po czym się zatrzyma, Firefox umieści "fir" w miejsce <code>{searchTerms}</code> i wyśle zapytanie do takiego adresu URL:
+</p>
+<pre>&lt;Url type="application/x-suggestions+json" template="http://ff.search.yahoo.com/gossip?output=fxjson&amp;command=fir"/&gt;
+</pre>
+<p>Wyniki są używane do stworzenia okienka z listą podpowiedzi.
+</p><p>Zobacz <a href="pl/Tworzenie_wtyczek_MozSearch">Tworzenie wtyczek MozSearch</a>, aby dowiedzieć się więcej o tym, jak zaimplementować wtyczkę wyszukiwarki.
+</p>
+<h2 id="Implementowanie_obs.C5.82ugi_podpowiedzi_na_serwerze" name="Implementowanie_obs.C5.82ugi_podpowiedzi_na_serwerze">Implementowanie obsługi podpowiedzi na serwerze</h2>
+<p>Większość z obsługi podpowiedzi wyszukiwania jest obecnie implementowane po stronie serwera. Jeśli jesteś projektantem strony internetowej i chcesz wspierać podpowiedzi wyszukiwania, musisz zaimplementować obsługę zwracania podpowiedzi w <a class="external" href="http://www.json.org/">Notacji Obiektu JavaScript</a> (JavaScript Object Notation - JSON).
+</p><p>Gdy przeglądarka chce otrzymać możliwe wyniki dla szukanego wyrażenia, wysyła ona żądanie HTTP GET do adresu URL określonego w elemencie <code>&lt;Url&gt;</code>.
+</p><p>Wtedy Twój serwer powinien wybrać podpowiedzi, które jego zdaniem pasują do określonych warunków wyszukiwania i stworzyć JSON, który składa się z co najmniej dwóch i co najwyżej z czterech elementów:
+</p>
+<dl><dt> <b>łańcuch zapytania</b>
+</dt><dd> Pierwszy element w JSON jest oryginalnym łańcuchem znaków zapytania. Pozwala to Firefoksowi zweryfikować czy podpowiedzi odpowiadają obecnym warunkom wyszukiwania.
+</dd></dl>
+<dl><dt> <b>lista dopełnienia</b>
+</dt><dd> Tablica sugerowanych warunków wyszukiwania. Tablica powinna być ograniczona nawiasami kwadratowymi. Na przykład: &lt;tt&gt;{{ mediawiki.external('\"warunek 1\", \"warunek 2\", \"warunek 3\", \"warunek 4\"') }}&lt;/tt&gt;
+</dd></dl>
+<dl><dt> <b>opisy</b>
+</dt><dd> Ten opcjonalny element jest tablicą, składającą się z opisów dla każdej podpowiedzi określonej w elemencie <i>lista dopełnienia</i>. Mogą to być dodatkowe informacje, które silnik wyszukiwarki może zwrócić do wyświetlenia przez przeglądarkę, jak na przykład ilość wyników dostępnych dla tego wyszukiwania.
+</dd></dl>
+<div class="note">Opisy nie są obsługiwane w Firefoksie 2 i w przypadku ich zdefiniowania są one ignorowane.</div>
+<dl><dt> <b>adresy URL zapytania</b>
+</dt><dd> Ten opcjonalny element jest tablicą alternatywnych adresów URL dla każdej podpowiedzi w elemencie <i>lista dopełnienia</i>. Na przykład, jeśli chcesz zaproponować mapę odnośników zamiast strony z wynikami wyszukiwania dla podanej podpowiedzi, możesz w tej tablicy zwrócić adres URL do mapy.
+</dd></dl>
+<dl><dd> Jeśli nie określisz adresu URL zapytania, użyte zostanie domyślne zapytanie oparte na wyszukiwarce opisanej przez element <code>&lt;Url&gt;</code> w opisie XML wtyczki wyszukiwania.
+</dd></dl>
+<div class="note">Element "adresy URL zapytania" nie jest obsługiwany w Firefoksie 2 i jest ignorowany.</div>
+<p>Na przykład, jeśli wyrażeniem wyszukiwania jest "fir" i nie zwracasz opisów i alternatywnych adresów URL zapytania, możesz zwrócić następujący JSON:
+</p>
+<pre class="eval">["fir", ["firefox", "first choice", "mozilla firefox"]]
+</pre>
+<p>Zauważ, że w tym przykładzie określony jest tylko łańcuch zapytania i lista dopełnienia, z pominięciem elementów opcjonalnych.
+</p><p>Twoja lista dopełnienia może zawierać tyle wiele podpowiedzi, ile tylko chcesz, jednak powinna ona być łatwa w obsłudze, zwłaszcza że będzie ona dynamicznie uaktualniana podczas wpisywania przez użytkownika słów do wyszukania. Ponadto metoda, której będziesz używał do wyboru podpowiedzi, zależy wyłącznie od Ciebie.
+</p>
+<div class="noinclude">
+</div>
+{{ languages( { "ca": "ca/Implementaci\u00f3_de_suggeriments_en_els_connectors_de_cerca", "en": "en/Supporting_search_suggestions_in_search_plugins", "es": "es/Permitir_sugerencias_en_los_plugins_de_b\u00fasqueda", "fr": "fr/Gestion_de_suggestions_dans_les_plugins_de_recherche", "it": "it/Supportare_i_suggerimenti_nei_plugin_di_ricerca", "ja": "ja/Supporting_search_suggestions_in_search_plugins", "zh-tw": "zh_tw/\u8b93\u641c\u5c0b\u6a21\u7d44\u652f\u63f4\u641c\u5c0b\u5efa\u8b70" } ) }}