diff options
author | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:42:17 -0500 |
---|---|---|
committer | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:42:17 -0500 |
commit | da78a9e329e272dedb2400b79a3bdeebff387d47 (patch) | |
tree | e6ef8aa7c43556f55ddfe031a01cf0a8fa271bfe /files/it/mozilla | |
parent | 1109132f09d75da9a28b649c7677bb6ce07c40c0 (diff) | |
download | translated-content-da78a9e329e272dedb2400b79a3bdeebff387d47.tar.gz translated-content-da78a9e329e272dedb2400b79a3bdeebff387d47.tar.bz2 translated-content-da78a9e329e272dedb2400b79a3bdeebff387d47.zip |
initial commit
Diffstat (limited to 'files/it/mozilla')
63 files changed, 7543 insertions, 0 deletions
diff --git a/files/it/mozilla/add-ons/index.html b/files/it/mozilla/add-ons/index.html new file mode 100644 index 0000000000..a9545252da --- /dev/null +++ b/files/it/mozilla/add-ons/index.html @@ -0,0 +1,93 @@ +--- +title: Componenti aggiuntivi +slug: Mozilla/Add-ons +tags: + - Add-ons + - TopicStub +translation_of: Mozilla/Add-ons +--- +<div>{{AddonSidebar}}</div> + +<div class="summary">Modifica ed espandi le applicazioni Mozilla</div> + +<p><span class="seoSummary">I componenti aggiuntivi arricchiscono di nuove funzionalità le applicazioni basate su <a href="/it/docs/Gecko">Gecko</a> come Firefox, SeaMonkey e Thunderbird.</span><strong> </strong>Esistono due diversi tipi di componenti aggiuntivi: le <a href="#Estensioni">estensioni</a> che aggiungono nuove funzionalità all'applicazione, mentre i <a href="#Temi">temi</a> modificano l'interfaccia utente.</p> + +<p>Sia le estensioni che i temi vengono raccolti in un repository gestito da Mozilla su <a href="https://addons.mozilla.org/">addons.mozilla.org</a>, noto anche come AMO. Quando uno sviluppatore sceglie di <a href="/en-US/Add-ons/Submitting_an_add-on_to_AMO">caricare un componente aggiuntivo su AMO</a>, esso viene sottoposto a una revisione e, se la supera, pubblicato sul sito per essere scaricato dagli utenti. Sottoporre i propri componenti aggiuntivi ad AMO non è obbligatorio, tuttavia costituisce la garanzia per gli utenti che il componente sia stato revisionato e offre agli sviluppatori visibilità su una piattaforma riconosciuta come fonte di applicazioni utili.</p> + +<p>I componenti aggiuntivi possono alterare in maniera significativa il funzionamento dell'applicazione che li ospita. Mozilla ha quindi sviluppato una <a href="/en-US/docs/Mozilla/Add-ons/Add-on_guidelines">serie di linee guida</a> per assicurare che ogni componente offra all'utente un'esperienza ottimale. Queste linee guida sono valide per tutti i tipi di componente aggiuntivo, che siano ospitati sul server di <a href="https://addons.mozilla.org/">addons.mozilla.org</a> o meno.</p> + +<hr> +<h2 id="Estensioni"><a name="Extensions">Estensioni</a></h2> + +<p>Le estensioni aggiungono nuove funzionalità alle applicazioni sviluppate da Mozilla come Firefox o Thunderbird. Possono integrare il browser con funzioni particolari, come per esempio un sistema alternativo per gestire le schede, e modificare i contenuti web per migliorare l'accessibilità o la sicurezza di un sito particolare.</p> + +<p>Le estensioni possono essere sviluppate con tre tecniche diverse: estensioni basate su Add-on SDK, estensioni che si avviano manualmente senza richiedere il riavvio del browser ed estensioni overlay.</p> + +<ul class="card-grid"> + <li><span><a href="https://developer.mozilla.org/it/docs/Mozilla/Add-ons/SDK">Estensioni con Add-on SDK</a></span><br> + Sviluppare estensioni con riavvio non richiesto grazie a una raccolta di API JavaScript di livello avanzato.</li> + <li><span><a href="/en-US/Add-ons/Bootstrapped_extensions">Estensioni con riavvio non richiesto</a></span><br> + Sviluppare estensioni che funzionano dalla prima attivazione senza bisogno di riavviare il browser.</li> + <li><a href="/en-US/Add-ons/Overlay_Extensions"><span>Estensioni overlay</span></a><br> + Sviluppare estensioni tradizionali che utilizzano un overlay XUL.</li> +</ul> + +<p>Quando possibile, è consigliabile utilizzare Add-on SDK, che sfrutta lo stesso meccanismo delle estensioni con riavvio non richiesto ma semplificando alcune operazioni ed eliminando automaticamente il codice superfluo. In caso Add-on SDK non soddisfi le proprie esigenze, l'alternativa è implementare manualmente un'estensione con riavvio non richiesto. Le estensioni overlay sono attualmente obsolete, anche se ne rimane in circolazione un numero elevato.</p> + +<p>Per un approfondimento su quale tecnica sia più opportuno scegliere, ecco un <a href="/en-US/Add-ons/Comparing_Extension_Toolchains">articolo comparativo</a>.</p> + +<div class="column-container"> +<div class="column-half"> +<h3 id="Pratiche_consigliate">Pratiche consigliate</h3> + +<p>Indipendentemente dalle modalità con cui si sceglie di sviluppare un'estensione, esistono linee guida comuni da rispettare per garantire che il proprio componente offra la migliore esperienza utente possibile.</p> + +<dl> + <dt><a href="/en-US/Add-ons/Performance_best_practices_in_extensions">Prestazioni</a></dt> + <dd>Come rendere un'estensione veloce, reattiva e ottimizzata nel consumo della memoria.</dd> + <dt><a href="/en-US/Add-ons/Security_best_practices_in_extensions">Sicurezza</a></dt> + <dd>Come evitare di esporre l'utente a siti dannosi.</dd> + <dt><a href="/en-US/Add-ons/Extension_etiquette">Etichetta</a></dt> + <dd>Come gestire l'interazione con altre estensioni correttamente.</dd> +</dl> +</div> + +<div class="column-half"> +<h3 id="Nozioni_specifiche_per_applicazione">Nozioni specifiche per applicazione</h3> + +<p>La maggior parte della documentazione è scritta pensando a chi sviluppa per Firefox Desktop. Gli sviluppatori che intendono progettare per altre applicazioni basate su Gecko devono prendere atto di alcune differenze fondamentali.</p> + +<dl> + <dt><a href="/en-US/Add-ons/Thunderbird">Thunderbird</a></dt> + <dd>Sviluppare estensioni per il client di posta elettronica Thunderbird.</dd> + <dt><a href="/en-US/Add-ons/Firefox_for_Android">Firefox per Android</a></dt> + <dd>Sviluppare estensioni per la versione di Firefox per il sistema operativo Android.</dd> + <dt><a href="/en-US/Add-ons/SeaMonkey_2">SeaMonkey</a></dt> + <dd>Sviluppare estensioni per la suite di applicazioni <a href="http://www.seamonkey-project.org/">SeaMonkey</a>.</dd> +</dl> +</div> +</div> + +<hr> +<h2 id="Temi"><a name="Themes">Temi</a></h2> + +<p>I Temi sono componenti aggiuntivi in grado di personalizzare l'interfaccia utente dell'applicazione. Esistono due tipi di tema: temi di sfondo (o semplicemente "temi") e temi completi.</p> + +<div class="column-container"> +<div class="column-half"> +<p>I <a href="https://addons.mozilla.org/it/developers/docs/themes">temi di sfondo</a> sono significativamente più semplici da implementare rispetto ai temi completi, ma offrono un livello di personalizzazione più limitato.</p> +</div> + +<div class="column-half"> +<p>I <a href="/it/docs/Temi">temi completi</a> consentono modifiche più radicali all'interfaccia utente dell'applicazione. La documentazione sui temi completi è attualmente incompleta, ma viene qui citata in previsione di futuri aggiornamenti.</p> +</div> +</div> + +<hr> +<h2 id="Altri_tipi_di_componente_aggiuntivo">Altri tipi di componente aggiuntivo</h2> + +<p>I <a href="/en-US/docs/Creating_OpenSearch_plugins_for_Firefox">plugin dei motori di ricerca</a> sono un tipo di componente aggiuntivo semplice e specifico: aggiungono nuovi motori alla barra di ricerca del browser.</p> + +<p>I <a href="/en-US/docs/Plugins">plugin</a> consentono all'applicazione di elaborare contenuti non supportati nativamente. Mozilla sta tentando di scoraggiare l'implementazione dei plugin, che hanno in passato causato problemi di stabilità, prestazioni e sicurezza.</p> + +<hr> diff --git a/files/it/mozilla/add-ons/kaspersky/index.html b/files/it/mozilla/add-ons/kaspersky/index.html new file mode 100644 index 0000000000..dd6dcd576c --- /dev/null +++ b/files/it/mozilla/add-ons/kaspersky/index.html @@ -0,0 +1,82 @@ +--- +title: Firma e distribuzione del vostro componente aggiuntivo +slug: Mozilla/Add-ons/kaspersky +translation_of: Mozilla/Add-ons/Distribution +--- +<p>Dopo che avete compilato il vostro add-on, voi vorrete distribuirlo di modo che gli altri possano provarlo. Sia che vogliate distribuirlo pubblicamente o privatamente, attraverso <a href="https://addons.mozilla.org/">addons.mozilla.org</a> (AMO) o altrove, voi vorrete avere il vostro pacchetto add-on firmato.</p> + +<h2 id="Firmare_il_vostro_add-on">Firmare il vostro add-on</h2> + +<p>Ad iniziare dalla versione n. 43 di Firefox, esistono delle restrizioni per distribuire un componente aggiuntivo. <span id="result_box" lang="it"><span>Le estensioni e i programmi di installazione multipackage che supportano Firefox devono essere firmati da Mozilla affinché possano essere installati nelle versioni beta e di rilascio di Firefox.</span> <span>Si noti che questo si applica solo ai componenti aggiuntivi di tipo 2 e 32;</span> </span> <a href="/en-US/Add-ons/Install_Manifests#type">altri tipi di componenti aggiuntivi</a> <span lang="it"><span>come temi e language pack non richiedono la firma.</span> <span>Sono esclusi anche i componenti aggiuntivi che supportano solo altre applicazioni come Thunderbird e SeaMonkey.</span> <span>I componenti aggiuntivi non firmati possono ancora essere installati nelle versioni </span></span><a href="/en-US/Firefox/Developer_Edition">Developer Edition</a>,<span lang="it"><span> Nightly e versioni </span></span><a href="/en-US/Firefox/Enterprise_deployment">ESR</a> <span lang="it"><span>di Firefox, dopo aver attivato la preferenza </span></span><em>xpinstall.signatures.required</em><span lang="it"><span> in about: config.</span></span></p> + +<p>Solo Mozilla può firmare il componente aggiuntivo in modo che Firefox lo installi per impostazione predefinita.I componenti aggiuntivi vengono firmati<a href="https://addons.mozilla.org/en-US/developers/addon/submit/1">submitting them to AMO</a> o utilizzando l'API e passando una revisione automatica o manuale del codice. Si noti che non è necessario elencare o distribuire il componente aggiuntivo tramite AMO. Se stai distribuendo il componente aggiuntivo da soli, di può scegliere l'opzione Unlisted e AMO servirà solo per firmare il pacchetto contenente il componente aggiuntivo.</p> + +<h3 id="API_per_la_firma">API per la firma</h3> + +<p>Voi potete firmare il vostro file <a href="/en-US/docs/XPI">XPI</a> usando le <a href="http://olympia.readthedocs.org/en/latest/topics/api/signing.html">addons.mozilla.org signing API</a>. Se usate il tool <a href="/en-US/Add-ons/SDK/Tools/jpm">jpm</a>, il comando <a href="/en-US/Add-ons/SDK/Tools/jpm#jpm_sign">jpm sign</a> utilizza le API per firmare il vostro componente aggiuntivo.</p> + +<h2 id="Inviare_ad_AMO">Inviare ad AMO</h2> + +<p>Il nuovo componente aggiuntivo è inviato ad AMO tramite <a href="https://addons.mozilla.org/en-US/developers/addon/submit/1">questa form di invio</a>. Il primo passo è leggere e poi accettare <a href="/en-US/Add-ons/AMO/Policy/Agreement">Developer Agreement</a>.</p> + +<p>Successivamente, dovrete decidere se vorrete distribuire e pubblicizzare il vostro componente aggiuntivo tramite AMO oppure no. Ecco alcune cose da prendere in considerazione per prendere questa decisione:</p> + +<ul> + <li>AMO is a very popular distribution platform, with millions of monthly visitors and installations. It is integrated into the Firefox Add-ons Manager, allowing easy installation of published AMO add-ons directly from the Firefox UI.</li> + <li>All add-ons listed on AMO are code-reviewed and tested by a team of employees and volunteers. They need to meet various technical and content policies in order to be accepted. Because of this, review times can range between a few hours to a number of weeks, depending on add-on complexity and other factors.</li> + <li>Unlisted add-ons are for the most part automatically reviewed and signed. The add-ons review team may from time to time perform a manual review of your signed files and give you feedback about it.</li> + <li>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. + <ul> + <li>If you list your add-on on AMO, then all you have to do here is submit the new version to AMO: add-ons default to checking AMO for new versions of themselves.</li> + <li>If you do not list your add-on on AMO, you need to tell the host application (e.g. Firefox) where it can find new versions of your add-on. To do this, include a URL in the add-on's manifest called the <a href="/en-US/Add-ons/Install_Manifests#updateURL">updateURL</a>: the host application will go here to get information about updates. At the updateURL you host a file in the <a href="/en-US/docs/Extension_Versioning,_Update_and_Compatibility#Update_RDF_Format">update RDF format</a>: among other things, this file includes another URL called updateLink which points to the updated XPI itself. If you're using the Add-on SDK, see <a href="/en-US/Add-ons/SDK/Tools/jpm#Supporting_updates_for_self-hosted_add-ons">Supporting updates for self-hosted add-ons</a>.</li> + </ul> + </li> +</ul> + +<p>You should make this decision carefully, as it isn't easy to switch between Listed and Unlisted at present. Due to some platform limitations, in order to make the switch you'll need to delete your add-on entry and then <a href="mailto:amo-admins@mozilla.org">contact the AMO Admins list</a> in order to enable your add-on ID so you can submit it again. You should also know that if you switch from Listed to Unlisted, your current users won't be automatically migrated to the unlisted versions of your add-on. Switching from Unlisted to Listed is easier because Firefox will check for updates on AMO if an add-on doesn't have an updateURL in its install manifest.</p> + +<h3 id="Unlisted_add-ons">Unlisted add-ons</h3> + +<p>After accepting the Developer Agreement, you'll be asked if you want to list your add-on on AMO. Make sure you choose not to list it.</p> + +<p>You'll then be asked if you want your add-on to be side-loaded or not. Side-loading is when your add-on XPI isn't installed directly by users but instead it is bundled in an application installer. An example of this would be an antivirus software package that includes a companion security extension. If your add-on XPI will be installed directly from the web or downloaded and installed manually by your users, then you don't need this option.</p> + +<div class="note"> +<p>Internally, AMO labels unlisted add-on submissions that require side-loading as Full Review submissions, and all the rest as Preliminary Review submissions. You may find these labels when looking at your add-on review status. Note that there's no difference between full and preliminary review for unlisted add-ons, other than the ability to side-load the add-on.</p> +</div> + +<p>Choose the platforms your add-on supports and upload your XPI. The file will be scanned by an automatic code validator which will show a number or warnings or errors depending on what it detects. If no errors are found in your package, your add-on management page will be created and your file will be immediately signed. You'll receive an email with instructions on how to download the signed file.</p> + +<p>All new versions of your add-ons will also need to signed. Once your first version has been submitted, you can upload new versions in the developer page for your add-on. The signing process is the same as with new add-ons.</p> + +<h3 id="Listed_add-ons">Listed add-ons</h3> + +<p>After accepting the Developer Agreement, you'll be asked if you want to list your add-on on AMO. Listing it should be the default option.</p> + +<p>Choose the platforms your add-on supports and upload your XPI. The file will be scanned by an automatic code validator which will show a number of warnings or errors depending on what it detects. Errors only show up for listed add-ons if there's something wrong in the package that needs to be fixed before it can be accepted. Warnings can vary in importance and severity; you should read through all of them carefully and see if there's anything you can fix in your add-on in order to avoid them showing up. This doesn't mean that you should obfuscate your code to bypass validation warnings. That practice can lead to your add-on being rejected and potentially blocklisted.</p> + +<p>Once you finish your listed add-on submission, it will be placed in a review queue, where one member of our review team will eventually give it a look. This can take between a couple of hours to a number of weeks, depending on add-on complexity and other factors. It also takes longer for the first submission, since all of the code needs to be reviewed. Updates are reviewed based on a diff, so they are quicker. Once your add-on passes review, the file is signed and published on AMO.</p> + +<p>Listed add-ons can be submitted for Preliminary Review or Full Review. Preliminary Review consists of security and content checks, focused on the add-on's code. Full Review is a higher standard, and reviews include feature testing and performance checks. Add-ons with Full Review have more prominence on the site and can be nominated to be <a href="/en-US/Add-ons/AMO/Policy/Featured">featured</a>. Add-ons that are nominated for Full Review and don't meet that standard may receive Preliminary Review approval instead.</p> + +<h4 id="Beta_versions">Beta versions</h4> + +<p>Beta channels are only available to fully-reviewed add-ons.</p> + +<p>To create a beta channel, upload a file with a unique version string that contains any of the following strings: <code>a,b,alpha,beta,pre,rc</code>, with an optional number at the end. This text must come at the end of the version string. If you understand regex format, here's what we look for in the version number: <code>"(a|alpha|b|beta|pre|rc)\d*$"</code>.</p> + +<p>Once a file meeting this criteria is uploaded to AMO, it will automatically be detected as a beta version. Users of add-ons with these unique version numbers will automatically be served the newest beta updates. Beta versions are treated like unlisted add-on versions, in that they will be accepted and signed immediately if they pass automatic validation.</p> + +<p>While we call these "Beta versions", you can use this channel for nightlies, or alphas, or prerelease versions as you wish. Please note that there is only one channel for this purpose and all of your users on this channel will receive the latest add-ons submitted. For instance, if you upload <code>1.0beta1</code> to the release channel and then upload <code>1.1alpha1</code>, all users of <code>1.0beta1</code> will be offered an upgrade to <code>1.1alpha1</code>. Updates are pushed by submission date and not version number, so users will always get the most recent channel update regardless of any kind of alphabetical sorting.</p> + +<h2 id="Ownership">Ownership</h2> + +<p>Add-ons can have multiple users with permission to update and manage the listing. Existing authors of an add-on can transfer ownership and add additional developers to an add-on's listing through the Developer Tools provided. No interaction with Mozilla representatives is necessary for a transfer of ownership.</p> + +<h2 id="Code_disputes">Code disputes</h2> + +<p>Many add-ons allow their source code to be openly viewed. This does not mean that the source code is open source or available for use in another add-on. The original author of an add-on retains copyright of their work unless otherwise noted in the add-on's license.</p> + +<p>In the event that we're notified of a copyright or license infringement, we will take steps to address the situation per the DMCA, which may include taking down the add-on listing. Details about this process and how to report trademark or licensing issues can be <a href="https://www.mozilla.org/en-US/about/legal/report-abuse/">found here</a>.</p> + +<p>If you are unsure of the current copyright status of an add-on's source code, you must contact the original author and receive explicit permission before using the source code.</p> diff --git a/files/it/mozilla/add-ons/overlay_extensions/firefox_addons_developer_guide/index.html b/files/it/mozilla/add-ons/overlay_extensions/firefox_addons_developer_guide/index.html new file mode 100644 index 0000000000..eef336d088 --- /dev/null +++ b/files/it/mozilla/add-ons/overlay_extensions/firefox_addons_developer_guide/index.html @@ -0,0 +1,29 @@ +--- +title: Firefox addons developer guide +slug: Mozilla/Add-ons/Overlay_Extensions/Firefox_addons_developer_guide +translation_of: Archive/Add-ons/Overlay_Extensions/Firefox_addons_developer_guide +--- +<div> + <div> + La guida per sviluppatori Firefox Add-ons è stata inviata da nostra <span class="highlight" id="ouHighlight__65_73TO68_75">comunità</span> del Giappone; Esso copre come andare sulla creazione di estensioni per Firefox utilizzando XPCOM e XUL. In questi giorni, si consiglia di utilizzare invece il SDK del componente aggiuntivo, ma ci sono momenti quando è necessario il controllo aggiuntivo offerto da un approccio più diretto.</div> + <br> + <div> + {{Next ("Firefox addons sviluppatore guida/introduzione alle estensioni")}}</div> + <br> + <ol> + <li>Introduzione alle estensioni</li> + <li>Tecnologie utilizzate nello sviluppo di estensioni</li> + <li>Introduzione a XUL — come costruire un'interfaccia utente più intuitiva</li> + <li>Utilizzando XPCOM — implementazione avanzata di processi</li> + <li>Costruiamo un'estensione per Firefox</li> + <li>Applicazioni XUL e estensioni di Firefox</li> + </ol> + <br> + <ul> + <li>Licenza e autori</li> + </ul> + <br> + <div> + {{Next ("Firefox addons sviluppatore guida/introduzione alle estensioni")}}</div> +</div> +<p> </p> diff --git a/files/it/mozilla/add-ons/overlay_extensions/index.html b/files/it/mozilla/add-ons/overlay_extensions/index.html new file mode 100644 index 0000000000..6b6ac40112 --- /dev/null +++ b/files/it/mozilla/add-ons/overlay_extensions/index.html @@ -0,0 +1,71 @@ +--- +title: Overlay extensions +slug: Mozilla/Add-ons/Overlay_Extensions +tags: + - Add-ons + - Extensions + - Landing + - NeedsTranslation + - TopicStub +translation_of: Archive/Add-ons/Overlay_Extensions +--- +<p>This page contains links to documentation for the approach to developing extensions for Gecko-based applications which uses:</p> +<ul> + <li>XUL overlays to specify the interface</li> + <li>APIs available to privileged code such as <a href="/en-US/docs/XUL/tabbrowser"><code>tabbrowser</code></a> and <a href="/en-US/docs/Mozilla/JavaScript_code_modules">JavaScript modules</a> to interact with the application and content.</li> +</ul> +<p>Before Gecko 2.0 was released this was the only way to develop extensions. Now there are two alternative techniques: <a href="/en-US/docs/Extensions/Bootstrapped_extensions">restartless extensions</a> and <a href="https://addons.mozilla.org/en-US/developers/docs/sdk/latest/">Add-on SDK-based extensions</a>. The privileged JavaScript APIs described here can still be used by the newer techniques.</p> +<h2 id="XUL_School">XUL School</h2> +<p><a href="/en-US/Add-ons/Overlay_Extensions/XUL_School">XUL School</a> is a comprehensive add-on development tutorial, focusing on Firefox extension development but mostly applicable to other Gecko-based applications.</p> +<h2 id="More_resources">More resources</h2> +<div class="column-container"> + <div class="column-half"> + <dl> + <dt> + <a href="/en-US/Mozilla/Add-ons/Setting_up_extension_development_environment">Setting up your environment</a></dt> + <dd> + Setting up the application for extension development.</dd> + <dt> + <a href="/en-US/docs/XUL">XUL</a></dt> + <dd> + Tutorials and reference for the user interface language used by XUL extensions.</dd> + <dt> + <a href="/en-US/Mozilla/Add-ons/Code_snippets">Code snippets</a></dt> + <dd> + Sample code for many of the things you'll want to do.</dd> + <dt> + <a href="/en-US/Mozilla/Add-ons/Installing_extensions">Installing extensions</a></dt> + <dd> + How to install an extension by copying the extension files into the application's install directory.</dd> + <dt> + <a href="/en-US/Add-ons/Overlay_extensions/Firefox_addons_developer_guide">Firefox add-ons developer guide</a></dt> + <dd> + A guide to developing overlay extensions.</dd> + </dl> + </div> + <div class="column-half"> + <dl> + <dt> + <a href="/en-US/docs/Mozilla/JavaScript_code_modules">JavaScript code modules</a></dt> + <dd> + JavaScript modules available to extension developers.</dd> + <dt> + <a href="/en-US/Mozilla/Add-ons/Inline_Options">Extension preferences</a></dt> + <dd> + How to specify the preferences for your extension that will appear in the Add-ons Manager.</dd> + <dt> + <a href="/en-US/Mozilla/Add-ons/Extension_Frequently_Asked_Questions">Frequently Asked Questions</a></dt> + <dd> + Common issues with extension development.</dd> + <dt> + <a href="/en-US/Mozilla/Add-ons/Extension_Packaging">Extension packaging</a></dt> + <dd> + How extensions are packaged and installed.</dd> + <dt> + <a href="/en-US/Mozilla/Add-ons/Creating_Custom_Firefox_Extensions_with_the_Mozilla_Build_System">Binary Firefox extensions</a></dt> + <dd> + Creating binary extensions for Firefox.</dd> + </dl> + </div> +</div> +<p> </p> diff --git a/files/it/mozilla/add-ons/overlay_extensions/xul_school/getting_started_with_firefox_extensions/index.html b/files/it/mozilla/add-ons/overlay_extensions/xul_school/getting_started_with_firefox_extensions/index.html new file mode 100644 index 0000000000..3857bb6773 --- /dev/null +++ b/files/it/mozilla/add-ons/overlay_extensions/xul_school/getting_started_with_firefox_extensions/index.html @@ -0,0 +1,71 @@ +--- +title: Getting Started with Firefox Extensions +slug: >- + Mozilla/Add-ons/Overlay_Extensions/XUL_School/Getting_Started_with_Firefox_Extensions +translation_of: >- + Archive/Add-ons/Overlay_Extensions/XUL_School/Getting_Started_with_Firefox_Extensions +--- +<p>{{ PreviousNext("XUL_School/Introduction", "XUL_School/The_Essentials_of_an_Extension") }}</p> +<h2 id="Che_cos'è_un'estensione_di_Firefox">Che cos'è un'estensione di Firefox?</h2> +<blockquote> + <p>Le estensioni aggiungono funzionalità alle applicazioni di Mozilla come Firefox e Thunderbird. Possono aggiungere qualsiasi cosa da un pulsante sulla barra degli strumenti a funzionalità completamente nuove. Permettono di personalizzare l'applicazione per soddisfare le necessità personali di qualsiasi utente che le necessiti, permettendo comunque di mantenere dimensioni ridotte.</p> +</blockquote> +<p>Tratto dalla <a href="/en/Extensions" title="en/Extensions">Pagina della estensioni</a>.</p> +<p>Come descritto nel testo virgolettato, un'estensione è una piccola applicazione che aggiunge qualcosa di nuovo a una o più applicazioni Mozilla. Questo corso si focalizza sulle estensioni per Firefox, ma gli stessi principi sono validi (quasi identicamente) per qualsiasi altra applicazione come per esempio,Thunderbird, Seamonkey e Flock.</p> +<p>Vale la pena notare che ci sono delle differenze nelle definizioni di <em>estensione</em> e <em>add-on</em>. Tutte le estensioni sono degli <em>add-ons</em>, ma gli <em>add-ons</em> possono anche essere temi, <em>plugin</em> o traduzioni (<em>language packs</em>). Questo corso riguarda lo sviluppo delle applicazioni, ma anche i temi e i <em>language pack</em> si sviluppano in modo molto simile. I <em>plugin</em> sono tutt'altra cosa e non saranno spiegati in questo corso. Puoi trovare più informazioni sui <em>plugin</em> e il loro sviluppo nella <a href="/en/Plugins" title="en/Plugins">pagina dei plugins</a>.</p> +<p>Firefox provides a very rich and flexible architecture that allows extension developers to add advanced features, customize the user's experience, and completely replace and remove parts of the browser. The <a class="link-https" href="https://addons.mozilla.org" title="https://addons.mozilla.org/">Mozilla Add-ons</a> repository (AMO) holds an extensive number of extensions with a wide variety of functions: content filtering (<a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/1865" title="https://addons.mozilla.org/en-US/firefox/addon/1865">AdBlock Plus</a>, <a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/722" title="https://addons.mozilla.org/en-US/firefox/addon/722">NoScript</a>), web application interaction (<a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/3615" title="https://addons.mozilla.org/en-US/firefox/addon/3615">Delicious Bookmarks</a>, <a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/5202" title="https://addons.mozilla.org/en-US/firefox/addon/5202">eBay Companion</a>) and web development (<a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/6622" title="https://addons.mozilla.org/en-US/firefox/addon/6622">DOM Inspector</a>, <a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/1843" title="https://addons.mozilla.org/en-US/firefox/addon/1843">Firebug</a>). These are very advanced and complex extensions, and you'll learn most of what it takes to create extensions like these (Glaxstar actually worked on 3 of those listed).</p> +<p>Extensions now exist in 3 different forms: <a class="link-https" href="https://addons.mozilla.org/en-US/developers/builder" title="https://addons.mozilla.org/en-US/developers/builder">Add-ons SDK extensions</a> (also known as Jetpacks), <a href="/en/Extensions/Bootstrapped_extensions" title="https://developer.mozilla.org/en/Extensions/Bootstrapped_extensions">bootstrapped extensions</a> and traditional extensions. If you're only getting started developing add-ons, the Add-ons SDK provides a great way to quickly create simple ones and build on them. This tutorial focuses on traditional extensions, which are created differently. Bootstrapped extensions are a step above traditional ones in complexity, so you should go through this tutorial before giving them a try.</p> +<p>We'll begin the tutorial by analyzing a very simple extension.</p> +<h2 id="The_Hello_World_Extension">The Hello World Extension</h2> +<p>Our sample extensions and this tutorial in general are meant for modern versions of Firefox, but most of it works on older versions too.</p> +<p>We'll now begin with a basic "Hello World" extension. Let's start by installing it. Click on the link below.</p> +<p><a href="/@api/deki/files/5139/=xulschoolhello1.xpi" title="https://developer.mozilla.org/@api/deki/files/5139/=xulschoolhello1.xpi">Install Hello World</a></p> +<p>This will either trigger an install or a file download, depending on the content type the web server is using for the file. The appropriate content type to trigger an install is <strong>application/x-<strong>xpinstall</strong></strong>. In the case of this wiki, the content type is properly set and a install window should appear.</p> +<p>If the content type is set correctly, you will probably get notified that the site is not allowed to install add-ons on Firefox. This is a security barrier that prevents sites from installing extensions without user consent. It is necessary because malicious extensions can do the same level of harm as any malicious program: stealing data, erasing or replacing files, and causing unwanted behavior in general. <a class="link-https" href="https://addons.mozilla.org/" title="https://addons.mozilla.org/">AMO</a> is the only pre-allowed site because all published add-ons on AMO have gone through a review process that includes security checks.</p> +<p>After downloading the file, you can drag and drop it into the Firefox content area, and installation should begin.</p> +<p>You'll see a window telling you that you're about to install an extension, with some additional information such as the name of the author. You'll see a message saying that the author cannot be verified. Only extensions signed with a digital certificate can verify authorship. Signed extensions are rare, but we'll cover how to sign them later on.</p> +<p>Click on the Install Now button. After the extension is installed, you'll be asked to restart Firefox. Installing, uninstalling, enabling and disabling add-ons require a restart to complete, with the exception of NPAPI plugins, Add-ons SDK extensions and bootstrapped extensions. This is an important point to keep in mind if you're building an extension that manipulates other extensions or themes.</p> +<p>After installing, look at the main Firefox window and see if you notice anything different.</p> +<p>Did you see it? There's a new menu on the main menu, labeled "Hello World!". If you open the menu and then the menu item below, you'll see a nice alert message (for some definitions of 'nice'). Click on the OK button to close it.</p> +<p><img alt="" class="internal" src="https://developer.mozilla.org/@api/deki/files/4138/=helloworldalert.png" style="width: 326px; height: 126px;"></p> +<p>That's all the extension does. Now let's take a closer look at it.</p> +<h2 id="Extension_Contents">Extension Contents</h2> +<p>You may have noticed that the extension file you installed is named <em>xulschoolhello1.xpi</em>. <a href="/en/XPI" title="en/XPI">XPI</a> (pronounced "zippy") stands for Cross-Platform Installer, because the same installer file can work on all platforms Firefox supports. XPIs are simply ZIP files, but Firefox recognizes the XPI extension and triggers the installation process when an XPI file is loaded.</p> +<p>To look into the XPI file you need to download it first, not install it. If the server triggers an install when clicking on a link or button, what you need to do is right click on the <a href="/@api/deki/files/5139/=xulschoolhello1.xpi" title="https://developer.mozilla.org/@api/deki/files/5139/=xulschoolhello1.xpi">install link</a>, and choose the <em>Save Link As...</em> option.</p> +<p>Decompress the XPI file in a convenient location. Issue the following command to unzip the file on Linux or Mac OS X:</p> +<pre class="syntaxbox">unzip xulschoolhello1.xpi -d xulschoolhello1 +</pre> +<p>On Windows, you can change the file extension fro<span style="font-style: italic;">m </span><em>xpi</em> to <em>zip,</em> or open the file directly, then unzip it, using a ZIP tool.</p> +<p>You should see the following directory structure:</p> +<ul> + <li>xulschoolhello1 + <ul> + <li>chrome.manifest</li> + <li>install.rdf</li> + <li>content + <ul> + <li>browserOverlay.xul</li> + <li>browserOverlay.js</li> + </ul> + </li> + <li>skin + <ul> + <li>browserOverlay.css</li> + </ul> + </li> + <li>locale + <ul> + <li>en-US + <ul> + <li>browserOverlay.dtd</li> + <li>browserOverlay.properties</li> + </ul> + </li> + </ul> + </li> + </ul> + </li> +</ul> +<p>That's lots of files for something so simple! In the next section, we'll inspect these files and see what they do.</p> +<p>{{ PreviousNext("XUL_School/Introduction", "XUL_School/The_Essentials_of_an_Extension") }}</p> +<p><span style="font-size: small;">This tutorial was kindly donated to Mozilla by Appcoast.</span></p> diff --git a/files/it/mozilla/add-ons/overlay_extensions/xul_school/index.html b/files/it/mozilla/add-ons/overlay_extensions/xul_school/index.html new file mode 100644 index 0000000000..085c07b26f --- /dev/null +++ b/files/it/mozilla/add-ons/overlay_extensions/xul_school/index.html @@ -0,0 +1,71 @@ +--- +title: XUL School Tutorial +slug: Mozilla/Add-ons/Overlay_Extensions/XUL_School +tags: + - Add-ons + - Extensions + - NeedsTranslation + - References + - TopicStub + - Tutorials + - XUL +translation_of: Archive/Add-ons/Overlay_Extensions/XUL_School +--- +<p>XUL School è una guida per lo sviluppo di estensioni, che si focalizza sulla creazione di estensioni per Firefox. Si raccomanda di leggere almeno una volta tutto il contenuto. Il contenuto di questa guida sarà aggiornato e valido, anche mentre Firefox cambia rapidamente.</p> + +<dl> + <dt>Introduzione</dt> + <dd> + <ul> + <li><a href="/en-US/docs/XUL/School_tutorial/Introduction" title="XUL/School_tutorial/Introduction">Introduzione</a></li> + <li><a href="/en-US/docs/XUL/School_tutorial/Getting_Started_with_Firefox_Extensions" title="XUL/School_tutorial/Getting Started with Firefox Extensions">Getting Started with Firefox Extensions</a></li> + <li><a href="/en-US/docs/XUL/School_tutorial/The_Essentials_of_an_Extension" title="XUL/School_tutorial/The Essentials of an Extension">Le parti importanti di un'estensione</a></li> + <li><a href="/en-US/docs/XUL/School_tutorial/Setting_Up_a_Development_Environment" title="XUL/School_tutorial/Setting Up a Development Environment">Preparare un'ambiente di sviluppo</a></li> + <li><a href="/en-US/docs/XUL/School_tutorial/JavaScript_Object_Management" title="XUL/School_tutorial/JavaScript Object Management">JavaScript Object Management</a></li> + </ul> + </dd> + <dt>Basic functionality</dt> + <dd> + <ul> + <li><a href="/en-US/docs/XUL/School_tutorial/Adding_menus_and_submenus" title="XUL/School_tutorial/Adding menus and submenus">Aggiungere menu e sottomenu</a></li> + <li><a href="/en-US/docs/XUL/School_tutorial/Adding_Toolbars_and_Toolbar_Buttons" title="XUL/School_tutorial/Adding Toolbars and Toolbar Buttons">Aggiungere Toolbars e pulsanti nelle Toolbar</a></li> + <li><a href="/en-US/docs/XUL/School_tutorial/Adding_Events_and_Commands" title="XUL/School_tutorial/Adding Events and Commands">Aggiungere eventi e comandi</a></li> + <li><a href="/en-US/docs/XUL/School_tutorial/Adding_windows_and_dialogs" title="XUL/School_tutorial/Adding windows and dialogs">Aggiungere finestre and pannelli di dialogo</a></li> + <li><a href="/en-US/docs/XUL/School_tutorial/Adding_sidebars" title="XUL/School_tutorial/Adding sidebars">Aggiungere barre laterali</a></li> + <li><a href="/en-US/docs/XUL/School_tutorial/User_Notifications_and_Alerts" title="XUL/School_tutorial/User Notifications and Alerts">Notifiche e sveglie</a></li> + </ul> + </dd> + <dt>Intermediate functionality</dt> + <dd> + <ul> + <li><a href="/en-US/docs/XUL/School_tutorial/Intercepting_Page_Loads" title="XUL/School_tutorial/Intercepting Page Loads">Intercettare il caricamento delle pagine</a></li> + <li><a href="/en-US/docs/XUL/School_tutorial/Connecting_to_Remote_Content" title="XUL/School_tutorial/Connecting to Remote Content">Connettersi a contenuti remoti</a></li> + <li><a href="/en-US/docs/XUL/School_tutorial/Handling_Preferences" title="XUL/School_tutorial/Handling Preferences">Gestire le preferenze</a></li> + <li><a href="/en-US/docs/XUL/School_tutorial/Local_Storage" title="XUL/School_tutorial/Local Storage">Salvataggio dati in locale </a></li> + </ul> + </dd> + <dt>Advanced topics</dt> + <dd> + <ul> + <li><a href="/en-US/docs/XUL/School_tutorial/The_Box_Model" title="XUL/School_tutorial/The Box Model">The Box Model</a></li> + <li><a href="/en-US/docs/XUL/School_tutorial/XPCOM_Objects" title="XUL/School_tutorial/XPCOM Objects">XPCOM Objects</a></li> + <li><a href="/en-US/docs/XUL/School_tutorial/Observer_Notifications" title="XUL/School_tutorial/Observer Notifications">Observer Notifications</a></li> + <li><a href="/en-US/docs/XUL/School_tutorial/Custom_XUL_Elements_with_XBL" title="XUL/School_tutorial/Custom XUL Elements with XBL">Custom XUL Elements with XBL</a></li> + <li><a href="/en-US/docs/XUL/School_tutorial/Mozilla_Documentation_Roadmap" title="XUL/School_tutorial/Mozilla Documentation Roadmap">Mozilla Documentation Roadmap</a></li> + <li><a href="/en-US/docs/XUL/School_tutorial/Useful_Mozilla_Community_Sites" title="XUL/School_tutorial/Useful Mozilla Community Sites">Useful Mozilla Community Sites</a></li> + </ul> + </dd> + <dt>Appendices</dt> + <dd> + <ul> + <li><a href="/en-US/docs/XUL/School_tutorial/Appendix_A:_Add-on_Performance" title="XUL/School_tutorial/Appendix A: Add-on Performance">Appendix A: Add-on Performance</a></li> + <li><a href="/en-US/docs/XUL/School_tutorial/Appendix_B:_Install_and_Uninstall_Scripts" title="XUL/School_tutorial/Appendix B: Install and Uninstall Scripts">Appendix B: Install and Uninstall Scripts</a></li> + <li><a href="/en-US/docs/XUL/School_tutorial/Appendix_C:_Avoid_using_eval_in_Add-ons" title="XUL/School_tutorial/Appendix C: Avoid using eval in Add-ons">Appendix C: Avoiding using eval in Add-ons</a></li> + <li><a href="/en-US/docs/XUL/School_tutorial/Appendix_D:_Loading_Scripts" title="XUL/School_tutorial/Appendix D: Loading Scripts">Appendix D: Loading Scripts</a></li> + <li><a href="/en-US/docs/XUL/School_tutorial/DOM_Building_and_HTML_Insertion" title="XUL/School_tutorial/Appendix E: DOM Building and HTML Insertion">Appendix E: DOM Building and HTML Insertion</a></li> + <li><a href="/en-US/docs/XUL/School_tutorial/Appendix_F:_Monitoring_DOM_changes" title="XUL/School_tutorial/Appendix F: Monitoring DOM changes">Appendix F: Monitoring DOM changes</a></li> + </ul> + </dd> +</dl> + +<p>The XUL School project was developed by <a href="http://appcoast.com/" title="http://appcoast.com/">Appcoast</a> (formerly Glaxstar). The project is now published here following its <a href="/Project:Copyrights" title="https://developer.mozilla.org/Project:Copyrights">sharing licenses</a>. Its contents have been modified from the original source as necessary.</p> diff --git a/files/it/mozilla/add-ons/performance_best_practices_in_extensions/index.html b/files/it/mozilla/add-ons/performance_best_practices_in_extensions/index.html new file mode 100644 index 0000000000..6908930ec7 --- /dev/null +++ b/files/it/mozilla/add-ons/performance_best_practices_in_extensions/index.html @@ -0,0 +1,104 @@ +--- +title: Performance best practices in extensions +slug: Mozilla/Add-ons/Performance_best_practices_in_extensions +translation_of: Archive/Add-ons/Performance_best_practices_in_extensions +--- +<p> + One of Firefox's great advantages is its extreme extensibility. Extensions + can do almost anything. There is a down side to this: poorly written + extensions can have a severe impact on the browsing experience, including on + the overall performance of Firefox itself. This article offers some best + practices and suggestions that can not only improve the performance and speed + of your extension, but also of Firefox itself. +</p> + +<h2 id="Improving_startup_performance">Improving startup performance</h2> + +<p>Extensions are loaded and run whenever a new browser window opens. That means every time a window opens, your extension can have an impact on how long it takes the user to see the content they're trying to view. There are several things you can do to reduce the amount of time your extension delays the appearance of the user's desired content.</p> + +<h3 id="Load_only_what_you_need_when_you_need_it">Load only what you need, when you need it</h3> + +<p>Don't load things during startup that are only needed if the user clicks a button, or if a given preference is enabled when it's not. If your extension has features that only work when the user has logged into a service, don't load the resources for those features until the user actually logs in.</p> + +<h3 id="Use_JavaScript_code_modules">Use JavaScript code modules</h3> + +<p>You can create your own <a href="/en-US/docs/Mozilla/JavaScript_code_modules/Using" title="/en-US/docs/Mozilla/JavaScript_code_modules/Using">JavaScript code modules</a> incorporating sets of features that are only needed under specific circumstances. This makes it easy to load chunks of your extension on the fly as needed, instead of loading everything all at once.</p> + +<p> + While JavaScript modules can be extremely useful, and provide significant performance benefits, they should be used wisely. Loading modules incurs a small cost, so breaking code up to an unnecessary degree can be counter-productive. Code should be modularized to the extend that doing so increases clarity, and loading of large or expensive chunks of code fragments can be significantly deferred. +</p> + +<h3 id="Defer_everything_that_you_can">Defer everything that you can</h3> + +<p>Most extensions have a load event listener in the main overlay that runs their startup functions. Do as little as possible here. The browser window is blocked while your add-on's load handler runs, so the more it does, the slower Firefox will appear to the user.</p> + +<p>If there is <em>anything</em> that can be done even a fraction of a second later, you can use an {{ interface("nsITimer") }} or the {{ domxref("window.setTimeout()") }} method to schedule that work for later. Even a short delay can have a big impact.</p> + +<h2 id="General_Performance_Tips">General Performance Tips</h2> + +<h3 id="Avoid_Creating_Memory_Leaks">Avoid Creating Memory Leaks</h3> + +<p>Memory leaks require the garbage collector and the cycle collector to work harder, which can significantly degrade performance.</p> + +<p>Zombie compartments are a particular kind of memory leak that you can detect with minimal effort. See the<a href="/en/Zombie_compartments" title="en/Zombie_compartments"> </a><a href="/en/Zombie_compartments" title="en/Zombie_compartments">Zombie compartments page</a>, especially the <a href="/en/Zombie_compartments#Proactive_checking_of_add-ons" title="en/Zombie_compartments#Proactive_checking_of_add-ons">Proactive checking of add-ons</a> section.</p> + +<p>See <a href="/en/Extensions/Common_causes_of_memory_leaks_in_extensions" title="en/Extensions/Common_causes_of_zombie_compartments_in_extensions">Common causes of memory leaks in extensions</a> for ways to avoid zombie compartments and other kinds of leaks.</p> + +<p>As well as looking for these specific kinds of leaks, it's worth exercising your extension's functionality and checking the contents of about:memory for any excessive memory usage. For example, <a class="link-https" href="https://bugzilla.mozilla.org/show_bug.cgi?id=719601" title="https://bugzilla.mozilla.org/show_bug.cgi?id=719601">bug 719601</a> featured a "System Principal" JavaScript compartment containing 100s of MBs of memory, which is <em>much</em> larger than usual.</p> + +<h3 id="Avoid_Writing_Slow_CSS">Avoid Writing Slow CSS</h3> + +<ul> + <li>Read the <a href="/en/CSS/Writing_Efficient_CSS" title="en/CSS/Writing_Efficient_CSS">"writing efficient CSS"</a> guide.</li> + <li>Remember that any selector in your rule which might match many different nodes is a source of inefficiency during either selector matching or dynamic update processing. This is especially bad for the latter if the selector can dynamically start or stop matching. Avoid unqualified ":hover" like the plague.</li> +</ul> + +<h3 id="Avoid_DOM_mutation_event_listeners">Avoid DOM mutation event listeners</h3> + +<p>DOM mutation event listeners are extremely expensive and, once added to a document even briefly, significantly harm its performance. As mutation events are officially deprecated, and <a href="/en-US/Add-ons/Overlay_Extensions/XUL_School/Appendix_F:_Monitoring_DOM_changes">there are many alternatives</a>, they should be avoided at all costs.</p> + +<h3 id="Lazily_load_services">Lazily load services</h3> + +<p>The <a href="/en/JavaScript_code_modules/XPCOMUtils.jsm#Methods" title="en/JavaScript_code_modules/XPCOMUtils.jsm#Methods">XPCOMUtils JavaScript module</a> provides two methods for lazily loading things:</p> + +<ul> + <li><code>defineLazyGetter()</code> defines a function on a specified object that acts as a getter which will be created the first time it's used. <a class="external" href="http://mxr.mozilla.org/mozilla-central/search?string=defineLazyGetter">See examples</a>.</li> + <li><code>defineLazyServiceGetter()</code> defines a function on a specified object which acts as a getter for a service. The service isn't obtained until the first time it's used. {{ LXRSearch("ident", "string", "defineLazyServiceGetter", "Look through the source") }} for examples.</li> +</ul> + +<p>Many common services are already cached for you in <a href="/en-US/JavaScript_code_modules/Services.jsm">Services.jsm</a>.</p> + +<h3 id="Use_asynchronous_IO">Use asynchronous I/O</h3> + +<p>This cannot be stressed enough: never do synchronous I/O on the main thread.</p> + +<p>Any kind of I/O on the main thread, be it disk or network I/O, can cause serious UI responsiveness issues.</p> + +<ul> + <li>Never use synchronous XMLHttpRequests.</li> + <li><a href="/en-US/JavaScript_code_modules/NetUtil.jsm">NetUtils.jsm</a> provides helpers for asynchronous reading and copying of files.</li> + <li>Never access a SQLite database synchronously. Use the <a href="/en-US/Storage#Asynchronously">asynchronous API</a> instead.</li> + <li>Performing sequential, asynchronous operations can often be greatly simplified <a href="/en-US/Add-ons/Techniques/Promises">using Promises</a>.</li> +</ul> + +<h3 id="Avoid_mouse_movement_events">Avoid mouse movement events</h3> + +<p>Avoid using mouse event listeners, including mouseover, mouseout, mouseenter, mouseexit, and especially mousemove. These events happen with high frequency, so their listeners can trivially create very high CPU overhead.</p> + +<p>When these events cannot be avoided, computation during the listeners should be kept to a minimum and real work throttled. The listeners should be added to the most specific element possible, and removed when not immediately necessary.</p> + +<h3 id="Avoid_animated_images">Avoid animated images</h3> + +<p>Animated images are much more expensive than generally expected, especially when used in XUL {{ XULElem("tree") }} elements..</p> + +<h3 id="Consider_using_Chrome_Workers">Consider using Chrome Workers</h3> + +<p>You can use a {{ domxref("ChromeWorker") }} to execute long running tasks or do data processing.</p> + +<h2 id="See_also">See also</h2> + +<ul> + <li><a href="/en/Performance/Measuring_add-on_startup_performance" title="en/Measuring Add-on Startup Performance">Measuring Add-on Startup Performance</a></li> + <li><a class="external" href="http://blog.mozilla.com/addons/2010/06/14/improve-extension-startup-performance/" title="http://blog.mozilla.com/addons/2010/06/14/improve-extension-startup-performance/">How to Improve Extension Startup Performance</a></li> + <li><a href="/en-US/docs/Performance">General information about measuring and improving performance in Mozilla code</a></li> +</ul> diff --git a/files/it/mozilla/add-ons/sdk/builder/index.html b/files/it/mozilla/add-ons/sdk/builder/index.html new file mode 100644 index 0000000000..a28a909dd4 --- /dev/null +++ b/files/it/mozilla/add-ons/sdk/builder/index.html @@ -0,0 +1,13 @@ +--- +title: Builder +slug: Mozilla/Add-ons/SDK/Builder +translation_of: Archive/Add-ons/Add-on_SDK/Builder +--- +<p>Add-on Builder era un ambiente di sviluppo web-based che permetteva agli sviluppatori usando le SDK API, ma senza il bisogno di utilizzare lo strumento linea di comando <code>cfx</code>. <span class="st">È</span> stato dismesso l'1 Aprile 2014, e il dominio "builder.addons.mozilla.org" adesso reindirizza a questa pagina.<br> + <br> + Se hai già usato SDK attraverso il builder, conosci già la maggior parte delle cose di cui hai bisogno per sviluppare usando solo SDK. Le <a href="/en-US/Add-ons/SDK/High-Level_APIs">high-level</a> e le <a href="/en-US/Add-ons/SDK/Low-Level_APIs">low-level</a> API usate per il Builder sono esattamente le stesse. Per passare all'SDK:</p> +<ul> + <li><a href="/en-US/Add-ons/SDK/Tutorials/Installation">Installa SDK localmente</a></li> + <li>Conosci lo strumento linea di comando cfx, con questa <a href="/en-US/Add-ons/SDK/Tutorials/Getting_started">procedura introduttiva</a> e la <a href="/en-US/Add-ons/SDK/Tools/cfx">referenza dettagliata su <code>cfx</code></a></li> + <li>Conosci il file <a href="/en-US/Add-ons/SDK/Tools/package_json">package.json</a> usato per configurare gli attributi del tuo add-on.</li> +</ul> diff --git a/files/it/mozilla/add-ons/sdk/guide/index.html b/files/it/mozilla/add-ons/sdk/guide/index.html new file mode 100644 index 0000000000..82e8c97f15 --- /dev/null +++ b/files/it/mozilla/add-ons/sdk/guide/index.html @@ -0,0 +1,114 @@ +--- +title: Guide +slug: Mozilla/Add-ons/SDK/Guide +tags: + - Add-on SDK +translation_of: Archive/Add-ons/Add-on_SDK/Guides +--- +<p>Questa pagina contiene più articoli approfonditi sull'SDK.</p> + +<hr> +<h3 id="Contributor's_guide"><a name="contributors-guide">Contributor's guide</a></h3> + +<div class="column-container"> +<div class="column-half"> +<dl> + <dt><a href="Guides/Getting_Started">Per cominciare</a></dt> + <dd>Scopri come contribuire all'SDK: ottieni il codice sorgente, apri/lavora su un bug, presenta una patch, ottieni recensioni e aiuto.</dd> + <dt><a href="Guides/Modules">Moduli</a></dt> + <dd>Impara di più sul sitema a moduli usato dall'SDK (che è basato sulla specifica CommonJS), su come i sandbox e i compartimenti possono essere usati per migliorare la sicurezza, o sull'SDK Module Loader incorporato, Cuddlefish.</dd> + <dt><a href="Guides/Classes_and_Inheritance">Classi ed ereditarietà</a></dt> + <dd>Impara come le classi e l'ereditarietà può essere implementata in JavaScript, usando costruttori e prototipi, e su come la funzione di aiuto fornita dall'SDK semplifica tutto ciò.</dd> +</dl> +</div> + +<div class="column-half"> +<dl> + <dt><a href="Guides/Private_Properties">Proprietà Private</a></dt> + <dd>Scopri come le proprietà private possono essere implementate in JavaScript usando prefissi, chiusure (closures), e le WeakMaps, e come l'SDK supporta le proprietà private usando i namespace (che sono una generalizzazione delle WeakMaps).</dd> + <dt><a href="Guides/Content_Processes">Content Processes</a></dt> + <dd>L'SDK è stata concepita per lavorare in un ambiente dove il codice per manipolare il contenuto web viene eseguito in un processo diverso dal codice principale del componente aggiuntivo. Questo articolo mette in risalto le funzioni principali di questo design.</dd> + <dt><a href="Guides/Testing_the_Add-on_SDK">Testare il Componente Aggiuntivo nell'SDK</a></dt> + <dd>Impara come eseguire il Componente Aggiuntivo nella suite per il testing contenuta nell'SDK.</dd> +</dl> +</div> +</div> + +<hr> +<h3 id="Strutture_dell'SDK"><a id="sdk-infrastructure" name="sdk-infrastructure">Strutture dell'SDK</a></h3> + +<div class="column-container"> +<div class="column-half"> +<dl> + <dt><a href="Guides/Module_structure_of_the_SDK">Struttura a moduli dell'SDK</a></dt> + <dd>L'SDK, e i Componenti Aggiuntivi sviluppati con esso, sono formati a partire da moduli riusabili di JavaScript. Questo articolo spiega cosa sono questi moduli, come caricare i moduli, e come l'albero dei moduli dell'SDK è strutturato.</dd> + <dt><a href="Guides/SDK_API_Lifecycle">Ciclo Vitale delle API dell'SDK</a></dt> + <dd>Definizione di ciclo vitale per le API dell'SDK, incluso il rating di stabilità.</dd> +</dl> +</div> + +<div class="column-half"> +<dl> + <dt><a href="Guides/Program_ID">Program ID</a></dt> + <dd>Il Program ID è un identificativo unico per il tuo Add-on. Questa guida spiega come è creato, come viene usato e come crearne uno tuo.</dd> + <dt><a href="Guides/Firefox_Compatibility">Compatibilità con Firefox</a></dt> + <dd>Controlla quale versione di Firefox è compatibile con la versione dell'SDK in uso, e controlla i problemi di compatibilità.</dd> +</dl> +</div> +</div> + +<hr> +<h3 id="Linguaggi_dell'SDK"><a name="sdk-idioms">Linguaggi dell'SDK</a></h3> + +<div class="column-container"> +<div class="column-half"> +<dl> + <dt><a href="Guides/Working_with_Events">Lavorare con gli Eventi</a></dt> + <dd>Scrivi codice attraverso gli Eventi. L'SDK ti permette di fare ciò usando il suo framework concepito per lavorare con gli eventi.</dd> + <dt><a href="Guides/Content_Scripts">Guida sui Content Scripts</a></dt> + <dd>Una panoramica sui content scripts, includendo: cosa sono, cosa possono fare, come caricarli e come comunicare con loro.</dd> +</dl> +</div> + +<div class="column-half"> +<dl> + <dt><a href="Guides/Two_Types_of_Scripts">Due tipi di script</a></dt> + <dd>Questo articolo illustra le differenze tra le API disponibili al codice principale del tuo Add-On e quelle disponibili ai Content Scripts.</dd> +</dl> +</div> +</div> + +<hr> +<h3 id="XUL_migration"><a name="xul-migration">XUL migration</a></h3> + +<div class="column-container"> +<div class="column-half"> +<dl> + <dt><a href="Guides/XUL_Migration_Guide">XUL - Guida al Porting</a></dt> + <dd>Tecniche per aiutare il porting dall'add-on in XUL all'SDK.</dd> + <dt><a href="Guides/XUL_vs_SDK">XUL contro SDK</a></dt> + <dd>Le debolezze e le forze dell'SDK, confrontate ad un tradizionale add-on basato su XUL.</dd> +</dl> +</div> + +<div class="column-half"> +<dl> + <dt><a href="Guides/Porting_the_Library_Detector">Esempio di Porting</a></dt> + <dd>Una procedura dettagliata sul porting di un semplice add-on basato su XUL all'SDK.</dd> +</dl> +</div> +</div> + +<hr> +<h3 id="Firefox_Multiprocesso"><a name="multiprocess-firefox">Firefox Multiprocesso</a></h3> + +<div class="column-container"> +<div class="column-half"> +<dl> + <dt><a href="Guides/Multiprocess_Firefox_and_the_SDK">Firefox Multiprocesso e l'SDK</a></dt> + <dd>Come controllare che il tuo add-on sia compatibile con Firefox Multiprocesso e, in caso di non-compatibilita, come correggere.</dd> +</dl> +</div> + +<div class="column-half"></div> +</div> diff --git a/files/it/mozilla/add-ons/sdk/index.html b/files/it/mozilla/add-ons/sdk/index.html new file mode 100644 index 0000000000..42dd1efbbb --- /dev/null +++ b/files/it/mozilla/add-ons/sdk/index.html @@ -0,0 +1,84 @@ +--- +title: Add-on SDK +slug: Mozilla/Add-ons/SDK +tags: + - Add-on SDK + - Guide Add-on +translation_of: Archive/Add-ons/Add-on_SDK +--- +<p>Con Add-on SDK puoi creare componenti aggiuntivi per Firefox utilizzando tecnologie standard del Web come JavaScript, HTML e CSS. SDK include delle API per JavaScript che puoi usare per sviluppare i componenti aggiuntivi, nonché strumenti per eseguirli, testarli e comprimerli in pacchetto.</p> + +<hr> +<h3 id="Guide">Guide</h3> + +<div class="column-container"> +<div class="column-half"> +<dl> + <dt><a href="/en-US/Add-ons/SDK/Tutorials#getting-started">Per iniziare</a></dt> + <dd>Come<a href="it/Add-ons/SDK/Tutorials/Installazione"> installare SDK</a> e <a href="/en-US/Add-ons/SDK/Tutorials/Getting_Started_With_cfx">utilizzare gli strumenti della suite cfx</a> per sviluppare, testare e comprimere in pacchetto i componenti aggiuntivi.</dd> + <dt><a href="/en-US/Add-ons/SDK/Tutorials#interact-with-the-browser">Interagire con il browser</a></dt> + <dd><a href="/en-US/Add-ons/SDK/Tutorials/Open_a_Web_Page">Aprire pagine web</a>, <a href="/en-US/Add-ons/SDK/Tutorials/Listen_For_Page_Load">monitorare lo stato di caricamento di una pagina</a> e <a href="/en-US/Add-ons/SDK/Tutorials/List_Open_Tabs">elencare le schede aperte</a>.</dd> + <dt><a href="/en-US/Add-ons/SDK/Tutorials#development-techniques">Tecniche di sviluppo</a></dt> + <dd>Scopri le tecniche di sviluppo più comuni come, ad esempio, <a href="/en-US/Add-ons/SDK/Tutorials/Unit_testing">i test di unità</a>, <a href="/en-US/Add-ons/SDK/Tutorials/Logging">il logging</a>, <a href="/en-US/Add-ons/SDK/Tutorials/Creating_Reusable_Modules">i moduli riutilizzabili</a>, <a href="/en-US/Add-ons/SDK/Tutorials/l10n">la localizzazione</a> e <a href="/en-US/Add-ons/SDK/Tutorials/Mobile_development">lo sviluppo per dispositivi portatili</a>.</dd> +</dl> +</div> + +<div class="column-half"> +<dl> + <dt><a href="/en-US/Add-ons/SDK/Tutorials#create-user-interfaces">Creare i componenti di una interfaccia utente</a></dt> + <dd>Aggiungi all’interfaccia utente componenti come <a href="/en-US/Add-ons/SDK/Tutorials/Adding_a_Button_to_the_Toolbar">pulsanti della barra strumenti</a>, <a href="/en-US/Add-ons/SDK/Tutorials/Add_a_Context_Menu_Item">menu contestuali</a>, <a href="/en-US/Add-ons/SDK/Tutorials/Add_a_Menu_Item_to_Firefox">elementi del menu</a> e <a href="/en-US/Add-ons/SDK/Tutorials/Display_a_Popup">finestre di dialogo</a>.</dd> + <dt><a href="/en-US/Add-ons/SDK/Tutorials#modify-web-pages">Modificare le pagine web</a></dt> + <dd>Modifica le pagine <a href="/en-US/Add-ons/SDK/Tutorials/Modifying_Web_Pages_Based_on_URL">basandoti su un determinato modello URL</a> oppure opera dinamicamente su <a href="/en-US/Add-ons/SDK/Tutorials/Modifying_the_Page_Hosted_by_a_Tab">una singola scheda</a>.</dd> + <dt><a href="/en-US/Add-ons/SDK/Tutorials/Annotator">Ricapitolando</a></dt> + <dd>Guida passo per passo del componente aggiuntivo esempio Annotator.</dd> +</dl> +</div> +</div> + +<hr> +<h3 id="Guide_varie">Guide varie</h3> + +<div class="column-container"> +<div class="column-half"> +<dl> + <dt><a href="/en-US/Add-ons/SDK/Guides#contributors-guide">Guida per i collaboratori</a></dt> + <dd>Scopri <a href="/en-US/Add-ons/SDK/Guides/Getting_Started">come contribuire</a> a SDK e quali sono gli elementi fondamentali nel suo codice, come <a href="/en-US/Add-ons/SDK/Guides/Modules">i moduli</a>, <a href="/en-US/Add-ons/SDK/Guides/Classes_and_Inheritance">le classi e l’ereditarietà</a>, <a href="/en-US/Add-ons/SDK/Guides/Private_Properties">le proprietà private</a> e <a href="/en-US/Add-ons/SDK/Guides/Content_Processes">l’elaborazione dei contenuti</a>.</dd> + <dt><a href="/en-US/Add-ons/SDK/Guides#sdk-infrastructure">Infrastruttura di SDK</a></dt> + <dd>I vari aspetti delle tecnologie alla base di SDK: i <a href="/en-US/Add-ons/SDK/Guides/Module_structure_of_the_SDK">moduli</a>, il <a href="/en-US/Add-ons/SDK/Guides/Program_ID">Program ID</a> e le regole che definiscono la <a href="/en-US/Add-ons/SDK/Guides/Firefox_Compatibility">compatibilità con Firefox</a>.</dd> + <dt><a href="/en-US/Add-ons/SDK/Guides/Content_Scripts">Content script</a></dt> + <dd>Una guida dettagliata per lavorare con i content script.</dd> +</dl> +</div> + +<div class="column-half"> +<dl> + <dt><a href="/en-US/Add-ons/SDK/Guides#sdk-idioms">Idiomi di SDK</a></dt> + <dd>La <a href="/en-US/Add-ons/SDK/Guides/Working_with_Events">gestione degli eventi</a> e la <a href="/en-US/Add-ons/SDK/Guides/Two_Types_of_Scripts">distinzione tra add-on script e content script</a>.</dd> + <dt><a href="/en-US/Add-ons/SDK/Guides/XUL_Migration_Guide">Migrazione da XUL</a></dt> + <dd>Una guida per <a href="/en-US/Add-ons/SDK/Guides/XUL_Migration_Guide">effettuare il porting da XUL a SDK</a>. Include un <a href="/en-US/Add-ons/SDK/Guides/XUL_vs_SDK">confronto tra i due sistemi</a> e un <a href="/en-US/Add-ons/SDK/Guides/Porting_the_Library_Detector">esempio pratico</a> di come effettuare il porting di un componente aggiuntivo XUL.</dd> + <dt><a href="/en-US/Add-ons/SDK/Guides/Multiprocess_Firefox_and_the_SDK">Firefox in modalità multiprocesso e SDK</a></dt> + <dd>Come garantire e verificare la compatibilità di un componente aggiuntivo con Firefox in modalità multiprocesso.</dd> +</dl> +</div> +</div> + +<hr> +<h3 id="Riferimenti">Riferimenti</h3> + +<div class="column-container"> +<div class="column-half"> +<dl> + <dt><a href="/en-US/Add-ons/SDK/High-Level_APIs">API di alto livello</a></dt> + <dd>Documentazione di riferimento per le API di alto livelli di SDK.</dd> + <dt><a href="/en-US/Add-ons/SDK/Tools">Strumenti di riferimento</a></dt> + <dd>Documentazione di riferimento per lo strumento <a href="/en-US/Add-ons/SDK/Tools/cfx">cfx</a> utilizzato per sviluppare, testare e comprimere in pacchetto i componenti aggiuntivi, la <a href="/en-US/Add-ons/SDK/Tools/console">console</a> globale utilizzata per il logging e il file <a href="/en-US/Add-ons/SDK/Tools/package_json">package.json</a>.</dd> +</dl> +</div> + +<div class="column-half"> +<dl> + <dt><a href="/en-US/Add-ons/SDK/Low-Level_APIs">API di basso livello</a></dt> + <dd>Documentazione di riferimento per le API di basso livello di SDK.</dd> +</dl> +</div> +</div> diff --git a/files/it/mozilla/add-ons/sdk/tutorials/index.html b/files/it/mozilla/add-ons/sdk/tutorials/index.html new file mode 100644 index 0000000000..3de449f5f1 --- /dev/null +++ b/files/it/mozilla/add-ons/sdk/tutorials/index.html @@ -0,0 +1,145 @@ +--- +title: Tutorials +slug: Mozilla/Add-ons/SDK/Tutorials +tags: + - NeedsTranslation + - TopicStub +translation_of: Archive/Add-ons/Add-on_SDK/Tutorials +--- +<p>Questa pagina riporta articoli pratici su come compiere specifici compiti usando l'SDK.</p> + +<hr> +<h3 id="Primi_passi"><a name="getting-started">Primi passi</a></h3> + +<div class="column-container"> +<div class="column-half"> +<dl> + <dt><a href="/en-US/Add-ons/SDK/Tutorials/Installation">Installazione </a></dt> + <dd>Scaricare, installare, e iniziare ad usare l'SDK su Windows, OS X e Linux.</dd> +</dl> + +<dl> + <dt><a href="/en-US/Add-ons/SDK/Tutorials/Troubleshooting">Risoluzione problemi</a></dt> + <dd><span id="result_box" lang="it"><span class="hps">Alcune indicazioni</span> <span class="hps">per risolvere i problemi</span> <span class="hps">più comuni</span> <span class="hps">e ottenere</span> <span class="hps">più aiuto</span><span>.</span></span></dd> +</dl> +</div> + +<div class="column-half"> +<dl> + <dt><a href="/en-US/Add-ons/SDK/Tutorials/Getting_started_with_cfx">Inizia</a></dt> + <dd><span id="result_box" lang="it"><span class="hps">Scenario</span> <span class="hps">di</span> <span class="hps">creazione di un</span> <span class="hps">semplice add</span><span>-on</span> <span class="hps">con l'SDK</span></span>.</dd> +</dl> +</div> +</div> + +<hr> +<h3 id="Creazione_di_l'interfacce_grafiche_per_l'utente"><a name="create-user-interfaces">Creazione di l'interfacce grafiche per l'utente</a></h3> + +<div class="column-container"> +<div class="column-half"> +<dl> + <dt><a href="/en-US/Add-ons/SDK/Tutorials/Adding_a_Button_to_the_Toolbar">Aggiungere un bottone alla toolbar </a></dt> + <dd>aggiungi un bottone alla toolbar degli Add-on di Firefox.</dd> + <dt><a href="/en-US/Add-ons/SDK/Tutorials/Add_a_Menu_Item_to_Firefox">Aggiungiere una voce al menu di Firefox </a></dt> + <dd>Aggiungi delle voci al menù principale di Firefox.</dd> +</dl> +</div> + +<div class="column-half"> +<dl> + <dt><a href="/en-US/Add-ons/SDK/Tutorials/Display_a_Popup">Mostra un popup </a></dt> + <dd>Mostra un dialogo di popup implementato con HTML e JavaScript</dd> + <dt><a href="/en-US/Add-ons/SDK/Tutorials/Add_a_Context_Menu_Item">Aggiungi una voce al menù contestuale</a></dt> + <dd>Aggiungi delle voci al menù contestuale di Firefox.</dd> +</dl> +</div> +</div> + +<hr> +<h3 id="Interazione_con_il_browser"><a name="interact-with-the-browser">Interazione con il browser</a></h3> + +<div class="column-container"> +<div class="column-half"> +<dl> + <dt><a href="/en-US/Add-ons/SDK/Tutorials/Open_a_Web_Page">Apri una pagina web</a></dt> + <dd>Apri una pagina web in una nuova scheda o in una nuova finestra del browser , usando il modulo <em>tabs, </em>e accedendo al suo contenuto.</dd> + <dt><a href="/en-US/Add-ons/SDK/Tutorials/Listen_for_Page_Load">Cattura l'evento di caricamento di una pagina </a></dt> + <dd>Usa il modulo <em>tabs </em>per essere notificato quando nuove pagine web sono caricate ed accedi al loro contenuto.</dd> +</dl> +</div> + +<div class="column-half"> +<dl> + <dt><a href="/en-US/Add-ons/SDK/Tutorials/List_Open_Tabs">Recupera l'elenco delle schede aperte</a></dt> + <dd>Usa il modulo <em>tabs </em>per scorrere lungo le schede attualmente aperte, accedendo al loro contenuto.</dd> +</dl> +</div> +</div> + +<hr> +<h3 id="Modifica_delle_pagine_web"><a name="modify-web-pages">Modifica delle pagine web</a></h3> + +<div class="column-container"> +<div class="column-half"> +<dl> + <dt><a href="/en-US/Add-ons/SDK/Tutorials/Modifying_Web_Pages_Based_on_URL">Modifica le pagine web basate su URL</a></dt> + <dd>Crea filtri per le pagine web, basati sul loro URL: ogni volta che viene caricata una pagina web il cui URL combacia con il filtro, si esegue uno specifico script in essa.</dd> +</dl> +</div> + +<div class="column-half"> +<dl> + <dt><a href="/en-US/Add-ons/SDK/Tutorials/Modifying_the_Page_Hosted_by_a_Tab">Modifica la pagina web attiva</a></dt> + <dd>Dinamicamente carica uno script in una pagina web attualmente attiva</dd> +</dl> +</div> +</div> + +<hr> +<h3 id="Tecniche_di_Sviluppo"><a name="development-techniques">Tecniche di Sviluppo</a></h3> + +<div class="column-container"> +<div class="column-half"> +<dl> + <dt><a href="/en-US/Add-ons/SDK/Tutorials/Logging">Logging </a></dt> + <dd>Impiega messaggi di log alla console per scopi diagnostici.</dd> + <dt><a href="/en-US/Add-ons/SDK/Tutorials/Creating_reusable_modules">Crea moduli riusabili</a></dt> + <dd>Struttura il tuo add-on in moduli separati per renderlo più facile da sviluppare, debuggare e manutenerlo. Crea packages riusabili, contenenti i tuoi moduli, affinché anche altri sviluppatori di add-on possano usarli.</dd> + <dt><a href="/en-US/Add-ons/SDK/Tutorials/Unit_testing">Unit testing </a></dt> + <dd>Scrivi ed esegui test di unità usando il framework di test dell'SDK.</dd> + <dt><a href="/en-US/Add-ons/SDK/Tutorials/Chrome_authority">Chrome authority </a></dt> + <dd>Ottieni l'accesso alle componenti dell'oggetto, abilitando il tuo add-on a caricare e usare qualsiasi oggetto XPCOM.</dd> + <dt><a href="/en-US/Add-ons/SDK/Tutorials/Creating_event_targets">Crea event targets </a></dt> + <dd>Abilita gli oggetti che definisci ad emettere i loro eventi.</dd> +</dl> +</div> + +<div class="column-half"> +<dl> + <dt><a href="/en-US/Add-ons/SDK/Tutorials/Listening_for_load_and_unload">Cattura l'evento abilitazione e disabilitazione dell'add-on</a></dt> + <dd>Ottieni notifiche quando il tuo add-on è abilitato o disabilitato da Firefox, e passa gli argomenti nel tuo add-on dalla linea di comando.</dd> + <dt><a href="/en-US/Add-ons/SDK/Tutorials/Add_a_Menu_Item_to_Firefox">Usa moduli di terze parti</a></dt> + <dd>Installa e usa moduli aggiuntivi che non sono inclusi nell'SDK stessa.</dd> + <dt><a href="/en-US/Add-ons/SDK/Tutorials/l10n">Localizzazione</a></dt> + <dd>Scrivi codice localizzabile.</dd> + <dt><a href="/en-US/Add-ons/SDK/Tutorials/Mobile_development">Sviluppo Mobile</a></dt> + <dd>Sviluppa add-ons perFirefox Mobile su Android.</dd> + <dt><a href="/en-US/Add-ons/Add-on_Debugger">Add-on Debugger</a></dt> + <dd>Debugga i tuoi add-on in JavaScript.</dd> +</dl> +</div> +</div> + +<hr> +<h3 id="Unificazione_dei_concetti_illustrati"><a name="putting-it-together">Unificazione dei concetti illustrati</a></h3> + +<div class="column-container"> +<div class="column-half"> +<dl> + <dt><a href="/en-US/Add-ons/SDK/Tutorials/Annotator">Annotator add-on </a></dt> + <dd>Una spiegazione esauriente di un add-on relativamente complesso.</dd> +</dl> +</div> +</div> + +<p> </p> diff --git a/files/it/mozilla/add-ons/sdk/tutorials/installazione/index.html b/files/it/mozilla/add-ons/sdk/tutorials/installazione/index.html new file mode 100644 index 0000000000..ae1ede9fb2 --- /dev/null +++ b/files/it/mozilla/add-ons/sdk/tutorials/installazione/index.html @@ -0,0 +1,75 @@ +--- +title: Installazione +slug: Mozilla/Add-ons/SDK/Tutorials/Installazione +translation_of: Mozilla/Add-ons/SDK/Tools/jpm#Installation +--- +<h2 id="Prerequisiti"><span class="short_text" id="result_box" lang="it"><span class="hps">Prerequisiti</span></span></h2> +<p>Per sviluppare con Add-on SDK hai bisogno di:</p> +<ul> + <li><a href="http://www.python.org/">Python</a> 2.5, 2.6 o 2.7. <u> <strong>Attenzione</strong> Python 3.x non è supportato in alcune piattaforme.</u></li> + <li><a href="https://www.mozilla.org/it/firefox/desktop/">Firefox</a>.</li> + <li>L'SDK stessa: si puo scaricare l'ultima versione stabile dell'SDK in formato <a href="https://ftp.mozilla.org/pub/mozilla.org/labs/jetpack/jetpack-sdk-latest.tar.gz">tarball</a> o <a href="https://ftp.mozilla.org/pub/mozilla.org/labs/jetpack/jetpack-sdk-latest.zip">zip.</a></li> +</ul> +<p>L'ultima versione in sviluppo è presente nella <a href="https://github.com/mozilla/addon-sdk">repository su GitHub</a>.</p> +<h2 id="Costruire_l'estensione_per_AMO">Costruire l'estensione per AMO</h2> +<p>Solo l'ultima versione della tag verrà usata se presentata alla AMO.</p> +<p>The git archive command is needed to expand some git attribute placeholders.</p> +<pre>git checkout 1.16 + +git archive 1.16 python-lib/cuddlefish/_version.py | tar -xvf -</pre> +<h2 id="Procedimento_di_installazione_per_Linux_Mac_OS_X_FreeBSD">Procedimento di installazione per Linux/ Mac OS X / FreeBSD</h2> +<p>Utilizzando il terminale si estrarre il file contenenti nell'archivio dell'SDK e dopodichè si ci sposta nella cartella principale appena estratta.</p> +<p>Per esempio:</p> +<pre>tar -xf addon-sdk.tar.gz +cd addon-sdk +</pre> +<p>Se siete utenti Bash (molte persone lo sono) eseguire questo comando dal vostro terminale:</p> +<pre>source bin/activate +</pre> +<p>se non funziona il comando precedente e/o non siete utensi Bash usate questo comando:</p> +<pre>bash bin/activate +</pre> +<p>Dal vostro terminale dovrebbe aparire la stringa simile a questa contenente il nome della cartella dell'SDK, come per esempio:</p> +<pre>(addon-sdk)~/mozilla/addon-sdk > +</pre> +<h2 id="Installazione_nel_Mac_usando_Homebrew">Installazione nel Mac usando Homebrew</h2> +<p>Se siete utenti Mac, si può scegliere di utilizzare <a href="http://brew.sh/">Homebrew</a> per l'installazione dell'SDK, usando i seguenti comandi:</p> +<pre>brew install mozilla-addon-sdk</pre> +<p>Una volta che l'installazione è completata con successo, si può usare il programma <code>cfx</code> dal terminale in qualsiasi momento: senza dover eseguire <code>bin/activate</code>.</p> +<h2 id="Installation_on_Windows">Installation on Windows</h2> +<p>Extract the file contents wherever you choose, and navigate to the root directory of the SDK with a shell/command prompt. For example:</p> +<pre>7z.exe x addon-sdk.zip +cd addon-sdk +</pre> +<p>Then run:</p> +<pre>bin\activate +</pre> +<p>Your command prompt should now have a new prefix containing the full path to the SDK's root directory:</p> +<pre>(C:\Users\mozilla\sdk\addon-sdk) C:\Users\Work\sdk\addon-sdk> +</pre> +<h2 id="activate">activate</h2> +<p>The activate command sets some environment variables that are needed for the SDK. It sets the variables for the current command prompt only. If you open a new command prompt, the SDK will not be active in the new prompt. until you type <code>activate</code> again.</p> +<p>This means that you can have multiple copies of the SDK in different locations on disk and switch between them, or even have them both activated in different command prompts at the same time.</p> +<h3 id="Making_activate_permanent">Making <code>activate</code> permanent</h3> +<p>By setting these variables permanently in your environment so every new command prompt reads them, you can make activation permanent. Then you don't need to type <code>activate</code> every time you open up a new command prompt.</p> +<p>Because the exact set of variables may change with new releases of the SDK, it's best to refer to the activation scripts to determine which variables need to be set. Activation uses different scripts and sets different variables for bash environments (Linux and Mac OS X) and for Windows environments.</p> +<h4 id="Windows">Windows</h4> +<p>On Windows, <code>bin\activate</code> uses <code>activate.bat</code>, and you can make activation permanent using the command line <code>setx</code> tool or the Control Panel.</p> +<h4 id="LinuxMac_OS_X">Linux/Mac OS X</h4> +<p>On Linux and Mac OS X, <code>source bin/activate</code> uses the <code>activate</code> bash script, and you can make activation permanent using your <code>~/.bashrc</code> (on Linux) or <code>~/.bashprofile</code> (on Mac OS X).</p> +<p>As an alternative to this, you can create a symbolic link to the <code>cfx</code> program in your <code>~/bin</code> directory:</p> +<pre>ln -s PATH_TO_SDK/bin/cfx ~/bin/cfx +</pre> +<p>If you used Homebrew to install the SDK, the environment variables are already set permanently for you.</p> +<h2 id="Sanity_check">Sanity check</h2> +<p>Run this at your shell prompt:</p> +<pre>cfx +</pre> +<p>It should produce output whose first line looks something like this, followed by many lines of usage information:</p> +<pre>Usage: cfx [options] [command] +</pre> +<p>This is the <a href="/en-US/Add-ons/SDK/Tools/cfx"><code>cfx</code> command-line program</a>. It's your primary interface to the Add-on SDK. You use it to launch Firefox and test your add-on, package your add-on for distribution, view documentation, and run unit tests.</p> +<h2 id="Ci_sono_problemi">Ci sono problemi?</h2> +<p>Prova la pagina per <a href="/en-US/Add-ons/SDK/Tutorials/Troubleshooting">Risoluzione dei problemi</a>.</p> +<h2 id="Prossimo_passo">Prossimo passo</h2> +<p><span lang="it"><span class="hps">Quindi,</span> <span class="hps">guardate la</span> <a href="/en-US/Add-ons/SDK/Tutorials/Getting_Started_With_cfx"><span class="hps">Guida introduttiva di</span> <span class="hps">CFX</span></a>, <span class="hps">che spiega</span> <span class="hps">come creare</span> <span class="hps">add-on</span> <span class="hps">utilizzando lo strumento</span> <code><span class="hps">CFX</span></code><span>.</span></span></p> diff --git a/files/it/mozilla/add-ons/webextensions/anatomy_of_a_webextension/index.html b/files/it/mozilla/add-ons/webextensions/anatomy_of_a_webextension/index.html new file mode 100644 index 0000000000..56e7917140 --- /dev/null +++ b/files/it/mozilla/add-ons/webextensions/anatomy_of_a_webextension/index.html @@ -0,0 +1,146 @@ +--- +title: Anatomy of an extension +slug: Mozilla/Add-ons/WebExtensions/Anatomy_of_a_WebExtension +tags: + - WebExtensions +translation_of: Mozilla/Add-ons/WebExtensions/Anatomy_of_a_WebExtension +--- +<div>{{AddonSidebar}}</div> + +<p><span class="tlid-translation translation" lang="it"><span title="">Un'estensione consiste in una raccolta di file, confezionati per la distribuzione e l'installazione.</span> <span title="">In questo articolo, esamineremo rapidamente i file che potrebbero essere presenti in un'estensione.</span></span></p> + +<h2 id="manifest.json">manifest.json</h2> + +<p><span class="tlid-translation translation" lang="it"><span title="">Questo è l'unico file che deve essere necessariamente presente in ogni estensione.</span> <span title="">Contiene metadati di base come il nome, la versione e le autorizzazioni richieste.</span> <span title="">Fornisce anche puntatori ad altri file nell'estensione.</span></span></p> + +<p>Il file <span class="tlid-translation translation" lang="it"><span title="">manifest può anche contenere puntatori a diversi altri tipi di file:</span></span></p> + +<ul> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Anatomy_of_a_WebExtension#Background_scripts">Background scripts</a>: <span class="tlid-translation translation" lang="it"><span title="">Implementare una logica a lungo termine</span></span> .</li> + <li><span class="tlid-translation translation" lang="it"><span title="">Icone per l'estensione e per qualsiasi pulsante</span></span>.</li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Anatomy_of_a_WebExtension#Sidebars_popups_options_pages">Sidebars, popups, and options pages</a>: documenti HTML che forniscono contenuti per vari componenti dell'interfaccia utente.</li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Anatomy_of_a_WebExtension#Content_scripts">Content scripts</a>: JavaScript incluso nell'estensione, che verrà iniettato nelle pagine web.</li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Anatomy_of_a_WebExtension#Web_accessible_resources">Web-accessible resources</a>: <span class="tlid-translation translation" lang="it"><span title="">Rende i contenuti pacchettizzati accessibili a pagine Web e script di contenuto.</span></span></li> +</ul> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13669/webextension-anatomy.png" style="display: block; height: 581px; margin-left: auto; margin-right: auto; width: 600px;"></p> + +<p>Vedere la pagina di riferimento <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json">manifest.json</a> per maggiori dettagli.</p> + +<p><span class="tlid-translation translation" lang="it"><span title="">Oltre a quelli a cui fa riferimento il manifest, un'estensione può includere</span></span> <a dir="ltr" href="https://mdn.mozillademos.org/files/11553/browser-action.png">Extension pages</a> <span class="tlid-translation translation" lang="it"><span title="">aggiuntive con file di supporto</span></span>.</p> + +<h2 id="Script_di_Background">Script di Background</h2> + +<p>Extensions often need to maintain long-term state or perform long-term operations independently of the lifetime of any particular web page or browser window. That is what background scripts are for.</p> + +<p>Background scripts are loaded as soon as the extension is loaded and stay loaded until the extension is disabled or uninstalled. You can use any of the <a href="/en-US/Add-ons/WebExtensions/API">WebExtension APIs</a> in the script, as long as you have requested the necessary <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions">permissions</a>.</p> + +<h3 id="Specifying_background_scripts">Specifying background scripts</h3> + +<p>You can include a background script using the <code>background</code> key in "manifest.json":</p> + +<pre class="brush: json">// manifest.json + +"background": { + "scripts": ["background-script.js"] +}</pre> + +<p>You can specify multiple background scripts: if you do, they run in the same context, just like multiple scripts that are loaded into a single web page.</p> + +<p>Instead of specifying background scripts, you can specify a background page which has the added advantage of supporting ES6 modules:</p> + +<p style="margin-bottom: 0em;"><strong>manifest.json</strong></p> + +<pre class="brush: json">// manifest.json + +"background": { + "page": "background-page.html" +}</pre> + +<p style="margin-bottom: 0em;"><strong>background-page.html</strong></p> + +<pre class="brush: html"><!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <script type="module" src="background-script.js"></script> + </head> +</html></pre> + +<h3 id="Background_script_environment">Background script environment</h3> + +<h4 id="DOM_APIs">DOM APIs</h4> + +<p>Background scripts run in the context of a special page called a background page. This gives them a <code><a href="/en-US/docs/Web/API/Window">window</a></code> global, along with all the standard DOM APIs provided by that object.</p> + +<h4 id="WebExtension_APIs">WebExtension APIs</h4> + +<p>Background scripts can use any of the <a href="/en-US/Add-ons/WebExtensions/API">WebExtension APIs</a> in the script, as long as their extension has the necessary <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions">permissions</a>.</p> + +<h4 id="Cross-origin_access">Cross-origin access</h4> + +<p>Background scripts can make XHR requests to any hosts for which they have <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions">host permissions</a>.</p> + +<h4 id="Web_content">Web content</h4> + +<p>Background scripts do not get direct access to web pages. However, they can load <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Content_scripts">content scripts</a> into web pages and can <a href="/en-US/Add-ons/WebExtensions/Content_scripts#Communicating_with_background_scripts">communicate with these content scripts using a message-passing API</a>.</p> + +<h4 id="Content_security_policy">Content security policy</h4> + +<p>Background scripts are restricted from certain potentially dangerous operations, like the use of <code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval">eval()</a></code>, through a Content Security Policy. See <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Content_Security_Policy">Content Security Policy</a> for more details on this.</p> + +<h2 id="Sidebars_popups_options_pages">Sidebars, popups, options pages</h2> + +<p>Your extension can include various user interface components whose content is defined using an HTML document:</p> + +<ul> + <li>a <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Sidebars">sidebar</a> is a pane that is displayed at the left-hand side of the browser window, next to the web page</li> + <li>a <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Popups">popup</a> is a dialog that you can display when the user clicks on a <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Browser_action">toolbar button</a> or <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Page_actions">address bar button</a></li> + <li>an <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Options_pages">options page</a> is a page that's shown when the user accesses your add-on's preferences in the browser's native add-ons manager.</li> +</ul> + +<p>For each of these components, you create an HTML file and point to it using a specific property in <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json">manifest.json</a>. The HTML file can include CSS and JavaScript files, just like a normal web page.</p> + +<p>All of these are a type of <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Extension_pages">Extension pages</a>, and unlike a normal web page, your JavaScript can use all the same privileged WebExtension APIs as your background script. They can even directly access variables in the background page using {{WebExtAPIRef("runtime.getBackgroundPage()")}}.</p> + +<h2 id="Extension_pages">Extension pages</h2> + +<p>You can also include HTML documents in your extension which are not attached to some predefined user interface component. Unlike the documents you might provide for sidebars, popups, or options pages, these don't have an entry in manifest.json. However, they do also get access to all the same privileged WebExtension APIs as your background script.</p> + +<p>You'd typically load a page like this using {{WebExtAPIRef("windows.create()")}} or {{WebExtAPIRef("tabs.create()")}}.</p> + +<p>See <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Extension_pages">Extension pages</a> to learn more.</p> + +<h2 id="Script_di_contenuto">Script di contenuto</h2> + +<p>Use content scripts to access and manipulate web pages. Content scripts are loaded into web pages and run in the context of that particular page.</p> + +<p>Content scripts are extension-provided scripts which run in the context of a web page; this differs from scripts which are loaded by the page itself, including those which are provided in {{HTMLElement("script")}} elements within the page.</p> + +<p>Content scripts can see and manipulate the page's DOM, just like normal scripts loaded by the page.</p> + +<p>Unlike normal page scripts, they can:</p> + +<ul> + <li>Make cross-domain XHR requests.</li> + <li>Use a small subset of the <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API">WebExtension APIs</a>.</li> + <li>Exchange messages with their background scripts and can in this way indirectly access all the WebExtension APIs.</li> +</ul> + +<p>Content scripts cannot directly access normal page scripts but can exchange messages with them using the standard <code><a href="/en-US/docs/Web/API/Window/postMessage">window.postMessage()</a></code> API.</p> + +<p>Usually, when we talk about content scripts, we are referring to JavaScript, but you can inject CSS into web pages using the same mechanism.</p> + +<p>See the <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Content_scripts">content scripts</a> article to learn more.</p> + +<h2 id="Web_accessible_resources">Web accessible resources</h2> + +<p>Web accessible resources are resources such as images, HTML, CSS, and JavaScript that you include in the extension and want to make accessible to content scripts and page scripts. Resources which are made web-accessible can be referenced by page scripts and content scripts using a special URI scheme.</p> + +<p>For example, if a content script wants to insert some images into web pages, you could include them in the extension and make them web accessible. Then the content script could create and append <code><a href="/en-US/docs/Web/HTML/Element/img">img</a></code> tags which reference the images via the <code>src</code> attribute.</p> + +<p>To learn more, see the documentation for the <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/web_accessible_resources">web_accessible_resources</a> manifest.json key.</p> + +<p> </p> + +<p> </p> diff --git a/files/it/mozilla/add-ons/webextensions/api/index.html b/files/it/mozilla/add-ons/webextensions/api/index.html new file mode 100644 index 0000000000..955086de10 --- /dev/null +++ b/files/it/mozilla/add-ons/webextensions/api/index.html @@ -0,0 +1,53 @@ +--- +title: JavaScript APIs +slug: Mozilla/Add-ons/WebExtensions/API +tags: + - NeedsTranslation + - TopicStub + - WebExtensions +translation_of: Mozilla/Add-ons/WebExtensions/API +--- +<div>{{AddonSidebar}}</div> + +<div> +<p>JavaScript APIs for WebExtensions can be used inside the extension's <a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Anatomy_of_a_WebExtension#Background_scripts">background scripts</a> and in any other documents bundled with the extension, including <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Browser_action">browser action</a> or <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Page_actions">page action</a> popups, <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Sidebars">sidebars</a>, <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Options_pages">options pages</a>, or <a href="/en-US/Add-ons/WebExtensions/manifest.json/chrome_url_overrides">new tab pages</a>. A few of these APIs can also be accessed by an extension's <a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Anatomy_of_a_WebExtension#Content_scripts">content scripts</a> (see the <a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Content_scripts#WebExtension_APIs">list in the content script guide</a>).</p> + +<p>To use the more powerful APIs you need to <a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/manifest.json/permissions">request permission</a> in your extension's manifest.json.</p> + +<p>You can access the APIs using the <code>browser</code> namespace:</p> + +<pre class="brush: js line-numbers language-js"><code class="language-js"><span class="keyword token">function</span> <span class="function token">logTabs</span><span class="punctuation token">(</span>tabs<span class="punctuation token">)</span> <span class="punctuation token">{</span> + console<span class="punctuation token">.</span><span class="function token">log</span><span class="punctuation token">(</span>tabs<span class="punctuation token">)</span><span class="punctuation token">;</span> +<span class="punctuation token">}</span> + +browser<span class="punctuation token">.</span>tabs<span class="punctuation token">.</span><span class="function token">query</span><span class="punctuation token">(</span><span class="punctuation token">{</span>currentWindow<span class="punctuation token">:</span> <span class="keyword token">true</span><span class="punctuation token">}</span><span class="punctuation token">,</span> logTabs<span class="punctuation token">)</span><span class="punctuation token">;</span></code></pre> +</div> + +<div> +<p>Many of the APIs are asynchronous, returning a <code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise">Promise</a></code>:</p> + +<pre class="brush: js line-numbers language-js"><code class="language-js"><span class="keyword token">function</span> <span class="function token">logCookie</span><span class="punctuation token">(</span>c<span class="punctuation token">)</span> <span class="punctuation token">{</span> + console<span class="punctuation token">.</span><span class="function token">log</span><span class="punctuation token">(</span>c<span class="punctuation token">)</span><span class="punctuation token">;</span> +<span class="punctuation token">}</span> + +<span class="keyword token">function</span> <span class="function token">logError</span><span class="punctuation token">(</span>e<span class="punctuation token">)</span> <span class="punctuation token">{</span> + console<span class="punctuation token">.</span><span class="function token">error</span><span class="punctuation token">(</span>e<span class="punctuation token">)</span><span class="punctuation token">;</span> +<span class="punctuation token">}</span> + +<span class="keyword token">var</span> setCookie <span class="operator token">=</span> browser<span class="punctuation token">.</span>cookies<span class="punctuation token">.</span><span class="keyword token">set</span><span class="punctuation token">(</span> + <span class="punctuation token">{</span>url<span class="punctuation token">:</span> <span class="string token">"https://developer.mozilla.org/"</span><span class="punctuation token">}</span> +<span class="punctuation token">)</span><span class="punctuation token">;</span> +setCookie<span class="punctuation token">.</span><span class="function token">then</span><span class="punctuation token">(</span>logCookie<span class="punctuation token">,</span> logError<span class="punctuation token">)</span><span class="punctuation token">;</span></code></pre> +</div> + +<div> +<p>Note that this is different from Google Chrome's extension system, which uses the <code>chrome</code> namespace instead of <code>browser</code>, and which uses callbacks instead of promises for asynchronous functions. As a porting aid, the Firefox implementation of WebExtensions APIs supports <code>chrome</code> and callbacks as well as <code>browser</code> and promises. Mozilla has also written a polyfill which enables code that uses <code>browser</code> and promises to work unchanged in Chrome: <a class="external external-icon" href="https://github.com/mozilla/webextension-polyfill">https://github.com/mozilla/webextension-polyfill</a>.</p> + +<p>Firefox also implements these APIs under the <code>chrome</code> namespace using callbacks. This allows code written for Chrome to run largely unchanged in Firefox for the APIs documented here.</p> + +<p>Microsoft Edge uses the <code>browser</code> namespace, but doesn't yet support promise-based asynchronous APIs. In Edge, for the time being, asynchronous APIs must use callbacks.</p> + +<p>Not all browsers support all the APIs: for the details, see <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Browser_support_for_JavaScript_APIs">Browser support for JavaScript APIs</a>.</p> +</div> + +<div>{{SubpagesWithSummaries}}</div> diff --git a/files/it/mozilla/add-ons/webextensions/api/runtime/connectnative/index.html b/files/it/mozilla/add-ons/webextensions/api/runtime/connectnative/index.html new file mode 100644 index 0000000000..7f52576e62 --- /dev/null +++ b/files/it/mozilla/add-ons/webextensions/api/runtime/connectnative/index.html @@ -0,0 +1,122 @@ +--- +title: runtime.connectNative() +slug: Mozilla/Add-ons/WebExtensions/API/runtime/connectNative +tags: + - API + - Add-ons + - Estensioni + - Estensioni Web + - Non-standard + - Riferimenti + - connectNative + - metodo + - runtime +translation_of: Mozilla/Add-ons/WebExtensions/API/runtime/connectNative +--- +<div>{{AddonSidebar()}}</div> + +<div>Connette l'estensione ad un'applicazione nativa presente sul computer dell'utente.</div> + +<div> </div> + +<div>Utilizza il nome di un'applicazione nativa come parametro.</div> + +<div>Avvia l'applicazione nativa e restituisce un oggetto {{WebExtAPIRef("runtime.Port")}} alla funzione invocante.</div> + +<div> </div> + +<div>La funzione invocante può usare la <code>Port</code> per scambiare messaggi con l'applicazione nativa utilizzando <code>Port.postMessage()</code> e <code>port.onMessage</code>.</div> + +<div> </div> + +<div>L'applicazione nativa rimane attiva a meno che non termini autonomamente, sia invocata la funzione <code>Port.disconnect()</code>, o la pagina che ha generato la <code>Port</code> venga distrutta. Un volta disconnessa la <code>Port</code> il browser rimane in attesa qualche secondo finchè il processo non termina correttamente ed in definitiva lo chiude se non fosse ancora terminato.</div> + +<div>Per maggiori informazioni, vedere <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Native_messaging">Native messaging</a>.</div> + +<h2 id="Syntax">Syntax</h2> + +<pre class="syntaxbox brush:js">var port = browser.runtime.connectNative( + application // string +) +</pre> + +<h3 id="Parameters">Parameters</h3> + +<dl> + <dt><code>application</code></dt> + <dd><code>string</code>. Il nome dell'applicazione nativa alla quale collegarsi. Questo deve combaciare con la proprietà "name" nel <a href="/en-US/Add-ons/WebExtensions/Native_messaging#App_manifest">native application's manifest file</a>.</dd> +</dl> + +<h3 id="Return_value">Return value</h3> + +<p>Un oggetto {{WebExtAPIRef('runtime.Port')}}. La porta che la funzione invocante può usare per scambiare messaggi con l'applicazione nativa.</p> + +<h2 id="Browser_compatibility">Browser compatibility</h2> + +<p class="hidden">La tabella di compatibilità in questa pagina è basata sui dati disponibili. Se desiderassi contribuire a questi dati, scarica il codice da <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> ed inviaci una richiesta di allineamento.</p> + +<p>{{Compat("webextensions.api.runtime.connectNative")}}</p> + +<h2 id="Examples">Examples</h2> + +<p>L'esempio crea una connessione con l'applicazione nativa "ping_pong" e rimane in ascolto per i messaggi in entrata. Invia inoltre, all'applicazione nativa, un messaggio nel momento in cui l'utente clicca su un'icona specifica del browser:</p> + +<pre class="brush: js">/* +On startup, connect to the "ping_pong" app. +*/ +var port = <code class="language-js">browser</code>.runtime.connectNative("ping_pong"); + +/* +Listen for messages from the app. +*/ +port.onMessage.addListener((response) => { + console.log("Received: " + response); +}); + +/* +On a click on the browser action, send the app a message. +*/ +<code class="language-js">browser</code>.browserAction.onClicked.addListener(() => { + console.log("Sending: ping"); + port.postMessage("ping"); +});</pre> + +<p>{{WebExtExamples}}</p> + +<div class="note"><strong>Fonti informative</strong> + +<p>Questa API è basata sull'API Chromium <a href="https://developer.chrome.com/extensions/runtime#method-connectNative"><code>chrome.runtime</code></a>. Questo documento deriva dal <a href="https://chromium.googlesource.com/chromium/src/+/master/extensions/common/api/runtime.json"><code>runtime.json</code></a> del codice di Chromium.</p> + +<p>La compatibilità con Microsoft Edge è fornita da Microsoft ed è qui inclusa su licenza Creative Commons Attribution 3.0 United States License.</p> +</div> + +<div class="hidden"> +<pre>// Copyright 2015 The Chromium Authors. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +</pre> +</div> diff --git a/files/it/mozilla/add-ons/webextensions/api/runtime/index.html b/files/it/mozilla/add-ons/webextensions/api/runtime/index.html new file mode 100644 index 0000000000..1768642e7a --- /dev/null +++ b/files/it/mozilla/add-ons/webextensions/api/runtime/index.html @@ -0,0 +1,168 @@ +--- +title: runtime +slug: Mozilla/Add-ons/WebExtensions/API/runtime +tags: + - API + - Add-ons + - Extensions + - Interface + - NeedsTranslation + - Reference + - TopicStub + - WebExtensions + - runtime +translation_of: Mozilla/Add-ons/WebExtensions/API/runtime +--- +<div>{{AddonSidebar}}</div> + +<p><span class="seoSummary">This module provides information about your extension and the environment it's running in.</span></p> + +<p>It also provides messaging APIs enabling you to:</p> + +<ul> + <li>Communicate between different parts of your extension.</li> + <li>Communicate with other extensions.</li> + <li>Communicate with native applications.</li> +</ul> + +<h2 id="Types">Types</h2> + +<dl> + <dt>{{WebExtAPIRef("runtime.Port")}}</dt> + <dd>Represents one end of a connection between two specific contexts, which can be used to exchange messages.</dd> + <dt>{{WebExtAPIRef("runtime.MessageSender")}}</dt> + <dd> + <p>Contains information about the sender of a message or connection request.</p> + </dd> + <dt>{{WebExtAPIRef("runtime.PlatformOs")}}</dt> + <dd>Identifies the browser's operating system.</dd> + <dt>{{WebExtAPIRef("runtime.PlatformArch")}}</dt> + <dd>Identifies the browser's processor architecture.</dd> + <dt>{{WebExtAPIRef("runtime.PlatformInfo")}}</dt> + <dd>Contains information about the platform the browser is running on.</dd> + <dt>{{WebExtAPIRef("runtime.RequestUpdateCheckStatus")}}</dt> + <dd>Result of a call to {{WebExtAPIRef("runtime.requestUpdateCheck()")}}.</dd> + <dt>{{WebExtAPIRef("runtime.OnInstalledReason")}}</dt> + <dd>The reason that the {{WebExtAPIRef("runtime.onInstalled")}} event is being dispatched.</dd> + <dt>{{WebExtAPIRef("runtime.OnRestartRequiredReason")}}</dt> + <dd>The reason that the {{WebExtAPIRef("runtime.onRestartRequired")}} event is being dispatched.</dd> +</dl> + +<h2 id="Properties">Properties</h2> + +<dl> + <dt>{{WebExtAPIRef("runtime.lastError")}}</dt> + <dd>This value is set when an asynchronous function has an error condition that it needs to report to its caller.</dd> + <dt>{{WebExtAPIRef("runtime.id")}}</dt> + <dd>The ID of the extension.</dd> +</dl> + +<h2 id="Functions">Functions</h2> + +<dl> + <dt>{{WebExtAPIRef("runtime.getBackgroundPage()")}}</dt> + <dd>Retrieves the <a href="/en-US/docs/Web/API/Window">Window</a> object for the background page running inside the current extension.</dd> + <dt>{{WebExtAPIRef("runtime.openOptionsPage()")}}</dt> + <dd> + <p>Opens your extension's <a href="/en-US/Add-ons/WebExtensions/user_interface/Options_pages">options page</a>.</p> + </dd> + <dt>{{WebExtAPIRef("runtime.getManifest()")}}</dt> + <dd>Gets the complete <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json">manifest.json</a> file, serialized as an object.</dd> + <dt>{{WebExtAPIRef("runtime.getURL()")}}</dt> + <dd>Given a relative path from the <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json">manifest.json</a> to a resource packaged with the extension, returns a fully-qualified URL.</dd> + <dt>{{WebExtAPIRef("runtime.setUninstallURL()")}}</dt> + <dd>Sets a URL to be visited when the extension is uninstalled.</dd> + <dt>{{WebExtAPIRef("runtime.reload()")}}</dt> + <dd>Reloads the extension.</dd> + <dt>{{WebExtAPIRef("runtime.requestUpdateCheck()")}}</dt> + <dd>Checks for updates to this extension.</dd> + <dt>{{WebExtAPIRef("runtime.connect()")}}</dt> + <dd>Establishes a connection from a content script to the main extension process, or from one extension to a different extension.</dd> + <dt>{{WebExtAPIRef("runtime.connectNative()")}}</dt> + <dd> + <div>Connects the extension to a native application on the user's computer.</div> + </dd> + <dt>{{WebExtAPIRef("runtime.sendMessage()")}}</dt> + <dd>Sends a single message to event listeners within your extension or a different extension. Similar to {{WebExtAPIRef('runtime.connect')}} but only sends a single message, with an optional response.</dd> + <dt>{{WebExtAPIRef("runtime.sendNativeMessage()")}}</dt> + <dd>Sends a single message from an extension to a native application.</dd> + <dt>{{WebExtAPIRef("runtime.getPlatformInfo()")}}</dt> + <dd>Returns information about the current platform.</dd> + <dt>{{WebExtAPIRef("runtime.getBrowserInfo()")}}</dt> + <dd>Returns information about the browser in which this extension is installed.</dd> + <dt>{{WebExtAPIRef("runtime.getPackageDirectoryEntry()")}}</dt> + <dd>Returns a DirectoryEntry for the package directory.</dd> +</dl> + +<h2 id="Events">Events</h2> + +<dl> + <dt>{{WebExtAPIRef("runtime.onStartup")}}</dt> + <dd>Fired when a profile that has this extension installed first starts up. This event is not fired when an incognito profile is started.</dd> + <dt>{{WebExtAPIRef("runtime.onInstalled")}}</dt> + <dd>Fired when the extension is first installed, when the extension is updated to a new version, and when the browser is updated to a new version.</dd> + <dt>{{WebExtAPIRef("runtime.onSuspend")}}</dt> + <dd>Sent to the event page just before the extension is unloaded. This gives the extension an opportunity to do some cleanup.</dd> + <dt>{{WebExtAPIRef("runtime.onSuspendCanceled")}}</dt> + <dd>Sent after {{WebExtAPIRef("runtime.onSuspend")}} to indicate that the extension won't be unloaded after all.</dd> + <dt>{{WebExtAPIRef("runtime.onUpdateAvailable")}}</dt> + <dd>Fired when an update is available, but isn't installed immediately because the extension is currently running.</dd> + <dt>{{WebExtAPIRef("runtime.onBrowserUpdateAvailable")}} {{deprecated_inline}}</dt> + <dd>Fired when an update for the browser is available, but isn't installed immediately because a browser restart is required.</dd> + <dt>{{WebExtAPIRef("runtime.onConnect")}}</dt> + <dd>Fired when a connection is made with either an extension process or a content script.</dd> + <dt>{{WebExtAPIRef("runtime.onConnectExternal")}}</dt> + <dd>Fired when a connection is made with another extension.</dd> + <dt>{{WebExtAPIRef("runtime.onMessage")}}</dt> + <dd>Fired when a message is sent from either an extension process or a content script.</dd> + <dt>{{WebExtAPIRef("runtime.onMessageExternal")}}</dt> + <dd>Fired when a message is sent from another extension. Cannot be used in a content script.</dd> + <dt>{{WebExtAPIRef("runtime.onRestartRequired")}}</dt> + <dd>Fired when the device needs to be restarted.</dd> +</dl> + +<h2 id="Browser_compatibility">Browser compatibility</h2> + + + +<p>{{Compat("webextensions.api.runtime")}}</p> + +<div>{{WebExtExamples("h2")}}</div> + +<div class="note"><strong>Acknowledgements</strong> + +<p>This API is based on Chromium's <a href="https://developer.chrome.com/extensions/runtime"><code>chrome.runtime</code></a> API. This documentation is derived from <a href="https://chromium.googlesource.com/chromium/src/+/master/extensions/common/api/runtime.json"><code>runtime.json</code></a> in the Chromium code.</p> + +<p>Microsoft Edge compatibility data is supplied by Microsoft Corporation and is included here under the Creative Commons Attribution 3.0 United States License.</p> +</div> + +<div class="hidden"> +<pre>// Copyright 2015 The Chromium Authors. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +</pre> +</div> diff --git a/files/it/mozilla/add-ons/webextensions/api/search/index.html b/files/it/mozilla/add-ons/webextensions/api/search/index.html new file mode 100644 index 0000000000..07f8f4d05a --- /dev/null +++ b/files/it/mozilla/add-ons/webextensions/api/search/index.html @@ -0,0 +1,10 @@ +--- +title: search +slug: Mozilla/Add-ons/WebExtensions/API/search +translation_of: Mozilla/Add-ons/WebExtensions/API/search +--- +<div> </div> + +<div>{{AddonSidebar}}</div> + +<p>Lasciato intenzionalmente bianco fino a che l'API non sarà completata.</p> diff --git a/files/it/mozilla/add-ons/webextensions/cosa_sono_le_webextensions/index.html b/files/it/mozilla/add-ons/webextensions/cosa_sono_le_webextensions/index.html new file mode 100644 index 0000000000..c74fbd8473 --- /dev/null +++ b/files/it/mozilla/add-ons/webextensions/cosa_sono_le_webextensions/index.html @@ -0,0 +1,59 @@ +--- +title: Cosa sono le estensioni? +slug: Mozilla/Add-ons/WebExtensions/Cosa_sono_le_WebExtensions +tags: + - Estensioni + - WebExtension +translation_of: Mozilla/Add-ons/WebExtensions/What_are_WebExtensions +--- +<div>{{AddonSidebar}}</div> + +<p>Un'estensione modifica le funzionalità di un browser. Viene creata utilizzando gli standard della tecnologia web - HTML, CSS, e JavaScript. Può trarre vantaggio dalle stesse web API come JavaScript può in una pagina web, ma un'estensione ha anche accesso ad un proprio set di API JavaScript. Questo significa che puoi fare molto di più in un'estensione di quanto tu ne possa fare con il codice in una pagina. Questi sono soltanto alcuni esempi delle cose che puoi fare:</p> + +<p><strong>Migliorare o completare un sito web</strong>: Usa un'estensione per inviare nel browser caratteristiche o informazioni aggiuntive dal tuo sito web. Permettere agli utenti di raccogliere informazioni dalle pagine che visitano per migliorare il servizio che offri.</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/15808/Amazon_add_on.png"></p> + +<p>Esempi: <a href="https://addons.mozilla.org/it/firefox/addon/amazon-browser-bar/">Amazon Assistant</a>, <a href="https://addons.mozilla.org/it/firefox/addon/onenote-clipper/">OneNote Web Clipper</a> e <a href="https://addons.mozilla.org/it/firefox/addon/grammarly-1/">Grammarly for Firefox</a></p> + +<p><strong>Permettere agli utenti di mostrare la loro personalità</strong>: Le estensioni del browser possono manipolare il contenuto delle pagine che l'utente visita. Aiuta gli utenti ad aggiungere un logo o un'immagine preferita come sfondo di tutte le pagine che visitano. Le estensioni ti danno anche la possibilità di aggiornare l'aspetto di Firefox. (Puoi aggiornare l'aspetto di Firefox anche con i <a href="https://developer.mozilla.org/en-US/Add-ons/Themes/Theme_concepts">temi</a>).</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/15809/MyWeb_New_Tab_add_on.png" style="height: 398px; width: 540px;"></p> + +<p>Esempi: <a href="https://addons.mozilla.org/it/firefox/addon/myweb-new-tab/">MyWeb New Tab</a>, <a href="https://addons.mozilla.org/it/firefox/addon/tabliss/">Tabliss</a> e <a href="https://addons.mozilla.org/it/firefox/addon/vivaldifox/">VivaldiFox</a></p> + +<p><strong>Aggiungere o rimuovere contenuti dalle pagine web</strong>: Potresti voler aiutare le persone a bloccare le pubblicità intrusive dalle pagine web, fornire l'accesso ad una guida di viaggio ogni volta che un paese o una città vengono menzionati in una pagina web, o ristrutturare il contenuto di una pagina per offrire un'esperienza di lettura coerente. Con la possibilità di poter accedere e aggiornare sia l'HTML che il CSS di una pagina, puoi aiutare gli utenti a fargli vedere il web nel modo in cui lo desiderano.</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/15807/ublock_origin_add_on.png" style="height: 480px; width: 640px;"></p> + +<p>Esempi: <a href="https://addons.mozilla.org/it/firefox/addon/ublock-origin/">uBlock Origin</a>, <a href="https://addons.mozilla.org/it/firefox/addon/reader/">Reader</a> e <a href="https://addons.mozilla.org/it/firefox/addon/toolbox-google-play-store/">Toolbox for Google Play Store™</a></p> + +<p><strong>Aggiungere strumenti e nuove funzionalità di navigazione</strong>: Aggiungi nuove funzionalità ad una taskboard, o generare immagini di codici QR da URL, da collegamenti ipertestuali, o dal testo di una pagina. Con le opzioni flessibili dell'UI e dal potenziale delle WebExtension API, puoi aggiungere facilmente nuove funzionalità ad un browser. Inoltre, puoi aumentare le caratteristiche e le funzionalità di qualsiasi sito web, anche se non è il tuo.</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/15806/QR_Code_Image_Generator_add_on.png"></p> + +<p>Esempi: <a href="https://addons.mozilla.org/it/firefox/addon/qr-code-image-generator/">QR Code Image Generator</a>, <a href="https://addons.mozilla.org/it/firefox/addon/swimlanes-for-trello/">Swimlanes for Trello</a> e <a href="https://addons.mozilla.org/it/firefox/addon/tomato-clock/">Tomato Clock</a></p> + +<p><strong>Giochi</strong>: Offri giochi per computer tradizionali, con la possibilità di giocare offline, ma anche esplorare nuove possibilità di gioco, ad esempio, incorporando il gameplay nella navigazione di tutti i giorni.</p> + +<p> <img alt="" src="https://mdn.mozillademos.org/files/15805/Asteroids_in_Popup_add_on%20.png" style="height: 438px; width: 700px;"></p> + +<p>Esempi: <a href="https://addons.mozilla.org/it/firefox/addon/asteroids-in-popup/">Asteroids in Popup</a>, <a href="https://addons.mozilla.org/it/firefox/addon/solitaire-card-game-new-tab/">Solitaire Card Game New Tab</a> e <a href="https://addons.mozilla.org/it/firefox/addon/2048-prime/">2048 Prime</a></p> + +<p><strong>Aggiungere strumenti di sviluppo</strong>: Puoi fornire strumenti di sviluppo web per il tuo lavoro, o hai sviluppato una tecnica utile o un approccio allo sviluppo web che vuoi condividere. In entrambi i casi, puoi migliorare gli strumenti di sviluppo integrati in Firefox aggiungendo una nuova scheda alla barra di strumenti per sviluppatori.</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/15804/aXe_Developer_Tools_add_on.png" style="height: 261px; width: 700px;"></p> + +<p>Esempi: <a href="https://addons.mozilla.org/it/firefox/addon/web-developer/">Web Developer</a>, <a href="https://addons.mozilla.org/it/firefox/addon/react-devtools/">Web React Developer Tools</a> e <a href="https://addons.mozilla.org/it/firefox/addon/axe-devtools/">aXe Developer Tools</a></p> + +<p>Le estensioni per Firefox vengono create utilizzando le WebExtension API, un sistema cross-browser per lo sviluppo delle estensioni. In gran parte, l'API è compatibile con l'<a class="external external-icon" href="https://developer.chrome.com/extensions">API delle estensioni</a> supportato da Google Chrome e Opera. Le estensioni scritte per questi browser in molti casi funzioneranno in Firefox o Microsoft Edge soltanto con poche <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Porting_a_Google_Chrome_extension">modifiche</a>. L'API è anche completamente compatibile con <a href="https://developer.mozilla.org/it/Firefox/Multiprocess_Firefox">multiprocess Firefox</a>.</p> + +<p>Se hai idee, domande, o hai bisogno di aiuto per migrare un add-on ad una WebExtension, puoi raggiungerci nella<a class="external external-icon" href="https://mail.mozilla.org/listinfo/dev-addons">dev-addons mailing list</a> o in <a href="irc://irc.mozilla.org/extdev">#extdev</a> su <a class="external external-icon" href="https://wiki.mozilla.org/IRC">IRC</a>.</p> + +<h2 id="E_adesso">E adesso?</h2> + +<ul> + <li>Segui passo dopo passo lo sviluppo di una semplice estensione nella <a href="/it/docs/Mozilla/Add-ons/WebExtensions/Your_first_WebExtension">Tua prima estensione</a>.</li> + <li>Scopri la struttura di un'estensione in <a href="/it/docs/Mozilla/Add-ons/WebExtensions/Anatomy_of_a_WebExtension">Anatomia di una estensione</a>.</li> + <li>Prova alcuni esempi di estensione in <a href="/it/Add-ons/WebExtensions/Examples">Esempi di estensioni</a>.</li> +</ul> diff --git a/files/it/mozilla/add-ons/webextensions/index.html b/files/it/mozilla/add-ons/webextensions/index.html new file mode 100644 index 0000000000..078f67268d --- /dev/null +++ b/files/it/mozilla/add-ons/webextensions/index.html @@ -0,0 +1,88 @@ +--- +title: WebExtensions +slug: Mozilla/Add-ons/WebExtensions +translation_of: Mozilla/Add-ons/WebExtensions +--- +<div>{{AddonSidebar}}</div> + +<p>Le WebExtensions sono un metodo cross-browser per sviluppare add-on. In larga parte il metodo è compatibile con le <a class="external-icon external" href="https://developer.chrome.com/extensions">extension API</a> supportate da Google, Chrome e Opera. Le estensioni create per questi browsers funzioneranno con <a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Porting_from_Google_Chrome">poche modifiche</a> su Firefox o <a href="https://developer.microsoft.com/en-us/microsoft-edge/platform/documentation/extensions/">Microsoft Edge</a>. Le API sono anche completamente compatibili con <a href="https://developer.mozilla.org/en-US/Firefox/Multiprocess_Firefox">Firefox multiprocesso</a>.</p> + +<p>Vogliamo continuare ad estendere le API per supportare le necessità degli sviluppatori di add-ons, perciò se hai idee, ci piacerebbe sentirle. Contattaci su <a href="https://mail.mozilla.org/listinfo/dev-addons">dev-addons mailing list</a> o <a href="irc://irc.mozilla.org/webextensions">#webextensions</a> su <a href="https://wiki.mozilla.org/IRC">IRC</a>.</p> + +<div class="row topicpage-table"> +<div class="section"> +<h3 id="Iniziare">Iniziare</h3> + +<ul> + <li><a href="/it/Add-ons/WebExtensions/Cosa_sono_le_WebExtensions">Cosa sono le WebExtensions?</a></li> + <li><a href="/en-US/Add-ons/WebExtensions/Your_first_WebExtension">La tua prima WebExtension</a></li> + <li><a href="/en-US/Add-ons/WebExtensions/Your_second_WebExtension">La seconda WebExtension</a></li> + <li><a href="/en-US/Add-ons/WebExtensions/Anatomy_of_a_WebExtension">Anatomia di una WebExtension</a></li> + <li><a href="/en-US/Add-ons/WebExtensions/Examples">Esempi di WebExtensions</a></li> +</ul> + +<h3 id="Come_fare">Come fare</h3> + +<ul> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Intercept_HTTP_requests">Rilevare richieste HTTP</a></li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Modify_a_web_page">Modificare una pagina web</a></li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Add_a_button_to_the_toolbar">Aggiungere un bottone alla toolbar</a></li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Implement_a_settings_page">Creare una pagina impostazioni</a></li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Interact_with_the_clipboard">Interagire con la clipboard</a></li> + <li>Manipolare le tabs del browser</li> + <li>Accedere e modificare bookmarks</li> + <li>Accedere e modificare cookies</li> +</ul> + +<h3 id="Concetti">Concetti</h3> + +<ul> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API">JavaScript API overview</a></li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/User_interface_components">Componenti UI</a></li> + <li><a href="/en-US/Add-ons/WebExtensions/Content_scripts">Scripts contenuto</a></li> + <li><a href="/en-US/Add-ons/WebExtensions/Match_patterns">Match di patterns</a></li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Internationalization">Internationazionalizzazione</a></li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Content_Security_Policy">Policy di Sicurezza dei Contenuti</a></li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Native_messaging">Messaging Nativo</a></li> +</ul> + +<h3 id="Porting">Porting</h3> + +<ul> + <li><a href="/en-US/Add-ons/WebExtensions/Porting_from_Google_Chrome">Porting di una estensione Google Chrome</a></li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Porting_a_legacy_Firefox_add-on">Porting di un add-on Firefox</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">Comparazione con la Add-on SDK</a></li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Comparison_with_XUL_XPCOM_extensions">Comparazione con le estensioni XUL/XPCOM</a></li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Chrome_incompatibilities">Incompatibilità di Chrome</a></li> +</ul> + +<h3 id="Firefox_workflow">Firefox workflow</h3> + +<ul> + <li><a href="/en-US/Add-ons/WebExtensions/Temporary_Installation_in_Firefox">Installazione</a></li> + <li><a href="/en-US/Add-ons/WebExtensions/Debugging">Debugging</a></li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Getting_started_with_web-ext">Iniziare con la web-ext</a></li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/web-ext_command_reference">web-ext reference comandi</a></li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/WebExtensions_and_the_Add-on_ID">WebExtensions e la Add-on ID</a></li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Publishing_your_WebExtension">Pubblicare la tua WebExtension</a></li> +</ul> +</div> + +<div class="section"> +<h3 id="Riferimenti">Riferimenti</h3> + +<ul> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API">JavaScript API overview</a></li> + <li><a href="/en-US/Add-ons/WebExtensions/Browser_support_for_JavaScript_APIs">Compatibilità dei Browser con le APIs JavaScript</a></li> +</ul> + +<h4 id="JavaScript_APIs">JavaScript APIs</h4> + +<div class="twocolumns">{{ ListSubpages ("/en-US/Add-ons/WebExtensions/API") }}</div> + +<h4 id="Manifest_keys">Manifest keys</h4> + +<div class="twocolumns">{{ ListSubpages ("/en-US/Add-ons/WebExtensions/manifest.json") }}</div> +</div> +</div> diff --git a/files/it/mozilla/add-ons/webextensions/la_tua_prima_webextension/index.html b/files/it/mozilla/add-ons/webextensions/la_tua_prima_webextension/index.html new file mode 100644 index 0000000000..fac1b12e36 --- /dev/null +++ b/files/it/mozilla/add-ons/webextensions/la_tua_prima_webextension/index.html @@ -0,0 +1,153 @@ +--- +title: La tua prima estensione +slug: Mozilla/Add-ons/WebExtensions/La_tua_prima_WebExtension +tags: + - Guida + - WebExtension +translation_of: Mozilla/Add-ons/WebExtensions/Your_first_WebExtension +--- +<div>{{AddonSidebar}}</div> + +<p>In questo articolo creeremo passo dopo passo un'estensione per Firefox, dall'inizio alla fine. L'estensione aggiungerà un bordo rosso a tutte le pagine caricate da "mozilla.org" o da un suo sottodominio.</p> + +<p>Il codice sorgente di questo esempio è su GitHub: <a href="https://github.com/mdn/webextensions-examples/tree/master/borderify">https://github.com/mdn/webextensions-examples/tree/master/borderify</a>.</p> + +<p>Per prima cosa hai bisogno di Firefox versione 45 o superiore.</p> + +<h2 id="Scrittura_dell'estensione">Scrittura dell'estensione</h2> + +<p>Crea una cartella e posizionati al suo interno:</p> + +<pre class="brush: bash">mkdir borderify +cd borderify</pre> + +<h3 id="manifest.json">manifest.json</h3> + +<p>Ora, crea un nuovo file chiamato "manifest.json" all'interno della cartella "borderify". Scrivi nel file il seguente contenuto:</p> + +<pre class="brush: json">{ + + "manifest_version": 2, + "name": "Borderify", + "version": "1.0", + + "description": "Aggiunge un bordo rosso a tutte le pagine caricate da mozilla.org.", + + "icons": { + "48": "icons/border-48.png" + }, + + "content_scripts": [ + { + "matches": ["*://*.mozilla.org/*"], + "js": ["borderify.js"] + } + ] + +}</pre> + +<ul> + <li>Le prime tre chiavi: <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>, and <code><a href="/en-US/Add-ons/WebExtensions/manifest.json/version">version</a></code>, sono obbligatorie e contengono metadati base per l'estensione.</li> + <li><code><a href="/en-US/Add-ons/WebExtensions/manifest.json/description">description</a></code> è opzionale, ma raccomandata: viene mostrata in Gestione componenti aggiuntivi.</li> + <li><code><a href="/en-US/Add-ons/WebExtensions/manifest.json/icons">icons</a></code> è opzionale, ma raccomandata: ti permette di specificare un'icona per l'estenzione che verrà mostrata in Gestione componenti aggiuntivi.</li> +</ul> + +<p>La chiave più interessante è <code><a href="/en-US/Add-ons/WebExtensions/manifest.json/content_scripts">content_scripts</a></code>, dice a Firefox di caricare uno script nelle pagine Web i cui URL corrispondono ad uno schema specifico. In questo caso, chiediamo a Firefox di caricare uno script chiamato "borderify.js" in tutto le pagine HTTP o HTTPS fornite da "mozilla.org" o dai suoi sottodomini.</p> + +<ul> + <li><a href="/en-US/Add-ons/WebExtensions/Content_scripts">Ulteriori informazioni sugli script di contenuto.</a></li> + <li><a href="/en-US/Add-ons/WebExtensions/Match_patterns">Ulteriori informazioni sugli schemi di corrispondenza</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">In alcune situazioni è necessario specificare un ID per la propria estensione</a>. Se devi specificare l'ID dell'estensione, includi la chiave <code><a href="/en-US/Add-ons/WebExtensions/manifest.json/applications">applications</a></code> nel file <code>manifest.json</code> e imposta la sua proprietà <code>gecko.id</code>:</p> + +<pre class="brush: json">"applications": { + "gecko": { + "id": "borderify@example.com" + } +}</pre> +</div> + +<h3 id="iconsborder-48.png">icons/border-48.png</h3> + +<p>L'estensione dovrebbe avere un'icona. Essa verrà mostrata accanto alla lista delle estensioni in Gestione componenti aggiuntivi. Il file manifest.json ha dichiarato di avere un'icona a "icons/border-48.png".</p> + +<p>Crea la cartella "icons" all'interno della cartella "borderify". Salva un'icona al suo interno chiamata "border-48.png". Puoi usare <a href="https://github.com/mdn/webextensions-examples/blob/master/borderify/icons/border-48.png">la stessa del nostro esempio</a>, presa dal set di icone di Google Material Design, e usata secondo i termini della licenza <a href="https://creativecommons.org/licenses/by-sa/3.0/">Creative Commons Attribution-ShareAlike</a>.</p> + +<p>Se scegli di usare la tua icona, dovrebbe essere di 48x48 pixel. Potresti anche fornire un'icona di 96x96 pixel, per i display ad alta risoluzione. Se la aggiungi, dovrà essere specificata con la proprietà <code>96</code> dell'oggetto <code>icons</code> nel file manifest.json:</p> + +<pre class="brush: json">"icons": { + "48": "icons/border-48.png", + "96": "icons/border-96.png" +}</pre> + +<p>In alternativa, potresti fornite un file SVG che verrà ridimensionato correttamente. (Comunque: se utilizzi SVG e la tua icona comprende del testo, puoi utilizzare lo strumento "converti in percorso" dell'editor SVG per appiattire il testo, in modo da poter essere ridimensionato con una dimensione/posizione coerente.)</p> + +<ul> + <li><a href="/en-US/Add-ons/WebExtensions/manifest.json/icons">Ulteriori informazioni per specificare le icone.</a></li> +</ul> + +<h3 id="borderify.js">borderify.js</h3> + +<p>Infine, crea un file chiamato "borderify.js" all'interno della cartella "borderify" e scrivici questo contenuto:</p> + +<pre class="brush: js">document.body.style.border = "5px solid red";</pre> + +<p>Questo script verrà caricato in tutte le pagine che corrispondono allo schema specificato nella chiave <code>content_scripts</code> nel file manifest.json. Lo script ha accesso diretto al documento, proprio come gli script caricati normalmente dalla pagina.</p> + +<ul> + <li><a href="/en-US/Add-ons/WebExtensions/Content_scripts">Ulteriori informazioni sugli schemi di corrispondenza.</a></li> +</ul> + +<h2 id="Provala">Provala</h2> + +<p>Innanzitutto, controlla di avere i file giusti nei posti giusti:</p> + +<pre>borderify/ + icons/ + border-48.png + borderify.js + manifest.json</pre> + +<h3 id="Installazione">Installazione</h3> + +<p>Apri "about:debugging" in Firefox, clicca "Carica comp. aggiuntivo temporaneo" e seleziona un qualsiasi file nella cartella dell'estensione:</p> + +<p>{{EmbedYouTube("cer9EUKegG4")}}</p> + +<p>L'estensione verrà ora installata e rimarrà finché non riavvii Firefox.</p> + +<p>In alternativa, puoi eseguire l'estensione da riga di comanto utilizzando lo strumento <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Getting_started_with_web-ext">web-ext</a>.</p> + +<h3 id="Prova">Prova</h3> + +<p>Ora prova a visitare una pagina di "mozilla.org", dovresti vedere un bordo rosso intorno alla pagina:</p> + +<p>{{EmbedYouTube("rxBQl2Z9IBQ")}}</p> + +<div class="note"> +<p>Non provarlo su addons.mozilla.org, però! Gli script di contenuto sono attualmente bloccatu su quel dominio.</p> +</div> + +<p>Prova a sperimentare un po. Modifica lo script per far cambiare il colore del bordo, o fai qualcosaltro al contenuto della pagina. Salva lo script e ricarica i file dell'estensione cliccando il pulsante "Ricarica" in about:debugging. Puoi vedere subito i cambiamenti:</p> + +<p>{{EmbedYouTube("NuajE60jfGY")}}</p> + +<ul> + <li><a href="/en-US/Add-ons/WebExtensions/Temporary_Installation_in_Firefox">Ulteriori informazioni sul caricamento delle estensioni</a></li> +</ul> + +<h2 id="Impacchettamento_e_pubblicazione">Impacchettamento e pubblicazione</h2> + +<p>Per far utilizzare la tua estensione ad altre persone, devi impacchettarla e inviarla a Mozilla per firmarla. Per saperne di più, guarda <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Publishing_your_WebExtension">"Pubblicazione della tua estensione"</a>.</p> + +<h2 id="E_adesso">E adesso?</h2> + +<p>Ora hai un'idea del processo di sviluppo di una WebExtension per firefox, prosegui con:</p> + +<ul> + <li><a href="/en-US/Add-ons/WebExtensions/Anatomy_of_a_WebExtension">l'anatomia di un'estensione</a></li> + <li><a href="/en-US/Add-ons/WebExtensions/Your_second_WebExtension">scrivere un'estensione più complessa</a></li> + <li><a href="/en-US/Add-ons/WebExtensions/API">API Javascript disponibili per le estensioni.</a></li> +</ul> diff --git a/files/it/mozilla/add-ons/webextensions/script_contenuto/index.html b/files/it/mozilla/add-ons/webextensions/script_contenuto/index.html new file mode 100644 index 0000000000..4ee11316c5 --- /dev/null +++ b/files/it/mozilla/add-ons/webextensions/script_contenuto/index.html @@ -0,0 +1,494 @@ +--- +title: Script di contenuto +slug: Mozilla/Add-ons/WebExtensions/Script_contenuto +tags: + - WebExtensions +translation_of: Mozilla/Add-ons/WebExtensions/Content_scripts +--- +<div>{{AddonSidebar}}</div> + +<p><span class="tlid-translation translation" lang="it"><span title="">Uno </span></span> script di contenuto <span class="tlid-translation translation" lang="it"><span title=""> è una parte dell'estensione che viene eseguita nel contesto di una particolare pagina Web (al contrario degli script di sfondo che fanno parte dell'estensione o degli script che fanno parte del sito stesso, come quelli caricati utilizzando l'elemento</span></span> {{HTMLElement("script")}}).</p> + +<p><a href="/en-US/Add-ons/WebExtensions/Background_scripts">Gli script in Background</a> possono accedere a tutte le <a href="/en-US/Add-ons/WebExtensions/API">WebExtension JavaScript APIs</a>, <span class="tlid-translation translation" lang="it"><span title="">ma non possono accedere direttamente al contenuto delle pagine Web.</span> <span title="">Quindi, se la tua estensione ha bisogno di farlo, hai bisogno degli script di contenuto</span></span> <span class="tlid-translation translation" lang="it"><span title="">.</span></span></p> + +<p><span class="tlid-translation translation" lang="it"><span title="">Proprio come gli script caricati da normali pagine web, gli script di contenuto possono leggere e modificare il contenuto delle loro pagine usando le API DOM standard.</span></span></p> + +<p><span class="tlid-translation translation" lang="it"><span title="">Gli script di contenuto possono accedere solo a un piccolo sottoinsieme delle API di WebExtension, ma possono comunicare con script in background utilizzando un sistema di messaggistica e quindi accedere indirettamente alle API di WebExtension.</span></span></p> + +<p><span class="tlid-translation translation" lang="it"><span title="">Gli script di contenuto possono accedere solo a</span></span> <a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Content_scripts#WebExtension_APIs">un piccolo sottoinsieme delle WebExtension APIs</a>, ma possono <a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Content_scripts#Communicating_with_background_scripts">comunicare con gli script in background</a> <span class="tlid-translation translation" lang="it"><span title="">utilizzando un sistema di messaggistica e quindi accedere indirettamente alle</span></span> WebExtension APIs.</p> + +<div class="note"> +<p><span class="tlid-translation translation" lang="it"><span title="">Nota che gli script di contenuto sono bloccati nei seguenti domini:</span></span></p> + +<ul style="display: grid;"> + <li>accounts-static.cdn.mozilla.net</li> + <li>accounts.firefox.com</li> + <li>addons.cdn.mozilla.net</li> + <li>addons.mozilla.org</li> + <li>api.accounts.firefox.com</li> + <li>content.cdn.mozilla.net</li> + <li>content.cdn.mozilla.net</li> + <li>discovery.addons.mozilla.org</li> + <li>input.mozilla.org</li> + <li>install.mozilla.org</li> + <li>oauth.accounts.firefox.com</li> + <li>profile.accounts.firefox.com</li> + <li>support.mozilla.org</li> + <li>sync.services.mozilla.com</li> + <li>testpilot.firefox.com</li> +</ul> + +<p><span class="tlid-translation translation" lang="it"><span title="">Se provi a iniettare uno script di contenuto in una pagina in uno di questi domini, l'operazione fallirà e la pagina registrerà un errore</span></span> <a href="/en-US/docs/Web/HTTP/CSP">CSP</a>.</p> + +<p>Poiché queste restrizioni includono addons.mozilla.org, gli utenti possono essere tentati di utilizzare l'estensione immediatamente dopo l'installazione, solo per scoprire che non funziona! È possibile aggiungere un avviso appropriato o una <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/onboarding_upboarding_offboarding_best_practices">pagina di inserimento</a> per spostare gli utenti da addons.mozilla.org.</p> +</div> + +<div class="note"> +<p><span class="tlid-translation translation" lang="it"><span title="">Valori aggiunti all'ambito globale di uno script di contenuto con</span></span> <code>var foo</code> o <code>window.foo = "bar"</code> potrebbe scomparire a causa di un bug <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1408996">1408996</a>.</p> +</div> + +<h2 id="Caricamento_di_script_di_contenuto">Caricamento di script di contenuto</h2> + +<p><span class="tlid-translation translation" lang="it"><span title="">Puoi caricare uno script di contenuto in una pagina web in tre modi:</span></span></p> + +<p>Al momento dell'installazione, nelle pagine che corrispondono ai pattern URL: utilizzando la chiave content_scripts in manifest.json, è possibile chiedere al browser di caricare uno script di contenuto ogni volta che il browser carica una pagina il cui URL corrisponde a un determinato pattern.</p> + +<ol> + <li><strong>Al momento dell'installazione, nelle pagine che corrispondono al pattern URL:</strong> utilizzando il tag <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/content_scripts">content_scripts</a></code> nel vostro file manifest.json, è possibile chiedere al browser di caricare uno script di contenuto ogni volta che il browser carica una pagina il cui URL <a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Match_patterns">corrisponde ad un determinato pattern</a></li> + <li><strong>In fase di runtime, nelle pagine che corrispondono a un determinato pattern URL:</strong> utilizzando {{WebExtAPIRef("contentScripts")}} API, <span class="tlid-translation translation" lang="it"><span title="">potete chiedere al browser di caricare uno script di contenuto ogni volta che il browser carica una pagina il cui URL</span></span> <a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Match_patterns">corrisponde ad un determinato pattern</a>. Questo è un metodo possibile (1), <span class="tlid-translation translation" lang="it"><span title="">tranne che è possibile aggiungere e rimuovere script di contenuto in fase di esecuzione</span></span>.</li> + <li><strong>In fase di runtime, in specifiche schede:</strong> utilizzando le <code><a href="/en-US/Add-ons/WebExtensions/API/Tabs/executeScript">tabs.executeScript()</a></code> API, è possibile caricare uno script di contenuto in una scheda specifica ogni volta che si desidera: ad esempio, in risposta all'utente che fa clic su <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Browser_action">una azione del browser</a>.</li> +</ol> + +<p>Esiste un solo ambito globale<em> per frame e per estensione</em>. Ciò significa che le variabili di uno script di contenuto possono essere direttamente accessibili da un altro script di contenuto, indipendentemente dal modo in cui è stato caricato.</p> + +<p><span class="tlid-translation translation" lang="it"><span title="">Utilizzando i metodi (1) e (2), è possibile caricare gli script solo in pagine i cui URL possono essere rappresentati utilizzando un</span></span> <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Match_patterns">pattern di confronto</a>.</p> + +<p><span class="tlid-translation translation" lang="it"><span title="">Usando il metodo (3), puoi anche caricare script in pagine contenute nella tua estensione, ma non puoi caricare script in pagine del browser privilegiate (come "about: debugging" o "about: addons").</span></span></p> + +<h2 id="Ambiente_degli_script_di_contenuto"><span class="tlid-translation translation" lang="it"><span title="">Ambiente degli script di contenuto</span></span></h2> + +<h3 id="accesso_al_DOM">accesso al DOM</h3> + +<p>Gli script di contenuto possono accedere e modificare il DOM della pagina, proprio come possono fare i normali script di pagina. Possono anche vedere eventuali modifiche apportate al DOM tramite script di pagina.</p> + +<p>Tuttavia, gli script di contenuto ottengono una "visualizzazione originale del DOM". Questo significa:</p> + +<ul> + <li>Gli script di contenuto non possono vedere le variabili JavaScript definite dagli script di pagina.</li> + <li>Se uno script di pagina ridefinisce una proprietà DOM incorporata, lo script di contenuto vedrà la versione originale della proprietà, non la versione ridefinita.</li> +</ul> + +<p>In Firefox, questo comportamento è chiamato <a href="/en-US/docs/Xray_vision">Xray vision</a>.</p> + +<p>Consideriamo una pagina web come questa:</p> + +<pre class="brush: html"><!DOCTYPE html> +<html> + <head> + <meta http-equiv="content-type" content="text/html; charset=utf-8" /> + </head> + + <body> + <script src="page-scripts/page-script.js"></script> + </body> +</html></pre> + +<p>Lo script "page-script.js" esegue:</p> + +<pre class="brush: js">// page-script.js + +// add a new element to the DOM +var p = document.createElement("p"); +p.textContent = "This paragraph was added by a page script."; +p.setAttribute("id", "page-script-para"); +document.body.appendChild(p); + +// define a new property on the window +window.foo = "This global variable was added by a page script"; + +// redefine the built-in window.confirm() function +window.confirm = function() { + alert("The page script has also redefined 'confirm'"); +}</pre> + +<p><span class="tlid-translation translation" lang="it"><span title="">Ora un'estensione inietta uno script di contenuto nella pagina:</span></span></p> + +<pre class="brush: js">// content-script.js + +// can access and modify the DOM +var pageScriptPara = document.getElementById("page-script-para"); +pageScriptPara.style.backgroundColor = "blue"; + +// can't see page-script-added properties +console.log(window.foo); // undefined + +// sees the original form of redefined properties +window.confirm("Are you sure?"); // calls the original window.confirm()</pre> + +<p>Lo stesso vale al contrario: gli script di pagina non possono vedere le proprietà JavaScript aggiunte dagli script di contenuto.</p> + +<p>Ciò significa che gli script di contenuto possono contare su proprietà DOM che si comportano in modo prevedibile, senza preoccuparsi delle sue variabili che si scontrano con le variabili dello script di pagina.</p> + +<p>Una conseguenza pratica di questo comportamento è che uno script di contenuto non avrà accesso a nessuna libreria JavaScript caricata dalla pagina. Ad esempio, se la pagina include jQuery, lo script di contenuto non sarà in grado di vederlo.</p> + +<p>Se uno script di contenuto desidera utilizzare una libreria JavaScript, la stessa libreria deve essere iniettata come script di contenuto insieme allo script di contenuto che vuole utilizzarlo:</p> + +<pre class="brush: json">"content_scripts": [ + { + "matches": ["*://*.mozilla.org/*"], + "js": ["jquery.js", "content-script.js"] + } +]</pre> + +<div class="blockIndicator note"> +<p><strong>Nota:</strong> Firefox <span class="tlid-translation translation" lang="it"><span title="">fornisce alcune API che consentono agli script di contenuto di accedere agli oggetti JavaScript creati dagli script di pagina e di esporre i propri oggetti JavaScript agli script di pagina.</span></span></p> + +<p>Vedere <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Sharing_objects_with_page_scripts">Condivisione di oggetti con script di pagina</a> per maggiori dettagli.</p> +</div> + +<h3 id="WebExtension_APIs">WebExtension APIs</h3> + +<p>Oltre alle API DOM standard, gli script di contenuto possono utilizzare le seguenti API WebExtension:</p> + +<p>Da <code><a href="/en-US/Add-ons/WebExtensions/API/extension">extension</a></code>:</p> + +<ul> + <li><code><a href="/en-US/Add-ons/WebExtensions/API/extension#getURL()">getURL()</a></code></li> + <li><code><a href="/en-US/Add-ons/WebExtensions/API/extension#inIncognitoContext">inIncognitoContext</a></code></li> +</ul> + +<p>Da <code><a href="/en-US/Add-ons/WebExtensions/API/runtime">runtime</a></code>:</p> + +<ul> + <li><code><a href="/en-US/Add-ons/WebExtensions/API/runtime#connect()">connect()</a></code></li> + <li><code><a href="/en-US/Add-ons/WebExtensions/API/runtime#getManifest()">getManifest()</a></code></li> + <li><code><a href="/en-US/Add-ons/WebExtensions/API/runtime#getURL()">getURL()</a></code></li> + <li><code><a href="/en-US/Add-ons/WebExtensions/API/runtime#onConnect">onConnect</a></code></li> + <li><code><a href="/en-US/Add-ons/WebExtensions/API/runtime#onMessage">onMessage</a></code></li> + <li><code><a href="/en-US/Add-ons/WebExtensions/API/runtime#sendMessage()">sendMessage()</a></code></li> +</ul> + +<p>Da <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/i18n">i18n</a></code>:</p> + +<ul> + <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/i18n/getMessage">getMessage()</a></code></li> + <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/i18n/getAcceptLanguages">getAcceptLanguages()</a></code></li> + <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/i18n/getUILanguage">getUILanguage()</a></code></li> + <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/i18n/detectLanguage">detectLanguage()</a></code></li> +</ul> + +<p>Da <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/menus">menus</a></code>:</p> + +<ul> + <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/menus/getTargetElement">getTargetElement</a></code></li> +</ul> + +<p>Tutto da <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/storage">storage</a></code>.</p> + +<h3 id="XHR_e_Fetch">XHR e Fetch</h3> + +<p>Gli script di contenuto posso fare delle normali richieste usando <code><a href="/en-US/docs/Web/API/XMLHttpRequest">window.XMLHttpRequest</a></code> e <code><a href="/en-US/docs/Web/API/Fetch_API">window.fetch()</a></code> APIs.</p> + +<p>Gli script di contenuto ottengono gli stessi privilegi per i cross-domain del resto dell'estensione: quindi se l'estensione ha richiesto l'accesso tra cross-domain per un dominio utilizzando il tag <code><a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/manifest.json/permissions">permissions</a></code> nel file manifest.json, i suoi script di contenuto ottengono l'accesso anche a quel dominio.</p> + +<p>Ciò si ottiene esponendo le istanze XHR e di recupero più privilegiate nello script di contenuto, che ha l'effetto collaterale di non impostare le intestazioni di <code><a href="/en-US/docs/Web/HTTP/Headers/Origin">Origin</a></code> e <code><a href="/en-US/docs/Web/HTTP/Headers/Referer">Referer</a></code> come una richiesta dalla pagina stessa, spesso è preferibile evitare che la richiesta sveli la sua natura trasversale. Dalla versione 58 in poi le estensioni che devono eseguire richieste che si comportano come se fossero inviate dal contenuto stesso possono utilizzare <code>content.XMLHttpRequest</code> e <code>content.fetch()</code> instead. Per le estensioni cross-browser, la loro presenza deve essere rilevata dalla funzione.</p> + +<h2 id="Communicazione_con_gli_script_di_background">Communicazione con gli script di background</h2> + +<p>Sebbene gli script di contenuto non possano utilizzare direttamente la maggior parte delle API di WebExtension, possono comunicare con gli script in background dell'estensione utilizzando le API di messaggistica e pertanto possono accedere indirettamente a tutte le API a cui possono accedere gli script in background.</p> + +<p>Esistono due schemi di base per la comunicazione tra gli script in background e gli script di contenuto: è possibile inviare messaggi una tantum, con una risposta opzionale, oppure è possibile impostare una connessione più longeva tra i due lati e utilizzare tale connessione per scambiare messaggi .</p> + +<h3 id="Messaggi_one-off">Messaggi one-off</h3> + +<p><span class="tlid-translation translation" lang="it"><span title="">Per inviare messaggi one-off, con una risposta opzionale, puoi utilizzare le seguenti API:</span></span></p> + +<table class="fullwidth-table standard-table"> + <thead> + <tr> + <th scope="row"> </th> + <th scope="col">In content script</th> + <th scope="col">In background script</th> + </tr> + </thead> + <tbody> + <tr> + <th scope="row">Invia un messaggi</th> + <td><code><a href="/en-US/Add-ons/WebExtensions/API/runtime/sendMessage">browser.runtime.sendMessage()</a></code></td> + <td><code><a href="/en-US/Add-ons/WebExtensions/API/Tabs/sendMessage">browser.tabs.sendMessage()</a></code></td> + </tr> + <tr> + <th scope="row">Ricevi un messaggio</th> + <td><code><a href="/en-US/Add-ons/WebExtensions/API/runtime/onMessage">browser.runtime.onMessage</a></code></td> + <td><code><a href="/en-US/Add-ons/WebExtensions/API/runtime/onMessage">browser.runtime.onMessage</a></code></td> + </tr> + </tbody> +</table> + +<p><span class="tlid-translation translation" lang="it"><span title="">Ad esempio, ecco uno script di contenuto che si pone in ascolto degli eventi click in una pagina web.</span><br> + <br> + <span title="">Se il clic era su un collegamento, invia la pagina di sfondo con l'URL di destinazione:</span></span></p> + +<pre class="brush: js">// content-script.js + +window.addEventListener("click", notifyExtension); + +function notifyExtension(e) { + if (e.target.tagName != "A") { + return; + } + browser.runtime.sendMessage({"url": e.target.href}); +}</pre> + +<p><span class="tlid-translation translation" lang="it"><span title="">Lo script in background ascolta questi messaggi e visualizza una notifica utilizzando le</span></span> <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/notifications">notifications</a></code> API:</p> + +<pre class="brush: js">// background-script.js + +browser.runtime.onMessage.addListener(notify); + +function notify(message) { + browser.notifications.create({ + "type": "basic", + "iconUrl": browser.extension.getURL("link.png"), + "title": "You clicked a link!", + "message": message.url + }); +} +</pre> + +<p>(Questo codice di esempio è una riduzione dell'esempio <a href="https://github.com/mdn/webextensions-examples/tree/master/notify-link-clicks-i18n">notify-link-clicks-i18n</a> che è possibile trovare su GitHub.)</p> + +<h3 id="Messaggi_connection-based">Messaggi connection-based</h3> + +<p>L'invio di messaggi one-off può risultare complicato se si scambiano molti messaggi tra uno script in background e uno script di contenuto. Quindi uno schema alternativo è stabilire una connessione più longeva tra i due contesti e usare questa connessione per scambiare messaggi.</p> + +<p><span class="tlid-translation translation" lang="it"><span title="">Ogni lato ha un oggetto</span></span> <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime/Port">runtime.Port</a></code>, <span class="tlid-translation translation" lang="it"><span title="">che può utilizzare per scambiare messaggi</span></span>.</p> + +<p>Per creare la connessione:</p> + +<ul> + <li>Un lato attende la connessione usando il metodo <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime/onConnect">runtime.onConnect</a></code></li> + <li>L'altro lato invoca: + <ul> + <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/connect">tabs.connect()</a></code> (se si connette con uno script di contenuto); o</li> + <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime/connect">runtime.connect()</a></code> (per connettersi a duno script di background).</li> + </ul> + </li> +</ul> + +<p>Questo metodo ritorna un oggetto di tipo <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime/Port">runtime.Port</a></code>.</p> + +<ul> + <li>il listener <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime/onConnect">runtime.onConnect</a></code> riceve un oggetto <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime/Port">runtime.Port</a></code>.</li> +</ul> + +<p>Dopo che tutti e due i lati hanno una porta di comunicazione<span class="tlid-translation translation" lang="it"><span title=""> possono:</span></span></p> + +<ul> + <li>inviare messaggi usando <code>runtime.Port.postMessage()</code>, e</li> + <li>ricevere messaggi usando <code>runtime.Port.onMessage()</code></li> +</ul> + +<p>Ad esempio, appena viene caricato, questo script di contenuto:</p> + +<ul> + <li>Si collega ad uno script di background</li> + <li>Memorizza la <code>Port</code> in una variabile <code>myPort</code></li> + <li>Ascolta i messaggi su <code>myPort</code>, e li visualizza nella console di log</li> + <li>Usa <code>myPort</code> per inviare messaggi allo script di background <span class="tlid-translation translation" lang="it"><span title="">quando l'utente fa clic sul documento</span></span></li> +</ul> + +<pre class="brush: js">// content-script.js + +var myPort = browser.runtime.connect({name:"port-from-cs"}); +myPort.postMessage({greeting: "hello from content script"}); + +myPort.onMessage.addListener(function(m) { + console.log("In content script, received message from background script: "); + console.log(m.greeting); +}); + +document.body.addEventListener("click", function() { + myPort.postMessage({greeting: "they clicked the page!"}); +});</pre> + +<p>Lo script di sfondo corrispondente:</p> + +<ul> + <li>attende i tentativi di connessione dallo script di contenuto</li> + <li>quando riceve un tentativo di connessione: + <ul> + <li>memorizza la porta in una variabile denominata <code>portFromCS</code></li> + <li>invia allo script del contenuto un messaggio utilizzando la porta</li> + <li> inizia ad ascoltare i messaggi ricevuti sulla porta e li invia al log della console</li> + </ul> + </li> + <li>invia messaggi allo script di contenuto, utilizzando <code>portFromCS</code>, quando l'utente fa clic sull'azione del browser dell'estensione</li> +</ul> + +<pre class="brush: js">// background-script.js + +var portFromCS; + +function connected(p) { + portFromCS = p; + portFromCS.postMessage({greeting: "hi there content script!"}); + portFromCS.onMessage.addListener(function(m) { + console.log("In background script, received message from content script"); + console.log(m.greeting); + }); +} + +browser.runtime.onConnect.addListener(connected); + +browser.browserAction.onClicked.addListener(function() { + portFromCS.postMessage({greeting: "they clicked the button!"}); +}); +</pre> + +<h4 id="Multipli_script_di_contenuto">Multipli script di contenuto</h4> + +<p><span class="tlid-translation translation" lang="it"><span title="">Se si dispone di più script di contenuto che comunicano contemporaneamente, è possibile memorizzare ciascuna connessione in un array.</span></span></p> + +<ul> +</ul> + +<pre class="brush: js">// background-script.js + +var ports = [] + +function connected(p) { + ports[p.sender.tab.id] = p + //... +} + +browser.runtime.onConnect.addListener(connected) + +browser.browserAction.onClicked.addListener(function() { + ports.forEach(p => { + p.postMessage({greeting: "they clicked the button!"}) + }) +}); +</pre> + +<ul> +</ul> + +<h2 id="Communicazione_con_la_pagina_web">Communicazione con la pagina web</h2> + +<p>Sebbene per impostazione predefinita gli script di contenuto non abbiano accesso agli oggetti creati dagli script di pagina, possono comunicare con gli script di pagina utilizzando la API DOM <code><a href="/en-US/docs/Web/API/Window/postMessage">window.postMessage</a></code> e <code><a href="/en-US/docs/Web/API/EventTarget/addEventListener">window.addEventListener</a></code>.</p> + +<p>Per esempio:</p> + +<pre class="brush: js">// page-script.js + +var messenger = document.getElementById("from-page-script"); + +messenger.addEventListener("click", messageContentScript); + +function messageContentScript() { + window.postMessage({ + direction: "from-page-script", + message: "Message from the page" + }, "*");</pre> + +<pre class="brush: js">// content-script.js + +window.addEventListener("message", function(event) { + if (event.source == window && + event.data && + event.data.direction == "from-page-script") { + alert("Content script received message: \"" + event.data.message + "\""); + } +});</pre> + +<p>Per un esempio completo e funzionante, <a href="https://mdn.github.io/webextensions-examples/content-script-page-script-messaging.html">visitate la pagina demo su GitHub</a> e seguite le istruzioni.</p> + +<div class="warning"> +<p><span class="tlid-translation translation" lang="it"><span title="">Nota che ogni volta che si interagisce con contenuti web non fidati in questo modo, è necessario fare molta attenzione.</span> <span title="">Le estensioni sono codici privilegiati che possono avere potenti funzionalità e pagine Web ostili possono facilmente ingannarli per accedere a tali funzionalità.</span><br> + <br> + <span title="">Per fare un esempio banale, supponiamo che il codice dello script del contenuto che riceve il messaggio faccia qualcosa del genere:</span></span> </p> + +<pre class="brush: js">window.addEventListener("message", function(event) { + if (event.source == window && + event.data.direction && + event.data.direction == "from-page-script") { + eval(event.data.message); + } +});</pre> + +<p>Ora lo script di pagina può eseguire qualsiasi codice con tutti i privilegi dello script di contenuto.</p> +</div> + +<h2 id="Usare_eval()_in_uno_script_di_contenuto">Usare <code>eval()</code> in uno script di contenuto</h2> + +<p>In Chrome, <code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval">eval()</a></code> <span class="tlid-translation translation" lang="it"><span title="">esegue sempre il codice nel contesto dello script del contenuto, non nel contesto della pagina.</span></span></p> + +<p>In Firefox:</p> + +<ul> + <li>Se usate <code>eval()</code>, esso esegue il codice nel contesto dello <strong>script di conteneto</strong>.</li> + <li>Se usate <code>window.eval()</code>, esso esegue il code nel contesto della <strong>pagina</strong>.</li> +</ul> + +<p>Per esempio, considerate uno script di contenuto simile a questo:</p> + +<pre class="brush: js">// content-script.js + +window.eval('window.x = 1;'); +eval('window.y = 2'); + +console.log(`In content script, window.x: ${window.x}`); +console.log(`In content script, window.y: ${window.y}`); + +window.postMessage({ + message: "check" +}, "*");</pre> + +<p>Questo codice crea semplicemente le variabili <code>x</code> e <code>y</code> usando <code>window.eval()</code> and <code>eval()</code>, quindi invia i loro valori al log della console, ed infine invia un messaggio alla pagina.</p> + +<p>Alla ricezione del messaggio, lo script della pagina invia le variabili al log della console:</p> + +<p> </p> + +<pre class="brush: js">window.addEventListener("message", function(event) { + if (event.source === window && event.data && event.data.message === "check") { + console.log(`In page script, window.x: ${window.x}`); + console.log(`In page script, window.y: ${window.y}`); + } +});</pre> + +<p>In Chrome, si ottine questo risultato:</p> + +<pre>In content script, window.x: 1 +In content script, window.y: 2 +In page script, window.x: undefined +In page script, window.y: undefined</pre> + +<p>In Firefox, invece, il risultato sarà il seguente:</p> + +<pre>In content script, window.x: undefined +In content script, window.y: 2 +In page script, window.x: 1 +In page script, window.y: undefined</pre> + +<p>Lo stesso vale per <code><a href="/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout">setTimeout()</a></code>, <code><a href="/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setInterval">setInterval()</a></code>, e <code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function()</a></code>.</p> + +<div class="blockIndicator warning"> +<p><span class="tlid-translation translation" lang="it"><span title="">Quando si esegue il codice nel contesto della pagina, è necessario prestare molta attenzione.</span> <span title="">L'ambiente della pagina è controllato da pagine Web potenzialmente dannose, che possono ridefinire gli oggetti con cui interagire per comportarsi in modi imprevisti:</span></span></p> + +<pre class="brush: js">// page.js redefines console.log + +var original = console.log; + +console.log = function() { + original(true); +} +</pre> + + +<pre class="brush: js">// content-script.js calls the redefined version + +window.eval('console.log(false)'); +</pre> +</div> diff --git a/files/it/mozilla/add-ons/webextensions/user_interface/index.html b/files/it/mozilla/add-ons/webextensions/user_interface/index.html new file mode 100644 index 0000000000..bfc48bdc9e --- /dev/null +++ b/files/it/mozilla/add-ons/webextensions/user_interface/index.html @@ -0,0 +1,89 @@ +--- +title: Interfaccia utente +slug: Mozilla/Add-ons/WebExtensions/user_interface +translation_of: Mozilla/Add-ons/WebExtensions/user_interface +--- +<div>{{AddonSidebar}}</div> + +<p>Le estensioni che usa le API delle WebExtension sono fornite con diverse opzioni dell'interfaccia utente che possono aggiungere nuove funzioni all'utente. Un elenco di queste opzioni è presente di seguito, in questa sezione è presente una descrizione dettagliata di ogni opzione.</p> + +<div class="note"> +<p>Per consigli sull'utilizzo di questi componenti UI per permettere un migliore utilizzo, da parte dell'utente, della vostra estensione, guardate l'articolo <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/User_experience_best_practices">User experience best practices</a>.</p> +</div> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">UI option</th> + <th scope="col">Description</th> + <th scope="col" style="width: 350px;">Example</th> + </tr> + </thead> + <tbody> + <tr> + <td><a href="/Add-ons/WebExtensions/user_interface/Browser_action">Toolbar button</a> (browser action)</td> + <td>Un pulsante nella barra degli strumenti del browser che invia un evento all'estensione quando si fa clic sul pulsante. Per impostazione predefinita, il pulsante è visibile in tutte le schede.</td> + <td><img alt="Example showing a toolbar button (browser action)." src="https://mdn.mozillademos.org/files/15751/browser-action.png" style="height: 364px; width: 700px;"></td> + </tr> + <tr> + <td>Toolbar button with a <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Popups">popup</a></td> + <td><span class="tlid-translation translation" lang="it"><span title="">Una finestra popup che si attiva facendo clic su un pulsante nella barra degli strumenti del browser.</span> la finestra<span title=""> popup è definita in un documento HTML che gestisce l'interazione con l'utente.</span></span></td> + <td><img alt="Example of the pop-up on a toolbar button" src="https://mdn.mozillademos.org/files/15753/popup-shadow.png" style="height: 624px; width: 700px;"></td> + </tr> + <tr> + <td><a href="/Add-ons/WebExtensions/user_interface/Page_actions">Address bar button</a> (page action)</td> + <td><span class="tlid-translation translation" lang="it"><span title="">Un pulsante nella barra degli indirizzi del browser che invia un evento all'estensione quando si fa clic.</span> <span title="">Per impostazione predefinita, il pulsante è nascosto in tutte le schede.</span></span></td> + <td><img alt="Example showing an address bar button (page action) " src="https://mdn.mozillademos.org/files/15745/address_bar_button.png" style="height: 348px; width: 700px;"></td> + </tr> + <tr> + <td>Address bar button with a <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Popups">popup</a></td> + <td><span class="tlid-translation translation" lang="it"><span title="">Una finestra popup che si attiva facendo clic su un pulsante nella barra degli indirizzi del browser.</span> La<span title=""> finestra popup è definita in un documento HTML che gestisce l'interazione con l'utente.</span></span></td> + <td><img alt="Example of a popup on the address bar button" src="https://mdn.mozillademos.org/files/15747/page_action_popup.png" style="height: 524px; width: 700px;"></td> + </tr> + <tr> + <td><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Context_menu_items">Context menu item</a></td> + <td>Elementi del menu, caselle di controllo e pulsanti di opzione su uno o più menu di scelta rapida del browser. Inoltre, i menu possono essere strutturati aggiungendo separatori. Quando si fa clic su una voce del menu, un evento viene inviato all'estensione.</td> + <td><img alt="Example of content menu items added by a WebExtension, from the context-menu-demo example" src="https://mdn.mozillademos.org/files/15756/context_menu_example.png" style="height: 942px; width: 864px;"></td> + </tr> + <tr> + <td><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Sidebars">Sidebar</a></td> + <td> + <p dir="ltr"><span class="tlid-translation translation" lang="it"><span title="">Un documento HTML visualizzato accanto a una pagina Web, con l'opzione per contenuti unici per pagina.</span> <span title="">La barra laterale viene aperta quando viene installata l'estensione, quindi obbedisce alla selezione della visibilità della barra laterale dell'utente.</span> <span title="">L'interazione dell'utente all'interno della barra laterale è gestita dal suo documento HTML.</span></span></p> + </td> + <td><img alt="Example of a sidebar" src="https://mdn.mozillademos.org/files/15755/bookmarks-sidebar.png" style="height: 846px; width: 700px;"></td> + </tr> + <tr> + <td><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Options_pages">Options page</a></td> + <td>Una pagina che consente di definire le preferenze della vostra estensione che gli utenti possono modificare. L'utente può accedere a questa pagina dal gestore dei componenti aggiuntivi del browser.</td> + <td><img alt="Example showing the options page content added in the favorite colors example." src="https://mdn.mozillademos.org/files/15748/options_page.png"></td> + </tr> + <tr> + <td><a href="/Add-ons/WebExtensions/user_interface/Extension_pages">Extension page</a></td> + <td>Utilizzare le pagine Web incluse nell'estensione per fornire moduli, aiuto o qualsiasi altro contenuto richiesto, all'interno di finestre o schede.</td> + <td><img alt="Example of a simple bundled page displayed as a detached panel." src="https://mdn.mozillademos.org/files/15752/bundled_page_as_panel_small.png" style="height: 432px; width: 700px;"></td> + </tr> + <tr> + <td><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Notifications">Notification</a></td> + <td>Notifiche temporanee visualizzate all'utente tramite il meccanismo delle notifiche del sistema operativo sottostante. Invia un evento all'estensione quando l'utente fa clic su una notifica o quando una notifica si chiude (automaticamente o su richiesta dell'utente).</td> + <td><img alt="Example of an extension triggered system notification" src="https://mdn.mozillademos.org/files/15754/notify-shadowed.png" style="height: 294px; width: 780px;"></td> + </tr> + <tr> + <td><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Omnibox">Address bar suggestion</a></td> + <td>Offre suggerimenti personalizzati sulla barra degli indirizzi quando l'utente inserisce una parola chiave.</td> + <td><img alt="Example showing the result of the firefox_code_search WebExtension's customization of the address bar suggestions." src="https://mdn.mozillademos.org/files/15749/omnibox_example_small.png" style="height: 464px; width: 700px;"></td> + </tr> + <tr> + <td><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/devtools_panels">Developer tools panel</a></td> + <td>Una scheda con un documento HTML associato che viene visualizzato negli strumenti di sviluppo del browser.</td> + <td><img alt="Example showing the result of the firefox_code_search WebExtension's customization of the address bar suggestions." src="https://mdn.mozillademos.org/files/15746/developer_panel_tab.png" style="height: 224px; width: 700px;"></td> + </tr> + </tbody> +</table> + +<p>Le seguenti guide pratiche forniscono indicazioni dettagliate per la creazione di alcune di queste opzioni dell'interfaccia utente:</p> + +<ul> + <li><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Add_a_button_to_the_toolbar">Add a button to the toolbar</a></li> + <li><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Implement_a_settings_page">Implement a settings page</a></li> + <li><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Extending_the_developer_tools">Extending the developer tools</a></li> +</ul> diff --git a/files/it/mozilla/bugzilla/index.html b/files/it/mozilla/bugzilla/index.html new file mode 100644 index 0000000000..83c9832732 --- /dev/null +++ b/files/it/mozilla/bugzilla/index.html @@ -0,0 +1,58 @@ +--- +title: Bugzilla +slug: Mozilla/Bugzilla +tags: + - Bugzilla + - Developing Mozilla + - 'Developing_Mozilla:Tools' + - NeedsTranslation + - QA + - Tools + - TopicStub +translation_of: Mozilla/Bugzilla +--- +<p><a class="link-https" href="https://bugzilla.mozilla.org/">bugzilla.mozilla.org</a> (often abbreviated b.m.o) is Mozilla.org's bug-tracking system, a database for recording bugs and enhancement requests for Firefox, Thunderbird, SeaMonkey, Camino, and other mozilla.org projects.</p> + +<div class="row topicpage-table"> +<div class="section"> +<h2 class="Documentation" id="Documentation" name="Documentation">Documentation about B.m.o.</h2> + +<dl> + <dt><a href="/en-US/docs/What_to_do_and_what_not_to_do_in_Bugzilla" title="en/What_to_do_and_what_not_to_do_in_Bugzilla">What to do and what not to do in Bugzilla</a></dt> + <dd>Tips for how to use Bugzilla, as well as things you should avoid.</dd> + <dt><a class="link-https" href="https://bugzilla.mozilla.org/page.cgi?id=etiquette.html">Bugzilla etiquette</a></dt> + <dd>A guide to etiquette; this guide will help you understand how best to conduct yourself on b.m.o. and how using proper manners and civility will help ensure your problem gets solved sooner rather than later.</dd> + <dt><a href="https://www.mozilla.org/quality/help/beginning-duplicate-finding.html" title="https://www.mozilla.org/quality/help/beginning-duplicate-finding.html">How to tell if a bug has already been reported</a></dt> + <dd>It's useful (but not mandatory) for you to check if the problem you're reporting has been already tracked. This guide will help you do so.</dd> + <dt><a href="/en-US/docs/Mozilla/QA" title="/en-US/docs/Mozilla/QA">Quality assurance</a></dt> + <dd>Documentation about quality assurance at Mozilla.</dd> + <dt><a href="/en-US/docs/Mozilla/QA/Bug_writing_guidelines" title="/en-US/docs/Mozilla/QA/Bug_writing_guidelines">Bug writing guidelines</a></dt> + <dd>A guide to writing a good, understandable, bug that will be easily followed by the development team.</dd> + <dt><a href="/en-US/docs/Developer_Guide/How_to_Submit_a_Patch" title="/en-US/docs/Developer_Guide/How_to_Submit_a_Patch">How to submit a patch</a></dt> + <dd>If you've fixed a bug, or have implemented a new feature, you'll need to get your patch into the tree so it can become part of the product. This guide will teach you how!</dd> +</dl> + +<p><span class="alllinks"><a href="/en-US/docs/tag/Bugzilla" title="/en-US/docs/tag/CSS">View All...</a></span></p> +</div> + +<div class="section"> +<h2 id="Other_materials">Other materials</h2> + +<ul> + <li><a class="external" href="https://www.bugzilla.org/about/">An Introduction to Bugzilla</a></li> + <li><a class="external" href="http://blog.johnath.com/2010/02/04/bugzilla-for-humans">Bugzilla for humans</a></li> + <li><a class="external" href="https://bugzilla.mozilla.org/page.cgi?id=quicksearch.html">Bugzilla QuickSearch help page</a>. QuickSearch is a quick, easy, and very effective way of quickly querying bugzilla.</li> + <li><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Bugzilla/Testopia" title="https://developer.mozilla.org/en-US/docs/Mozilla/Bugzilla/Testopia">Testopia</a> - test case management extension</li> + <li><a class="external" href="https://www.bugzilla.org">bugzilla.org</a> - the project site</li> + <li>{{ interwiki('wikipedia', 'Bugzilla', 'wikipedia:Bugzilla') }} - general description of Bugzilla (not specific to Mozilla projects)</li> + <li><a href="https://wiki.mozilla.org/BMO">BMO on wiki.mozilla.org</a> - information about Mozilla's customized Bugzilla installation, including how to contribute to it</li> +</ul> + +<h2 class="Tools" id="Tools" name="Tools">Tools</h2> + +<ul> + <li><a href="https://fitzgen.github.io/bugzilla-todos/" title="https://harthur.github.io/bugzilla-todos/">Bugzilla Todos</a> lists review and flag requests, patches to check in, unfulfilled requests you made of other people, and assigned bugs.</li> + <li><a href="https://rawgit.com/leif81/bzkanban/master/index.html?product=Bugzilla&milestone=Bugzilla+6.0&assignee=&comments=false&site=https%3A%2F%2Fbugzilla.mozilla.org">Bz Kanban </a>is a board to visualize the status of bugs within a milestone.</li> +</ul> +</div> +</div> diff --git a/files/it/mozilla/bugzilla/testopia/index.html b/files/it/mozilla/bugzilla/testopia/index.html new file mode 100644 index 0000000000..a7b2105705 --- /dev/null +++ b/files/it/mozilla/bugzilla/testopia/index.html @@ -0,0 +1,165 @@ +--- +title: Testopia +slug: Mozilla/Bugzilla/Testopia +tags: + - Questo documento non ha tag +translation_of: Mozilla/Bugzilla/Testopia +--- +<p>Testopia è un "test case management system" cioè un "gestore per tenere traccia dei test" fornito come estensione di Bugzilla. E' stato progettato come tool generico permettendo di integrare i report dei difetti (bug reporting) nelle vostre prove. Benché progettato pensando al <em>Software Testing</em>, può essere usato per tenere traccia dei test su qualsiasi problematica del processo ingegneristico.</p> + +<h2 id="Testopia_2.5">Testopia 2.5</h2> + +<p>Questa versione supporta Bugzilla 4.2 e la bella notizia è che non richiede più di applicare correzioni (patch) a Bugzilla stesso. Se stai aggiornando Testopia da una precedente versione, per favore togli le correzioni precedentemente applicate prima di proseguire. Un'istallazione pulita richiede soltanto di scompattatare (untar) il pacchetto nella cartella radice di Bugzilla e lanciare (il solito) checksetup(.pl).<br> + I ringraziamenti vanno a LpSolit del gruppo di sviluppatori di Bugzilla che ha reso possibile ciò.</p> + +<h2 id="Testopia_2.4_-_Nota_importante!">Testopia 2.4 - Nota importante!</h2> + +<p>Se stai facendo un aggiornamento su un filesystem <em>case sensitive</em> (cioè che differenzia tra lettere maiuscole e minuscole), devi rimuovere la cartella testopia presente nella cartella delle estensioni (extensions) di Bugzilla . Se hai fatto delle modifiche sul codice sorgente di "testopia", devi farne il <em>merge (</em>riportare le stesse modifiche) nella nuova cartella "Testopia" (nota la T maiuscola). Se stai lavorando con un OS come Windows, che non differenzia tra maiuscole e minuscole, per prima cosa rinomina la vecchia cartella testopia (ad esempio testopia-old) e quindi scompatta la nuova distribuzione (tarball). Puoi ora fare il merge delle tue modifiche prima di cancellare la vecchia versione.</p> + +<p><strong>AVVERTENZA PER CHI USA LE API:</strong> l'utilizzo dei parametri posizionali è stato deprecato. D'ora in poi tutti i parametri andrebbero trasmessi in un hash (struct, dict, hashmap o comunque vi piaccia chiamare una chiave e il suo valore). Benché sia stato fatto tutto il possibile per continuare a supportare i parametri posizionali, vi preghiamo di prestare attenzione al fatto che alcune chiamate alle API potrebbero fallire se non viene adottato il nuovo approccio. Inoltre, nelle versioni future questo supporto potrebbe venir meno.</p> + +<p>Al solito si prega di fare un backup della propria istallazione prima di procedere ad una nuova installazione o aggiornamento.</p> + +<h2 id="Punti_di_integrazione_(condivisione)">Punti di integrazione (condivisione)</h2> + +<ul> + <li> + <p style="margin-bottom: 0in;">Testopia condivide con Bugzilla le strutture: prodotti, componenti, versioni, e pietre miliari per permettere di avere in una singola interfaccia di gestione gli stessi oggetti ad alto livello.</p> + </li> + <li> + <p style="margin-bottom: 0in;">Testopia permette agli utenti di autenticarsi grazie ai meccanismi propri di Bugzilla come i permessi di gruppo per limitare l'accesso in modifica degli oggetti dei test.</p> + </li> + <li> + <p style="margin-bottom: 0in;">Testopia permette agli utenti di allegare i difetti riscontrati (bugs) ai risultati dei "test case run" per una gestione centralizzata del processo di ingegenerizzazione del software.</p> + </li> +</ul> + +<h2 id="Peculiarità_della_versione_2.4_(Bugzilla_3.6.x)" style="margin-top: 0in; margin-bottom: 0in;">Peculiarità della versione 2.4 (Bugzilla 3.6.x)</h2> + +<ul> + <li>Supporto a Bugzilla 3.6</li> +</ul> + +<h2 id="Peculiarità_della_versione_2.3_(Bugzilla_3.4.x)" style="margin-top: 0in; margin-bottom: 0in;">Peculiarità della versione 2.3 (Bugzilla 3.4.x)</h2> + +<ul> + <li>Abilità a esportare in XML ed importaare test plans e figli</li> + <li>Abilità a esportare in CSV per i "test cases" e i risultati.</li> + <li>Nuova reportistica: caso peggiore e ricircolo</li> + <li>Gestione delle priorità sui singoli "case-runs"</li> + <li>Nuova funzionalità di clonazione</li> + <li>Utilizzo dell'ultima libreria Extjs 3.0</li> + <li>Conversione di Testopia in una vera estensione di Bugzilla</li> + <li>Bonifica di numerosi difetti</li> +</ul> + +<h2 id="Peculiarità_della_ver._2.2_(Bugzilla_3.2_e_3.0.x)" style="margin-top: 0in; margin-bottom: 0in;">Peculiarità della ver. 2.2 (Bugzilla 3.2 e 3.0.x)</h2> + +<p>Questa versione è un rilascio effettuato principalmente per stabilità e rendere compatibile Testopia con Bugzilla 3.2 and Bugzilla 3.0.6. Attenzione a scaricare il pacchetto corretto rispetto alla versione di Bugzilla in uso.</p> + +<p>Per l'istallazione seguire queste linee guida (vedere <a href="http://wiki.mozilla.org/Testopia:README">README</a> per i dettagli):</p> + +<ol> + <li>Untar il pacchettone Testopia 2.4 all'interno della vostra cartella (principale) di Bugzilla.</li> + <li>Applicare le correzioni sui files di Bugzilla.<br> + Nei sistemi Linux potreste fare così: + <p style="border: 1px solid red; padding: 3px; width: 250px;"><code><strong>patch -p0 -i extensions/testopia/patch-3.6</strong></code></p> + </li> + <li>Al termine lanciare il solito comando di Bugzilla "checksetup.pl"</li> +</ol> + +<p>Per aggiornare una istallazione esistente di Testopia si proceda come sopra <strong>avendo cura di togliere le vecchie correzioni PRIMA di scaricare i files. Se nell'occasione pensate anche di aggiornare Bugzilla completate questa attività prima di passare ad occuparvi di Testopia stesso.</strong></p> + +<p><code><strong>patch -p0 -R -i extensions/testopia/patch-<version></strong></code></p> + +<p>Dove <version> è la versione della correzione che avete applicato (versione di Bugzilla).</p> + +<h2 id="Presupposti">Presupposti</h2> + +<p>Durante lo sviluppo abbiamo deciso di utilizzare come riferimento l'ultima versione stabile di Bugzilla (attualmente la 3.4). Questo ci ha dato una buona base di partenza per il nostro lavoro. Centrare l'obiettivo nello sviluppo di plugins ed estensioni è arduo proprio come colpire un bersaglio in movimento. Questo approccio permette di traguardare nuove funzionalità spesso in anticipo sui tempi. Quindi la compatibilità col passato può essere sacrificata per mancanza di tempo. Chiunque desiderasse aiutarci in questo sforzo è il benvenuto.</p> + +<ul> + <li> + <p style="margin-bottom: 0in;">Bugzilla 3.6.x</p> + </li> + <li> + <p style="margin-bottom: 0in;">Mysql 5.0 or PostGres 8.1.x</p> + </li> + <li> + <p style="margin-bottom: 0in;">Un browser Mozilla compatibile;-)</p> + </li> + <li> + <p style="margin-bottom: 0in;">I seguenti moduli Perl aggiuntivi: Text::CSV XML::Schema Validator XML::Schema::Parser (per importare) e JSON 2.10</p> + </li> +</ul> + +<h2 id="DA_FARE">DA FARE</h2> + +<ul> + <li> + <p style="margin-bottom: 0in;">Preferenze dell'utente</p> + </li> + <li> + <p style="margin-bottom: 0in;">Messaggi di posta elettronica per le notifiche</p> + </li> + <li> + <p style="margin-bottom: 0in;">Più reportistica</p> + </li> +</ul> + +<p>Guardate la <a href="http://wiki.mozilla.org/Testopia:Roadmap">Roadmap</a> e la <a href="https://bugzilla.mozilla.org/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&product=Testopia&long_desc_type=substring&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailassigned_to1=1&emailtype1=exact&email1=&emailassigned_to2=1&emailreporter2=1&emailqa_contact2=1&emailtype2=exact&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0=">Bug List</a> per maggiori dettagli.</p> + +<h2 id="Collegamenti">Collegamenti</h2> + +<ul> + <li> + <p style="margin-bottom: 0in;"><a href="http://wiki.mozilla.org/Testopia:FAQ">FAQ</a></p> + </li> + <li> + <p style="margin-bottom: 0in;"><a href="http://wiki.mozilla.org/Testopia">Wiki</a></p> + </li> + <li> + <p style="margin-bottom: 0in;"><a href="http://landfill.mozilla.org/testopia2/testopia/doc/Manual.pdf">Docs</a></p> + </li> + <li> + <p style="margin-bottom: 0in;"><a href="https://bugzilla.mozilla.org/buglist.cgi?query_format=advanced&product=Testopia&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=UNCONFIRMED">Bugs</a> (Please read the <a href="https://wiki.mozilla.org/Testopia:Bug_Reporting_Guide">Bug Reporting Guide)</a></p> + </li> + <li> + <p style="margin-bottom: 0in;">Il <a href="http://testopia.blogspot.com/">Blog</a> ufficiale di Testopia</p> + </li> + <li> + <p style="margin-bottom: 0in;">IRC: <a href="irc://irc.mozilla.org/testopia">#testopia</a> o <a href="irc://irc.mozilla.org/mozwebtools">#mozwebtools </a></p> + </li> + <li> + <p style="margin-bottom: 0in;">Aiuto per l'utente <a href="mailto:support-webtools@lists.mozilla.org">support-webtools@lists.mozilla.org</a></p> + </li> + <li> + <p style="margin-bottom: 0in;">Sviluppatori <a href="mailto:dev-apps-webtools@lists.mozilla.org">dev-apps-webtools@lists.mozilla.org</a></p> + </li> + <li> + <p style="margin-bottom: 0in;"><a href="http://landfill.mozilla.org/testopia2/">Testopia su landfill (2.2 on Bugzilla 3.0.6)</a></p> + </li> + <li> + <p style="margin-bottom: 0in;"><a href="http://landfill.mozilla.org/testopia/">Testopia su landfill (2.2 on Bugzilla 3.2)</a></p> + </li> +</ul> + +<h2 id="Cosa_e_dove_scaricare_(Downloads)">Cosa e dove scaricare (Downloads)</h2> + +<ul> + <li> + <p style="margin-bottom: 0in;"><a href="ftp://ftp.mozilla.org/pub/mozilla.org/webtools/testopia/testopia-2.5-BUGZILLA-4.2.tar.gz">Scaricare la 2.5 (Bugzilla 4.2)</a></p> + </li> + <li> + <p style="margin-bottom: 0in;"><a href="ftp://ftp.mozilla.org/pub/mozilla.org/webtools/testopia/testopia-2.4-BUGZILLA-3.6.tar.gz">Scaricare la 2.4 (Bugzilla 3.6 and 4.0)</a></p> + </li> + <li> + <p style="margin-bottom: 0in;"><a href="ftp://ftp.mozilla.org/pub/mozilla.org/webtools/testopia/">Versioni archiviate</a></p> + </li> +</ul> + +<h2 id="Sviluppatori">Sviluppatori</h2> + +<p>Greg Hendricks (corrente)<br> + Vance Baarda (precedente)<br> + Ed Fuentetaja (precedente)</p> diff --git a/files/it/mozilla/connettere/index.html b/files/it/mozilla/connettere/index.html new file mode 100644 index 0000000000..b15c279efa --- /dev/null +++ b/files/it/mozilla/connettere/index.html @@ -0,0 +1,98 @@ +--- +title: Connettere con Mozilla +slug: Mozilla/Connettere +translation_of: Mozilla/Connect +--- +<div class="summary"> +<p><span class="seoSummary">Facilita, ispira e collabora per rendere il Web la piattaforma principale per creare esperienze su tutti i dispositivi connessi.</span></p> +</div> + + +<div> +<div class="column-container dev-program-callouts dev-program-block dev-program-first dev-program-column-wrapper"> +<div class="dev-program-callout"> +<div class="callout-link-container"> +<h2 id="Hacks_blog">Hacks blog</h2> + +<p>Una risorsa chiave per le persone che sviluppano per l'Open Web, il blog Mozilla Hacks offre notizie e discussioni sulle novità nel campo delle tecnologie Web e le funzionalità del browser.</p> + +<div class="callout-link-wrapper"><a class="callout-link" href="https://hacks.mozilla.org/">Leggi ora </a></div> +</div> +</div> + +<div class="dev-program-callout"> +<div class="callout-link-container"> +<h2 id="Aiuta_QA">Aiuta Q&A</h2> + +<p>Unisciti alle discussioni riguardanti il Web e le Web apps su Stack Overflow, dove potrai condividere le tue idee con altri sviluppatori Web.</p> + +<div class="smaller"><strong>{{anch("Developer discussions", "Search the Q&A below")}}</strong></div> + +<div class="callout-link-wrapper"><a class="callout-link" href="http://stackoverflow.com/r/mozilla">Mozilla Q&A su Stack Overflow </a></div> +</div> +</div> + +<div class="dev-program-callout"> +<div class="callout-link-container"> +<h2 id="Unisciti_MDN">Unisciti MDN</h2> + +<p>Iscriviti a MDN! Avrai la possibilità di <a href="https://developer.mozilla.org/en-US/docs/MDN/Contribute">modificare la documentazione</a>, creare un profilo per mostrare il tuo lavoro e ottenere l'accesso a varie funzionalità man mano che verranno implementate.</p> + +<div class="callout-link-wrapper"><a class="callout-link" href="/profile/edit" style="white-space: normal;">Iscriviti o effettua l'accesso</a></div> +</div> +</div> +</div> + +<div class="dev-program-explanation dev-program-block"> +<h2 id="Connettiti_con_Mozilla">Connettiti con Mozilla</h2> + +<p>Gli sviluppatori stanno creando il futuro costruendo servizi e applicazioni di qualità per gli utenti. L'obiettivo di Mozilla Developer Relation è aiutarli ad usare tecnologie aperte e standardizzate nel portare a termine i loro progetti. Oltre alla documentazione presente su MDN offriamo aiuto e risorse per permettere loro di raggiungere i propri obiettivi, attraverso vari canali. Ti invitiamo a connetterti, imparare e condividere la tua conoscenza.</p> + +<p>Offriamo aiuto tramite Q&A su Stack Overflow per risolvere specifiche questioni tecniche e possibili problemi. È disponibile anche una newsletter per tenerti informato sulle ultime novità nella scena del web riguardo web apps e molto altro. <a href="https://marketplace.firefox.com/developers/#newsletter-signup">Iscriviti alla newsletter Apps & Hacks</a>.</p> + +<p>Se condividi i <a href="https://www.mozilla.org/it/about/manifesto/">principi</a> e la <a href="https://www.mozilla.org/it/mission/">missione</a> di Mozilla e vuoi aiutarci a diffonderli tra gli sviluppatori, scopri come puoi <a href="https://wiki.mozilla.org/Engagement/Developer_Engagement/Technical_Evangelism/Get_Involved">entrare a far parte degli evangelisti tecnici</a> ed entrare a far parte del <a href="https://lists.mozilla.org/listinfo/evangelism">gruppo di discussione sull'evangelizzazione</a>.</p> + +<p>Abbiamo molti piani e idee per espandere il Mozilla Developer Program in maniera iterativa, e vogliamo la tua partecipazione. Quindi <a href="http://stackoverflow.com/r/mozilla">segui i tag su Stack Overflow</a>, <a href="https://hacks.mozilla.org/">segui Hacks blog</a>, ed <a href="/profile/edit">iscriviti</a>!</p> +</div> + +<div class="column-container dev-program-block"> +<div class="column-half" id="Developer_discussions"> +<h2 id="QA_su_Stack_Overflow_Vedi_tutte_QA...">Q&A su Stack Overflow <a class="heading-link" href="http://stackoverflow.com/r/mozilla">Vedi tutte Q&A...</a></h2> + +<p>Abbiamo una serie di Q&A per discutere problemi e complicazioni che si presentano durante lo sviluppo, soprattutto per Firefox OS e l'Open Web su mobile. È raggiungibile su Stack Overflow tramite l'URL <a href="http://stackoverflow.com/r/mozilla">http://stackoverflow.com/r/mozilla</a>.</p> + +<div class="stack-form">Stack form</div> + +<h3 id="Ultimi_argomenti_QA">Ultimi argomenti Q&A</h3> +</div> + +<div class="column-half dev-program-hacks dev-program-block"> </div> +</div> + +<p class="dev-program-block"><img alt="Sviluppatori ad un laboratorio di Firefox OS a Madrid." src="https://mdn.mozillademos.org/files/7479/PhonesUp.jpg" style="display: block; height: 359px; margin: 0px auto; max-width: 100%; width: 720px;"></p> + +<div class="column-container dev-program-block"> +<div class="column-7 dev-program-events"> +<h2 id="Dov'è_Mozilla_Vedi_i_partecipanti_e_i_dettagli_nella_nostra_pagina_Eventi...">Dov'è Mozilla? <a class="heading-link" href="https://developer.mozilla.org/en/events">Vedi i partecipanti e i dettagli nella nostra pagina Eventi...</a></h2> + +<p>Qui trovi una lista di rappresentanti di Mozilla che terranno dei talk a eventi a te vicini. Assicurati di parlare con loro!</p> +</div> + +<div class="column-5"> +<h2 id="Altre_risorse">Altre risorse</h2> + +<ul class="no-bullets"> + <li><a href="http://www.youtube.com/user/mozhacks">Mozilla Hacks su YouTube</a> + + <ul> + <li><a href="http://www.youtube.com/playlist?list=PLo3w8EB99pqIHIUUv08hBCHq1OgPKhdo0">Video su Firefox OS</a></li> + <li><a href="http://www.youtube.com/playlist?list=PLo3w8EB99pqLZNY22xKbTEzMfYo9PXAlm">Video su Firefox Developer Tools </a></li> + </ul> + </li> + <li><a href="https://twitter.com/mozhacks">@mozhacks su Twitter</a></li> +</ul> +</div> +</div> +</div> + +<p> </p> diff --git a/files/it/mozilla/developer_guide/index.html b/files/it/mozilla/developer_guide/index.html new file mode 100644 index 0000000000..288d4e19ac --- /dev/null +++ b/files/it/mozilla/developer_guide/index.html @@ -0,0 +1,145 @@ +--- +title: Developer Guide +slug: Mozilla/Developer_guide +tags: + - Developing Mozilla + - NeedsTranslation + - TopicStub +translation_of: Mozilla/Developer_guide +--- +<p>Whether you're an old hand or just getting started, articles you can find starting from this page will help you while you're working on Mozilla development.</p> +<table class="topicpage-table"> + <tbody> + <tr> + <td> + <h2 class="Documentation" id="Documentation_topics">Documentation topics</h2> + <dl> + <dt> + <a href="/en-US/docs/Introduction" title="Introduction">Getting Started</a></dt> + <dd> + A step-by-step beginner's guide to getting involved with Mozilla.</dd> + </dl> + <dl> + <dt> + <a class="internal" href="/en-US/docs/Developer_Guide/Source_Code" title="en-US/docs/Developer_Guide/Source_Code">Working with Mozilla Source Code</a></dt> + <dd> + A code overview, how to get the code, and the coding style guide.</dd> + <dt> + <a class="internal" href="/en-US/docs/Developer_Guide/Build_Instructions" title="en-US/docs/Developer_Guide/Build_Instructions">Build Instructions</a></dt> + <dd> + How to build Firefox, Thunderbird, SeaMonkey, or other Mozilla applications.</dd> + <dt> + <a href="/en-US/docs/Developer_Guide/Development_process_overview" title="en-US/docs/Developer Guide/Development process overview">Development process overview</a></dt> + <dd> + An overview of the entire Mozilla development process.</dd> + <dt> + <a href="/en-US/docs/Mozilla/Multiple_Firefox_Profiles" title="en-US/docs/Mozilla/Multiple_Firefox_Profiles">Managing multiple profiles</a></dt> + <dd> + When working with prerelease versions of Firefox, it's often helpful to have multiple Firefox profiles, such as one for each channel, or for different kinds of testing.</dd> + <dt> + <a class="internal" href="/en-US/docs/Mozilla_automated_testing" title="en-US/docs/Mozilla automated testing">Automated Testing</a></dt> + <dd> + How to run Mozilla's automated tests, and how to write new tests.</dd> + <dt> + <a class="internal" href="/en-US/docs/Developer_Guide/How_to_Submit_a_Patch" title="en-US/docs/Getting your patch in the tree">How to submit a patch</a></dt> + <dd> + After getting your patch written, you need to get it checked into the tree. This article explains the review process and how to get your patch approved.</dd> + <dt> + <a href="/en-US/docs/Developer_Guide/Getting_documentation_updated" title="en-US/docs/Developer_Guide/Getting documentation updated">Getting documentation updated</a></dt> + <dd> + How to ensure that documentation is kept up to date as you develop.</dd> + <dt> + <a class="internal" href="/en-US/docs/Mozilla_Modules_and_Module_Ownership" title="en-US/docs/Mozilla Modules and Module Ownership">Mozilla modules and module ownership</a></dt> + <dd> + This article provides information about Mozilla's modules, what the role of a module owner is, and how module owners are selected.</dd> + <dt> + <a class="internal" href="/en-US/docs/Code_snippets" title="en-US/docs/Code_snippets">Code snippets</a></dt> + <dd> + Useful code samples for a wide variety of things you might need to figure out how to do.</dd> + <dt> + <a class="internal" href="/en-US/docs/Mozilla_Development_Strategies" title="en-US/docs/Mozilla Development Strategies">Mozilla development strategies</a></dt> + <dd> + Tips for how to make the most of your time working on the Mozilla project.</dd> + <dt> + <a class="internal" href="/en-US/docs/Debugging" title="en-US/docs/Debugging">Debugging</a></dt> + <dd> + Find helpful tips and guides for debugging Mozilla code.</dd> + <dt> + <a href="/en-US/docs/Performance" title="en-US/docs/Performance">Performance</a></dt> + <dd> + Performance guides and utilities to help you make your code perform well (and to play nicely with others).</dd> + <dt> + <a class="internal" href="/en-US/docs/The_Mozilla_platform" title="en-US/docs/The Mozilla platform">The Mozilla platform</a></dt> + <dd> + Information about the workings of the Mozilla platform.</dd> + <dt> + <a href="/en-US/docs/Developer_Guide/Adding_APIs_to_the_navigator_object" title="en-US/docs/Developer_Guide/Adding_APIs_to_the_navigator_object">Adding APIs to the navigator object</a> {{ gecko_minversion_inline("9.0") }}</dt> + <dd> + How to augment the {{ domxref("window.navigator") }} object with additional APIs.</dd> + <dt> + <a href="/en-US/docs/Developer_Guide/Interface_Compatibility" title="en-US/docs/Developer Guide/Interface Compatibility">Interface Compatibility</a></dt> + <dd> + Guidelines for modifying scriptable and binary APIs in Mozilla.</dd> + <dt> + <a href="/en-US/docs/Developer_Guide/Customizing_Firefox" title="en-US/docs/Developer Guide/Customizing Firefox">Customizing Firefox</a></dt> + <dd> + Information about creating customized versions of Firefox.</dd> + <dt> + <a href="/en-US/docs/Developer_Guide/Virtual_ARM_Linux_environment" title="Virtual ARM Linux environment">Virtual ARM Linux environment</a></dt> + <dd> + How to set up an ARM emulator running Linux for testing ARM-specific, but not necessarily platform-specific, code. Useful for mobile developers.</dd> + <dt> + <a href="/en-US/docs/Introduction/Obsolete_Build_Caveats_and_Tips" title="Obsolete Build Caveats and Tips">Obsolete Build Caveats and Tips</a></dt> + <dd> + A place to put build tips which are no longer relevant to building the latest version of the code from main but are relevant when building old codebases.</dd> + </dl> + </td> + <td> + <h2 class="Tools" id="Tools">Tools</h2> + <dl> + <dt> + <a class="link-https" href="https://bugzilla.mozilla.org/" title="https://bugzilla.mozilla.org/">Bugzilla</a></dt> + <dd> + The <a class="internal" href="/en-US/docs/Bugzilla" title="en-US/docs/Bugzilla">Bugzilla</a> database used to track issues for Mozilla projects.</dd> + <dt> + <a class="external" href="http://mxr.mozilla.org/" title="http://mxr.mozilla.org/">MXR</a></dt> + <dd> + Browse and search the Mozilla source code repository on the Web.</dd> + <dt> + <a class="external" href="http://bonsai.mozilla.org/cvsqueryform.cgi" title="http://bonsai.mozilla.org/cvsqueryform.cgi">Bonsai</a></dt> + <dd> + The <a class="internal" href="/en-US/docs/Bonsai" title="en-US/docs/Bonsai">Bonsai</a> tool lets you find out who changed what file in the repository, and when they did it.</dd> + <dt> + <a class="internal" href="/en-US/docs/Mercurial" title="en-US/docs/Mercurial">Mercurial</a></dt> + <dd> + The distributed version-control system used to manage Mozilla's source code.</dd> + <dt> + <a class="external" href="http://tinderbox.mozilla.org/showbuilds.cgi" title="http://tinderbox.mozilla.org/showbuilds.cgi">Tinderbox</a></dt> + <dd> + <a class="internal" href="/en-US/docs/Tinderbox" title="en-US/docs/Tinderbox">Tinderbox</a> shows the status of the tree (whether or not it currently builds successfully). Check this before checking in and out, to be sure you're working with a working tree.</dd> + <dt> + <a class="internal" href="/en-US/docs/Crash_reporting" title="en-US/docs/Crash reporting">Crash tracking</a></dt> + <dd> + Information about the <a class="link-https" href="https://crash-reports.mozilla.com/reports" title="https://crash-reports.mozilla.com/reports">Socorro</a> and <a class="external" href="http://talkback-public.mozilla.org/search/start.jsp" title="http://talkback-public.mozilla.org/search/start.jsp">Talkback</a> crash reporting systems.</dd> + <dt> + <a class="external" href="http://graphs.mozilla.org/" title="http://graphs.mozilla.org/">Performance tracking</a></dt> + <dd> + See performance information for Mozilla projects.</dd> + <dt> + <a href="/en-US/docs/Developer_Guide/Callgraph" title="en-US/docs/Developing Mozilla/Callgraph">Callgraph</a></dt> + <dd> + A tool to help perform static analysis of the Mozilla code by generating callgraphs automatically.</dd> + <dt> + <a class="external" href="http://www.mozilla.org/community/developer-forums.html" title="http://www.mozilla.org/community/developer-forums.html">Developer forums</a></dt> + <dd> + A topic-specific list of discussion forums where you can talk about Mozilla development issues.</dd> + <dt> + <a class="external" href="http://www.brianbondy.com/mozilla/cheatsheet/" title="http://www.brianbondy.com/mozilla/cheatsheet/">Mozilla Platform Development Cheat Sheet</a></dt> + <dd> + Brian Bondy's list of frequently referenced information for platform developers.</dd> + </dl> + </td> + </tr> + </tbody> +</table> +<p> </p> diff --git a/files/it/mozilla/firefox/developer_edition/index.html b/files/it/mozilla/firefox/developer_edition/index.html new file mode 100644 index 0000000000..f735815e52 --- /dev/null +++ b/files/it/mozilla/firefox/developer_edition/index.html @@ -0,0 +1,60 @@ +--- +title: Developer Edition +slug: Mozilla/Firefox/Developer_Edition +tags: + - Beginner + - Firefox + - Landing + - NeedsTranslation + - TopicStub + - 'etichette{locale}' +translation_of: Mozilla/Firefox/Developer_Edition +--- +<div>{{FirefoxSidebar}}</div><p style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/9143/firefox-dev-ed_logo-only_1024.png" style="display: block; height: 256px; margin-left: auto; margin-right: auto; width: 256px;">A version of Firefox that's tailored for web developers.</p> + +<p><a href=" https://www.mozilla.org/en-US/firefox/developer/" style="width: 250px; display: block; margin-left: auto; margin-right: auto; padding: 10px; text-align: center; border-radius: 4px; background-color: #81BC2E; white-space: nowrap; color: white; text-shadow: 0px 1px 0px rgba(0, 0, 0, 0.25); box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.2), 0px -1px 0px 0px rgba(0, 0, 0, 0.3) inset;">Download Firefox Developer Edition</a></p> + +<hr> +<div class="column-container"> +<div class="column-half"> +<h3 id="The_latest_Firefox_features"><strong>The latest Firefox features</strong></h3> + +<p>Firefox Developer Edition replaces the Aurora channel in the <a href="https://wiki.mozilla.org/Release_Management/Release_Process">Firefox Release Process</a>. Like Aurora, features will land in the Developer Edition every six weeks, after they have stabilized in Nightly builds.</p> + +<p>By using the Developer Edition, you gain access to tools and platform features at least 12 weeks before they reach the main Firefox release channel.</p> + +<p><a href="/en-US/Firefox/Releases/35">Find out what's new in the Developer Edition</a>.</p> +</div> + +<div class="column-half"> +<h3 id="A_distinct_theme"><strong>A distinct theme</strong></h3> + +<p>This includes quicker access to the developer tools.</p> + +<h3 id="Experimental_developer_tools"><strong>Experimental developer tools</strong></h3> + +<p>We'll include experimental tools that aren't yet ready to ride the trains to release.</p> + +<p>For example, the Developer Edition includes the <a href="/en-US/docs/Tools/Valence">Valence add-on</a>, which enables you to connect the <a href="/en-US/docs/Tools">Firefox developer tools</a> to other browsers such as Chrome on Android and Safari on iOS.</p> +</div> +</div> + +<div class="column-container"> +<div class="column-half"> +<h3 id="A_separate_profile"><strong>A separate profile</strong></h3> + +<p>Firefox Developer Edition uses a separate profile from other Firefox versions installed on your machine. This means you can easily run the Developer Edition alongside your release or Beta version of Firefox.</p> + +<div class="note"> +<p><strong>Note:</strong> This means that the first time you start up the Developer Edition, you will see a completely uncustomized browser, with no add-ons, bookmarks, or history. You can <a href="https://support.mozilla.org/en-US/kb/how-do-i-set-up-firefox-sync">use Firefox Sync</a> if you want to unify your settings between the Developer Edition and other editions of Firefox.</p> +</div> +</div> + +<div class="column-half"> +<h3 id="Set_up_for_web_developers"><strong>Set up for web developers</strong></h3> + +<p>We've set default preference values tailored for web developers. For example, chrome and remote debugging are enabled by default.</p> +</div> +</div> + +<p> </p> diff --git a/files/it/mozilla/firefox/developer_edition/ripristinare/index.html b/files/it/mozilla/firefox/developer_edition/ripristinare/index.html new file mode 100644 index 0000000000..d087d53194 --- /dev/null +++ b/files/it/mozilla/firefox/developer_edition/ripristinare/index.html @@ -0,0 +1,27 @@ +--- +title: Ripristinare +slug: Mozilla/Firefox/Developer_Edition/Ripristinare +translation_of: Mozilla/Firefox/Developer_Edition/Reverting +--- +<div>{{FirefoxSidebar}}</div><h2 id="Ripristinare_il_tema_dalla_Developer_Edition">Ripristinare il tema dalla Developer Edition</h2> + +<p><br> + Se vuoi usare la Developer Edition, ma preferisci il tema 'Australis' usato in Firefox e Firefox Beta, puoi tornare al normale tema Firefox : Basta aprire il pannello "Customize" e cliccare su "Use Firefox Developer Edition Theme".</p> + +<p>{{EmbedYouTube("OvJwofTjsNg")}}</p> + +<p>Il tema Developer Edition non è ancora compatibile con temi "lightweight", per cui se usate questi temi, dovete ripristinare il tema Australis.</p> + +<h2 id="Ripristinare_Firefox_Aurora">Ripristinare Firefox Aurora</h2> + +<p><br> + Se volete tutte le caratteristiche della "pre-beta" che sono nella Firefox Developer Edition, ma non volete nessuna delle altre modifiche, potete ripristinare il sistema a qualcosa di simile al vecchio Firefox Aurora. Ciò ripristinerà anche il tuo profilo prima dell'aggiornamento e i dati delle sessioni.</p> + +<p>Questo si articola in due fasi, da eseguire in quest'ordine:</p> + +<ol> + <li>Aprire la pagina preferenze della Developer Edition e disabilitare la casella "Allow Firefox Developer Edition and Firefox to run at the same time". Ti verrà richiesto di riavviare il browser.</li> + <li>Dopo il riavvio, puoi ripristinare il tema dalla developer edition, aprendo il pannello "Customize" e cliccando su "Use Firefox Developer Edition Theme".</li> +</ol> + +<p>{{EmbedYouTube("0Ofq-vlw8Qw")}}</p> diff --git a/files/it/mozilla/firefox/funzionalità_sperimentali/index.html b/files/it/mozilla/firefox/funzionalità_sperimentali/index.html new file mode 100644 index 0000000000..2cc528ad36 --- /dev/null +++ b/files/it/mozilla/firefox/funzionalità_sperimentali/index.html @@ -0,0 +1,1506 @@ +--- +title: Funzionalità sperimentali in Firefox +slug: Mozilla/Firefox/Funzionalità_sperimentali +translation_of: Mozilla/Firefox/Experimental_features +--- +<div>{{FirefoxSidebar}}</div> + +<p class="summary">In order to test new features, Mozilla publishes a test version of the Firefox browser, <a href="https://nightly.mozilla.org/">Firefox Nightly</a>, every day. These nightly builds of Firefox typically include experimental or partially-implemented features, including those for proposed or cutting-edge Web platform standards.</p> + +<p class="summary"><span class="seoSummary">This page lists features that are in Nightly versions of Firefox along with information on how to activate them, if necessary.</span> You can test your Web sites and applications before these features get released and ensure everything will still work with the latest Web technology capabilities.</p> + +<p>To test these experimental features, you need to download <a href="https://nightly.mozilla.org/">Firefox Nightly</a> or <a href="https://www.mozilla.org/en-US/firefox/developer/">Firefox Developer Edition</a>. Which you need is described alongside each feature's description below.</p> + +<div class="blockIndicator note"> +<p><strong>Editor's note:</strong> When adding features to these tables, please try to include a link to the relevant bug or bugs using the {{TemplateLink("bug")}} macro: <code>\{{bug(<em>bug-number</em>)}}</code>.</p> +</div> + +<h2 id="HTML">HTML</h2> + +<h3 id="Element_<dialog>">Element: <dialog></h3> + +<p>The HTML {{HTMLElement("dialog")}} element and its associated DOM APIs provide support for HTML-based modal dialog boxes. The current implementation is a little inelegant but is basically functional. See {{bug(840640)}} for more details.</p> + +<table class="standard-table" style="max-width: 42rem;"> + <thead> + <tr> + <th scope="col" style="vertical-align: bottom;">Release channel</th> + <th scope="col" style="vertical-align: bottom;">Version added</th> + <th scope="col" style="vertical-align: bottom;">Enabled by default?</th> + </tr> + </thead> + <tbody> + <tr> + <th scope="row">Nightly</th> + <td>53</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Developer Edition</th> + <td>53</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Beta</th> + <td>53</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Release</th> + <td>53</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Preference name</th> + <th colspan="2"><code>dom.dialog_element.enabled</code></th> + </tr> + </tbody> +</table> + +<h3 id="Global_attribute_inputmode">Global attribute: inputmode</h3> + +<p>Our implementation of the <code><a href="/en-US/docs/Web/HTML/Global_attributes/inputmode">inputmode</a></code> global attribute has been updated as per the WHATWG spec ({{bug(1509527)}}), but we still need to make other changes too, like making it available on contenteditable content. See also {{bug(1205133)}} for details.</p> + +<table class="standard-table" style="max-width: 42rem;"> + <thead> + <tr> + <th scope="col" style="vertical-align: bottom;">Release channel</th> + <th scope="col" style="vertical-align: bottom;">Version added</th> + <th scope="col" style="vertical-align: bottom;">Enabled by default?</th> + </tr> + </thead> + <tbody> + <tr> + <th scope="row">Nightly</th> + <td>75</td> + <td>Yes</td> + </tr> + <tr> + <th scope="row">Developer Edition</th> + <td>75</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Beta</th> + <td>75</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Release</th> + <td>75</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Preference name</th> + <th colspan="2"><code>dom.forms.inputmode</code></th> + </tr> + </tbody> +</table> + +<h3 id="<link_relpreload>"><link rel="preload"></h3> + +<p>The {{HTMLElement("link")}} element's {{htmlattrxref("rel", "link")}} attribute is intended to help provide performance gains by letting you download resources earlier in the page lifecycle, ensuring that they're available earlier and are less likely to block page rendering. Read <a href="/en-US/docs/Web/HTML/Preloading_content">Preloading content with rel="preload"</a> for more details. For more details on the status of this feature, see {{bug(1639607)}}.</p> + +<table class="standard-table" style="max-width: 42rem;"> + <thead> + <tr> + <th scope="col" style="vertical-align: bottom;">Release channel</th> + <th scope="col" style="vertical-align: bottom;">Version added</th> + <th scope="col" style="vertical-align: bottom;">Enabled by default?</th> + </tr> + </thead> + <tbody> + <tr> + <th scope="row">Nightly</th> + <td>78</td> + <td>Yes</td> + </tr> + <tr> + <th scope="row">Developer Edition</th> + <td>78</td> + <td>Yes</td> + </tr> + <tr> + <th scope="row">Beta</th> + <td>78</td> + <td>Yes</td> + </tr> + <tr> + <th scope="row">Release</th> + <td>78</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Preference name</th> + <th colspan="2"><code>network.preload</code></th> + </tr> + </tbody> +</table> + +<h2 id="CSS">CSS</h2> + +<h3 id="Display_stray_control_characters_in_CSS_as_hex_boxes">Display stray control characters in CSS as hex boxes</h3> + +<p>This feature renders control characters (Unicode category Cc) other than <em>tab</em> (<code>U+0009</code>), <em>line feed</em> (<code>U+000A</code>), <em>form feed</em> (<code>U+000C</code>), and <em>carriage return</em> (<code>U+000D</code>) as a hexbox when they are not expected.<br> + <br> + See {{bug(1099557)}} for more details.</p> + +<table class="standard-table" style="max-width: 42rem;"> + <thead> + <tr> + <th scope="col" style="vertical-align: bottom;">Release channel</th> + <th scope="col" style="vertical-align: bottom;">Version added</th> + <th scope="col" style="vertical-align: bottom;">Enabled by default?</th> + </tr> + </thead> + <tbody> + <tr> + <th scope="row">Nightly</th> + <td>43</td> + <td>Yes</td> + </tr> + <tr> + <th scope="row">Developer Edition</th> + <td>43</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Beta</th> + <td>43</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Release</th> + <td>43</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Preference name</th> + <th colspan="2"><code>layout.css.control-characters.enabled</code> or <code>layout.css.control-characters.visible</code></th> + </tr> + </tbody> +</table> + +<h3 id="Property_initial-letter">Property: initial-letter</h3> + +<p>The {{cssxref("initial-letter")}} CSS property is part of the {{SpecName("CSS3 Inline")}} specification and allows you to specify how dropped, raised, and sunken initial letters are displayed.<br> + <br> + See {{bug(1223880)}} for more details.</p> + +<table class="standard-table" style="max-width: 42rem;"> + <thead> + <tr> + <th scope="col" style="vertical-align: bottom;">Release channel</th> + <th scope="col" style="vertical-align: bottom;">Version added</th> + <th scope="col" style="vertical-align: bottom;">Enabled by default?</th> + </tr> + </thead> + <tbody> + <tr> + <th scope="row">Nightly</th> + <td>50</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Developer Edition</th> + <td>50</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Beta</th> + <td>50</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Release</th> + <td>50</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Preference name</th> + <th colspan="2"><code>layout.css.initial-letter.enabled</code></th> + </tr> + </tbody> +</table> + +<h3 id="Conic_gradients">Conic gradients</h3> + +<p><a href="/en-US/docs/Web/CSS/gradient#Conic_gradient">Conic gradients</a> expand CSS gradients to allow the color transitions to be rendered circling around a center point rather than radiating from it. See {{bug(1175958)}} for more details.</p> + +<table class="standard-table" style="max-width: 42rem;"> + <thead> + <tr> + <th scope="col" style="vertical-align: bottom;">Release channel</th> + <th scope="col" style="vertical-align: bottom;">Version added</th> + <th scope="col" style="vertical-align: bottom;">Enabled by default?</th> + </tr> + </thead> + <tbody> + <tr> + <th scope="row">Nightly</th> + <td>75</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Developer Edition</th> + <td>75</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Beta</th> + <td>75</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Release</th> + <td>75</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Preference name</th> + <th colspan="2"><code>layout.css.conic-gradient.enabled</code> and <code>gfx.webrender.all</code></th> + </tr> + </tbody> +</table> + +<h3 id="Pseudo-class_focus-visible">Pseudo-class: :focus-visible</h3> + +<p>Allows focus styles to be applied to elements like buttons and form controls, only when they are focused using the keyboard (e.g. when tabbing between elements), and not when they are focused using a mouse or other pointing device. See <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1617600">bug 1617600</a> for more details.</p> + +<table class="standard-table" style="max-width: 42rem;"> + <thead> + <tr> + <th scope="col" style="vertical-align: bottom;">Release channel</th> + <th scope="col" style="vertical-align: bottom;">Version added</th> + <th scope="col" style="vertical-align: bottom;">Enabled by default?</th> + </tr> + </thead> + <tbody> + <tr> + <th scope="row">Nightly</th> + <td>75</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Developer Edition</th> + <td>75</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Beta</th> + <td>75</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Release</th> + <td>75</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Preference name</th> + <th colspan="2"><code>layout.css.focus-visible.enabled</code></th> + </tr> + </tbody> +</table> + +<h3 id="Single_numbers_as_aspect_ratio_in_media_queries">Single numbers as aspect ratio in media queries</h3> + +<p>Support for using a single {{cssxref("number")}} as a {{cssxref("ratio")}} when specifying the aspect ratio for a <a href="/en-US/docs/Web/CSS/Media_Queries">media query</a>. See {{bug(1565562)}} for more details.</p> + +<table class="standard-table" style="max-width: 42rem;"> + <thead> + <tr> + <th scope="col" style="vertical-align: bottom;">Release channel</th> + <th scope="col" style="vertical-align: bottom;">Version added</th> + <th scope="col" style="vertical-align: bottom;">Enabled by default?</th> + </tr> + </thead> + <tbody> + <tr> + <th scope="row">Nightly</th> + <td>70</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Developer Edition</th> + <td>70</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Beta</th> + <td>70</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Release</th> + <td>70</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Preference name</th> + <th colspan="2"><code>layout.css.aspect-ratio-number.enabled</code></th> + </tr> + </tbody> +</table> + +<h3 id="Property_backdrop-filter">Property: backdrop-filter</h3> + +<p>The {{cssxref("backdrop-filter")}} property applies filter effects to the area behind an element. See {{bug(1178765)}} for more details.</p> + +<table class="standard-table" style="max-width: 42rem;"> + <thead> + <tr> + <th scope="col" style="vertical-align: bottom;">Release channel</th> + <th scope="col" style="vertical-align: bottom;">Version added</th> + <th scope="col" style="vertical-align: bottom;">Enabled by default?</th> + </tr> + </thead> + <tbody> + <tr> + <th scope="row">Nightly</th> + <td>70</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Developer Edition</th> + <td>70</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Beta</th> + <td>70</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Release</th> + <td>70</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Preference name</th> + <th colspan="2"><code>layout.css.backdrop-filter.enabled</code></th> + </tr> + </tbody> +</table> + +<h3 id="Grid_Masonry_layout">Grid: Masonry layout</h3> + +<p>Adds support for a masonry style layout based on grid layout where one axis has a masonry layout while having normal grid layout on the other. This allows to create gallery style layouts like on Pinterest. See {{bug(1607954)}} for more details.</p> + +<table class="standard-table" style="max-width: 42rem;"> + <thead> + <tr> + <th scope="col" style="vertical-align: bottom;">Release channel</th> + <th scope="col" style="vertical-align: bottom;">Version added</th> + <th scope="col" style="vertical-align: bottom;">Enabled by default?</th> + </tr> + </thead> + <tbody> + <tr> + <th scope="row">Nightly</th> + <td>77</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Developer Edition</th> + <td>77</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Beta</th> + <td>77</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Release</th> + <td>77</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Preference name</th> + <th colspan="2"><code>layout.css.grid-template-masonry-value.enabled</code></th> + </tr> + </tbody> +</table> + +<h2 id="APIs">APIs</h2> + +<h3 id="Graphics_Canvas_WebGL_and_WebGPU">Graphics: Canvas, WebGL, and WebGPU</h3> + +<h4 id="Interface_OffscreenCanvas">Interface: OffscreenCanvas</h4> + +<p>The {{domxref("OffscreenCanvas")}} interface provides a canvas that can be rendered offscreen. It is available in both the window and <a href="/en-US/docs/Web/API/Web_Workers_API">worker</a> contexts. See {{bug(1390089)}} for more details.</p> + +<table class="standard-table" style="max-width: 42rem;"> + <thead> + <tr> + <th scope="col" style="vertical-align: bottom;">Release channel</th> + <th scope="col" style="vertical-align: bottom;">Version added</th> + <th scope="col" style="vertical-align: bottom;">Enabled by default?</th> + </tr> + </thead> + <tbody> + <tr> + <th scope="row">Nightly</th> + <td>44</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Developer Edition</th> + <td>44</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Beta</th> + <td>44</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Release</th> + <td>44</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Preference name</th> + <th colspan="2"><code>gfx.offscreencanvas.enabled</code></th> + </tr> + </tbody> +</table> + +<h4 id="Hit_regions">Hit regions</h4> + +<p>Whether the mouse coordinates are within a particular area on the canvas is a common problem to solve. The hit region API allows you define an area of your canvas and provides another possibility to expose interactive content on a canvas to accessibility tools.</p> + +<table class="standard-table" style="max-width: 42rem;"> + <thead> + <tr> + <th scope="col" style="vertical-align: bottom;">Release channel</th> + <th scope="col" style="vertical-align: bottom;">Version added</th> + <th scope="col" style="vertical-align: bottom;">Enabled by default?</th> + </tr> + </thead> + <tbody> + <tr> + <th scope="row">Nightly</th> + <td>30</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Developer Edition</th> + <td>30</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Beta</th> + <td>30</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Release</th> + <td>30</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Preference name</th> + <th colspan="2"><code>canvas.hitregions.enabled</code></th> + </tr> + </tbody> +</table> + +<h4 id="WebGL_Draft_extensions">WebGL: Draft extensions</h4> + +<p>When this preference is enabled, any WebGL extensions currently in "draft" status which are being tested are enabled for use. Currently, there are no WebGL extensions being tested by Firefox.</p> + +<h4 id="WebGPU_API">WebGPU API</h4> + +<p>This new API provides low-level support for performing computation and graphics rendering using the {{interwiki("wikipedia", "Graphics Processing Unit")}} (GPU) of the user's device or computer. The <a href="https://gpuweb.github.io/gpuweb/">specification</a> is still a work-in-progress. See {{bug(1602129)}} for our progress on this API.</p> + +<table class="standard-table" style="max-width: 42rem;"> + <thead> + <tr> + <th scope="col" style="vertical-align: bottom;">Release channel</th> + <th scope="col" style="vertical-align: bottom;">Version added</th> + <th scope="col" style="vertical-align: bottom;">Enabled by default?</th> + </tr> + </thead> + <tbody> + <tr> + <th scope="row">Nightly</th> + <td>73</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Developer Edition</th> + <td>73</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Beta</th> + <td>73</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Release</th> + <td>73</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Preference name</th> + <th colspan="2"><code>dom.webgpu.enabled</code></th> + </tr> + </tbody> +</table> + +<h3 id="HTML_DOM_API">HTML DOM API</h3> + +<h4 id="Global_event_beforeinput">Global event: beforeinput</h4> + +<p>The global {{domxref("HTMLElement.beforeinput_event", "beforeinput")}} event is sent to an {{HTMLElement("input")}} element—or any element whose {{htmlattrxref("contenteditable")}} attribute is enabled—immediately before the element's value changes.</p> + +<table class="standard-table" style="max-width: 42rem;"> + <thead> + <tr> + <th scope="col" style="vertical-align: bottom;">Release channel</th> + <th scope="col" style="vertical-align: bottom;">Version added</th> + <th scope="col" style="vertical-align: bottom;">Enabled by default?</th> + </tr> + </thead> + <tbody> + <tr> + <th scope="row">Nightly</th> + <td>74</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Developer Edition</th> + <td>74</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Beta</th> + <td>74</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Release</th> + <td>74</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Preference name</th> + <th colspan="2"><code>dom.input_events.beforeinput.enabled</code></th> + </tr> + </tbody> +</table> + +<h4 id="HTMLMediaElement_method_setInkId">HTMLMediaElement method: setInkId()</h4> + +<p>{{domxref("HTMLMediaElement.setSinkId()")}} allows you to set the sink ID of an audio output device on an {{domxref("HTMLMediaElement")}}, thereby changing where the audio is being output. See {{bug(934425)}} for more details.</p> + +<table class="standard-table" style="max-width: 42rem;"> + <thead> + <tr> + <th scope="col" style="vertical-align: bottom;">Release channel</th> + <th scope="col" style="vertical-align: bottom;">Version added</th> + <th scope="col" style="vertical-align: bottom;">Enabled by default?</th> + </tr> + </thead> + <tbody> + <tr> + <th scope="row">Nightly</th> + <td>64</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Developer Edition</th> + <td>64</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Beta</th> + <td>64</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Release</th> + <td>64</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Preference name</th> + <th colspan="2"><code>media.setsinkid.enabled</code></th> + </tr> + </tbody> +</table> + +<h4 id="HTMLMediaElement_properties_audioTracks_and_videoTracks">HTMLMediaElement properties: audioTracks and videoTracks</h4> + +<p>Enabling this feature adds the {{domxref("HTMLMediaElement.audioTracks")}} and {{domxref("HTMLMediaElement.videoTracks")}} properties to all HTML media elements. However, because Firefox doesn't currently suport multiple audio and video tracks, the most common use cases for these properties don't work, so they're both disabled by default. See {{bug(1057233)}} for more details.</p> + +<table class="standard-table" style="max-width: 42rem;"> + <thead> + <tr> + <th scope="col" style="vertical-align: bottom;">Release channel</th> + <th scope="col" style="vertical-align: bottom;">Version added</th> + <th scope="col" style="vertical-align: bottom;">Enabled by default?</th> + </tr> + </thead> + <tbody> + <tr> + <th scope="row">Nightly</th> + <td>33</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Developer Edition</th> + <td>33</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Beta</th> + <td>33</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Release</th> + <td>33</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Preference name</th> + <th colspan="2"><code>media.track.enabled</code></th> + </tr> + </tbody> +</table> + +<h3 id="DOM">DOM</h3> + +<h4 id="Document_property_autoplayPolicy">Document property: autoplayPolicy</h4> + +<p>The {{domxref("document")}} property {{domxref("Document.autoplayPolicy", "autoplayPolicy")}} returns a string indicating how the browser handles requests to automatically play media (either using the {{domxref("HTMLMediaElement.autoplay", "autoplay")}} property on a media element or by attempting to trigger playback from JavaScript code. The spec for this API is still being written. The value changes over time depending on what the user is doing, their preferences, and the state of the browser in general. Potential values include <code>allowed</code> (autoplay is currently permitted), <code>allowed-muted</code> (autoplay is allowed but only with no—or muted—audio), and <code>disallowed</code> (autoplay is not allowed at this time). See {{bug(1506289)}} for more details.</p> + +<table class="standard-table" style="max-width: 42rem;"> + <thead> + <tr> + <th scope="col" style="vertical-align: bottom;">Release channel</th> + <th scope="col" style="vertical-align: bottom;">Version added</th> + <th scope="col" style="vertical-align: bottom;">Enabled by default?</th> + </tr> + </thead> + <tbody> + <tr> + <th scope="row">Nightly</th> + <td>66</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Developer Edition</th> + <td>66</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Beta</th> + <td>66</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Release</th> + <td>66</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Preference name</th> + <th colspan="2"><code>dom.media.autoplay.autoplay-policy-api</code></th> + </tr> + </tbody> +</table> + +<h4 id="GeometryUtils_methods_convertPointFromNode_convertRectFromNode_and_convertQuadFromNode">GeometryUtils methods: convertPointFromNode(), convertRectFromNode(), and convertQuadFromNode()</h4> + +<p>The {{domxref("GeometryUtils")}} methods {{domxref("GeometryUtils.convertPointFromNode", "convertPointFromNode()")}}, {{domxref("GeometryUtils.convertRectFromNode", "convertRectFromNode()")}}, and {{domxref("GeometryUtils.convertQuadFromNode", "convertQuadFromNode()")}} map the given point, rectangle, or quadruple from the {{domxref("Node")}} on which they're called to another node. See {{bug(918189)}} for more details.</p> + +<table class="standard-table" style="max-width: 42rem;"> + <thead> + <tr> + <th scope="col" style="vertical-align: bottom;">Release channel</th> + <th scope="col" style="vertical-align: bottom;">Version added</th> + <th scope="col" style="vertical-align: bottom;">Enabled by default?</th> + </tr> + </thead> + <tbody> + <tr> + <th scope="row">Nightly</th> + <td>31</td> + <td>Yes</td> + </tr> + <tr> + <th scope="row">Developer Edition</th> + <td>31</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Beta</th> + <td>31</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Release</th> + <td>31</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Preference name</th> + <th colspan="2"><code>layout.css.getBoxQuads.enabled</code></th> + </tr> + </tbody> +</table> + +<h4 id="GeometryUtils_method_getBoxQuads">GeometryUtils method: getBoxQuads()</h4> + +<p>The {{domxref("GeometryUtils")}} method {{domxref("GeometryUtils.getBoxQuads", "getBoxQuads()")}} returns the CSS boxes for a {{domxref("Node")}} relative to any other node or viewport. See {{bug(917755)}} for more details.</p> + +<table class="standard-table" style="max-width: 42rem;"> + <thead> + <tr> + <th scope="col" style="vertical-align: bottom;">Release channel</th> + <th scope="col" style="vertical-align: bottom;">Version added</th> + <th scope="col" style="vertical-align: bottom;">Enabled by default?</th> + </tr> + </thead> + <tbody> + <tr> + <th scope="row">Nightly</th> + <td>31</td> + <td>Yes</td> + </tr> + <tr> + <th scope="row">Developer Edition</th> + <td>31</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Beta</th> + <td>31</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Release</th> + <td>31</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Preference name</th> + <th colspan="2"><code>layout.css.convertFromNode.enable</code></th> + </tr> + </tbody> +</table> + +<h3 id="Payment_Request_API">Payment Request API</h3> + +<h4 id="Primary_payment_handling">Primary payment handling</h4> + +<p>The <a href="/en-US/docs/Web/API/Payment_Request_API">Payment Request API</a> provides support for handling web-based payments within web content or apps. Due to a bug that came up during testing of the user interface, we have decided to postpone shipping this API while discussions over potential changes to the API are held. Work is ongoing. See {{bug(1318984)}} for more details on the state of this API.</p> + +<table class="standard-table" style="max-width: 42rem;"> + <thead> + <tr> + <th scope="col" style="vertical-align: bottom;">Release channel</th> + <th scope="col" style="vertical-align: bottom;">Version added</th> + <th scope="col" style="vertical-align: bottom;">Enabled by default?</th> + </tr> + </thead> + <tbody> + <tr> + <th scope="row">Nightly</th> + <td>55</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Developer Edition</th> + <td>55</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Beta</th> + <td>55</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Release</th> + <td>55</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Preference name</th> + <th colspan="2"><code>dom.payments.request.enabled</code> and<br> + <code>dom.payments.request.supportedRegions</code></th> + </tr> + </tbody> +</table> + +<h4 id="Basic_Card_API">Basic Card API</h4> + +<p>Extends the <a href="/en-US/docs/Web/API/Payment_Request_API">Payment Request API</a> with dictionaries that define data structures describing card payment types and payment responses. See {{domxref("BasicCardRequest")}} and {{domxref("BasicCardResponse")}}.</p> + +<table class="standard-table" style="max-width: 42rem;"> + <thead> + <tr> + <th scope="col" style="vertical-align: bottom;">Release channel</th> + <th scope="col" style="vertical-align: bottom;">Version added</th> + <th scope="col" style="vertical-align: bottom;">Enabled by default?</th> + </tr> + </thead> + <tbody> + <tr> + <th scope="row">Nightly</th> + <td>56</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Developer Edition</th> + <td>56</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Beta</th> + <td>56</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Release</th> + <td>56</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Preference name</th> + <th colspan="2"><code>dom.payments.request.enabled</code> and<br> + <code>dom.payments.request.supportedRegions</code></th> + </tr> + </tbody> +</table> + +<h3 id="Visual_Viewport_API">Visual Viewport API</h3> + +<p>The <a href="/en-US/docs/Web/API/Visual_Viewport_API">Visual Viewport API</a> provides access to information describing the position of the {{Glossary("visual viewport")}} relative to the document as well as to the window's content area. It also supports events to monitor changes to this information. See {{bug(1550390)}} for more details. There currently is no real plan to ship this on desktop, but you can track the state of that just in case it changes in {{bug(1551302)}}.</p> + +<table class="standard-table" style="max-width: 42rem;"> + <thead> + <tr> + <th scope="col" style="vertical-align: bottom;">Release channel</th> + <th scope="col" style="vertical-align: bottom;">Version added</th> + <th scope="col" style="vertical-align: bottom;">Enabled by default?</th> + </tr> + </thead> + <tbody> + <tr> + <th scope="row">Nightly</th> + <td>63</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Developer Edition</th> + <td>63</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Beta</th> + <td>63</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Release</th> + <td>63</td> + <td>Starting in Firefox 68, on Android only</td> + </tr> + <tr> + <th scope="row">Preference name</th> + <th colspan="2"><code>dom.visualviewport.enabled</code></th> + </tr> + </tbody> +</table> + +<h3 id="Constructable_stylesheets">Constructable stylesheets</h3> + +<p>The addition of a constructor to the {{domxref("CSSStyleSheet")}} interface as well as a variety of related changes makes it possible to directly create new stylesheets without having to add the sheet to the HTML. This makes it much easier to create reusable stylesheets for use with <a href="/en-US/docs/Web/Web_Components/Using_shadow_DOM">Shadow DOM</a>. Our implementation is not yet complete; see {{bug(1520690)}} for more details.</p> + +<table class="standard-table" style="max-width: 42rem;"> + <thead> + <tr> + <th scope="col" style="vertical-align: bottom;">Release channel</th> + <th scope="col" style="vertical-align: bottom;">Version added</th> + <th scope="col" style="vertical-align: bottom;">Enabled by default?</th> + </tr> + </thead> + <tbody> + <tr> + <th scope="row">Nightly</th> + <td>73</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Developer Edition</th> + <td>73</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Beta</th> + <td>73</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Release</th> + <td>73</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Preference name</th> + <th colspan="2"><code>layout.css.constructable-stylesheets.enabled</code></th> + </tr> + </tbody> +</table> + +<h3 id="WebRTC_and_media">WebRTC and media</h3> + +<p>The following experimental features include those found in the <a href="/en-US/docs/Web/API/WebRTC_API">WebRTC API</a>, the <a href="/en-US/docs/Web/API/Web_Audio_API">Web Audio API</a>, the <a href="/en-US/docs/Web/API/Media_Session_API">Media Session API</a>, the <a href="/en-US/docs/Web/API/Media_Source_Extensions_API">Media Source Extensions API</a>, the <a href="/en-US/docs/Web/API/Encrypted_Media_Extensions_API">Encrypted Media Extensions API</a>, and the <a href="/en-US/docs/Web/API/Media_Streams_API">Media Capture and Streams API</a>.</p> + +<h4 id="Media_Session_API">Media Session API</h4> + +<p>The entire Firefox implementation of the Media Session API is currently experimental. This API is used to customize the handling of media-related notifications, to manage events and data useful for presenting a user interface for managing media playback, and to obtain media file metadata. See {{bug(1112032)}} for more details.</p> + +<table class="standard-table" style="max-width: 42rem;"> + <thead> + <tr> + <th scope="col" style="vertical-align: bottom;">Release channel</th> + <th scope="col" style="vertical-align: bottom;">Version added</th> + <th scope="col" style="vertical-align: bottom;">Enabled by default?</th> + </tr> + </thead> + <tbody> + <tr> + <th scope="row">Nightly</th> + <td>71</td> + <td>Yes</td> + </tr> + <tr> + <th scope="row">Developer Edition</th> + <td>71</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Beta</th> + <td>71</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Release</th> + <td>71</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Preference name</th> + <th colspan="2"><code>dom.media.mediasession.enabled</code></th> + </tr> + </tbody> +</table> + +<h4 id="Asynchronous_SourceBuffer_add_and_remove">Asynchronous SourceBuffer add and remove</h4> + +<p>This adds the promise-based methods {{domxref("SourceBuffer.appendBufferAsync", "appendBufferAsync()")}} and {{domxref("SourceBuffer.removeAsync", "removeAsync()")}} for adding and removing media source buffers to the {{domxref("SourceBuffer")}} interface. See {{bug(1280613)}} and {{bug(778617)}} for more information.</p> + +<table class="standard-table" style="max-width: 42rem;"> + <thead> + <tr> + <th scope="col" style="vertical-align: bottom;">Release channel</th> + <th scope="col" style="vertical-align: bottom;">Version added</th> + <th scope="col" style="vertical-align: bottom;">Enabled by default?</th> + </tr> + </thead> + <tbody> + <tr> + <th scope="row">Nightly</th> + <td>62</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Developer Edition</th> + <td>62</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Beta</th> + <td>62</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Release</th> + <td>62</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Preference name</th> + <th colspan="2"><code>media.mediasource.experimental.enabled</code></th> + </tr> + </tbody> +</table> + +<h4 id="AVIF_AV1_Image_File_format_support">AVIF (AV1 Image File format) support</h4> + +<p>With this feature enabled, Firefox supports the AV1 Image File (AVIF) format. This is a still image file format that leverages the capabilities of the AV1 video compression algorithms to reduce image size. See {{bug(1443863)}} for more details.</p> + +<table class="standard-table" style="max-width: 42rem;"> + <thead> + <tr> + <th scope="col" style="vertical-align: bottom;">Release channel</th> + <th scope="col" style="vertical-align: bottom;">Version added</th> + <th scope="col" style="vertical-align: bottom;">Enabled by default?</th> + </tr> + </thead> + <tbody> + <tr> + <th scope="row">Nightly</th> + <td>77</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Developer Edition</th> + <td>77</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Beta</th> + <td>77</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Release</th> + <td>77</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Preference name</th> + <th colspan="2"><code>image.avif.enabled</code></th> + </tr> + </tbody> +</table> + +<h2 id="Security_and_privacy">Security and privacy</h2> + +<h4 id="Block_plain_text_requests_from_Flash_on_encrypted_pages">Block plain text requests from Flash on encrypted pages</h4> + +<p>In order to help mitigate man-in-the-middle (MitM) attacks caused by Flash content on encrypted pages, a preference has been added to treat <code>OBJECT_SUBREQUEST</code>s as active content. See {{bug(1190623)}} for more details.</p> + +<table class="standard-table" style="max-width: 42rem;"> + <thead> + <tr> + <th scope="col" style="vertical-align: bottom;">Release channel</th> + <th scope="col" style="vertical-align: bottom;">Version added</th> + <th scope="col" style="vertical-align: bottom;">Enabled by default?</th> + </tr> + </thead> + <tbody> + <tr> + <th scope="row">Nightly</th> + <td>59</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Developer Edition</th> + <td>59</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Beta</th> + <td>59</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Release</th> + <td>59</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Preference name</th> + <th colspan="2"><code>security.mixed_content.block_object_subrequest</code></th> + </tr> + </tbody> +</table> + +<h4 id="Insecure_page_labeling">Insecure page labeling</h4> + +<p>These two preferences add a "Not secure" text label in the address bar next to the traditional lock icon when a page is loaded insecurely (that is, using {{Glossary("HTTP")}} rather than {{Glossary("HTTPS")}}). See {{bug(1335970)}} for more details.</p> + +<table class="standard-table" style="max-width: 42rem;"> + <thead> + <tr> + <th scope="col" style="vertical-align: bottom;">Release channel</th> + <th scope="col" style="vertical-align: bottom;">Version added</th> + <th scope="col" style="vertical-align: bottom;">Enabled by default?</th> + </tr> + </thead> + <tbody> + <tr> + <th scope="row">Nightly</th> + <td>60</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Developer Edition</th> + <td>60</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Beta</th> + <td>60</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Release</th> + <td>60</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Preference name</th> + <th colspan="2"><code>security.insecure_connection_text.enabled</code> for normal browsing mode; <code>security.insecure_connection_text.pbmode.enabled</code> for private browsing mode</th> + </tr> + </tbody> +</table> + +<h4 id="Upgrading_mixed_display_content">Upgrading mixed display content</h4> + +<p>When enabled, this preference causes Firefox to automatically upgrade requests for media content from HTTP to HTTPS on secure pages. The intent is to prevent mixed-content conditions in which some content is loaded securely while other content is insecure. If the upgrade fails (because the media's host doesn't support HTTPS), the media is not loaded. See {{bug(1435733)}} for more details.</p> + +<p>This also changes the console warning; if the upgrade succeeds, the message indicates that the request was upgraded, instead of showing a warning.</p> + +<table class="standard-table" style="max-width: 42rem;"> + <thead> + <tr> + <th scope="col" style="vertical-align: bottom;">Release channel</th> + <th scope="col" style="vertical-align: bottom;">Version added</th> + <th scope="col" style="vertical-align: bottom;">Enabled by default?</th> + </tr> + </thead> + <tbody> + <tr> + <th scope="row">Nightly</th> + <td>60</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Developer Edition</th> + <td>60</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Beta</th> + <td>60</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Release</th> + <td>60</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Preference name</th> + <th colspan="2"><code>security.mixed_content.upgrade_display_content</code></th> + </tr> + </tbody> +</table> + +<h4 id="Implicit_relnoopener_on_links_with_target_blank">Implicit rel="noopener" on links with target="_blank"</h4> + +<p>Following Safari's lead, this experiment causes setting the {{htmlattrxref("target", "a")}} attribute on an {{HTMLElement("a")}} element to <code>_blank</code> (that is, using <code>target="_blank"</code>) to imply that the default value of {{htmlattrxref("rel", "a")}} is <code>noopener</code> rather than <code>opener</code>, which is the usual default. To bypass this security measure, web developers should explicitly request an opener relationship using <code>rel="opener"</code> on their <code><a></code> elements that use <code>target="_blank"</code> to open the link into a new window or tab. See {{bug(1503681)}} for more details.</p> + +<table class="standard-table" style="max-width: 42rem;"> + <thead> + <tr> + <th scope="col" style="vertical-align: bottom;">Release channel</th> + <th scope="col" style="vertical-align: bottom;">Version added</th> + <th scope="col" style="vertical-align: bottom;">Enabled by default?</th> + </tr> + </thead> + <tbody> + <tr> + <th scope="row">Nightly</th> + <td>65</td> + <td>Yes</td> + </tr> + <tr> + <th scope="row">Developer Edition</th> + <td>65</td> + <td>Yes</td> + </tr> + <tr> + <th scope="row">Beta</th> + <td>65</td> + <td>Yes</td> + </tr> + <tr> + <th scope="row">Release</th> + <td>65</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Preference name</th> + <th colspan="2"><code>dom.targetBlankNoOpener.enabled</code></th> + </tr> + </tbody> +</table> + +<h4 id="FTP_support_disabled">FTP support disabled</h4> + +<p>For security reasons, Mozilla intends to remove support for {{Glossary("FTP")}} from Firefox in 2010, effective in Firefox 82. See {{bug(1622409)}} for implementation progress. The <code>network.ftp.enabled</code> preference must be enabled (set to <code>true</code>) to allow FTP to be used.</p> + +<table class="standard-table" style="max-width: 42rem;"> + <thead> + <tr> + <th scope="col" style="vertical-align: bottom;">Release channel</th> + <th scope="col" style="vertical-align: bottom;">Version added</th> + <th scope="col" style="vertical-align: bottom;">Enabled by default?</th> + </tr> + </thead> + <tbody> + <tr> + <th scope="row">Nightly</th> + <td>77</td> + <td>Yes</td> + </tr> + <tr> + <th scope="row">Developer Edition</th> + <td>77</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Beta</th> + <td>77</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Release</th> + <td>77</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Preference name</th> + <th colspan="2"><code>network.ftp.enabled</code></th> + </tr> + </tbody> +</table> + +<h2 id="Developer_tools">Developer tools</h2> + +<p>Mozilla's developer tools are constantly evolving. We experiment with new ideas, add new features, and test them on the Nightly and Developer Edition channels before letting them go through to beta and release. The features below are the current crop of experimental developer tool features.</p> + +<h4 id="Color_scheme_simulation">Color scheme simulation</h4> + +<p>Adds an option to simulate different color schemes allowing to test {{cssxref("@media/prefers-color-scheme", "@prefers-color-scheme")}} media queries. Using this media query lets your style sheet specify whether it prefers a light or dark user interface. This feature lets you test your code without having to change settings in your browser (or operating system, if the browser follows a system-wide color scheme setting).</p> + +<p>See {{bug(1550804)}} and {{bug(1137699)}} for more details.</p> + +<table class="standard-table" style="max-width: 42rem;"> + <thead> + <tr> + <th scope="col" style="vertical-align: bottom;">Release channel</th> + <th scope="col" style="vertical-align: bottom;">Version added</th> + <th scope="col" style="vertical-align: bottom;">Enabled by default?</th> + </tr> + </thead> + <tbody> + <tr> + <th scope="row">Nightly</th> + <td>72</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Developer Edition</th> + <td>72</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Beta</th> + <td>72</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Release</th> + <td>72</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Preference name</th> + <th colspan="2"><code>devtools.inspector.color-scheme-simulation.enabled</code></th> + </tr> + </tbody> +</table> + +<h4 id="Execution_context_selector">Execution context selector</h4> + +<p>This feature displays a button on the console's command line that lets you change the context in which the expression you enter will be executed. See {{bug(1605154)}} and {{bug(1605153)}} for more details.</p> + +<table class="standard-table" style="max-width: 42rem;"> + <thead> + <tr> + <th scope="col" style="vertical-align: bottom;">Release channel</th> + <th scope="col" style="vertical-align: bottom;">Version added</th> + <th scope="col" style="vertical-align: bottom;">Enabled by default?</th> + </tr> + </thead> + <tbody> + <tr> + <th scope="row">Nightly</th> + <td>75</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Developer Edition</th> + <td>75</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Beta</th> + <td>75</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Release</th> + <td>75</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Preference name</th> + <th colspan="2"><code>devtools.webconsole.input.context</code></th> + </tr> + </tbody> +</table> + +<h4 id="Mobile_gesture_support_in_Responsive_Design_Mode">Mobile gesture support in Responsive Design Mode</h4> + +<p>Mouse gestures are used to simulate mobile gestures like swiping/scrolling, double-tap and pinch-zooming and long-press to select/open the context menu. See {{bug(1621781)}}, {{bug(1245183)}}, and {{bug(1401304)}} for more details.</p> + +<table class="standard-table" style="max-width: 42rem;"> + <thead> + <tr> + <th scope="col" style="vertical-align: bottom;">Release channel</th> + <th scope="col" style="vertical-align: bottom;">Version added</th> + <th scope="col" style="vertical-align: bottom;">Enabled by default?</th> + </tr> + </thead> + <tbody> + <tr> + <th scope="row">Nightly</th> + <td>76<sup>[1]</sup></td> + <td>Yes</td> + </tr> + <tr> + <th scope="row">Developer Edition</th> + <td>76<sup>[1]</sup></td> + <td>Yes</td> + </tr> + <tr> + <th scope="row">Beta</th> + <td>76<sup>[1]</sup></td> + <td>Yes</td> + </tr> + <tr> + <th scope="row">Release</th> + <td>76<sup>[1]</sup></td> + <td>No</td> + </tr> + <tr> + <th scope="row">Preference name</th> + <th colspan="2">n/a</th> + </tr> + </tbody> +</table> + +<p>[1] Support for zooming using the double-tap gesture was added in Firefox 76. The other gestures were added for Firefox 79.</p> + +<h4 id="Compatibility_panel">Compatibility panel</h4> + +<p>A side panel for the Page Inspector that shows you information detailing your app's cross-browser compatibility status. See {{bug(1584464)}} for more details.</p> + +<table class="standard-table" style="max-width: 42rem;"> + <thead> + <tr> + <th scope="col" style="vertical-align: bottom;">Release channel</th> + <th scope="col" style="vertical-align: bottom;">Version added</th> + <th scope="col" style="vertical-align: bottom;">Enabled by default?</th> + </tr> + </thead> + <tbody> + <tr> + <th scope="row">Nightly</th> + <td>71</td> + <td>Yes</td> + </tr> + <tr> + <th scope="row">Developer Edition</th> + <td>71</td> + <td>Yes</td> + </tr> + <tr> + <th scope="row">Beta</th> + <td>71</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Release</th> + <td>71</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Preference name</th> + <th colspan="2"><code>devtools.inspector.compatibility.enabled</code></th> + </tr> + </tbody> +</table> + +<h2 id="UI">UI</h2> + +<h4 id="Desktop_zooming">Desktop zooming</h4> + +<p>This feature lets you enable smooth pinch zooming on desktop computers without requiring layout reflows, just like mobile devices do. See {{bug(1245183)}} for further details.</p> + +<table class="standard-table" style="max-width: 42rem;"> + <thead> + <tr> + <th scope="col" style="vertical-align: bottom;">Release channel</th> + <th scope="col" style="vertical-align: bottom;">Version added</th> + <th scope="col" style="vertical-align: bottom;">Enabled by default?</th> + </tr> + </thead> + <tbody> + <tr> + <th scope="row">Nightly</th> + <td>42</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Developer Edition</th> + <td>42</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Beta</th> + <td>42</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Release</th> + <td>42</td> + <td>No</td> + </tr> + <tr> + <th scope="row">Preference name</th> + <th colspan="2"><code>apz.allow_zooming</code> and (on Windows) <code>apz.windows.use_direct_manipulation</code></th> + </tr> + </tbody> +</table> + +<h2 id="See_also">See also</h2> + +<ul> + <li><a href="/en-US/docs/Mozilla/Firefox/Releases">Firefox developer release notes</a></li> + <li><a href="https://nightly.mozilla.org/">Firefox Nightly</a></li> + <li><a href="https://www.mozilla.org/en-US/firefox/developer/">Firefox Developer Edition</a></li> +</ul> diff --git a/files/it/mozilla/firefox/index.html b/files/it/mozilla/firefox/index.html new file mode 100644 index 0000000000..c49c144593 --- /dev/null +++ b/files/it/mozilla/firefox/index.html @@ -0,0 +1,52 @@ +--- +title: Firefox +slug: Mozilla/Firefox +tags: + - Firefox + - Mozilla + - NeedsTranslation + - TopicStub +translation_of: Mozilla/Firefox +--- +<div>{{FirefoxSidebar}}</div> + +<div class="boxed translate-display"> +<p><a href="https://www.mozilla.org/firefox/">Firefox</a> è il popolare browser web di Mozilla, disponibile per varie piattaforme, tra cui Windows, Mac OS X, e Linux sul desktop, Android e altri dispositivi mobile. Con la sua ampia compatibilità, le ultime novità nelle tecnologie web e i potenti strumenti di sviluppo, Firefox è una scelta fantastica sia per gli sviluppatori web che per gli utenti.</p> + +<p>Firefox è un progetto open source; la maggior parte del codice è stata scritta dalla nostra enorme comunità di volontari. In questo documento è possibile imparare come contribuire al progetto Firefox e anche trovare link alle informazioni riguardanti lo sviluppo di componenti aggiuntivi per Firefox, utilizzare gli strumenti di sviluppo e altro ancora.</p> + +<div class="summary"> +<p>Impara a creare componenti aggiuntivi per <a href="http://www.mozilla.org/firefox/">Firefox</a>, sviluppare e compilare Firefox stesso e come funzionano le parti interne di Firefox e dei suoi sottoprogetti.</p> +</div> + +<ul class="card-grid"> + <li><span>Note di rilascio per gli sviluppatori</span> + + <p><a href="https://developer.mozilla.org/it/Firefox/Releases">Note di rilascio focalizzate sugli sviluppatori</a>; scopri quali nuove capacità vengono incluse in ogni versione di Firefox, sia per lo sviluppo di siti web che per i componenti aggiuntivi.</p> + </li> + <li><span>Documentazione del progetto</span> + <p>Ottieni informazioni dettagliate riguardo <a href="https://developer.mozilla.org/it/docs/Mozilla">il funzionamento interno di Firefox</a> e il suo sistema di compilazione, per aiutarti a trovare ciò che cerchi nel codice.</p> + </li> + <li><span>Guida per gli sviluppatori</span> + <p>La nostra <a href="https://developer.mozilla.org/it/docs/Developer_Guide">guida per gli sviluppatori</a> fornisce i dettagli riguardanti il come ottenere e compilare i sorgenti di Firefox, come orientarsi e come contribuire al progetto.</p> + </li> +</ul> + +<p>Firefox è disponibile su quattro <strong>canali</strong>. Il canale release è adatto all'uso quotidiano; è la versione fornita e usata dalle persone di tutto il mondo. Gli altri canali vengono utilizzati dai tester, dai pionieri e dai veri entusiasti.</p> + +<ul class="card-grid"> + <li class="download-box"><span>Firefox Nightly</span> + + <p>Compilazioni notturne solo per scopi di test.</p> + <a class="download-button external ignore-external" href="https://nightly.mozilla.org/" rel="noopener">Scarica Nightly</a></li> + <li class="download-box"><span>Firefox Aurora</span> + <p>Le ultime innovazioni in un ambiente sperimentale.</p> + <a class="download-button external ignore-external" href="https://www.mozilla.org/firefox/channel/#aurora" rel="noopener">Scarica Aurora</a></li> + <li class="download-box"><span>Firefox Beta</span> + <p>Le ultime novità in un ambiente più stabile.</p> + <a class="download-button external ignore-external" href="https://www.mozilla.org/firefox/channel/#beta" rel="noopener">Scarica Beta</a></li> + <li class="download-box"><span>Firefox</span> + <p>Provato, testato e usato da milioni di utenti in tutto il mondo.</p> + <a class="download-button external ignore-external" href="https://www.mozilla.org/firefox/channel/#firefox" rel="noopener">Scarica Firefox</a></li> +</ul> +</div> diff --git a/files/it/mozilla/firefox/multiprocess_firefox/index.html b/files/it/mozilla/firefox/multiprocess_firefox/index.html new file mode 100644 index 0000000000..316b048c8c --- /dev/null +++ b/files/it/mozilla/firefox/multiprocess_firefox/index.html @@ -0,0 +1,73 @@ +--- +title: Multiprocess Firefox +slug: Mozilla/Firefox/Multiprocess_Firefox +translation_of: Mozilla/Firefox/Multiprocess_Firefox +--- +<div>{{FirefoxSidebar}}</div><p>Nelle attuali versioni di Firefox Desktop, l'intero browser gira in un singolo processo del sistema operativo. In particolare, JavaScript che avvia la UI del browser (conosciuta anche come "codice chrome") gira nello stesso processo così come nelle pagine web (meglio conosciute come "contenuto" o "contenuto web").<br> + <br> + Le future versioni di Firefox avvieranno la UI del browser in un processo separato dal contenuto web. Nella iniziale iterazione di questa architettura tutte le schede del browser funzioneranno nello stesso processo, e la UI del browser girerà in un processo differente. Nelle prossime iterazioni, ci aspettiamo di avere più di un unico processo di contenuti. Il progetto di Firefox multiprocesso che stiamo consegnando è chiamato Electrolysis, a volte abbreviato in e10s.</p> + +<p>Le normali pagine web non sono influenzate da Firefox multiprocesso. Lo staff che sta lavorando a Firefox stesso e gli sviluppatori di Firefox add-on saranno influenzati se il loro i loro rilasci di codice potranno aver accesso diretto al contenuto web.</p> + +<p>Anziché accedere direttamente al contenuto, JavaScript di chrome dovrà usare il <a href="https://developer.mozilla.org/en-US/Firefox/Multiprocess_Firefox/The_message_manager">message manager</a> per accedere al contenuto. Per rendere più semplice la transizione abbiamo implementato il <a href="https://developer.mozilla.org/en-US/Firefox/Multiprocess_Firefox/Cross_Process_Object_Wrappers">Cross Process Object Wrappers</a> e alcuni <a href="https://developer.mozilla.org/en-US/Firefox/Multiprocess_Firefox/Limitations_of_chrome_scripts#Compatibility_shims">integratori di compatibilità per sviluppatori di add-on</a>. Se sei uno sviluppatore di add-on che si sta chiedendo se ne sei influenzato, vedi la <a href="https://developer.mozilla.org/en-US/Add-ons/Working_with_multiprocess_Firefox">guida per operare con Firefox multiprocesso</a>.</p> + +<p>Firefox Multiprocesso è attualmente abilitato di default nelle builds di <a class="external-icon external" href="https://nightly.mozilla.org/">Nightly</a>.</p> + +<hr> +<div class="column-container"> +<div class="column-half"> +<dl> + <dt><a href="/en-US/Firefox/Multiprocess_Firefox/Technical_overview">Technical overview</a></dt> + <dd>A very high-level view of how multiprocess Firefox is implemented.</dd> + <dt><a href="/en-US/Firefox/Multiprocess_Firefox/Glossary">Glossary</a></dt> + <dd>A reference for the jargon used in multiprocess Firefox.</dd> + <dt><a href="/en-US/Firefox/Multiprocess_Firefox/The_message_manager">The message manager</a></dt> + <dd>How to communicate between chrome and content.</dd> + <dt><a href="/en-US/Firefox/Multiprocess_Firefox/Message_Manager_Interfaces">Message Manager interfaces</a></dt> + <dd>Includes links to the API reference for the message manager interfaces.</dd> + <dt><a href="/en-US/Firefox/Multiprocess_Firefox/Frame_script_environment">Frame script environment</a></dt> + <dd>The environment frame scripts run in, and especially how it differs from the environment for chrome code.</dd> +</dl> +</div> + +<div class="column-half"> +<dl> + <dt><a href="/en-US/Firefox/Multiprocess_Firefox/Motivation">Motivation</a></dt> + <dd>Why we're implementing multiprocess Firefox: performance, security, and stability.</dd> + <dt><a href="/en-US/Add-ons/Working_with_multiprocess_Firefox">Add-on migration guide</a></dt> + <dd>If you're an add-on developer, find out if you're affected and how to update your code.</dd> + <dt><a href="/en-US/Firefox/Multiprocess_Firefox/Cross_Process_Object_Wrappers">Cross Process Object Wrappers</a></dt> + <dd>Cross Process Object Wrappers are a migration aid, giving chrome code synchronous access to content.</dd> + <dt><a href="/en-US/Firefox/Multiprocess_Firefox/Debugging_frame_scripts">Debugging frame scripts</a></dt> + <dd>Using the Browser Content Toolbox to debug frame scripts.</dd> +</dl> +</div> +</div> + +<hr> +<div class="column-container"> +<div class="column-half"> +<dl> + <dt><a href="/en-US/Firefox/Multiprocess_Firefox/Limitations_of_chrome_scripts">Limitations of chrome scripts</a></dt> + <dd>Practices that will no longer work in chrome code, and how to fix them.</dd> +</dl> +</div> + +<div class="column-half"> +<dl> + <dt><a href="/en-US/Firefox/Multiprocess_Firefox/Limitations_of_frame_scripts">Limitations of frame scripts</a></dt> + <dd>Practices that will not work inside frame scripts, and what to do instead.</dd> +</dl> +</div> +</div> + +<hr> +<h2 id="Contact_us">Contact us</h2> + +<p>Find out more about the project, get involved, or ask us your questions.</p> + +<ul> + <li><strong>Electrolysis project page</strong>: <a href="https://wiki.mozilla.org/Electrolysis">https://wiki.mozilla.org/Electrolysis</a></li> + <li><strong>IRC</strong>: #e10s on <a href="https://wiki.mozilla.org/IRC">irc.mozilla.org</a></li> + <li><strong>Mailing list</strong>: <a href="https://groups.google.com/forum/#!forum/mozilla.dev.tech.electrolysis">dev.tech.electrolysis</a></li> +</ul> diff --git a/files/it/mozilla/firefox/releases/40/index.html b/files/it/mozilla/firefox/releases/40/index.html new file mode 100644 index 0000000000..0b57ccb6ba --- /dev/null +++ b/files/it/mozilla/firefox/releases/40/index.html @@ -0,0 +1,117 @@ +--- +title: Firefox 40 per sviluppatori +slug: Mozilla/Firefox/Releases/40 +tags: + - Firefox + - Rilasci +translation_of: Mozilla/Firefox/Releases/40 +--- +<div>{{FirefoxSidebar}}</div><div class="column-container zone-callout"><a href="https://nightly.mozilla.org/" style="float: right; margin-bottom: 20px; padding: 10px; text-align: center; border-radius: 4px; display: inline-block; background-color: #81BC2E; white-space: nowrap; color: white; text-shadow: 0px 1px 0px rgba(0, 0, 0, 0.25); box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.2), 0px -1px 0px 0px rgba(0, 0, 0, 0.3) inset;">Installa Firefox Nightly</a></div> + +<h2 id="Novità_per_Sviluppatori_Web">Novità per Sviluppatori Web</h2> + +<h3 id="Strumenti_per_sviluppatore">Strumenti per sviluppatore</h3> + +<ul> + <li>I messaggi {{domxref("Console")}} API da {{domxref("SharedWorker")}} o {{domxref("ServiceWorker")}} adesso vengono mostrati nella console web ({{bug(1125205)}}).</li> +</ul> + +<h3 id="CSS">CSS</h3> + +<ul> + <li>Le regole prefissate (<code>-moz-</code>) per {{cssxref("text-decoration-color")}}, {{cssxref("text-decoration-line")}}, e {{cssxref("text-decoration-style")}} sono state rimosse ({{bug(1097922)}}).</li> + <li>La proprietà {{cssxref("text-align")}} adesso supporta il valore <code>match-parent</code> ({{bug(645642)}}).</li> + <li>Nella modalità Quirks, il valore predefinito per {{cssxref("empty-cells")}} adesso è <code>show</code>, come nella modalità standard ({{bug(1020400)}}).</li> +</ul> + +<h3 id="HTML">HTML</h3> + +<p><em>Nessuna novità.</em></p> + +<h3 id="JavaScript">JavaScript</h3> + +<ul> + <li>Il codice illegibile dopo la dichiarazione {{jsxref("Statements/return", "return")}} (inclusa l'espressione illegibile dopo {{jsxref("Statements/return", "semicolon-less return statements", "#Automatic_semicolon_insertion", 1)}}) adesso mostreranno un avvertimento nella console ({{bug(1005110)}}, {{bug(1151931)}}).</li> + <li>{{jsxref("Symbol.match")}} è stato aggiunto ({{bug(1054755)}}).</li> + <li>Passando un oggetto che ha una proprietà chiamata {jsxref("Symbol.match")}} con un valore {{Glossary("truthy")}} verso {{jsxref("String.prototype.startsWith")}}, {{jsxref("String.prototype.endsWith")}}, e {{jsxref("String.prototype.contains")}} adesso attiva un {{jsxref("TypeError")}} ({{bug(1054755)}}).</li> + <li>La funzione {{jsxref("RegExp")}} richiama uno schema a sé, se chiamato senza {{jsxref("Operators/new", "new")}} e l'oggetto dello schema ha una proprietà chiamata {{jsxref("Symbol.match")}} con un valore {{Glossary("truthy")}}, e la proprietà <code>constructor </code>dell'oggetto dello schema è uguale a lla funzione {{jsxref("RegExp")}}. ({{bug(1147817)}}).</li> + <li>Il supporto per il non-standard for-in destrutturante JS1.7 è stato abbandonato ({{bug(1083498)}}).</li> + <li><a href="/en-US/docs/Web/JavaScript/Reference/Statements/for...in#Firefox-specific_notes">L'inizializzatore di espressioni non-standard </a>è stato rimosso dai cicli <a href="/en-US/docs/Web/JavaScript/Reference/Statements/for...in">for...in</a> ({{bug(748550)}}).</li> + <li>\u{xxxxxx} unicode codepoint in {{jsxref("Global_Objects/String", "string literals", "", 1)}} è stato aggiunto ({{bug(320500)}}).</li> + <li>{{jsxref("String.prototype.includes", "String.prototype.contains", "#String.prototype.contains")}} è stato sostituito con {{jsxref("String.prototype.includes")}}, <code>String.prototype.contains</code> è mantenuto come alias ({{bug(1102219)}}).</li> +</ul> + +<h3 id="InterfacceAPIsDOM">Interfacce/APIs/DOM</h3> + +<ul> + <li>Il CSS Font Loading API ora è abilitato di default nelle versioni Nightly e Developer Edition ({{bug(1088437)}}). E' ancora disattivato di default nella Beta e Release browsers.</li> + <li>Miglioramento nella nostra implementazione sperimentale di Web Animations: {{domxref("AnimationPlayer.currentTime")}} ora può anche essere impostato ({{bug(1072037)}}).</li> + <li>WebRTC: il {{event("negotiationneeded")}} adesso è anche inviato per negoziazioni iniziali, non solamente per ri-negoziazioni ({{bug(1149838)}}).</li> + <li>Quando inadatto ad analizzare il {{htmlattrxref("srcset", "image")}}, il metodo {{domxref("HTMLImageElement.currentSrc")}} non ritorna più <code>null</code> ma <code>""</code>, come richiesto dall'ultima specifica ({{bug(1139560)}}).</li> + <li>Il <a href="/en-US/docs/Web/API/Push_API">Push API</a> è stato implementato ({{bug(1038811)}}).</li> + <li>Nuove estensioni per il <a href="/en-US/docs/Web/API/Web_Audio_API">Web Audio API</a>: + <ul> + <li>La proprietà {{domxref("AudioContext.state")}} come anche i metodi {{domxref("AudioContext.suspend()")}}, {{domxref("AudioContext.resume()")}}, e {{domxref("AudioContext.close()")}} sono stati aggiunti ({{bug(1094764)}}).</li> + <li>{{domxref("AudioBufferSourceNode")}} ora implementa l'attributo {{domxref("AudioBufferSourceNode.detune")}} <a href="/it/docs/DOM/AudioParam#k-rate">k-rate</a> ({{bug(1153783)}}).</li> + </ul> + </li> + <li>Come per le immagini, Firefox ora restringe {{domxref("Window.requestAnimationFrame()")}} per non-visible {{HTMLElement("iframe")}} ({{bug(1145439)}}).</li> + <li>{{domxref("Navigator.taintEnabled")}} non è più disponibile per i Web workers ({{bug(1154878)}}).</li> + <li>{{domxref("DataStore")}} ora è disponibile nei Web workers ({{bug(916196)}}).</li> + <li>L'interfaccia <code>CSSCharsetRule</code> è stata rimossa e tali oggetti non sono più disponibili nel CSSOM ({{bug(1148694)}}). Questo corrisponde la spec (recentemente adattata) e il comportamento di Chrome.</li> + <li>La proprietà {{domxref("Console.timeStamp")}} è stata aggiunta ({{bug(922221)}}).</li> + <li>Lieve miglioramento nel nostro <a href="/en-US/docs/Web/API/ServiceWorker_API">Service Worker API</a>: il metodo {{domxref("ServiceWorkerRegistration.update()", "update()")}} è stato spostato da {{domxref("ServiceWorkerGlobalScope")}} a {{domxref("ServiceWorkerRegistration")}} ({{bug(1131350)}}).</li> + <li>{{domxref("IDBTransaction")}} adesso sono non-durable di default ({{bug(1112702)}}). Questo favorisce prestazioni superaffidabili e corrisponde a ciò che gli altri browsers stanno facendo.</li> +</ul> + +<h3 id="MathML">MathML</h3> + +<p><em>Nessuna novità.</em></p> + +<h3 id="SVG">SVG</h3> + +<p><em>Nessuna novità.</em></p> + +<h3 id="AudioVideo">Audio/Video</h3> + +<p><em>Nessuna novità.</em></p> + +<h2 id="Networking">Networking</h2> + +<p><em>Nessuna novità.</em></p> + +<h2 id="Sicurezza">Sicurezza</h2> + +<p><em>Nessuna novità.</em></p> + +<h2 id="Novità_per_componenti_aggiuntivi_e_sviluppatori_Mozilla">Novità per componenti aggiuntivi e sviluppatori Mozilla</h2> + +<h3 id="XUL">XUL</h3> + +<p><em>Nessuna novità.</em></p> + +<h3 id="Moduli_di_codice_JavaScript">Moduli di codice JavaScript</h3> + +<ul> + <li>Dict.jsm è stato rimosso {{bug(1123309)}}. Usate invece {{jsxref("Map")}}.</li> +</ul> + +<h3 id="XPCOM">XPCOM</h3> + +<p><em>Nessuna novità.</em></p> + +<h3 id="Altro">Altro</h3> + +<ul> + <li>Places Keywords API sono state deprecate e saranno rimosse presto ({{bug(1140395)}}).</li> +</ul> + +<h2 id="Vedi_anche">Vedi anche</h2> + +<ul> + <li><a href="/en-US/docs/Mozilla/Firefox/Releases/40/Site_Compatibility">Compatibilità siti per Firefox 40</a></li> +</ul> + +<h2 id="Vecchie_versioni">Vecchie versioni</h2> + +<p>{{Firefox_for_developers('39')}}</p> diff --git a/files/it/mozilla/firefox/releases/42/index.html b/files/it/mozilla/firefox/releases/42/index.html new file mode 100644 index 0000000000..5d02b8ce79 --- /dev/null +++ b/files/it/mozilla/firefox/releases/42/index.html @@ -0,0 +1,189 @@ +--- +title: Firefox 42 for developers +slug: Mozilla/Firefox/Releases/42 +tags: + - Firefox + - Note di rilascio + - Rilasci +translation_of: Mozilla/Firefox/Releases/42 +--- +<div>{{FirefoxSidebar}}</div> + +<div class="column-container zone-callout"><a href="https://www.mozilla.org/firefox/developer/" style="float: right; margin-left: 10px; margin-bottom: 20px; padding: 10px; text-align: center; border-radius: 4px; display: inline-block; background-color: #81BC2E; white-space: nowrap; color: white; text-shadow: 0px 1px 0px rgba(0, 0, 0, 0.25); box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.2), 0px -1px 0px 0px rgba(0, 0, 0, 0.3) inset;">Installa Firefox Developer Edition </a> <span>Firefox 42 was released on November 3, 2015. This article lists key changes that are useful not only for web developers, but also Firefox and Gecko developers as well as add-on developers.</span></div> + +<h2 id="Modifiche_per_gli_sviluppatori">Modifiche per gli sviluppatori</h2> + +<h3 id="Strumenti_per_gli_sviluppatori">Strumenti per gli sviluppatori</h3> + +<p>In evidenza:</p> + +<ul> + <li><a href="/en-US/docs/Tools/Remote_Debugging/Debugging_Firefox_for_Android_over_Wifi">Debugging Firefox per Android tramite Wifi</a></li> + <li><a href="/en-US/docs/Tools/WebIDE/Setting_up_runtimes#Configuring_Simulators">Firefox OS Simulator configuration in WebIDE</a></li> + <li><a href="/en-US/docs/Tools/Page_Inspector/How_to/Edit_CSS_filters#Saving_filter_presets">CSS filter presets</a></li> +</ul> + +<p><a class="external external-icon" href="https://bugzilla.mozilla.org/buglist.cgi?resolution=FIXED&classification=Client%20Software&chfieldto=2015-08-10&query_format=advanced&chfield=resolution&chfieldfrom=2015-06-29&chfieldvalue=FIXED&bug_status=RESOLVED&bug_status=VERIFIED&component=Developer%20Tools&component=Developer%20Tools%3A%203D%20View&component=Developer%20Tools%3A%20Canvas%20Debugger&component=Developer%20Tools%3A%20Console&component=Developer%20Tools%3A%20Debugger&component=Developer%20Tools%3A%20Framework&component=Developer%20Tools%3A%20Graphic%20Commandline%20and%20Toolbar&component=Developer%20Tools%3A%20Inspector&component=Developer%20Tools%3A%20Memory&component=Developer%20Tools%3A%20Netmonitor&component=Developer%20Tools%3A%20Object%20Inspector&component=Developer%20Tools%3A%20Performance%20Tools%20%28Profiler%2FTimeline%29&component=Developer%20Tools%3A%20Responsive%20Mode&component=Developer%20Tools%3A%20Scratchpad&component=Developer%20Tools%3A%20Source%20Editor&component=Developer%20Tools%3A%20Storage%20Inspector&component=Developer%20Tools%3A%20Style%20Editor&component=Developer%20Tools%3A%20User%20Stories&component=Developer%20Tools%3A%20Web%20Audio%20Editor&component=Developer%20Tools%3A%20WebGL%20Shader%20Editor&component=Developer%20Tools%3A%20WebIDE&product=Firefox&list_id=12478437">All devtools bugs fixed between Firefox 41 and Firefox 42</a>.</p> + +<h3 id="CSS">CSS</h3> + +<ul> + <li>Vertical {{cssxref('writing-mode')}} is now supported with rtl scripts ({{bug(1131451)}}).</li> + <li>Non-standard proprieties like {{cssxref('-moz-margin-start')}} are now aliases of their standard counterpart ({{cssxref('margin-inline-start')}}, …). Previously, it was the opposite. This affects the value returned by {{domxref('CSSStyleDeclaration.cssText')}} and iteration of the properties in a style ruleand iteration of the properties in a style rule, that both use the canonical form ({{bug(1118103)}}).</li> +</ul> + +<h3 id="HTML">HTML</h3> + +<ul> + <li>The {{htmlattrxref("referrer", "input")}} attribute of the {{HTMLElement("input")}} ({{bug(1166910)}}), {{HTMLElement("a")}} and {{HTMLElement("area")}} ({{bug(1174913)}}) has been implemented.</li> +</ul> + +<h3 id="JavaScript">JavaScript</h3> + +<ul> + <li>The {{jsxref("Reflect")}} object has been implemented ({{bug(987514)}}).</li> + <li>The implementation of the {{jsxref("Proxy")}} {{jsxref("Global_Objects/Proxy/handler/ownKeys", "handler.ownKeys()")}} trap has been updated to match the final ES2015 specification ({{bug(1049662)}}).</li> + <li>Calling {{jsxref("Map")}}, {{jsxref("Set")}}, or {{jsxref("WeakMap")}} without {{jsxref('Operators', 'new')}}, will now throw a {{jsxref("TypeError")}} ({{bug(1083752)}}).</li> +</ul> + +<h3 id="InterfacesAPIsDOM">Interfaces/APIs/DOM</h3> + +<h4 id="DOM_HTML_DOM">DOM & HTML DOM</h4> + +<ul> + <li>{{domxref('Event.offsetX')}} and {{domxref('Event.offsetY')}} have been added ({{bug(69787)}}).</li> + <li>The {{domxref("HTMLInputElement")}} interface has been experimentally extended to handle the upload of directories ({{bug(1164310)}}). These four members are now available behind the <code>dom.input.dirpicker</code> preference: + <ul> + <li>{{domxref("HTMLInputElement.directory")}}</li> + <li>{{domxref("HTMLInputElement.isFilesAndDirectoriesSupported")}}</li> + <li>{{domxref("HTMLInputElement.getFilesAndDirectories()")}}</li> + <li>{{domxref("HTMLInputElement.chooseDirectory()")}}</li> + </ul> + </li> + <li>The {{domxref("Directory")}} interface has been experimentally extended ({{bug(1177688)}}). The two members {{domxref("Directory.path")}} and {{domxref("Directory.getContents")}} are now available.</li> + <li>The <code>HTMLMediaElement.mozSrcObject</code> has been renamed in {{domxref('HTMLMediaElement.srcObject')}} ({{bug(1175523)}}).</li> +</ul> + +<h4 id="Service_Workers">Service Workers</h4> + +<ul> + <li>{{domxref('Request.context')}} has been removed ({{bug(1188062)}}).</li> + <li>The <a href="/en-US/docs/Web/API/Push_API">Push API</a> has been activated by default on Firefox for Desktop ({{bug(1153499)}}), but only on the Nightly/Dev Edition/Beta channels. It is being deactivated by default in the Release channel until consumer UX and debugging features have been properly implemented ({{bug(1207875)}}.) You can still activate it by enabling the <span id="summary_alias_container"><span id="short_desc_nonedit_display"><code>dom.push.enabled</code> pref in <a>about:config</a>.</span></span></li> + <li>The {{domxref("PushManager.hasPermission()")}} method has been deprecated in the spec, and replaced with the {{domxref("PushManager.permissionState()")}} method. Firefox has updated its implementation to reflect this ({{bug("1183853")}}.)</li> + <li>Service-worker-related additions to the <a href="/en-US/docs/Web/API/Notifications_API">Notifications API</a> have been implemented ({{bug(1114554)}}), but are disabled in this release.</li> +</ul> + +<h4 id="Web_Animations_API">Web Animations API</h4> + +<p>Our experimental implementation of <a href="/en-US/docs/Web/API/Web_Animations_API">Web Animations API</a> have been extended to support:</p> + +<ul> + <li>The {{domxref('AnimationPlayer.playbackRate')}} property ({{bug(1127380)}}).</li> + <li>The {{domxref('CSSAnimation')}} and {{domxref('CSSTransition')}} interfaces ({{bug(1178186)}}).</li> + <li>The {{domxref('Animation.reverse()')}} method ({{bug(1150808)}}).</li> + <li>The {{domxref('AnimationPlaybackEvent')}} interface has been added and {{event('cancel')}} and {{event('finish')}} are now fired on {{domxref('Animation')}} ({{bug(1178664)}}).</li> +</ul> + +<h4 id="Web_Components">Web Components</h4> + +<p>Our experimental implementation of the <a href="/en-US/docs/Web/Web_Components/Shadow_DOM">Shadow DOM</a> has been modified:</p> + +<ul> + <li>When trying to invoke {{domxref('Node.cloneNode()')}} on a {{domxref('ShadowRoot')}}, throws a <code>DataCloneError</code> exception ({{bug(1176757)}}).</li> + <li>When invoking {{domxref('Document.importNode()')}} with a {{domxref('ShadowRoot')}} as an argument, we now throws a <code>NotSupportedError</code> exception ({{bug(1177914)}}).</li> + <li>When invoking {{domxref('Document.adoptNode()')}} with a {{domxref('ShadowRoot')}} as an argument, we now throws a <code>HierarchyRequestError</code> exception ({{bug(1177991)}}).</li> +</ul> + +<h4 id="WebGL">WebGL</h4> + +<ul> + <li>WebGL2 {{domxref('WebGLTransformFeedback')}} has been implemented ({{bug(1048724)}}).</li> + <li>The <code>WEBGL_debug_renderer_info</code> extension has been turned on by default ({{bug(1171228)}}).</li> + <li>To obtain a WebGL2 context, {{domxref('HTMLCanvasElement.getContext()')}} now takes <code>webgl2</code> instead of <code>experimental-webgl2</code> previously ({{bug(1187174)}}).</li> +</ul> + +<h4 id="WebRTC">WebRTC</h4> + +<ul> + <li>The <code>RTCICECandidatePairStats.mozPriority</code> has been renamed to {{domxref('RTCICECandidatePairStats.priority')}} ({{bug(1184426)}}).</li> +</ul> + +<h4 id="New_APIs">New APIs</h4> + +<ul> + <li>The {{domxref("ImageBitmap")}} interface and the {{domxref("ImageBitmapFactories.createImageBitmap","createImageBitmap()")}} method have been implemented. They are available on regular window scripts and in Web workers and allow efficient posting of images between window and worker contexts ({{bug(1044102)}}).</li> +</ul> + +<h4 id="Miscellaneous">Miscellaneous</h4> + +<ul> + <li>The {{domxref('IDBCursorWithValue')}} interface is now available in <a href="/en-US/docs/Web/API/Web_Workers_API">Web workers</a> ({{bug(1188115)}}).</li> + <li>Error events sent in <a href="/en-US/docs/Web/API/Web_Workers_API">Web workers</a> doesn't bubble anymore ({{bug(1188141)}}).</li> + <li><a href="/en-US/docs/Web/API/Media_Stream_Extensions">Media Source Extensions</a> (MSE) has been activated for all Web sites, and no more for a white list of sites ({{bug(1185611)}}).</li> + <li>The non-standard and deprecated {{domxref('Window.mozRequestAnimationFrame()')}} has been removed ({{bug(909154)}}). Use the standard {{domxref('Window.requestAnimationFrame()')}} instead.</li> +</ul> + +<h3 id="MathML">MathML</h3> + +<p><em>No change.</em></p> + +<h3 id="SVG">SVG</h3> + +<p><em>No change.</em></p> + +<h3 id="AudioVideo">Audio/Video</h3> + +<p><em>No change.</em></p> + +<h2 id="HTTP">HTTP</h2> + +<p><em>No change.</em></p> + +<h2 id="Networking">Networking</h2> + +<ul> + <li>The CSP <code><a href="/Web/Security/CSP/CSP_policy_directives#upgrade-insecure-requests">upgrade-insecure-requests</a></code> directive has been implemented ({{bug(1139297)}}).</li> +</ul> + +<h2 id="Sicurezza">Sicurezza</h2> + +<ul> + <li>EV certificates with a validity greater than 39 months are now considered and handled as DV certificates ({{bug(1145679)}}).</li> +</ul> + +<h2 id="Cambiamenti_per_gli_add-on_e_Mozilla_developers">Cambiamenti per gli add-on e Mozilla developers</h2> + +<h3 id="Interfaces">Interfaces</h3> + +<h4 id="nsIContentPolicy">nsIContentPolicy</h4> + +<ul> + <li>The <code><strong>TYPE_EMBED</strong></code> constant has been added to <code><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIContentPolicy" title="">nsIContentPolicy</a></code> to allow Gecko internals and add-on code to better differentiate different types of requests. Previously, <code><strong>TYPE_OBJECT</strong></code> was used for these cases ({{bug(1148030)}}).</li> + <li>Similarly, the <strong><code>TYPE_SUBDOCUMENT</code></strong> constants has been split into <code><strong>TYPE_FRAME</strong></code> and <strong><code>TYPE_IFRAME</code></strong> ({{bug(1148044)}}).</li> +</ul> + +<h3 id="XUL">XUL</h3> + +<p><em>No change.</em></p> + +<h3 id="JavaScript_code_modules">JavaScript code modules</h3> + +<p><em>No change.</em></p> + +<h3 id="XPCOM">XPCOM</h3> + +<p><em>No change.</em></p> + +<h3 id="Other">Other</h3> + +<p><em>No change.</em></p> + +<h2 id="See_also">See also</h2> + +<ul> + <li><a href="https://www.fxsitecompat.com/en-US/versions/42/">Site Compatibility for Firefox 42</a></li> +</ul> + +<h2 id="Older_versions">Older versions</h2> + +<p>{{Firefox_for_developers('41')}}</p> diff --git a/files/it/mozilla/firefox/releases/59/index.html b/files/it/mozilla/firefox/releases/59/index.html new file mode 100644 index 0000000000..7d1cec5737 --- /dev/null +++ b/files/it/mozilla/firefox/releases/59/index.html @@ -0,0 +1,203 @@ +--- +title: Firefox 59 per sviluppatori +slug: Mozilla/Firefox/Releases/59 +translation_of: Mozilla/Firefox/Releases/59 +--- +<div>{{FirefoxSidebar}}</div><p class="summary"><span id="result_box" lang="it"><span>Questo articolo fornisce informazioni sulle modifiche in Firefox 59 che interesseranno gli sviluppatori. </span></span> Firefox 59 è l'attuale <a href="https://www.mozilla.org/en-US/firefox/channel/desktop/#beta">versione Beta di Firefox</a>, che sarà pubblicata il 13 marzo<a href="https://wiki.mozilla.org/RapidRelease/Calendar#Future_branch_dates"> 2018</a>.</p> + +<h2 id="Cambios_pro_le_disveloppatores_de_web">Cambios pro le disveloppatores de web</h2> + +<h3 id="Utensiles_pro_le_disveloppatores_de_web">Utensiles pro le disveloppatores de web</h3> + +<ul> + <li>Le scheda de responsa de <a href="/en-US/docs/Tools/Network_Monitor">Network Monitor</a> ora monstra un <a href="/en-US/docs/Tools/Network_Monitor#HTML_preview">vista preliminar del HTML rendite</a> — si le responsa es HTML ({{bug(1353319)}}).</li> + <li>Cookie information shown in the Storage Inspector (see <a href="/en-US/docs/Tools/Storage_Inspector#Cookies">Cookies</a>) now includes a <em>sameSite</em> column showing what the same-site status of each cookie is ({{bug(1298370)}}).</li> + <li>The <a href="/en-US/docs/Tools/Rulers">Rulers</a> tool now includes a readout showing the current dimensions of the viewport ({{bug(1402633)}}).</li> + <li>In <a href="/en-US/docs/Tools/Responsive_Design_Mode">Responsive Design Mode</a>, you can now set the screen dimensions using the cursor keys ({{bug(1421663)}}). See the <a href="/en-US/docs/Tools/Responsive_Design_Mode#Setting_screen_size">Setting screen size</a> section for more details.</li> + <li>The <em>Raw headers</em> display in the <a href="/en-US/docs/Tools/Network_Monitor">Network Monitor</a> <em>Headers</em> tab now includes the response's status code ({{bug(1419401)}}).</li> +</ul> + +<h3 id="HTML">HTML</h3> + +<p>The {{HTMLElement("textarea")}} element's {{htmlattrxref("autocomplete", "textarea")}} attribute has been implemented. This lets you enable or disable form auto-fill for the element.</p> + +<h3 id="CSS">CSS</h3> + +<ul> + <li>The {{cssxref("overscroll-behavior")}} property and its associated longhand properties — {{cssxref("overscroll-behavior-x")}} and {{cssxref("overscroll-behavior-y")}} — have been implemented ({{bug(951793)}}), and it has been enabled by default on all releases ({{bug(1428879)}}).</li> + <li>The behavior of "unusual elements" (elements that aren’t rendered purely by CSS box concepts such as replaced elements) when given a {{cssxref("display")}} value of <code>contents</code> has been updated as per spec ({{bug(1427292)}}). See <a href="https://drafts.csswg.org/css-display/#unbox">Appendix B: Effects of display: contents on Unusual Elements</a> for exactly what the specced behaviors are.</li> + <li>{{cssxref("position")}} <code>sticky</code> is now supported on appropriate <a href="/en-US/docs/Learn/HTML/Tables">HTML table</a> parts (e.g. {{htmlelement("th")}} elements) ({{bug(975644)}}).</li> + <li>{{cssxref("calc()")}} is now supported in {{cssxref("<color>")}} values — <code>rgb()</code>, <code>rgba()</code>, <code>hsl()</code>, and <code>hsla()</code> ({{bug(984021)}}).</li> + <li>In Firefox 59, support for {{cssxref("calc()")}} in <a href="/en-US/docs/Web/CSS/Media_Queries">media query</a> values has been added {{bug(1396057)}}.</li> + <li>The {{cssxref("@document")}} at-rule has been limited to use only in user and UA sheets ({{bug(1035091)}}).</li> + <li>Implement the {{cssxref("font-optical-sizing")}} property ({{bug(1435692)}}).</li> +</ul> + +<h3 id="SVG">SVG</h3> + +<p><em>No changes.</em></p> + +<h3 id="JavaScript">JavaScript</h3> + +<p><em>No changes.</em></p> + +<h3 id="APIs">APIs</h3> + +<h4 id="New_APIs">New APIs</h4> + +<p>{{domxref("PointerEvent","PointerEvents")}} have been enabled in Firefox Desktop ({{bug(1411467)}}).</p> + +<h4 id="DOM">DOM</h4> + +<ul> + <li>The {{domxref("EventTarget.EventTarget()","EventTarget()")}} constructor has been implemented ({{bug(1379688)}}).</li> + <li>The {{domxref("Response.Response()","Response()")}} constructor can now accept a <code>null</code> value for its <code>body</code> parameter, as per spec ({{bug(1303025)}}).</li> +</ul> + +<h4 id="DOM_events">DOM events</h4> + +<p>The {{domxref("Event.composedPath()")}} method has been implemented ({{bug(1412775)}}).</p> + +<h4 id="Service_workers">Service workers</h4> + +<ul> + <li>The service worker <a href="/en-US/docs/Web/API/Clients">Clients API</a> can now find and communicate with windows in a separate browser process ({{bug(1293277)}}) .</li> + <li>Nested about:blank and about:srcdoc iframes will now inherit their parent's controlling service worker. Fixed in ({{bug(1293277)}}) and ({{bug(1426979)}}).</li> + <li>When a service worker provides a {{domxref("Response")}} to {{domxref("FetchEvent.respondWith()")}}, the {{domxref("Response.url")}} value will not be propagated to the intercepted network request as the final resolved URL. In the past the {{domxref("Request.url","FetchEvent.request.url")}} was used for this instead. This means, for example, if a service worker intercepts a stylesheet or worker script, then the provided <code>Response.url</code> will be used to resolve any relative {{cssxref("@import")}} or {{domxref("WorkerGlobalScope.importScripts()","importScripts()")}} subresource loads ({{bug(1222008)}}).</li> + <li><code>FetchEvent.respondWith()</code> will now trigger a network error if the {{domxref("Request.mode","FetchEvent.request.mode")}} is <code>"same-origin"</code> and the provided {{domxref("Response.type")}} is <code>"cors"</code>. ({{bug(1222008)}})</li> +</ul> + +<h4 id="Media_and_WebRTC">Media and WebRTC</h4> + +<ul> + <li>The {{domxref("MediaStreamTrack")}} property {{domxref("MediaStreamTrack.muted")}}, along with the events {{event("mute")}} and {{event("unmute")}} and the corresponding event handlers, {{domxref("MediaStreamTrack.onmute", "onmute")}} and {{domxref("MediaStreamTrack.onmute", "onunmute")}}, have been implemented. A track's <code>muted</code> state indicates that the track is not currently able to provide media data. + + <div class="note"><strong>Note:</strong> The <code>muted</code> state of a track isn't useful for what's typically thought of as muting and unmuting a track. Instead, use the {{domxref("MediaStreamTrack.enabled", "enabled")}} property; setting <code>enabled</code> to <code>false</code> causes the track to output only empty frames.</div> + </li> + <li>The {{domxref("RTCRtpReceiver")}} methods {{domxref("RTCRtpReceiver.getContributingSources", "getContributingSources()")}} and {{domxref("RTCRtpReceiver.getSynchronizationSources", "getSynchronizationSources()")}} have been implemented to provide information about the sources of each RTP stream. However, a specification change occurred before release and we have disabled these by default behind the preference <code>media.peerconnection.rtpsourcesapi.enable</code> ({{bug(1363667)}}, {{bug(1430213)}}, and {{bug(1433236)}}.</li> + <li>The {{domxref("RTCRtpTransceiver")}} interface has now been implemented, since the Firefox implementation of WebRTC now supports transceivers, with <code>RTCPeerConnection</code> and other interfaces updated to use them per the latest specification.</li> + <li>The {{domxref("RTCPeerConnection.addTransceiver()")}} method has been added. In addition, the behavior of {{domxref("RTCPeerConnection.addTrack", "addTrack()")}} has been updated to create a transceiver as required.</li> + <li>Support for <a href="/en-US/docs/Web/API/WebVTT_API">WebVTT</a> regions was implemented in Firefox 58 but disabled by default. They're now available by default ({{bug(1415805)}}).</li> + <li>Firefox now supports WebVTT <code>REGION</code> definition blocks whose settings list has one setting per line instead of all of the settings being on the same line of the WebVTT file ({{bug(1415821)}}.</li> +</ul> + +<h4 id="Canvas_and_WebGL">Canvas and WebGL</h4> + +<p><em>No changes.</em></p> + +<h3 id="CSSOM">CSSOM</h3> + +<p>The {{domxref("CSSNamespaceRule")}} interface and its <code>namespaceURL</code> and <code>prefix</code> properties have been implemented ({{bug(1326514)}}).</p> + +<h3 id="HTTP">HTTP</h3> + +<p><em>No changes.</em></p> + +<h3 id="Security">Security</h3> + +<ul> + <li>Top-level navigation to <code>data://</code> URIs has been blocked {{bug(1401895)}}. See <a href="https://blog.mozilla.org/security/2017/11/27/blocking-top-level-navigations-data-urls-firefox-58/">Blocking Top-Level Navigations to data URLs for Firefox 58</a> for more details.</li> + <li>The <code>SAMEORIGIN</code> directive of the {{httpheader("X-Frame-Options")}} header has been changed so that it checks not only the top-level IFrame is in the same origin, but all its ancestors as well ({{bug(725490)}}).</li> + <li>Image resources loaded from different origins to the current document are no longer able to trigger HTTP authentication dialogs ({{bug(1423146)}}). See <a href="https://www.fxsitecompat.com/en-CA/docs/2017/http-auth-dialog-can-no-longer-be-triggered-by-cross-origin-images/">HTTP auth dialog can no longer be triggered by cross-origin images</a> for more details.</li> + <li>HTTP authentication now uses <code>utf-8</code> encoding for usernames and passwords (rather than <code>ISO-8859-1</code>) for parity with other browsers, and to avoid potential problems as described in {{bug(1419658)}}.</li> +</ul> + +<h3 id="Plugins">Plugins</h3> + +<p><em>No changes.</em></p> + +<h3 id="Other">Other</h3> + +<p><em>No changes.</em></p> + +<h2 id="Removals_from_the_web_platform">Removals from the web platform</h2> + +<h3 id="HTML_2">HTML</h3> + +<p>The non-standard <code>version</code> parameter of the {{htmlelement("script")}} element's {{htmlattrxref("type","script")}} attribute (e.g. <code>type="application/javascript;version=1.8"</code>) has been removed ({{bug(1428745)}}).</p> + +<h3 id="CSS_2">CSS</h3> + +<ul> + <li>The proprietary <code>mozmm</code> {{cssxref("<length>")}} unit has been removed ({{bug(1416564)}}).</li> + <li>The proprietary {{cssxref("-moz-border-top-colors")}}, {{cssxref("-moz-border-right-colors")}}, {{cssxref("-moz-border-bottom-colors")}}, and {{cssxref("-moz-border-left-colors")}} properties have been limited to usage in chrome code only ({{bug(1417200)}}).</li> +</ul> + +<h3 id="JavaScript_2">JavaScript</h3> + +<ul> + <li>Non-standard <a href="/en-US/docs/Web/JavaScript/Reference/Statements/try...catch#Conditional_catch_clauses">conditional catch clauses</a> have been removed ({{bug(1228841)}}).</li> +</ul> + +<h3 id="APIs_2">APIs</h3> + +<ul> + <li>The non-standard method <code>Event.getPreventDefault()</code> has been removed. You should instead use the {{domxref("Event.defaultPrevented")}} property to determine whether or not {{domxref("Event.preventDefault", "preventDefault()")}} was called on the {{domxref("Event")}}.</li> + <li>The propretary <code><a href="/en-US/docs/Archive/API/Navigator/mozNotification">Navigator.mozNotification</a></code> property and <code>DesktopNotification</code> interface have been removed, in favor of the standard <a href="/en-US/docs/Web/API/Notifications_API">Notifications API</a> ({{bug(952453)}}).</li> + <li>The proprietary <code>window.external.addSearchEngine()</code> method has been removed ({{bug("862147")}}). Also see {{domxref("Window.sidebar")}} for more details.</li> + <li>The non-standard Firefox-only {{domxref("HTMLMediaElement")}} property <code>mozAutoplayEnabled</code> has been removed.</li> +</ul> + +<h3 id="SVG_2">SVG</h3> + +<p>Support for SMIL's <code>accessKey</code> feature has been removed ({{bug(1423098)}}).</p> + +<h3 id="Other_2">Other</h3> + +<p>Support for the non-standard <code>pcast://</code> and <code>feed://</code> protocols has been removed from Firefox ({{bug(1420622)}}).</p> + +<h2 id="Changes_for_add-on_and_Mozilla_developers">Changes for add-on and Mozilla developers</h2> + +<h3 id="WebExtensions">WebExtensions</h3> + +<ul> + <li><a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/manifest.json/theme">Theme</a> updates: + + <ul> + <li>new properties: <code>colors.background_tab_text</code>, <code>colors.toolbar_field_border</code></li> + <li>all color properties now support both Chrome-style arrays and CSS color values.</li> + </ul> + </li> + <li>New <a href="/en-US/Add-ons/WebExtensions/API/browserSettings">browser settings</a>: + <ul> + <li><a href="https://developer.mozilla.org/docs/Mozilla/Add-ons/WebExtensions/API/browserSettings/contextMenuShowEvent"><code>contextMenuShowEvent</code></a></li> + <li><a href="https://developer.mozilla.org/docs/Mozilla/Add-ons/WebExtensions/API/browserSettings/openBookmarksInNewTabs"><code>openBookmarksInNewTabs</code></a></li> + <li><a href="https://developer.mozilla.org/docs/Mozilla/Add-ons/WebExtensions/API/browserSettings/openSearchResultsInNewTabs"><code>openSearchResultsInNewTabs</code></a></li> + <li><a href="https://developer.mozilla.org/docs/Mozilla/Add-ons/WebExtensions/API/browserSettings/proxyConfig"><code>proxyConfig</code></a></li> + </ul> + </li> + <li>New <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs">tabs</a></code> APIs: + <ul> + <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/captureTab">tabs.captureTab()</a></code></li> + <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/hide">tabs.hide()</a></code></li> + <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/show">tabs.show()</a></code></li> + </ul> + </li> + <li>The <code><a href="/en-US/docs/Archive/Add-ons/Legacy_Firefox_for_Android/API/NativeWindow/contextmenus">contextMenus</a></code> API now supports a <a href="/en-US/Add-ons/WebExtensions/API/menus/ContextType">"bookmark" context</a>.</li> + <li>New <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/contentScripts">contentScripts</a></code> API enables runtime registration of content scripts.</li> + <li>New <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/pageAction">pageAction</a></code>, <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/browserAction">browserAction</a></code>, <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/sidebarAction">SidebarAction</a></code> APIs: + <ul> + <li><code>browserAction/pageAction/sidebarAction.set*</code> functions now accept <code>null</code> to undo changes.</li> + <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/browserAction/isEnabled">browserAction.isEnabled()</a></code>, <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/pageAction/isShown">pageAction.isShown()</a></code> , <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/sidebarAction/isOpen">sidebarAction.isOpen()</a></code> functions.</li> + </ul> + </li> + <li>New option in <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/page_action">page_action</a></code> to show page actions by default.</li> + <li>New values for <code>protocol_handers</code>: + <ul> + <li>"ssb" for Secure Scuttlebutt communications</li> + <li>"dat" for DATproject</li> + <li>"ipfs", "ipns", "dweb" for IPFS</li> + </ul> + </li> + <li>New <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/privacy/websites">privacy.websites</a></code> setting "cookieConfig".</li> + <li>Support in <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/cookies">cookies</a></code> API for <a href="/en-US/Add-ons/WebExtensions/API/cookies#First-party_isolation">first-party isolation</a>.</li> + <li>New option <code>upgradeToSecure</code> in <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/webRequest">webRequest</a></code>.</li> +</ul> + +<h2 id="See_also">See also</h2> + +<p><a href="https://www.fxsitecompat.com/en-CA/versions/59/">Site compatibility for Firefox 59</a></p> + +<h2 id="Older_versions">Older versions</h2> + +<p>{{Firefox_for_developers(58)}}</p> diff --git a/files/it/mozilla/firefox/releases/64/index.html b/files/it/mozilla/firefox/releases/64/index.html new file mode 100644 index 0000000000..dd7d4e1532 --- /dev/null +++ b/files/it/mozilla/firefox/releases/64/index.html @@ -0,0 +1,184 @@ +--- +title: Firefox 64 for developers +slug: Mozilla/Firefox/Releases/64 +translation_of: Mozilla/Firefox/Releases/64 +--- +<div>{{FirefoxSidebar}}</div> + +<p class="summary">Questo articolo fornisce informazioni riguardo i cambiamenti in Firefox 64 che interesseranno gli sviluppatori. Firefox 64 è stato rilasciato l' 11 Dicembre, 2018.</p> + +<h2 id="Changes_for_web_developers">Changes for web developers</h2> + +<h3 id="Developer_tools">Developer tools</h3> + +<ul> + <li>The <a href="/en-US/docs/Tools/Accessibility_inspector#Highlighting_of_UI_items">Accessibility info-bar</a> has been enhanced to include information about the color contrast ratio of text or images on the page ({{bug(1473037)}}).</li> + <li><a href="/en-US/docs/Tools/Responsive_Design_Mode">Responsive Design Mode</a> device selection is now saved between sessions ({{bug(1248619)}}).</li> + <li>Resources that are potentially affected by <a href="/en-US/docs/Mozilla/Firefox/Privacy/Tracking_Protection">Tracking Protection</a> are now <a href="/en-US/docs/">indicated</a> in the <a href="/en-US/docs/Tools/Network_Monitor">Network Monitor</a>. ({{bug(1333994)}})</li> + <li>The <a href="/en-US/docs/Tools/Web_Console">Web Console</a> got improvements around entering and evaluating code: + <ul> + <li><a href="/en-US/docs/Tools/Web_Console/The_command_line_interpreter#Autocomplete">Autocomplete</a> for Console expressions is now case-insensitive ({{bug(672733)}}).</li> + <li>You can now step through the <a href="/en-US/docs/Tools/Web_Console/The_command_line_interpreter#Command_history">Console expression history</a> with bash-like reverse search ({{bug(1024913)}}).</li> + <li><a href="/en-US/docs/Tools/Web_Console/The_command_line_interpreter">Evaluated code</a> in the Console is now syntax-highlighted in both the input and output ({{bug(1463669)}}).</li> + </ul> + </li> + <li>Stepping in the <a href="/en-US/docs/Tools/Debugger">JavaScript Debugger</a> also had some improvements: + <ul> + <li>The debugger now persists <a href="/en-US/docs/Tools/Debugger/UI_Tour#Scopes">expanded variables</a> while stepping through code ({{bug(1491471)}}).</li> + <li><a href="/en-US/docs/Tools/Debugger/How_to/Step_through_code">Stepping out</a> of a function in the Debugger now skips the return value. ({{bug(923975)}})</li> + </ul> + </li> +</ul> + +<h4 id="Removals">Removals</h4> + +<ul> + <li>The Developer Tools GCLI has been removed ({{bug(1429421)}}).</li> +</ul> + +<h3 id="HTML">HTML</h3> + +<p><em>No changes.</em></p> + +<h3 id="CSS">CSS</h3> + +<ul> + <li><a href="/en-US/docs/Web/CSS/CSS_Scrollbars">CSS Scrollbars</a> spec functionality has been enabled by default ({{bug(1492012)}}).</li> + <li>Interaction Media Features implemented, including <code><a href="/en-US/docs/Web/CSS/@media/pointer">pointer:coarse</a></code> ({{bug(1035774)}}). For <code><a href="/en-US/docs/Web/CSS/@media/any-pointer">any-pointer</a></code> and <code><a href="/en-US/docs/Web/CSS/@media/any-hover">any-hover</a></code> implementation, see {{bug(1483111)}}.</li> + <li>The <code><a href="/en-US/docs/Web/CSS/@media/prefers-reduced-motion">prefers-reduced-motion</a></code> media feature is now supported in Firefox for Android ({{bug(1478505)}}).</li> + <li>CSS {{cssxref("<gradient>")}} values now support multi-position color stop syntax, e.g. <code>yellow 25%, yellow 50%</code> can now be written <code>yellow 25% 50%</code> ({{bug(1352643)}}).</li> + <li>The {{cssxref("text-transform")}} property now accepts the <code>full-size-kana</code> value ({{bug(1498148)}}).</li> + <li>Support added for {{cssxref("appearance", "-webkit-appearance")}} to alleviate associated web compat issues ({{bug(1368555)}}).</li> + <li>Closely associated with the above update, we've also removed most of the Firefox-specific <code>-moz-appearance</code> values ({{bug(1496720)}}).</li> + <li>{{cssxref("display")}}: <code>list-item</code> is now supported on {{htmlelement("legend")}} elements ({{bug(1486602)}}).</li> + <li>SVG <code>path()</code>s, as usable in {{cssxref("offset-path")}}, are now animatable ({{bug(1486094)}}).</li> + <li>If a selector chain or group includes a <code>-webkit-</code>prefixed pseudo-element, that pseudo-element no longer invalidates it (see {{bug(1424106)}} for the details, and {{bug(1486325)}} for enabling this feature).</li> +</ul> + +<h4 id="Removals_2">Removals</h4> + +<ul> + <li>The non-standard <a href="/en-US/docs/Mozilla/Gecko/Chrome/CSS/display-xul"><code style="white-space: nowrap;">-moz-box</code> and <code style="white-space: nowrap;">-moz-inline-box</code></a> {{CSSxRef("display")}} values have been hidden from web content ({{bug(1496961)}}).</li> + <li>The non-standard {{CSSxRef("::-moz-tree")}} <a href="/en-US/docs/Web/CSS/Pseudo-elements" style="white-space: nowrap;">pseudo-elements</a> have been hidden from web content ({{bug(1496961)}}).</li> + <li>The <code>layout.css.filters.enabled</code> preference has been removed; <a href="/en-US/docs/Web/CSS/Filter_Effects">CSS filters</a> can no longer be disabled ({{bug(1408841)}}).</li> + <li>A previous change — to swap the values of the 2-value {{cssxref("overflow")}} syntax so block is specified first and inline second ({{bug(1481866)}}) — has been reverted ({{bug(1492567)}}). See <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1481866#c14">Bug 1481866 comment 14</a> for why.</li> +</ul> + +<h3 id="SVG">SVG</h3> + +<p><em>No changes.</em></p> + +<h3 id="JavaScript">JavaScript</h3> + +<ul> + <li>The TC39 <a href="https://github.com/tc39/proposal-well-formed-stringify">Well-formed JSON.stringify</a> proposal has been implemented, to prevent {{jsxref("JSON.stringify")}} from returning ill-formed Unicode strings ({{bug(1469021)}}).</li> + <li>Proxied functions can now be be passed to {{jsxref("Function.prototype.toString")}}<code>.call()</code> ({{bug(1440468)}}).</li> + <li>In the {{jsxref("WebAssembly.Global")}} constructor, if no value is specified a typed 0 value is used. This is specified by the <a href="https://webassembly.github.io/spec/js-api/#defaultvalue"><code>DefaultValue</code> algorithm</a> ({{bug(1490286)}}).</li> +</ul> + +<h3 id="APIs">APIs</h3> + +<h4 id="DOM">DOM</h4> + +<ul> + <li>A number of changes related to the {{domxref("Fullscreen_API", "Fullscreen API", "", "1")}} have been implemented: + <ul> + <li>The API has been unprefixed ({{bug(1269276)}}).</li> + <li>The {{domxref("Element.requestFullscreen()")}} and {{domxref("Document.exitFullscreen()")}} methods both now return a {{jsxref("Promise")}}, which is resolved when the mode change is complete ({{bug(1188256)}} and {{bug(1491212)}}).</li> + <li>Previously, {{domxref("fullscreenchange")}} and {{domxref("fullscreenerror")}} events were dispatched to the {{domxref("Document")}} first, then the {{domxref("Element")}}. This has been reversed so that the element gets the event first. This matches the latest specification as well as the behavior of Google Chrome ({{bug(1375319)}}).</li> + </ul> + </li> + <li>The {{domxref("WebVR_API", "WebVR API", "", "1")}} (1.1) is now re-enabled in macOS ({{bug(1476091)}}).</li> + <li>{{domxref("Window.screenLeft")}} and {{domxref("Window.screenTop")}} have been implemented, as aliases of {{domxref("Window.screenX")}} and {{domxref("Window.screenY")}} ({{bug(1498860)}}).</li> + <li>The {{domxref("XMLHttpRequest.getAllResponseHeaders()")}} method now returns header names all in lowercase, as per spec ({{bug(1398718)}}).</li> + <li>The legacy <code>HTMLAllCollection</code> interface has been updated as per recent <a href="https://html.spec.whatwg.org/multipage/common-dom-interfaces.html#htmlallcollection">spec updates</a> ({{bug(1398354)}}).</li> + <li>{{domxref("Navigator.buildID")}} now returns a fixed timestamp as a privacy measure ({{bug(583181)}}).</li> +</ul> + +<h4 id="Service_workers">Service workers</h4> + +<ul> + <li>The {{domxref("ServiceWorkerContainer.startMessages()")}} method has been implemented ({{bug(1263734)}}).</li> +</ul> + +<h4 id="Media_Web_Audio_and_WebRTC">Media, Web Audio, and WebRTC</h4> + +<ul> + <li>The {{domxref("PannerNode.refDistance")}}, {{domxref("PannerNode.maxDistance")}}, {{domxref("PannerNode.rolloffFactor")}}, and {{domxref("PannerNode.coneOuterGain")}} properties now correctly throw exceptions when set to values outside their accepted ranges ({{bug(1487963)}}).</li> + <li>{{domxref("RTCRtpEncodingParameters")}} settings changed via {{domxref("RTCRtpSender.setParameters()")}} used to not update if the changes were made during a call. They will now update live, without renegotiation ({{bug(1253499)}}).</li> + <li>{{domxref("RTCIceCandidateStats.relayProtocol")}} has been implemented — this is the standardized version of {{domxref("RTCIceCandidateStats.mozLocalTransport")}}, which has now been deprecated ({{bug(1435789)}}).</li> +</ul> + +<h4 id="Removals_3">Removals</h4> + +<ul> + <li>The {{domxref("Window.event")}} property, added in Firefox 63 to aid with web compat issues, has been put behind a pref (<code>dom.window.event.enabled</code>) and disabled by default in release versions for now due to other issues that have been uncovered ({{bug(1493869)}}). Note that this was actually done late in the Firefox 63 release cycle, but we are mentioning it here just in case.</li> + <li>The {{domxref("LocalMediaStream")}} interface and its <code>stop()</code> method have been removed ({{bug(1258143)}}). This method is no longer available with the deprecation of <code>LocalMediaStream</code>. See {{SectionOnPage("/en-US/docs/Web/API/MediaStreamTrack/stop", "Stopping a video stream")}} to learn how to stop an entire stream.</li> + <li>The <code>AudioStreamTrack</code> and <code>VideoStreamTrack</code> interfaces have been removed, as both have been deprecated for some time ({{bug(1377146)}}). Their functionality has been merged into {{domxref("MediaStreamTrack")}}; tracks are now identified by the value of their {{domxref("MediaStreamTrack.kind", "kind")}} property, such as <code>audio</code> or <code>video</code>.</li> +</ul> + +<h3 id="Security">Security</h3> + +<ul> + <li>The Symantec CA Distrust plan has been implemented (see {{bug(1409257)}}; see also the <a href="https://groups.google.com/forum/#!topic/mozilla.dev.security.policy/FLHRT79e3XE/discussion">Mozilla’s Plan for Symantec Roots</a> discussion for more details).</li> + <li>{{httpheader("Referrer-Policy")}} can now be used to govern resources fetched via stylesheets ({{bug(1330487)}}) — see {{SectionOnPage("/en-US/docs/Web/HTTP/Headers/Referrer-Policy", "Integration with CSS")}} for more information.</li> +</ul> + +<h3 id="Plugins">Plugins</h3> + +<p><em>No changes.</em></p> + +<h2 id="Changes_for_add-on_developers">Changes for add-on developers</h2> + +<h3 id="API_changes">API changes</h3> + +<h4 id="Menus">Menus</h4> + +<ul> + <li>A new API, <code>browser.menus.overrideContext()</code>, can be called from the <code>contextmenu</code> DOM event to set a custom context menu in extension pages. This API allows extensions to hide all default Firefox menu items in favor of providing a custom context menu UI. This context menu can consist of multiple top-level menu items from the extension, and may optionally include tab or bookmark context menu items from other extensions. See <a href="https://blog.mozilla.org/addons/2018/11/08/extensions-in-firefox-64/#cm">this blog post</a> for more details. + + <ul> + <li><code>browser.menus.overrideContext()</code> was implemented in ({{bug(1280347)}}).</li> + <li>The <code>showDefaults: false</code> option, which can be used to hide the default context menu options, was implemented in ({{bug(1367160)}}).</li> + </ul> + </li> + <li>You can now restrict where context menus can appear in an add-on using the new <code>viewTypes</code> property in {{WebExtAPIRef("menus.create()")}} and {{WebExtAPIRef("menus.update()")}} ({{bug(1416839)}}).</li> + <li>{{WebExtAPIRef("menus.update()")}} can now be used to update the icon of an existing menu item ({{bug(1414566)}}).</li> + <li>Extensions can now detect which mouse button was used when a menu item was clicked — this can be found using the new <code>button</code> property of {{WebExtAPIRef("menus.OnClickData")}} ({{bug(1469148)}}).</li> +</ul> + +<h4 id="Windows">Windows</h4> + +<ul> + <li>The {{WebExtAPIRef("windows.create()")}} method now has a new option available — <code>cookieStoreId</code> — which specifies the <code>CookieStoreId</code> to use for all tabs that were created when the window is opened ({{bug(1393570)}}).</li> +</ul> + +<h4 id="Privacy">Privacy</h4> + +<ul> + <li>The {{WebExtAPIRef("privacy.websites")}} <code>cookieConfig</code> property is an object that can accept a <code>behavior</code> property — this property can now take a new value, <code>reject_trackers</code>, which instructs the extension to reject tracking cookies ({{bug(1493057)}}).</li> +</ul> + +<h4 id="devtools.panels_API">devtools.panels API</h4> + +<ul> + <li>The <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/devtools.panels/elements">devtools.panels.elements</a></code> <code>Sidebar.setPage()</code> method is now supported ({{bug(1398734)}}).</li> +</ul> + +<h3 id="Manifest_changes">Manifest changes</h3> + +<ul> + <li>The new <code>pinned</code> property of the <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/page_action">page_action</a></code> manifest key enables extensions to control whether their page actions should be pinned to the location bar on install or not ({{bug(1494135)}}).</li> + <li>In native manifests on Windows, the 32-bit registry view (<a class="external external-icon" href="https://en.wikipedia.org/wiki/WoW64#Registry_and_file_system" rel="noopener">Wow6432Node)</a> will be checked first for registry keys, followed by the "native" registry view; you should use whichever is appropriate for your application ({{bug(1494709)}}).</li> + <li>The <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/chrome_settings_overrides">chrome_settings_overrides</a></code> field's <code>search_provider</code> object can now include new properties — <code>suggest_url</code> and <code>suggest_url_post_params</code> ({{bug(1486819)}}), and <code>search_url_post_params</code>.</li> +</ul> + +<h2 id="See_also">See also</h2> + +<ul> + <li><a href="https://www.fxsitecompat.com/en-CA/versions/64/">Site compatibility for Firefox 64</a></li> +</ul> + +<h2 id="Older_versions">Older versions</h2> + +<p>{{Firefox_for_developers(64)}}</p> diff --git a/files/it/mozilla/firefox/releases/66/index.html b/files/it/mozilla/firefox/releases/66/index.html new file mode 100644 index 0000000000..85441c5ce4 --- /dev/null +++ b/files/it/mozilla/firefox/releases/66/index.html @@ -0,0 +1,156 @@ +--- +title: Firefox 66 for developers +slug: Mozilla/Firefox/Releases/66 +translation_of: Mozilla/Firefox/Releases/66 +--- +<div>{{FirefoxSidebar}}</div> + +<p class="summary"><span class="tlid-translation translation" lang="it"><span title="">Questo articolo fornisce informazioni sulle modifiche in Firefox 66 che interesseranno gli sviluppatori.</span></span> <span class="tlid-translation translation" lang="it"><span title="">Firefox 66 è l'attuale</span></span> <a href="https://www.mozilla.org/en-US/firefox/channel/desktop/#beta" rel="noopener">versione Beta di Firefox</a>, <span class="tlid-translation translation" lang="it"><span title=""> sarà disponibile</span></span> <a href="https://wiki.mozilla.org/RapidRelease/Calendar#Future_branch_dates" rel="noopener">19 Marzo del 2019</a>.</p> + +<h2 id="Modifiche_per_gli_sviluppatori_web"><span class="tlid-translation translation" lang="it"><span title="">Modifiche per gli sviluppatori web</span></span></h2> + +<h3 id="Strumenti_di_sviluppo"><span class="tlid-translation translation" lang="it"><span title="">Strumenti di sviluppo</span></span></h3> + +<ul> + <li>JavaScript getters can now be executed from the auto-completion popup in the <a href="/en-US/docs/Tools/Web_Console">Web Console</a> ({{bug(1499289)}}).</li> + <li>The Window methods {{domxref("Window.alert()", "alert()")}}, {{domxref("Window.prompt()","prompt()")}}, and {{domxref("Window.confirm()","confirm()")}} now work again in <a href="/en-US/docs/Tools/Responsive_Design_Mode">Responsive Design Mode</a>, after a period of being broken ({{bug(1273997)}}).</li> +</ul> + +<h3 id="HTML">HTML</h3> + +<ul> + <li>UTF-8-encoded HTML (and plain text) files loaded from <code>file:</code> URLs are now supported without <code><meta charset="utf-8"></code> or the UTF-8 BOM, making it easier to work on such files locally before uploading them to a server. You still need to make sure that the server sends <code>charset=utf-8</code> in the <code>Content-Type</code> HTTP header for such files, otherwise the detection mechanism used for local files would break incremental loading in the network case ({{bug(1071816)}}).</li> +</ul> + +<h4 id="Removals">Removals</h4> + +<ul> + <li>The <code>x-moz-errormessage</code> attribute has been removed from the {{HTMLElement("input")}} element ({{bug(1513890)}}). You should use {{domxref("Constraint_validation", "Constraint validation features", "", "1")}} to implement custom validation messages instead.</li> +</ul> + +<h3 id="CSS">CSS</h3> + +<ul> + <li><a href="https://drafts.csswg.org/css-scroll-anchoring/">Scroll anchoring</a> has been implemented in Firefox Desktop (but not mobile yet), which includes the {{cssxref("overflow-anchor")}} property ({{bug(1305957)}}).</li> + <li>We've implemented the case-sensitive <a href="/en-US/docs/Web/CSS/Attribute_selectors">attribute selector</a> modifier, <code>s</code> ({{Bug(1512386)}}).</li> + <li>Several <a href="/en-US/docs/Web/CSS/CSS_Logical_Properties">logical property</a> shorthands have landed, along with the flow-relative border radius properties: + <ul> + <li>{{cssxref("padding-block")}} and {{cssxref("padding-inline")}} ({{bug(1519847)}}).</li> + <li>{{cssxref("margin-block")}} and {{cssxref("margin-inline")}} ({{bug(1519944)}}).</li> + <li>{{cssxref("inset")}}, {{cssxref("inset-block")}}, and {{cssxref("inset-inline")}} ({{bug(1520229)}}).</li> + <li>{{cssxref("border-block-color")}}, {{cssxref("border-block-style")}}, {{cssxref("border-block-width")}}, {{cssxref("border-inline-color")}}, {{cssxref("border-inline-style")}}, and {{cssxref("border-inline-width")}} ({{bug(1520236)}}).</li> + <li>{{cssxref("border-block")}} and {{cssxref("border-inline")}} ({{bug(1520396)}}).</li> + <li>{{cssxref("border-start-start-radius")}}, {{cssxref("border-start-end-radius")}}, {{cssxref("border-end-start-radius")}}, and {{cssxref("border-end-end-radius")}} ({{bug(1520684)}}).</li> + </ul> + </li> + <li>We implemented the {{cssxref("@media/overflow-inline", "overflow-inline")}} and {{cssxref("@media/overflow-block", "overflow-block")}} media queries ({{Bug(1422235)}}).</li> + <li>{{cssxref("grid-template-columns")}} and {{cssxref("grid-template-rows")}} are now animatable, as per the rules set out in their specs ({{bug(1348519)}}).</li> + <li>We now support {{cssxref("calc")}} with percentages for table cells and column widths ({{bug(957915)}}).</li> + <li>The <code>min-content</code> and <code>max-content</code> keywords are now available unprefixed ({{bug(1322780)}}). These can be set on: + <ul> + <li>{{cssxref("width")}}</li> + <li>{{cssxref("height")}}</li> + <li>{{cssxref("flex-basis")}}</li> + <li>{{cssxref("min-width")}}</li> + <li>{{cssxref("max-width")}}</li> + <li>{{cssxref("min-height")}}</li> + <li>{{cssxref("max-height")}}</li> + <li>{{cssxref("min-block-size")}}</li> + <li>{{cssxref("min-inline-size")}}</li> + <li>{{cssxref("max-block-size")}}</li> + <li>{{cssxref("max-inline-size")}}</li> + <li>{{cssxref("block-size")}}</li> + <li>{{cssxref("inline-size")}}</li> + </ul> + </li> +</ul> + +<h3 id="SVG">SVG</h3> + +<p><em>No additions.</em></p> + +<h4 id="Removals_2">Removals</h4> + +<ul> + <li>We removed support for the <code><a href="/en-US/docs/XML_introduction/xml:base">xml:base</a></code> attribute ({{Bug(903372)}}).</li> +</ul> + +<h3 id="JavaScript">JavaScript</h3> + +<p>No changes.</p> + +<h3 id="APIs">APIs</h3> + +<h4 id="New_APIschanges">New APIs/changes</h4> + +<ul> + <li>Autoplaying audio will be blocked by default soon after 66 becomes the release version of Firefox ({{bug(1487844)}}, see {{bug(1535667)}} for rollout details). The feature will be rolled out gradually to users until everyone has it.</li> +</ul> + +<h4 id="DOM">DOM</h4> + +<ul> + <li>The {{domxref("HTMLSlotElement.assignedElements()")}} method has been implemented ({{bug(1425685)}}).</li> + <li>The {{domxref("TextEncoder.encodeInto()")}} method has been implemented ({{bug(1514664)}}).</li> +</ul> + +<h4 id="DOM_events">DOM events</h4> + +<ul> + <li>The {{domxref("InputEvent.inputType")}} property has been implemented ({{bug(1447239)}}).</li> + <li>The {{domxref("Window.event")}} and {{domxref("Event.returnValue")}} properties — originally proprietary IE features, then also supported across other browsers for compatibility purposes — have been re-introduced in Firefox 66, after first being added in versions 63 and 64 respectively but then removed again due to compatibility issues. </li> + <li>From 66 onwards, when the {{domxref("KeyboardEvent.keyCode")}} property of the {{event("keypress")}} event object is 0, the value will be the same as {{domxref("KeyboardEvent.charCode")}}. Conversely, when <code>charCode</code> is 0, it will be the same as <code>keyCode</code>. This mirroring behavior matches other browsers and is expected to solve most associated compatibility issues, however user agent sniffing might cause further issues in some JavaScript libraries. Note that in spec terms, we've switched from the <em>split model</em> to the <em>conflated model</em> (see <a href="https://w3c.github.io/uievents/#determine-keypress-keyCode">How to determine keyCode for keypress events</a> in the UI Event spec).</li> +</ul> + +<h4 id="Media_Web_Audio_and_WebRTC">Media, Web Audio, and WebRTC</h4> + +<ul> + <li>The {{domxref("MediaDevices")}} method {{domxref("MediaDevices.getDisplayMedia", "getDisplayMedia()")}}, available as <code>navigator.mediaDevices.getDisplayMedia()</code>, has been added and synchronized with the specification. This method lets you capture a screen or part of a screen as a {{domxref("MediaStream")}} for manipulation or sharing ({{bug(1321221)}}).</li> + <li>As a step toward eventually deprecating the Firefox-specific {{domxref("MediaDevices.getUserMedia", "getUserMedia()")}}-based method for capturing screen and window contents, the non-standard <code>mediaSource</code> constraint now treats the values <code>screen</code> and <code>window</code> identically. Both now present a list of both screens and windows for the user to choose from ({{bug(1474376)}}).</li> + <li>{{domxref("RTCRtpStreamStats.qpSum", "qpSum")}} has been added to local outbound {{domxref("RTCRTPStreamStats")}} objects. This measures the total of the Quantization Parameter values for every frame sent or received on the video track. The higher this number, the more compressed the stream probably is ({{bug(1347070)}}).</li> + <li>In a step along the road toward implementing support for Feature Policy in a future Firefox update, {{domxref("MediaDevices.getUserMedia", "getUserMedia()")}} can no longer be used in situations in which there is no proper origin for the content, such as when called from a sandboxed {{HTMLElement("iframe")}} or from a <code>data</code> URL entered into the address bar by the user. For more specifics and details, see {{SectionOnPage("/en-US/docs/Web/API/MediaDevices/getUserMedia", "Security")}} ({{bug(1371741)}}).</li> +</ul> + +<h4 id="Removals_3">Removals</h4> + +<ul> + <li>The legacy WebRTC {{domxref("PeerConnection.getStats()")}} method has been removed, along with associated types ({{bug(1328194)}}).</li> +</ul> + +<h3 id="Networking">Networking</h3> + +<ul> + <li>The default value of the {{httpheader("Accept")}} header has been changed to <code>*/*</code> ({{bug(1417463)}}).</li> +</ul> + +<h3 id="Security">Security</h3> + +<p><em>No changes.</em></p> + +<h3 id="Plugins">Plugins</h3> + +<p><em>No changes.</em></p> + +<h2 id="Changes_for_add-on_developers">Changes for add-on developers</h2> + +<h3 id="API_changes">API changes</h3> + +<h4 id="Menus">Menus</h4> + +<ul> + <li>Extension menu items of the "bookmark" {{WebExtAPIRef("menus.ContextType", "type")}} will also appear in the Bookmarks sidebar (<kbd>Ctrl</kbd> + <kbd>B</kbd>) and Library window (<kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>B</kbd>) ({{bug(1419195)}}).</li> +</ul> + +<h3 id="Manifest_changes">Manifest changes</h3> + +<p><em>No changes.</em></p> + +<h2 id="See_also">See also</h2> + +<ul> + <li><a href="https://www.fxsitecompat.com/en-CA/versions/66/">Site compatibility for Firefox 66</a></li> +</ul> + +<h2 id="Older_versions">Older versions</h2> + +<p>{{Firefox_for_developers(65)}}</p> diff --git a/files/it/mozilla/firefox/releases/index.html b/files/it/mozilla/firefox/releases/index.html new file mode 100644 index 0000000000..a7185bc5e5 --- /dev/null +++ b/files/it/mozilla/firefox/releases/index.html @@ -0,0 +1,10 @@ +--- +title: Firefox developer note di rilascio +slug: Mozilla/Firefox/Releases +tags: + - Firefox +translation_of: Mozilla/Firefox/Releases +--- +<div>{{FirefoxSidebar}}</div><p>Questa pagina fornisce i link "Firefox X per sviluppatori" agli articoli di ogni rilascio Firefox. Queste note ci mostrano quali funzionalità saranno aggiunte e quali bug verranno eliminati in ogni versione di Firefox.</p> + +<div class="multiColumnList">{{ListSubpages("",1,0,1)}}</div> diff --git a/files/it/mozilla/firefox_for_android/index.html b/files/it/mozilla/firefox_for_android/index.html new file mode 100644 index 0000000000..15240f6c30 --- /dev/null +++ b/files/it/mozilla/firefox_for_android/index.html @@ -0,0 +1,66 @@ +--- +title: Firefox per Android +slug: Mozilla/Firefox_for_Android +translation_of: Mozilla/Firefox_for_Android +--- +<p>Per molte persone i device mobili sono la fonte primaria, o anche l' unica, per l' accesso al Web.</p> + +<p><a class="link-https" href="https://www.mozilla.org/en-US/mobile/">Firefox for Android</a> (<span id="result_box" lang="it"><span>nome in codice</span> <span class="hps">Fennec</span></span>) è open, hackable, basata sugli standard web, <span id="result_box" lang="it"><span>come</span> <span class="hps">Firefox</span> <span class="hps">desktop</span></span>.</p> + +<p><span id="result_box" lang="it"><span class="hps">Firefox per</span> <span class="hps">Android</span> basa <span class="hps">la sua interfaccia</span> <span class="hps">utente su quella nativa di</span> <span class="hps">Android</span> <span class="hps">widgets</span><span>, invece di</span> <span class="hps">XUL</span><span>:</span> <span class="hps">questo</span> <span class="hps">migliora</span> <span class="hps">notevolmente</span> <span class="hps">le prestazioni</span><span>,</span> <span class="hps">soprattutto</span> <span class="hps">in tempo</span> <span class="hps">di avvio</span><span>,</span> <span class="hps">e utilizzo della memoria</span><span>.</span> <span class="hps">Per il momento</span> <span class="hps">questa versione</span> <span class="hps">si rivolge</span> <span class="hps">solo a</span> <span class="hps">telefoni</span><span>,</span> <span class="hps">mentre la versione</span> <span class="hps">tablet</span> <span class="hps">utilizza ancora</span> <span class="hps">XUL</span><span>.</span> <span class="hps">In futuro</span><span>,</span> <span class="hps">si prevede di</span> <span class="hps">sostituire</span> <span class="hps">ufficialmente la</span> <span class="hps">versione dell' interfaccia utente nativa</span> anche <span class="hps">sui tablet</span><span class="hps">.</span></span></p> + +<h2 id="Contribuire_a_Firefox_per_Android."><span class="short_text" id="result_box" lang="it"><span class="hps">Contribuire</span> <span class="hps">a Firefox</span> <span class="hps">per Android.</span></span></h2> + +<p><span id="result_box" lang="it"><span class="hps">Il</span> <span class="hps">principale punto di partenza</span> <span class="hps">per informazioni su</span> <span class="hps">Firefox per</span> <span class="hps">Android</span> <span class="hps">è il</span> <span class="hps">progetto stesso</span></span> <a class="link-https" href="https://wiki.mozilla.org/Mobile">pagina Wiki del progetto</a>.</p> + +<p><span id="result_box" lang="it"><span class="hps">Potete</span> <span class="hps">aiutarci a</span> <span class="hps">creare e migliorare</span> <span class="hps">Firefox per</span> <span class="hps">Android</span></span>:</p> + +<ul> + <li>aiutaci <a class="link-https" href="https://wiki.mozilla.org/Mobile/Testdrivers_Program">con il testing dell' applicazione</a> + + <ul> + <li>testare i principali siti web per una maggiore compatibilità con gecko - guarda <a href="https://developer-new.mozilla.org/en-US/docs/Mozilla/Firefox_for_Android/Compatibility_Testing" title="https://developer-new.mozilla.org/en-US/docs/Mozilla/Firefox_for_Android/Compatibility_Testing">qui</a> per maggiori informazioni</li> + </ul> + </li> + <li>contatta il team tramite <a class="link-irc" href="irc://irc.mozilla.org/#mobile">IRC</a> o entrate nel nostro <a class="link-https" href="https://wiki.mozilla.org/Mobile/Notes">Wednesday development meeting</a></li> + <li>rimani aggiornato sulle notizie del progetto <a class="external" href="http://planet.firefox.com/mobile/">planet firefox</a> e <a class="link-https" href="https://twitter.com/#!/mozmobile" title="https://twitter.com/#!/mozmobile">Twitter</a></li> + <li><a href="https://wiki.mozilla.org/Mobile/Fennec/Android" title="https://wiki.mozilla.org/Mobile/Fennec/Android">build and hack on Firefox for Android</a> (Fennec)</li> +</ul> + +<h2 id="Sviluppare_per_il_web_mobile">Sviluppare per il web mobile</h2> + +<p><span class="short_text" id="result_box" lang="it"><span class="hps">Abbiamo</span> <span class="hps">iniziato a mettere</span> <span class="hps">insieme una guida</span> <span class="hps">per</span></span> <a href="/En/Mobile" title="En/Mobile">progettare siti web per dispositivi mobili</a>.</p> + +<p><span id="result_box" lang="it"><span class="hps">Con Firefox</span> <span class="hps">per Android,</span> <span class="hps">hai</span> <span class="hps">accesso a un</span> <span class="hps">certo numero</span> <span class="hps">di API</span> <span class="hps">che espongono</span> <span class="hps">le funzionalità</span> <span class="hps">di base</span> <span class="hps">del dispositivo</span> per <span class="hps">colmare il divario tra</span> <span class="hps">il Web e</span> <span class="hps">le applicazioni native</span><span>:</span></span></p> + +<ul> + <li><a class="external" href="http://hacks.mozilla.org/2012/02/using-the-battery-api-part-of-webapi/" title="http://hacks.mozilla.org/2012/02/using-the-battery-api-part-of-webapi/">Batteria</a></li> + <li><a href="/en/DOM/Using_the_Camera_API" title="Using the Camera API">Camera</a></li> + <li><a href="/en/API/WebTelephony/Introduction_to_WebTelephony" title="Introduction to WebTelephony">Telefonia Web</a></li> + <li><a href="/en/API/WebSMS/Introduction_to_WebSMS" title="Introduction to WebSMS">WebSMS</a></li> + <li><a href="/En/Using_geolocation" title="Using geolocation">Geolocalizzazione</a></li> + <li><a href="/en/Detecting_device_orientation" title="https://developer.mozilla.org/en/detecting_device_orientation">Orientamento</a></li> +</ul> + +<p><span id="result_box" lang="it"><span class="hps">Per testare</span> <span class="hps">il vostro sito web</span> <span class="hps">su Firefox</span> <span class="hps">per Android,</span> <span class="hps">è possibile </span></span><a class="link-https" href="https://www.mozilla.org/en-US/mobile/">istallarlo su un dispositivo Android </a> o <a class="link-https" href="https://wiki.mozilla.org/Mobile/Fennec/Android/Emulator"><span id="result_box" lang="it"><span class="hps">eseguirlo sul proprio</span> <span class="hps">desktop utilizzando</span> <span class="hps">l'emulatore di</span> <span class="hps">Android</span></span></a>.</p> + +<h2 id="Realizzare_addon_per_il_mobile">Realizzare addon per il mobile</h2> + +<p><a href="/en/Extensions/Mobile" title="en/Extensions/Firefox_on_Android">Firefox for Android supports add-ons</a> using the exact same <a href="/en/Extensions" title="en/Extensions">extension system</a> used by all other Gecko-based applications. We did not invent a new add-on system. This means that building an add-on for Firefox on Android is the <a href="/en/Building_an_Extension" title="en/Building_an_Extension">same process</a> that would be used for desktop Firefox. Add-ons that work with desktop Firefox <strong>do not</strong> automatically work in Firefox on Android. The user interfaces are just too different.</p> + +<div class="note">Firefox on Android has a unique application identifier which must be used in <code>install.rdf</code>. The identifier is <code>{aa3c5121-dab2-40e2-81ca-7ea25febc110}</code></div> + +<p>Both classic restart-required and newer <a href="/en/Extensions/Bootstrapped_extensions" title="en/Extensions/Bootstrapped_extensions">restartless</a> add-on approaches are supported. Using the restartless approach is preferred whenever possible because the user experience is far superior to forcing an application restart when installing or removing an add-on.</p> + +<h3 id="Introduzione_Veloce"><span class="short_text" id="result_box" lang="it"><span class="hps">Introduzione Veloce</span></span></h3> + +<ul> + <li>There is no visible XUL in the UI, so using overlays to try to add or change UI is useless.</li> + <li>Internal code and objects, like <code>gBrowser</code>, do not exist. Look at the Firefox on Android <a class="external" href="http://mxr.mozilla.org/mozilla-central/source/mobile/android/chrome/content/browser.js" title="http://mxr.mozilla.org/mozilla-central/source/mobile/android/chrome/content/browser.js"><code>browser.js</code></a> file to learn about the internals. Much of the same fundamental functionality exists.</li> + <li>Services like <code>nsIPromptService</code> and <code>nsIAlertsService</code> are implemented to use native Android UI.</li> + <li>There is a simple JavaScript object, called <a href="/en/Extensions/Mobile/API/NativeWindow" title="en/Extensions/Mobile/NativeWindow"><code>NativeWindow</code></a>, that allows you to manipulate parts of the native Android UI.</li> +</ul> + +<h2 id="Informati_e_ricevi_informazioni_su_Firefox_per_Android">Informati e ricevi informazioni su Firefox per Android</h2> + +<p>Documentation and tutorials for using and troubleshooting Firefox for Android are available on the <a class="external" href="http://support.mozilla.org/mobile" title="http://support.mozilla.org/mobile">Mozilla Support website</a>.</p> diff --git a/files/it/mozilla/index.html b/files/it/mozilla/index.html new file mode 100644 index 0000000000..e24ed8a774 --- /dev/null +++ b/files/it/mozilla/index.html @@ -0,0 +1,13 @@ +--- +title: Mozilla +slug: Mozilla +tags: + - NeedsTranslation + - TopicStub +translation_of: Mozilla +--- +<div> + {{draft}}</div> +<p>This will soon be an awesome landing page for Mozilla internals. For now, it's not.</p> +<div> + {{ListSubpages}}</div> diff --git a/files/it/mozilla/localizzazione/index.html b/files/it/mozilla/localizzazione/index.html new file mode 100644 index 0000000000..4aff8d7f64 --- /dev/null +++ b/files/it/mozilla/localizzazione/index.html @@ -0,0 +1,23 @@ +--- +title: La localizzazione su Mozilla +slug: Mozilla/Localizzazione +tags: + - Localizzazione + - Mozilla + - Traduzione + - l10n +translation_of: Mozilla/Localization +--- +<p><span class="seoSummary"><strong>La localizzazione</strong> (L10n) consiste nel tradurre le interfacce software degli utenti da una lingua ad un'altra, rendendola accessibile a tutte le altre culture straniere. Queste risorse sono destinate a chiunque abbia interesse per gli aspetti tecnici coinvolti nella localizzazione, oltre che agli sviluppatori e a tutti i collaboratori. </span></p> + +<h2 id="Vedi_anche">Vedi anche</h2> + +<p><a href="https://developer.mozilla.org/en-US/docs/Project:MDN/Localizing" title="/en-US/docs/Project:MDN/Localizing">Localizzare MDN</a></p> + +<dl> + <dd>Come localizzare la documentazione qui su MDN.</dd> + <dt><a href="/en-US/Apps/Build/Localization">App di localizzazione</a></dt> + <dd>Articolo riguardante più nello specifico le applicazioni di localizzazione, inclusa l'applicazione di Firefox OS.</dd> + <dt><a href="/en-US/docs/Web/API/L10n">L10n</a></dt> + <dd>Documenti in riferimento all' L10n API che Mozilla usa per localizzare Firefox OS.</dd> +</dl> diff --git a/files/it/mozilla/marketplace/criteri_revisione_marketplace/index.html b/files/it/mozilla/marketplace/criteri_revisione_marketplace/index.html new file mode 100644 index 0000000000..9e2d6e10bf --- /dev/null +++ b/files/it/mozilla/marketplace/criteri_revisione_marketplace/index.html @@ -0,0 +1,79 @@ +--- +title: Criteri di revisione del Marketplace +slug: Mozilla/Marketplace/criteri_revisione_marketplace +translation_of: Archive/Mozilla/Marketplace/Publishing/Marketplace_review_criteria +--- +<div class="summary"> + <p>Questo articolo descrive i requisiti che un'app deve soddisfare per essere distribuita su Firefox Marketplace. Tali requisiti sono stati elaborati per conservare un equilibrio tra le esigenze degli sviluppatori e quelle degli utenti. Gli sviluppatori cercano requisiti equi, coerenti, non troppo rigorosi e affidabili per costituire le basi del loro business. D'altra parte, gli utenti esigono la garanzia che le app siano sicure, in grado di funzionare sui loro dispositivi e che rispettino quanto dichiarato nelle note di versione. I seguenti requisiti tentano di conciliare tutte queste esigenze.</p> +</div> +<p>Di seguito le prospettive di Mozilla riguardo alle revisioni:</p> +<ul> + <li>I criteri vanno applicati in modo equo, coerente e con una certa clemenza. Il processo di revisione non deve essere visto come una barriera, ma piuttosto come un punto di vista degno di fiducia che fornisce dei suggerimenti per aiutare lo sviluppatore ad avere successo.</li> + <li>I revisori non si sostituiscono al Controllo qualità. Durante il processo di revisione un volontario verificherà la validità del manifesto e dedicherà qualche minuto a utilizzare l'app come farebbe un normale utente.</li> + <li>Nel caso in cui un'app non passi il processo di revisione, allo sviluppatore verrà fornita una chiara spiegazione dei problemi riscontrati, dei passaggi per riprodurli e, dove possibile, il revisore proverà a indicare la giusta strada da seguire fornendo link alla documentazione o suggerendo le modifiche da effettuare.</li> + <li>I revisori non danno giudizi estetici sull'<em>aspetto</em> dell'app, ma solo sul suo <em>funzionamento</em>. Ad esempio, un'app che contiene un paragrafo di testo rosso su sfondo arancione può essere rifiutata non perché esteticamente sgradevole, ma a causa della scarsa leggibilità.</li> + <li>Agli sviluppatori viene sempre concesso il beneficio del dubbio. Quando un revisore non è sicuro se un'app debba o meno essere rifiutata, <em>prima</em> di procedere col rifiuto chiederà delucidazioni allo sviluppatore. Un'app non verrà, almeno consapevolmente, rifiutata per problemi legati alla piattaforma e fuori dal controllo dello sviluppatore, tuttavia ci riserviamo di sospendere l'approvazione finché l'app non sarà in condizioni di funzionare correttamente.</li> +</ul> +<h2 id="Sicurezza">Sicurezza</h2> +<p>Tutte le specifiche di sicurezza per la progettazione di app sono disponibili in questa pagina:<a href="https://wiki.mozilla.org/Apps/Security">https://wiki.mozilla.org/Apps/Security</a> </p> +<ul> + <li>Il manifesto dell'app deve essere distribuito dalla stessa origine dell'app.</li> + <li>Il manifesto dell'app deve essere distribuito utilizzando l'header HTTP <code>Content-Type</code> <code>application/x-web-app-manifest+json</code>.</li> + <li>Un'app non deve utilizzare reindirizzamenti o iframe per caricare contenuti altrui senza autorizzazione.</li> + <li>Il manifesto deve specificare quali sono i privilegi richiesti dall'app e per quale scopo vengono utilizzati.</li> +</ul> +<h2 id="Privacy">Privacy</h2> +<ul> + <li>Durante il caricamento dell'app ti verrà chiesto di fornire l'indirizzo della tua Informativa sulla privacy. Per l'informativa non sono richiesti formati o contenuti specifici. Sentiti libero di utilizzare il nostro <a href="https://github.com/flamsmark/privacy-policy-template">modello di Informativa sulla privacy</a>. Dai anche un'occhiata alle <a href="https://developer.mozilla.org/en-US/Marketplace/Publishing/Privacy_policies">linee guida per l'Informativa sulla privacy</a>.</li> +</ul> +<h2 id="Contenuto">Contenuto</h2> +<ul> + <li>Tutte le app che non rispettano le linee guida sui contenuti, riportate qui di seguito, verranno rifiutate. Se ritieni che la tua app rappresenti un caso limite, richiedi delucidazioni al team di revisione, anche se l'app non è ancora pronta per la pubblicazione. Vogliamo aiutarti a rimanere sulla strada giusta piuttosto che sprecare del tempo prezioso a sviluppare un'app che verrà rifiutata.</li> + <li>Da gennaio 2014 tutte le app devono ricevere una classificazione dei contenuti da parte della IARC (International Age Rating Coalition). La classificazione viene attribuita durante il processo di caricamento dell'app rispondendo a un breve questionario. Ulteriori informazioni sul <a href="https://developer.mozilla.org/en-US/Marketplace/Submission/Rating_Your_Content">processo di classificazione</a>.</li> + <li>Gli screenshot e le descrizioni inserite in Firefox Marketplace devono essere una rappresentazione fedele dell'app.</li> + <li>Nel manifesto di un'app le <a href="/en-US/docs/Web/Apps/Manifest#locales">chiavi di tipo <code>locale</code></a> devono corrispondere alle rispettive lingue supportate dall'app. Per esempio, se fornisci una chiave <code>locale</code> in polacco gli utenti si aspetteranno che l'app sia disponibile in questa lingua.</li> +</ul> +<h3 id="Linee_guida_per_i_contenuti"><strong>Linee guida per i contenuti</strong></h3> +<p>Questa lista descrive contenuti considerati inappropriati su Firefox Marketplace. Non è una lista definitiva ma solo illustrativa e potrebbe essere aggiornata. Se un'applicazione viola queste linee guida, Mozilla si riserva il diritto di rimuoverla da Firefox Marketplace.</p> +<ul> + <li>Nessun materiale osceno, pornografico o rappresentazioni grafiche di sesso e violenza.</li> + <li>Nessun contenuto che violi i diritti altrui, inclusi proprietà intellettuale e altri diritti di proprietà, diritti di privacy e di pubblicità.</li> + <li>Nessun contenuto concepito per danneggiare Mozilla o gli utenti (quali codici potenzialmente dannosi, virus, spyware o malware).</li> + <li>Nessun contenuto illegale o che promuova attività illegali.</li> + <li>Nessun contenuto ingannevole, fuorviante, fraudolento, concepito per attività di phishing o altri furti di identità.</li> + <li>Nessun contenuto che promuova il gioco d'azzardo.</li> + <li>Nessun contenuto coinvolto nella promozione di prodotti e servizi illegali o controllati.</li> + <li>Nessun contenuto che sfrutti i minori.</li> + <li>Nessun contenuto che degradi, intimidisca, inciti alla violenza o incoraggi l'azione pregiudizievole nei confronti di persone o gruppi sulla base di età, sesso, razza, etnia, nazionalità, religione, orientamento sessuale, disabilità, posizione geografica o altre categorie protette, o che costituisca un incitamento all'odio.</li> + <li>Nessun contenuto che induca disonestamente l'utente a prendere una decisione d'acquisto.</li> +</ul> +<h2 id="Funzionalità">Funzionalità</h2> +<ul> + <li>Il revisore deve essere in grado di verificare il corretto funzionamento delle caratteristiche principali pubblicizzate dall'app. Difetti estetici e piccoli inconvenienti verranno comunicati allo sviluppatore, ma non impediranno l'approvazione dell'app.</li> + <li>L'app non deve compromettere le prestazioni e la stabilità del sistema.</li> +</ul> +<h2 id="Usabilità">Usabilità</h2> +<ul> + <li>Lo sviluppatore deve fare un ragionevole tentativo di ottimizzare il layout dell'app per la piattaforma di riferimento. Questo requisito è stato implementato per impedire le mancanze più grossolane, come ad esempio: + <ul> + <li>Dichiarare un'app che è chiaramente un sito web per desktop compatibile con un dispositivo mobile.</li> + <li>Progettare un'app con il layout che non si espande per riempire lo spazio a disposizione sullo schermo (immagina un'app con una schermata 320x480 che occupa solo l'angolo in alto a destra di un tablet, lasciando il resto della pagina vuoto: non è esattamente l'effetto desiderato!)</li> + </ul> + </li> + <li>L'app deve implementare un proprio sistema di navigazione e non dipendere dalla finestra nativa del browser o da un pulsante hardware, che potrebbe non essere disponibile su tutti i dispositivi. + <ul> + <li>Se, per esempio, un revisore si trovasse bloccato su una schermata dell'app perché nell'interfaccia non è stato implementato un collegamento per tornare indietro, questo costituirebbe un motivo di rifiuto. Questo non significa che l'app debba necessariamente implementare la barra di pulsanti tipica delle app native.</li> + <li>Nelle versioni di Firefox OS 1.1 e superiori è possibile inserire nel manifesto la proprietà <code><a href="/en-US/Apps/Build/Manifest#chrome">chrome</a></code>, che dota l'app di un sistema di navigazione essenziale.</li> + </ul> + </li> + <li>Gli elementi di navigazione, come pulsanti e link, devono essere facilmente attivabili con un clic o un tocco.</li> +</ul> +<h2 id="Politica_sulle_app_bloccate">Politica sulle app bloccate</h2> +<p>Nella speranza di non arrivare mai a esercitarlo, ci riserviamo il diritto di eliminare ("bloccare") qualsiasi app già pubblicata che in un secondo momento riveli di aver violato i requisiti di sicurezza, privacy o contenuto, oppure di causare un peggioramento significativo nelle prestazioni del sistema o del network. Gli sviluppatori verranno informati prima del blocco della loro app, saranno considerati in buona fede in assenza di prove che dimostrino il contrario e potranno contare sulla piena collaborazione del team di revisione, che comunicherà loro la situazione e li assisterà nella risoluzione del problema. Esempi specifici di casi in cui si procede al blocco di un'app:</p> +<ul> + <li>Phishing</li> + <li>Spam</li> + <li>Modifica radicale della tipologia di contenuti, ad esempio da "Foto di cuccioli v1.0" a "Violenza Brutale v1.0", senza aggiornare appropriatamente la classificazione dei contenuti.</li> + <li>Comportamenti anomali gravi dell'app per una significativa percentuale di utenti, anche nel caso in cui non si riesca a stabilire una responsabilità diretta di quest'ultima. Questi includono: peggioramento nelle prestazioni del telefono, riavvii continui, perdita dei dati dell'utente non risolti da un riavvio del dispositivo.</li> + <li>Utilizzo dell'app per attacchi alla Rete come il Distributed denial of service (DDOS).</li> +</ul> diff --git a/files/it/mozilla/marketplace/index.html b/files/it/mozilla/marketplace/index.html new file mode 100644 index 0000000000..b868c7f23d --- /dev/null +++ b/files/it/mozilla/marketplace/index.html @@ -0,0 +1,129 @@ +--- +title: Firefox Marketplace +slug: Mozilla/Marketplace +tags: + - Apps + - Firefox OS + - Marketplace + - Mobile + - TopicStub +translation_of: Archive/Mozilla/Marketplace +--- +<div class="summary">Firefox Marketplace è una piattaforma online aperta e non proprietaria per la distribuzione di app web. <span class="seoSummary">Questa sezione fornisce le informazioni necessarie per realizzare ed esporre un’app su Firefox Marketplace, illustra consigli su come rendere l'app più fruibile e popolare, le varie opzioni di distribuzione, pubblicazione e aggiornamento, le librerie e API necessarie per sfruttare le funzionalità del Marketplace.</span></div> + +<div class="column-container"> +<p>Mozilla porta i suoi principi fondamentali, apertura, libertà e diritto dell'utente di scegliere, nel mercato delle app.</p> + +<p><a href="https://marketplace.firefox.com/">Firefox Marketplace</a> permette di pubblicare <a href="/it/docs/Apps">app open web</a> sfruttando tecnologie web, linguaggi e strumenti standardizzati. Le app possono essere di due tipi: locali (packaged), cioè eseguibili dall'interno di Firefox, oppure remote (hosted), ospitate su un server proprio. Le app pubblicate sul Marketplace sono disponibili agli utenti di Firefox OS in tutto il mondo e possono essere facilmente trovate attraverso la sezione "App consigliate", le varie categorie di app e una versatile funzione di ricerca. L'installazione delle app gratuite richiede pochi istanti, mentre le app a pagamento possono essere acquistate sfruttando il sempre più completo supporto per i pagamenti con carta di credito oppure direttamente dal cellulare.</p> +</div> + +<div class="row topicpage-table"> +<div class="section"> +<h2 class="Community" id="Community" name="Community"><a href="/en-US/Marketplace/Prepare">Prepararsi al successo</a></h2> + +<dl> + <dd>Che tu sviluppi app per profitto o semplicemente per soddisfazione personale, se le esponi sul Marketplace probabilmente è perché miri a farle scoprire, utilizzare e apprezzare dagli utenti. Questa sezione spiega come far conoscere la propria app e costruire una comunità di utenti soddisfatti.</dd> +</dl> + +<h2 class="Community" id="Community" name="Community"><a href="/en-US/Marketplace/Options">Opzioni di pubblicazione</a></h2> + +<dl> + <dd>Locale o remota, questo è il dilemma. Le risposte alle tue domande su come distribuire il contenuto delle app e sulle varie opzioni per desktop, dispositivi Android e Firefox OS.</dd> +</dl> + +<h2 class="Community" id="Community" name="Community"><a href="/en-US/Marketplace/Publishing/Introduction">Pubblicare un'app</a></h2> + +<dl> + <dd>Esibisci le tue app davanti al resto del mondo. Scopri come esporre le tue app su Firefox Marketplace, dal procedimento per caricare l'app al processo di revisione, all'aggiornamento, al controllo delle statistiche, alla revisione dei commenti degli utenti.</dd> +</dl> +</div> + +<div class="section"> +<dl> +</dl> + +<h2 class="Tools" id="Tools" name="Tools">Strumenti per lo sviluppo di app</h2> + +<dl> + <dt><a href="/en-US/Marketplace/APIs">Librerie e API di Firefox Marketplace</a></dt> + <dd>Una panoramica con i link alle librerie e alle API a disposizione per aggiungere nuove funzionalità alle app del Marketplace.</dd> + <dt><a href="/en-US/Apps/Tools_and_frameworks/App_developer_tools">Strumenti per sviluppatori di app</a></dt> + <dd>Una lista esauriente dei vari strumenti a disposizione per rendere lo sviluppo delle app open web efficiente e divertente.</dd> + <dt><a href="/it/docs/Tools/WebIDE">WebIDE</a></dt> + <dd>Lo strumento principale per verificare, inviare a un dispositivo e sottoporre al debug le app di <a href="https://developer.mozilla.org/en-US/Firefox_OS">Firefox OS</a> attraverso <a href="/it/docs/Tools/Firefox_OS_Simulator">Firefox OS Simulator</a> o un dispositivo con sistema operativo Firefox OS.</dd> +</dl> +</div> +</div> + +<h2 id="Subnav">Subnav</h2> + +<ol> + <li><a href="/en-US/Marketplace/Prepare">Prepararsi al successo</a> + + <ol> + <li><a href="/en-US/Marketplace/Prepare/Introduction">Introduzione</a></li> + <li><a href="/en-US/Marketplace/Prepare/Deciding_what_to_build">Deciding what to build</a></li> + <li><a href="/en-US/Marketplace/Prepare/Getting_to_know_your_users">Getting to know your users</a></li> + <li><a href="/en-US/Marketplace/Prepare/Choosing_your_business_model">Choosing your business model</a></li> + <li><a href="/en-US/Marketplace/Prepare/Localizing_your_apps">Localizing your apps</a></li> + <li><a href="/en-US/Marketplace/Prepare/Promoting_your_app">Promoting your app</a></li> + <li><a href="/en-US/Marketplace/Prepare/Creating_your_community">Creating your community</a></li> + </ol> + </li> + <li><a href="/en-US/Marketplace/Options">Opzioni di pubblicazione</a> + <ol> + <li><a href="/en-US/Marketplace/Options/Introduction">Introduzione</a></li> + <li><a href="/it/Marketplace/Options/Packaged_apps">Packaged apps</a></li> + <li><a href="/en-US/Marketplace/Options/Hosted_apps">Hosted apps</a></li> + <li><a href="/en-US/Marketplace/Options/Packaged_or_hosted">Packaged or hosted?</a></li> + <li><a href="/en-US/Marketplace/Options/Mobile_optimized_websites">Mobile-optimized websites</a></li> + <li><a href="/en-US/Marketplace/Options/Self_publishing">Publish apps yourself</a></li> + </ol> + </li> + <li><a href="/it/Marketplace/Publishing">App publishing overview</a> + <ol> + <li><a href="/en-US/Marketplace/Publishing/Introduction">Introduzione</a></li> + <li><a href="/en-US/Marketplace/Publishing/Submission_checklist">Submission checklist</a></li> + <li><a href="it/Marketplace/criteri_revisione_marketplace" title="Una spiegazione dei criteri che un'app deve soddisfare per essere pubblicata su Firefox Marketplace">Criteri di revisione del Marketplace</a></li> + <li><a href="/en-US/Marketplace/Publishing/Marketplace_showcase_criteria">Marketplace showcase criteria</a></li> + <li><a href="/en-US/Marketplace/Publishing/Adding_a_subdomain" title="Per ragioni di sicurezza ogni app deve avere un proprio dominio (o sottodominio) sul Web. Questo articolo spiega come creare il sottodominio per un'app.">Adding a subdomain for an app</a></li> + <li><a href="/en-US/Marketplace/Publishing/Policies_and_Guidelines">Policies and Guidelines</a> + <ol> + <li><a href="/en-US/Marketplace/Publishing/Policies_and_Guidelines/Introduction">Introduzione</a></li> + <li><a href="/en-US/Marketplace/Publishing/Policies_and_Guidelines/Marketplace_screenshot_criteria" title="Linee guida su come realizzare screenshot efficaci per il caricamento sul Marketplace.">Marketplace screenshot criteria</a></li> + <li><a href="/en-US/Marketplace/Publishing/Policies_and_Guidelines/Privacy_policies" title="La privacy degli utenti è estremamente importante, per questo è necessario sviluppare e aderire a una politica sulla privacy appropriata in modo da guadagnarsi la loro fiducia. Questo articolo fornisce le linee guida per lo sviluppo di una politica sulla privacy.">Privacy policy</a></li> + <li><a href="/en-US/Marketplace/Publishing/Policies_and_Guidelines/Testing_and_troubleshooting">App testing and troubleshooting</a></li> + </ol> + </li> + </ol> + </li> + <li><a href="/en-US/Marketplace/Publishing/Submit">Submit your app</a> + <ol> + <li><a href="/en-US/Marketplace/Publishing/Submit/Overview">Panoramica</a></li> + <li><a href="/en-US/Marketplace/Publishing/Submit/Sign-in_to_your_developer_account" title="Questa guida indica come caricare correttamente un'app su Firefox Marketplace passo per passo.">Step 1: Sign-in</a></li> + <li><a href="/en-US/Marketplace/Publishing/Submit/Load_your_app">Step 2: Load app</a></li> + <li><a href="/en-US/Marketplace/Publishing/Submit/Enter_your_apps_details">Step 3: Listing details</a></li> + <li><a href="/en-US/Marketplace/Publishing/Submit/Next_steps">Step 4: Next steps</a></li> + <li><a href="/en-US/Marketplace/Publishing/Submit/Rating_Your_Content">Step 5: App rating</a></li> + <li><a href="/en-US/Marketplace/Publishing/Submit/Define_your_team">Step 6: Define team members</a></li> + <li><a href="/en-US/Marketplace/Publishing/Submit/View_your_listing">Step 7: View listing</a></li> + <li><a href="/en-US/Marketplace/Publishing/Submit/Edit_other_localizations">Step 8: Edit other localizations</a></li> + </ol> + </li> + <li><a href="/en-US/Marketplace/Publishing/Managing_your_apps">Managing and updating published apps</a> + <ol> + <li><a href="/en-US/Marketplace/Publishing/Managing_your_apps/Introduction_Managing_your_apps">Introduzione</a></li> + <li><a href="/en-US/Marketplace/Publishing/Managing_your_apps/Status___Versions">Your app's status</a></li> + <li><a href="/en-US/Marketplace/Publishing/Updating_apps" title="Informazioni su come vengono gestiti gli aggiornamenti delle app locali e remote, e sugli accorgimenti da prendere per assicurarsi che la propria app supporti gli aggiornamenti.">Updating apps</a></li> + <li><a href="/en-US/Marketplace/Publishing/Managing_your_apps/App_Statistics">App Stats</a></li> + </ol> + </li> + <li><a href="/en-US/docs/Mozilla/Marketplace/Add-on_submission">Add-on submission</a> + <ol> + <li><a href="/en-US/docs/Mozilla/Marketplace/Add-on_submission">Add-on submission overview</a></li> + <li><a href="/en-US/docs/Mozilla/Marketplace/Add-on_submission/Review_criteria">Add-on review criteria</a></li> + </ol> + </li> + <li><a href="/en-US/Marketplace/APIs">Librerie e API</a></li> + <li><a href="/en-US/Marketplace/FAQ">FAQ di Firefox Marketplace</a></li> +</ol> diff --git a/files/it/mozilla/marketplace/monetization/introduction_monetization/index.html b/files/it/mozilla/marketplace/monetization/introduction_monetization/index.html new file mode 100644 index 0000000000..ef368a9586 --- /dev/null +++ b/files/it/mozilla/marketplace/monetization/introduction_monetization/index.html @@ -0,0 +1,31 @@ +--- +title: Introduction — Monetization +slug: Mozilla/Marketplace/Monetization/Introduction_Monetization +tags: + - italiano tags +translation_of: Archive/Marketplace/Monetization/Introduction_Monetization +--- +<div class="summary"> +<p>You've worked hard on designing your latest app, and now you want to ensure it generates revenue. This section provides the information you need to implement and publish a paid app, a paid upgrade app, and apps using in-app payments or in-app advertising.</p> +</div> + +<div class="row topicpage-table"> +<dl> + <dt><a href="https://developer.mozilla.org/en-US/docs/Apps/Tutorials/General/Profiting_from_your_app">Publishing your app for profit</a></dt> + <dd>An overview to the development and publishing process for each type of monetized app, as well as details on refunds and how payments are processed.</dd> + <dt><a href="/en-US/Marketplace/Monetization/App_payments_guide">Building paid apps</a></dt> + <dd>An introduction to creating an app users have to pay for.</dd> + <dt><a href="/en-US/Marketplace/Monetization/In-app_payments_section/Introduction_In-app_Payments">Building for in-app payments</a></dt> + <dd>Guides to implementing support for in-app payments using fxPay or mozPay.</dd> + <dt><a href="/en-US/Marketplace/Monetization/Refunds">Refunds</a></dt> + <dd>Details on refunds users can request and how they effect your app.</dd> + <dt><a href="/en-US/docs/Web/Apps/Publishing/Validating_a_receipt">Validating a receipt</a></dt> + <dd>A guide to when and how to validate your app's purchase receipt, whether you want to implement the validation yourself or use an existing library.</dd> + <dt><a href="/en-US/docs/Web/Apps/Publishing/App_pricing" title="/en-US/docs/Web/Apps/Publishing/App_pricing">App pricing tiers</a></dt> + <dd>Details of the fixed price points you can choose for your paid apps, and how these vary among different currencies, along with useful supporting information on dealing with app payments.</dd> + <dt><a href="/en-US/docs/Web/Apps/Publishing/Payments_Status" title="/en-US/docs/Web/Apps/Publishing/Payments_Status">Country guide</a></dt> + <dd>Additional details, such as tax and exchange rates used, for each country where payments in the local currency are available.</dd> +</dl> +</div> + +<p> </p> diff --git a/files/it/mozilla/marketplace/monetization/profiting_from_your_app/index.html b/files/it/mozilla/marketplace/monetization/profiting_from_your_app/index.html new file mode 100644 index 0000000000..f623f72cc8 --- /dev/null +++ b/files/it/mozilla/marketplace/monetization/profiting_from_your_app/index.html @@ -0,0 +1,53 @@ +--- +title: Publishing your app for profit +slug: Mozilla/Marketplace/Monetization/Profiting_from_your_app +tags: + - italiano tags +translation_of: Archive/Marketplace/Monetization/Profiting_from_your_app +--- +<div class="summary"> +<p>Creating Web Apps is not only fun; it's also a great way to turn your passion into revenue! This article sumarizes how you publish app using various the monetization models available.</p> +</div> + +<div class="note"> +<p><strong>Note</strong>: If you're looking for more information on monetization models or advice on which one to use, check out <a href="/en-US/Marketplace/Prepare/Choosing_your_business_model">Choosing your business model</a>. In addition, the <a href="/en-US/Marketplace/FAQ#Payments">payments section of the Marketplace FAQ</a> provides answers to many common questions about Marketplace payments.</p> +</div> + +<h2 id="How_to_...">How to ...</h2> + +<h3 id="Release_a_premium_app">Release a premium app</h3> + +<p>To offer a premium (paid) app you need to set it so it's installed from Firefox Marketplace. Then include code to verify a receipt issued by Marketplace, to make sure the app has been paid for before allowing it to run. For more information, see the <a href="/en-US/Marketplace/Monetization/App_payments_guide">App payments guide</a>.</p> + +<p>To setup an app as premium in Firefox Marketplace you first identify it as Paid in the <a href="/en-US/Marketplace/Publishing/Submit/Load_your_app#Monetization">initial (monetization)</a> section of the Submit an App page. You then <a href="/en-US/Marketplace/Publishing/Pricing/Payment_Accounts">create an account with one or more payment providers</a>. Once this is done you can select a <a href="/en-US/Marketplace/Monetization/App_pricing">price point</a> for your app. Bear in mind that currently only apps installed into Firefox OS can be premium apps, because payments are not yet supported on desktop or Android.</p> + +<h3 id="Release_a_promote_as_upgrade_app">Release a promote as upgrade app</h3> + +<p>For this approach you obviously need two apps — the free one and the premium app you'll promote as an upgrade.</p> + +<p>Once your apps are ready, first add the free version of the app to Firefox Marketplace, then the premium version. While submitting the premium app select the <a href="/en-US/Marketplace/Publishing/Pricing/Promote_as_upgrade_to_free_version">promote as upgrade to free version</a> option at the bottom of the <strong>Compatibility & Pricing</strong> page.</p> + +<h3 id="Release_an_app_with_in-app_payments">Release an app with in-app payments</h3> + +<p>You have two options for adding in-app payments to your apps: <a href="/en-US/Marketplace/Monetization/In-app_payments_section/fxPay_iap">fxPay</a> and <a href="/en-US/Marketplace/Monetization/In-app_payments_section/mozPay_iap">mozPay</a>. The principal difference between the two options is that fxPay works without the need for your own server, while mozPay requires you to have a server to store transaction receipts.</p> + +<p>In simple terms, development of your app involves defining a number of in-app products you have for sale, reading those products into your app, providing a purchase 'button', and validating the receipt when the product is 'consumed' to ensure it was validly purchased. Full details on the coding required is provided in the <a href="/en-US/Marketplace/Monetization/In-app_payments_section/Introduction_In-app_Payments">In-app payments</a> section.</p> + +<div class="note"> +<p><strong>Note</strong>: While we encourage apps using in-app payments to be free for download, it's possible to have a paid app that also uses in-app payments.</p> +</div> + +<p>To setup an app with in-app purchases in Firefox Marketplace, you first identify it as <strong>Paid / In-app</strong> in the <a href="/en-US/Marketplace/Publishing/Submit/Load_your_app#Monetization">initial (monetization)</a> section of the Submit an App page (noting that you will do this for a stub app before development starts to get a API key for mozPay or load in-app products for fxPay). You then <a href="/en-US/Marketplace/Publishing/Pricing/Payment_Accounts">create an account with one or more payment providers</a>, before publishing your app. Bear in mind that currently only apps installed into Firefox OS can be premium apps, because payments are not yet supported on desktop or Android.</p> + +<h3 id="Releasing_an_app_with_in-app_advertising">Releasing an app with in-app advertising</h3> + +<p>Mozilla has no special relationship with any advertising network, so you are free to choose the ad network or networks. You'll need to consult the developer resources from your chosen network to get full details of the development process, but in general the process is likely to involve: getting a key that will identify to the network that an ad has been displayed or clicked in your app, and coding the ads into your app.</p> + +<p>To publish on Firefox Marketplace you now simply identify it as <strong>Free</strong> or <strong>Paid / In-app</strong> as appropriate in the <a href="/en-US/Marketplace/Publishing/Submit/Load_your_app#Monetization">initial (monetization)</a> section of the Submit an App page and compete the apps details. There are no special steps to follow, compared to posting an app without in-app adverts.</p> + +<h2 id="See_also">See also</h2> + +<ul> + <li><a href="/en-US/Marketplace/Prepare/Choosing_your_business_model">Choosing your business model</a> for details on the monetization options offered in Firefox Marketplace and advice on choosing the right one for your app.</li> + <li><a href="/en-US/Marketplace/Publishing/Submit/Overview">Submit your app</a> for detailed information on the process for submitting an app to Firefox Marketplace.</li> +</ul> diff --git a/files/it/mozilla/marketplace/options/index.html b/files/it/mozilla/marketplace/options/index.html new file mode 100644 index 0000000000..067b7756f8 --- /dev/null +++ b/files/it/mozilla/marketplace/options/index.html @@ -0,0 +1,21 @@ +--- +title: Your publication options +slug: Mozilla/Marketplace/Options +tags: + - NeedsTranslation + - Structure only + - TopicStub +translation_of: Archive/Mozilla/Marketplace/Options/Introduction +--- +<p>In <a href="/en-US/Marketplace/Options/Introduction">this section</a> you'll discover:</p> +<ul> + <li>the formats in which you can deliver Open Web Apps ‐ either as a <a href="/en-US/Marketplace/Options/Packaged_apps">packaged</a> or <a href="/en-US/Marketplace/Options/Hosted_apps">hosted</a> app ‐ as well as details on how to <a href="/en-US/Marketplace/Options/Packaged_or_hosted_">make the choice between these formats</a>.</li> + <li>how the features of <a href="/en-US/Marketplace/Options/Open_web_apps_for_android">Open Web Apps for Android</a> and <a href="/en-US/Marketplace/Options/Open_web_apps_for_desktop">Open Web Apps for Desktop</a> deliver your apps to Android devices and Windows/Mac/Linux PCs.</li> + <li>information on choosing between devices with different amounts of memory.</li> + <li>your options for <a href="/en-US/Marketplace/Options/Self_publishing">publishing apps yourself</a>, outside Firefox Marketplace.</li> + <li>how you can <a href="/en-US/Marketplace/Options/Creating_a_store">create your own Marketplace</a>.</li> +</ul> +<div class="warning"> + <p>Content in this section is still under development.</p> +</div> +<p> </p> diff --git a/files/it/mozilla/marketplace/options/packaged_apps/index.html b/files/it/mozilla/marketplace/options/packaged_apps/index.html new file mode 100644 index 0000000000..056adf7d11 --- /dev/null +++ b/files/it/mozilla/marketplace/options/packaged_apps/index.html @@ -0,0 +1,55 @@ +--- +title: Packaged apps +slug: Mozilla/Marketplace/Options/Packaged_apps +translation_of: Archive/Mozilla/Marketplace/Options/Packaged_apps +--- +<div class="summary"> + <p><span class="seoSummary">A <strong>packaged app</strong> is an Open Web App that has all of its resources (HTML, CSS, JavaScript, app manifest, and so on) contained in a zip file, instead of having its resources on a Web server. This article provides an introduction to packaged apps and links to everything you need to know about packaged apps from a developer standpoint.</span></p> +</div> +<p>A packaged app is zip file that contains all the resources that enable an Open Web App to function, along with an <a href="/en-US/docs/Web/Apps/Manifest">app manifest</a> in the zip's root directory. The app manifest provides details about the app such as its description, icons used to identify the installed app and such like. The package is then used to install the app to Firefox OS devices, <a href="/en-US/Marketplace/Options/Open_web_apps_for_android">Android devices</a> and <a href="/en-US/Marketplace/Options/Open_web_apps_for_desktop">desktops</a>. Once installed the app runs on the device, but is still able to access resources on the Web, such as a database on a Web server.</p> +<p>There are three <a href="#types_of_packaged_apps">types of packaged apps</a>: web app, privileged app and certified app. While packaged apps can be used to deliver any type of Open Web App, privileged and certified apps are digitally signed to enable the use of <a href="/en-US/Apps/Build/App_permissions">privileged and certified APIs</a>. Privileged apps are signed as part of the Marketplace review process, while certified apps are signed by device manufacturers or operators.</p> +<p>In addition to their ability to use privileged and certified APIs, packaged apps offer users a faster first start response as all the of the app's resources are available on the device after installation.These feature makes packaged apps the recommended approach for delivering Open Web Apps to Firefox OS devices, <a href="/en-US/Marketplace/Options/Open_web_apps_for_android">Android devices</a> and <a href="/en-US/Marketplace/Options/Open_web_apps_for_desktop">desktops</a>.</p> +<div class="note"> + <p><strong>Note:</strong> Currently the Firefox Marketplace supports web and privileged packaged apps. In addition, Firefox Marketplace supports paid packaged apps for Firefox OS only and free packaged apps for Firefox OS, Firefox for Android and Firefox for Desktop. Support for paid apps on all platforms is under development.</p> +</div> +<h2 id="Types_of_packaged_apps"><a name="types_of_packaged_apps">Types of packaged apps</a></h2> +<p>There are three types of packaged apps: web apps, privileged apps and certified app. Each type of packaged app corresponds to a level of the <a href="https://developer.mozilla.org/en-US/Firefox_OS/Security/Security_model#App_Security">App Security</a> model implemented in Firefox OS. This section provides more information on each.</p> +<h3 id="Web_app">Web app</h3> +<p>A web app is one that doesn't make use of privileged or certified APIs. When submitted to Marketplace the app's package is signed, but the special authentication process used for privileged or certified apps isn't performed. Web apps therefore cannot use privileged or certified APIs. These apps are not subject to the <a href="/en-US/Apps/CSP">Content Security Policies</a> (CSPs) required for privileged and certified apps.</p> +<p>This type of packaged app doesn't require the <code>type</code> field in its <code>manifest.webapp</code> file, because the default value for <code>type</code> (<code>web</code>) is correct.</p> +<p>Web apps may be <a href="/en-US/Marketplace/Options/Self_publishing">self-published</a> or distributed through the Firefox Marketplace. Web apps can also be delivered using the <a href="/en-US/Marketplace/Options/Hosted_apps">Hosted app</a> mechanism.</p> +<h3 id="Privileged_app">Privileged app</h3> +<p>A privileged app is one that makes use of privileged APIs and can be considered as the equivalent of a native app on platforms such as iOS and Android. When submitted to the Firefox Marketplace, privileged apps are approved using a special process. This process gives users of the app a level of assurance that the app has been carefully reviewed for potential security, privacy and capability issues.</p> +<p>To specify that an app is a privileged app, add the <a href="/en-US/docs/Web/Apps/Manifest#type"><code>type</code></a> field to its <code>manifest.webapp</code> file and set it to <code>privileged</code>. Every privileged API your app needs to access must be added to the <code>permissions</code> field in the <a href="/en-US/docs/Web/Apps/Manifest">app's manifest</a>.</p> +<p>Firefox OS and the Web runtimes for Android and desktops enforces the following <a href="/en-US/docs/Security/CSP/Introducing_Content_Security_Policy">CSP</a> for privileged apps:</p> +<pre class="brush: js">"default-src *; script-src 'self'; object-src 'none'; style-src 'self' 'unsafe-inline'"</pre> +<p>Privileged apps may be distributed through the Firefox Marketplace only.</p> +<h3 id="Certified_app">Certified app</h3> +<div class="geckoVersionNote"> + <p>Certified apps are not generally available to third-party developers and aren't distributed through the Firefox Marketplace. The long term goal for the APIs covered by certification is to harden then so they can be made available as privileged APIs. If you've an interest in seeing a particular API made available, please provide feedback on the <a href="https://lists.mozilla.org/listinfo/dev-webapps">dev-webapps</a> mailing list.</p> +</div> +<p>A certified app is one that makes used of certified APIs, APIs that offer access to critical system function such as the default dialer or the system settings app on a device. Compared to to a privileged app, all API permissions in a certified app are implicit, meaning they are enabled without explicit user approval. A certified app must be approved for a device by the OEM or carrier.</p> +<p>To specify that an app is a certified app, add the <a href="/en-US/docs/Web/Apps/Manifest#type"><code>type</code></a> field to its <code>manifest.webapp</code> file and set it to <code>certified</code>. Every privileged and certified API your app needs to access must be added to the <code>permissions</code> field in the <a href="/en-US/docs/Web/Apps/Manifest">app's manifest</a>.</p> +<p>Firefox OS implements the following CSP for certified apps:</p> +<pre class="brush: js">"default-src *; script-src 'self'; object-src 'none'; style-src 'self'"</pre> +<p>This has the effect of implementing stricter rules for inline CSP for certified compared to privileged apps. If you want to understand the reasoning behind this, see <a href="https://wiki.mozilla.org/Apps/Security#Default_CSP_policy">Default CSP policy</a> and <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=768029">Bug 768029</a>.</p> +<p>Certified apps are preloaded onto devices by OEMs and operators.</p> +<h2 id="Testing_packaged_apps">Testing packaged apps</h2> +<p>To install a packaged app into a Firefox OS Simulator or onto a device for testing purposes, see <a href="/en-US/Firefox_OS/Using_the_App_Manager">Using the App Manager</a>. Alternatively, you can install it on to a device from a Web server by following the steps described in <a href="/en-US/Marketplace/Options/Self_publishing">Publishing apps yourself</a>. Remember that when you publish apps yourself, packaged web apps only can be installed .</p> +<h2 id="Publishing_packaged_apps">Publishing packaged apps</h2> +<p>You have two options for publishing packaged apps: on Firefox Marketplace or self-publishing.</p> +<h3 id="Publishing_on_Firefox_Marketplace">Publishing on Firefox Marketplace</h3> +<p>The process for submitting a packaged app to Firefox Marketplace is described in the <a href="/en-US/Marketplace/Publishing">App Publishing</a> section.</p> +<p>When you submit your packaged app, its zip file is stored on the Marketplace servers, and the Marketplace generates a new manifest called the <strong>mini-manifest</strong> that is based on the app manifest in your packaged app's zip file. When a user installs your app, the mini-manifest is passed to the <a href="/en-US/docs/Web/API/Apps.installPackage"><code>Apps.installPackage()</code></a> function to install the app. The mini-manifest exists for installation and update purposes and isn't used when your app runs.</p> +<h3 id="Publishing_yourself">Publishing yourself</h3> +<p>It's possible to publish packaged web apps outside Firefox Marketplace, on your own web server. Details are provided in <a href="/en-US/Marketplace/Options/Self_publishing">Publishing apps yourself</a>.</p> +<h2 id="Updating_packaged_apps">Updating packaged apps</h2> +<p>For information on updating apps, see <a href="/en-US/docs/Web/Apps/Updating_apps">Updating apps</a>.</p> +<h2 id="More_information">More information</h2> +<ul> + <li><a href="/en-US/Firefox_OS/Security/Security_model">Firefox OS security Overview</a></li> + <li><a href="/en-US/Firefox_OS/Security/Application_security">Application Security</a></li> + <li><a href="https://github.com/robnyman/Firefox-OS-Boilerplate-App" title="https://github.com/robnyman/Firefox-OS-Boilerplate-App">Firefox OS Boilerplate App</a></li> +</ul> +<p> </p> +Ytughf diff --git a/files/it/mozilla/marketplace/prepare/choosing_your_business_model/index.html b/files/it/mozilla/marketplace/prepare/choosing_your_business_model/index.html new file mode 100644 index 0000000000..b4bceec5cf --- /dev/null +++ b/files/it/mozilla/marketplace/prepare/choosing_your_business_model/index.html @@ -0,0 +1,121 @@ +--- +title: Choosing your business model +slug: Mozilla/Marketplace/Prepare/Choosing_your_business_model +tags: + - italiano tags +translation_of: Archive/Mozilla/Marketplace/Prepare/Choosing_your_business_model +--- +<div class="summary"> +<p><span class="seoSummary">A guide to and advice on choosing an appropriate business model for monetizing Firefox Marketplace apps.</span></p> +</div> + +<p>You may be happy to create and distribute your apps for free. We applaud you for that, it’s very much in the spirit of everything we do here at Mozilla. However, we also understand that you may want to make app development your source of income and there is nothing wrong with that. Selecting the most appropriate monetization model your apps is a critical step if you want to maximize the revenue you earn. It's about a lot more than simply loading your app into Firefox Marketplace and setting a price: it's entirely possible that you could make more money by not charging for your app at all.</p> + +<p>To assist you with implementing the best monetization option, this page describes the models available before looking at the criteria to consider in deciding which option to use.</p> + +<h2 id="Monetization_models">Monetization models</h2> + +<p>When it comes to making money from your Firefox Marketplace apps there are a number of monetization models you can use. This section describes the options available.</p> + +<h3 id="The_Paid_App_or_Premium_model">The Paid App or Premium model</h3> + +<p>This is the simple, traditional model for monetizing apps: You generate your revenue from sales of your app by setting a price for it in the Marketplace. The user must then pay before being able to download and install your app.</p> + +<p>The advantage of this model is its simplicity, you simply write your app and price it. There are however several disadvantages:</p> + +<ul> + <li>Pricing an app can be a barrier to users downloading it in the first place: + <ul> + <li>Some users will be reluctant to download a paid app because they may find it difficult to judge an app fully based on the store description and screenshots alone: they want to know what they're getting before paying.</li> + <li>Increasingly developers are adopting other monetization models for their apps, so it's likely that users will be able to find a similar app that is available for free.</li> + </ul> + </li> + <li>In those countries where operator billing isn’t available your target users may not have ready access to credit cards. This may mean that few users could purchase your app even if they wanted to.</li> +</ul> + +<h3 id="Try_and_Buy_model">Try and Buy model</h3> + +<p>In this model you make a version of your app available for free and then offer a paid app version with enhanced features, using Marketplace's 'promote as an upgrade' feature. This enables you to retain the simplicity of the premium monetization model, while addressing some of the issues with using the premium model alone.</p> + +<p>There are several approaches you can take to differentiating the free and paid versions of your app, such as:</p> + +<ul> + <li>Including advertising in the free version, then offering a paid version that is ad free.</li> + <li>Offering the free app for a limited time before some or all of its features become unavailable, with the paid app removing any limits. Take care to ensure that the time limit is sufficient for the user to experience most of the apps features. For example, in a time recording app you might want to provide at least a month’s trial, so the user can use any end of month summary features.</li> + <li>Providing limited features in the free version, with no limit on the features in the paid app. In the free app you could disable some features or offer all the features but limit the number of items to be stored or displayed by the app. For example, in a notepad app you might limit the number of notes a user can create, then offer unlimited note creation in the upgrade version.</li> +</ul> + +<p>This approach can overcome the resistance to buying apps, as it allows the user to understand the app’s value before making the purchase. However, it doesn’t overcome any limitations created by the means of payment available in some markets.</p> + +<p>If you choose to use this model, Firefox Marketplace offers the <a href="/en-US/Marketplace/Publishing/Pricing/Promote_as_upgrade_to_free_version">Promote as upgrade to free version</a> option. Using this option you link a paid app to its free version and Firefox Marketplace then provides a link to the paid version from the free one's Marketplace listing, as shown below.</p> + +<p><img alt="The Premium version available notice and link in the listing of a free app on a Firefox OS device." src="https://mdn.mozillademos.org/files/8029/Premium%20version%20available%20%28phone%29.png" style="width: 480px; height: 853px;">.</p> + +<p> </p> + +<h3 id="In-App_Purchases_model">In-App Purchases model</h3> + +<p>In this model you distribute a free version of your app only, but then offer users various additional items from within the app. These in-app purchases fall broadly into two categories:</p> + +<ul> + <li>Durables — items that are permanently available to the user. Examples include unlocking an app at the end of a time or use based trial, adding new app features, adding levels within a game, adding collections of information, removing ads, and such like.</li> + <li>Consumables — items that the user consumes within the app. You could treat almost any item as a consumable, such as offering an app feature on a time or use limited basis, but you can also offer such things as an in-game currency.</li> +</ul> + +<p>This model can often be easiest to implement in games, where additional levels, characters, power ups, and various other game unlocks lend themselves well to separate purchases. But equally an information app could offer a small set of information for free and an expanded or more details set from an in-app purchase.</p> + +<p>One particular benefit of in-app purchases is that it offers the ability to generate a recurring stream of revenue from installed apps. Games are a particularly good example of how this model works. You might offer a free download with 5 levels. Then, when the user has completed those levels, offer an additional 5 levels as an in-app purchase. Then at the end of those levels, offer 5 more for an in-app payment and so on. And as long as each new level pack is as engaging as the last, users will most likely continue to purchase new level packs.</p> + +<p>This model, overcomes the issues associated with any reluctance to download a paid app, but could still be effected by the same disadvantages notably any limitation on payment options.</p> + +<div class="note"> +<p>The in-app payment system in Firefox OS doesn’t yet support periodic subscriptions.</p> +</div> + +<h3 id="Ad_supported">Ad supported</h3> + +<p>In this model you incorporate advertising into your app and generate revenue from ad views and clickthroughs to view the advertised product or service. You will usually offer your app for free when it's ad-supported, but you can include ads in a premium app or in conjunction with in-app purchases, but do this with caution — particularly in premium apps — as users may consider you're 'charging ' them twice. You could also combine this approach with Promote as upgrade: offer the full app with adverts as the 'try' and a premium version without ads as the 'upgrade'. Alternatively you could use an in-app payment to offer a 'remove the ads' feature in the app.</p> + +<p>If you want to take this approach you can use any ad network you wish. There are a number of companies that offer ad services for websites and mobile apps, for example <a href="https://apps.admob.com/">Google AdMob</a> and <a href="http://inner-active.com/">Inneractive</a>.</p> + +<p>This model completely removes the barriers that paid app or in-app purchases have, in that you don’t have to worry about the willingness or ability of users to make payments.</p> + +<h2 id="Choosing_your_model">Choosing your model</h2> + +<p>Finding the right monetization model for your application isn’t an exact science; even simply deciding what price to charge can be a difficult process. The information you gathered while getting to know your users is the best place to start. This should provide you with some insight into their expectations:</p> + +<ul> + <li>Would they download a paid version of the app?</li> + <li>Do they have an interest in buying premium services?</li> + <li>Would they prefer a free app with ads?</li> +</ul> + +<p>This information needs to be combined with that on the available payment methods. This will help you determine if users will be willing and able to purchase apps or in-app products. You also should consider that the Firefox Marketplace will allow you to convert a free app to one users have to pay for, but you cannot make a paid for app free. So, unless you release a second version of the app, once you've chosen a paid model it’s hard to change to a free one.</p> + +<p>If you choose to use a paid or in-app purchase model, you’ll need to assess what your users will tolerate in terms of app price. Here it’s worth investigating what models and prices are being used by your competitors. Even if there is no direct competition, look at similar classes of app and see what they do.</p> + +<p>Even if you want to price your apps, err towards a model that provides users with a free download of some sort — as a paid download, even a low priced one, will be a barrier to many users.</p> + +<p>If you've any doubts about the effectiveness of a model with a paid element, then consider implementing in-app advertising in a free to download app.</p> + +<p>You can also mix the models, for example by using both advertising and in-app purchases. The only combination that should be used with caution is advertising in a paid app, as users may view this combination negatively.</p> + +<p>Bear in mind that there are some apps where you may be practically limited to either free or paid options only. For example games targeted at children may work better as paid apps: parents may look for games without advertising or in-app purchases that they can safely let their children use.</p> + +<p>If you come to no firm conclusions from your research, consider trying these general guidelines when choosing your model:</p> + +<ul> + <li>Use the Premium model for feature-rich apps or apps in specialist niches, also where you've an establish brand that users trust.</li> + <li>Offer a free version of any premium app and promote the premium app as an upgrade.</li> + <li>Use in-app purchases where you've granular or incremental content that can be sold as low priced additions, but beware of the development overhead in implementing each item the user can purchase — start with a few and add more over time.</li> + <li>Use in-app advertising in apps that offer a 'browsing' style interface, where the user is likely to notice ads while looking for and consuming content. It may also be a good option where the market or target audience might be more price sensitive.</li> +</ul> + +<p>You’ll probably have to experiment with different models to find the right one for any particular app. You may also find that you need to use different models for different apps in your portfolio, particularly if the user base varies between those apps. Similarly, variations among markets may mean that you can price your app in one country, but need to use in-app advertising in another — for example, you might be able to position a soccer app as paid in the UK or Brazil, but need to use in-app advertising in a version for the US.</p> + +<h2 id="Also_see">Also see</h2> + +<ul> + <li><a href="/en-US/Marketplace/Monetization/Profiting_from_your_app">Profiting from your app</a></li> + <li><a href="/en-US/Marketplace/Publishing/Pricing/Promote_as_upgrade_to_free_version">Promote as upgrade to free version</a></li> +</ul> diff --git a/files/it/mozilla/marketplace/prepare/introduction/index.html b/files/it/mozilla/marketplace/prepare/introduction/index.html new file mode 100644 index 0000000000..80a27bbc81 --- /dev/null +++ b/files/it/mozilla/marketplace/prepare/introduction/index.html @@ -0,0 +1,35 @@ +--- +title: Introduction — Prepare for Success +slug: Mozilla/Marketplace/Prepare/Introduction +tags: + - italiano tags +translation_of: Archive/Mozilla/Marketplace/Prepare/Introduction +--- +<div class="summary"> +<p><span class="seoSummary">Learn about the techniques you can use to create quality Firefox Marketplace apps and games people want, and build a worldwide user base of dedicated and loyal fans.</span></p> +</div> + +<p>Creating a successful Open Web App isn't just about great coding for a great open platform. Whether you’re coding for pleasure and the joy of sharing your ideas, or you want to build a business from your coding activities, you’ll want users to download and use your apps.</p> + +<p>This section contains the advice you need to achieve your goals in terms of app downloads, revenue and use.</p> + +<div class="twocolumns"> +<dl> + <dt><a href="/en-US/Marketplace/Prepare/Deciding_what_to_build">Deciding what to build</a></dt> + <dd>A great app starts with a great idea. Get guidance on choosing what to build.</dd> + <dt><a href="/en-US/Marketplace/Prepare_For_Success/Getting_to_know_your_users">Getting to know your users</a></dt> + <dd>Understanding your users and what they are looking for in your apps is critical to success.</dd> + <dt><a href="/en-US/Marketplace/Prepare/Choosing_your_business_model">Choosing your business model</a></dt> + <dd>Discover the business models available to your apps and games, and see how you might use them.</dd> + <dt> </dt> + <dt><a href="/en-US/Marketplace/Prepare/Localizing_your_apps">Localizing your apps</a></dt> + <dd>Taking your app to the world means localizing it for users worldwide. Find out about the processes and implications of localizing your app.</dd> + <dt><a href="/en-US/Marketplace/Prepare/Promoting_your_app">Promoting your app</a></dt> + <dd>Firefox Marketplace is a great way for users to discover apps, but to achieve the downloads you deserve you’ll need to shout about your app. Find out how to make a noise.</dd> + <dt><a href="/en-US/Marketplace/Prepare/Creating_your_community">Creating your community</a></dt> + <dd>Nurture and grow a vibrant community around your apps and tap into their enthusiasm and expertise.<br> + </dd> +</dl> +</div> + +<p> </p> diff --git a/files/it/mozilla/marketplace/publishing/index.html b/files/it/mozilla/marketplace/publishing/index.html new file mode 100644 index 0000000000..e2b172a388 --- /dev/null +++ b/files/it/mozilla/marketplace/publishing/index.html @@ -0,0 +1,9 @@ +--- +title: Publishing +slug: Mozilla/Marketplace/Publishing +tags: + - NeedsTranslation + - TopicStub +translation_of: Archive/Mozilla/Marketplace/Publishing/Introduction +--- +<p>Marketplace publishing</p> diff --git a/files/it/mozilla/marketplace/publishing/opzioni_pubblicazione_app/index.html b/files/it/mozilla/marketplace/publishing/opzioni_pubblicazione_app/index.html new file mode 100644 index 0000000000..ab3302cc6c --- /dev/null +++ b/files/it/mozilla/marketplace/publishing/opzioni_pubblicazione_app/index.html @@ -0,0 +1,152 @@ +--- +title: Autopubblicare un'app +slug: Mozilla/Marketplace/Publishing/opzioni_pubblicazione_app +translation_of: Archive/Mozilla/Marketplace/Options/Self_publishing +--- +<div class="summary"> +<p><span class="seoSummary">In alcune circostanze è preferibile non distribuire un'app attraverso Firefox Marketplace, per esempio nel caso si desideri condividerla soltanto con i membri della propria organizzazione, eseguire un test su una versione beta o semplicemente farne un uso privato. In questa pagina è spiegato come autopubblicare le proprie app al di fuori di Firefox Marketplace.</span></p> +</div> + +<p>Le app open web possono essere installate su Firefox OS e dispositivi dotati di Firefox per Android o Firefox per desktop utilizzando {{ domxref("Apps.install") }} o {{ domxref("DOMApplicationsRegistry.installPackage", "Apps.installPackage") }}. Il ruolo di entrambe le API è trasmettere l'URL del manifesto contenente la descrizione dell'app da installare. Dunque i requisiti di base per autopubblicare un'app sono:</p> + +<ol> + <li>un server dove ospitare il manifesto dell'app,</li> + <li>un server dove ospitare l'app (nel caso di app remota) o l'app stessa compressa in un file zip,</li> + <li>un codice nel sito web che richiami {{ domxref("Apps.install") }} o {{ domxref("DOMApplicationsRegistry.installPackage", "Apps.installPackage") }} a seconda del caso.</li> +</ol> + +<h2 id="Limitazioni">Limitazioni</h2> + +<p>Prima di autopubblicare un'app open web è bene considerare le seguenti limitazioni:</p> + +<ul> + <li>Le app autopubblicate non sono in grado di utilizzare le <a href="/en-US/Apps/Build/App_permissions">API con privilegi</a>. Per usufruire di tali API un'app dev'essere di tipo locale (packaged) e contenuta in un file zip firmato tramite il processo di caricamento dell'app su Firefox Marketplace.</li> + <li>Le app autopubblicate non possono usufruire dei pagamenti in-app di Firefox Marketplace.</li> + <li>È necessario implementare autonomamente una propria strategia di diffusione, in quanto l'app non comparirà negli elenchi di Firefox Marketplace.</li> +</ul> + +<h2 id="App_locali_autopubblicate">App locali autopubblicate</h2> + +<p>È possibile pubblicare un'app locale ospitando il file zip su un server insieme a un mini-manifesto. Il mini-manifesto, utilizzato per identificare l'app durante il processo di installazione, deve essere ospitato nella stessa directory del file zip. Il passo successivo è creare uno script per richiamare {{ domxref("DOMApplicationsRegistry.installPackage", "Apps.installPackage") }} e trasmettergli le informazioni contenute nel mini-manifesto. Ecco il procedimento dettagliato:</p> + +<ol> + <li> + <p>Comprimere i contenuti dell'app in un file zip e rinominarlo <code>package.zip</code>. Questo file deve contenere tutte le risorse dell'app, compreso il <a href="https://developer.mozilla.org/en-US/Apps/Build/Manifest" title="Documentazione sul manifesto">manifesto</a> principale.</p> + + <div class="warning"> + <p><strong>Attenzione</strong>: al momento di creare il file zip, posizionare tutti i contenuti che devono comparire nell'app nella cartella principale, senza sottocartelle. Comprimendo la cartella genitore con all'interno le sottocartelle, il manifesto risulterebbe in una posizione sbagliata, invalidando l'app.</p> + </div> + </li> + <li>Creare un file e nominarlo <code>manifest.webapp</code>, poi aggiungere i contenuti riportati di seguito. Questo file è chiamato mini-manifesto perché consiste in una versione leggermente ridotta del manifesto incluso nel file zip dell'app locale. Viene utilizzato da {{ domxref("DOMApplicationsRegistry.installPackage", "Apps.installPackage") }} per installare l'app. Per informazioni dettagliate sul contenuto del file leggere <a href="#Campi del mini-manifesto">Campi del mini-manifesto</a> di seguito. + <pre class="brush: js">{ + "name": "My sample app", + "package_path" : "<a class="LinkyMobile-ext" href="http://my-server.com/my-app-directory/my-app.zip" title="Linkification: http://my-server.com/my-app-directory/my-app.zip">http://my-server.com/my-app-directory/package.zip</a>", + "version": "1", + "developer": { + "name": "A. Developer", + "url": "<a class="LinkyMobile-ext" href="http://my-server.com" title="Linkification: http://my-server.com">http://my-server.com</a>" + } +}</pre> + </li> + <li>Creare lo script di installazione. Nell'esempio viene utilizzato un semplice file html nominato <code>index.html</code> , ma è possibile anche aggiungere lo script a un pulsante o utilizzare qualsiasi altro metodo appropriato per richiamarlo al sito web. Il codice JavaScript di questa pagina richiama l'API di installazione per le app locali ({{ domxref("DOMApplicationsRegistry.installPackage", "Apps.installPackage") }}), includendo anche dei callback per notificare l'esito dell'installazione. + <pre class="brush: html"><html> + <body> + <p>Packaged app installation page</p> + <script> + // This URL must be a full url. + var manifestUrl = '<a class="LinkyMobile-ext" href="http://my-server.com/my-app-directory/package.manifest" title="Linkification: http://my-server.com/my-app-directory/package.manifest">http://my-server.com/my-app-directory/manifest.webapp</a>'; + var req = navigator.mozApps.installPackage(manifestUrl); + req.onsuccess = function() { + alert(this.result.origin); + }; + req.onerror = function() { + alert(this.error.name); + }; + </script> + </body> +</html></pre> + </li> + <li>Caricare i file su un server o sito web copiando <code>package.zip</code>, <code>manifest.webapp</code> e <code>index.html</code> nella directory desiderata (nel codice di esempio <code>my-app-directory</code>).</li> + <li>Ora è possibile installare l'app su un dispositivo compatibile (come uno smartphone Firefox OS). Aprire il file <code>index.html</code> (nel testo di esempio posizionato al percorso <code> <a class="LinkyMobile-ext" href="http://my-server.com/my-app-directory/package.manifest" title="Linkification: http://my-server.com/my-app-directory/package.manifest">http://my-server.com/my-app-directory/index.html</a></code>). Verrà visualizzata una richiesta di conferma per procedere con l'installazione. Confermando inizierà il processo di installazione. Al termine del processo, lo script della pagina web notificherà l'esito positivo o negativo dell'operazione.</li> +</ol> + +<div class="note"> +<p><strong>Suggerimento</strong>: per eseguire i test su dispositivo è possibile anche ospitare un'app locale su un server locale. Il server web e il dispositivo devono essere sullo stesso network, inoltre il server deve essere abilitato a servire richieste dal network locale. Sarà sufficiente includere il percorso assoluto nel <code>package_path</code> del mini-manifesto, esattamente come viene incluso normalmente (vedi sotto). Se si sta utilizzando una porta non predefinita, includere anche le informazioni della porta (es. <code><a class="LinkyMobile-ext" href="http://10.10.12.1:8080/package.zip" title="Linkification: http://10.10.12.1:8080/package.zip">http://10.10.12.1:8080/package.zip</a></code>).</p> +</div> + +<h3 id="Campi_del_mini-manifesto">Campi del mini-manifesto</h3> + +<p>Gli sviluppatori che scelgono di pubblicare le proprie app con Firefox Marketplace non hanno bisogno di compilare il mini-manifesto, in quanto esso viene generato automaticamente dal Marketplace, estrapolando le informazioni necessarie dal manifesto dell'app incluso nel file zip. I dettagli sui contenuti del manifesto principale si trovano nell'articolo <a href="/en-US/Apps/Build/Manifest">App manifest</a>.</p> + +<p>Gli sviluppatori che desiderano autopubblicare un'app devono invece compilare il mini-manifesto. Il metodo più sicuro per ottenere un mini-manifesto è fare una copia del manifesto principale e modificare le parti necessarie. Lavorare su una copia garantisce il rispetto del primo requisito di un mini-manifesto, ovvero che i campi <strong><code>name</code>, <code>version</code>, <code>developer</code> e <code>locales</code> siano esattamente uguali a quelli del manifesto principale</strong>. Occorre poi aggiungere i campi esclusivi del mini-manifesto: <code>package_path</code>, <code>release_notes</code> e <code>size</code>.</p> + +<dl> + <dt><code>package_path</code> (obbligatorio)</dt> + <dd>Il percorso assoluto (ovvero l'url completo, ad esempio <code><a class="LinkyMobile-ext" href="http://my-server.com/my-app-directory/package.manifest" title="Linkification: http://my-server.com/my-app-directory/package.manifest">http://my-server.com/my-app-directory/manifest.webapp</a></code>) della posizione in cui è stato archiviato il file zip dell'app.</dd> + <dt><code>release_notes</code> (facoltativo)</dt> + <dd>Informazioni sulla versione corrente dell'app. Su Firefox Marketplace queste informazioni vengono fornite durante il processo di caricamento.</dd> +</dl> + +<dl> + <dt><code>size</code> (facoltativo)</dt> + <dd>Le dimensioni del file zip espresse in byte. Questa informazione viene utilizzata da {{ domxref("DOMApplicationsRegistry.installPackage", "Apps.installPackage") }} per mostrare l'avanzamento del processo di installazione.</dd> +</dl> + +<p>Esempio:</p> + +<pre class="brush: js">{ + "name": "My app", + "package_path": "<a class="LinkyMobile-ext" href="http://thisdomaindoesnotexist.org/myapp.zip" title="Linkification: http://thisdomaindoesnotexist.org/myapp.zip">http://thisdomaindoesnotexist.org/myapp.zip</a>", + "version": "1.0", + "size": 172496, + "release_notes": "First release", + "developer": { + "name": "Developer Name", + "url": "<a class="LinkyMobile-ext" href="http://thisdomaindoesnotexist.org/" title="Linkification: http://thisdomaindoesnotexist.org/">http://thisdomaindoesnotexist.org/</a>" + }, + "locales": { + "fr-FR": { + "name": "Mon application" + }, + "se-SE": { + "name": "Min balla app" + } + }, + "icons": { + "16": "/icons/16.png", + "32": "/icons/32.png", + "256": "/icons/256.png" + } +} +</pre> + +<p>Gli altri campi presenti nell'esempio sono:</p> + +<dl> + <dt><code>name</code> (obbligatorio)</dt> + <dd>Il nome dell'app. Lunghezza massima 128 caratteri.</dd> + <dt><code>version</code> (facoltativo)</dt> + <dd>La versione dell'app.</dd> + <dt><code>developer</code> (facoltativo)</dt> + <dd>Informazioni sullo sviluppatore, contiene i campi <code>name</code> e <code>url</code>. Le informazioni sullo sviluppatore presenti nel manifesto principale e nel mini-manifesto devono coincidere.</dd> + <dt><code>locales</code> (facoltativo)</dt> + <dd>Informazioni sulla localizzazione. I codici del locale devono essere espressi nel formato <code>xx-YY</code>.</dd> + <dt><code>icons</code> (facoltativo)</dt> + <dd>Le icone in uso dell'app.</dd> +</dl> + +<p>Per informazioni più dettagliate sui contenuti dei manifesti leggere <a href="/en-US/Apps/Build/Manifest" title="Documentazione sul manifesto">App manifest</a>.</p> + +<h2 id="App_remote_autopubblicate">App remote autopubblicate</h2> + +<p>Rispetto a quello per le app locali, il processo di autopubblicazione di un'app remota (hosted) è più diretto: basta creare i contenuti con lo stesso metodo utilizzato per la pubblicazione su Firefox Marketplace. In pratica occorre creare il <a href="/en-US/Apps/Build/Manifest" title="Documentazione sul manifesto">file manifest</a> dell'app. In seguito si aggiunge il codice per richiamare {{ domxref("Apps.install") }}. Il codice è essenzialmente lo stesso che si utilizza per le app locali, mostrato precedentemente, con la sola differenza che è anche possibile utilizzare un riferimento relativo alla posizione del file manifest.</p> + +<h2 id="Vedi_anche">Vedi anche</h2> + +<ul> + <li><a href="/en-US/Apps/Build/JavaScript_API">App Installation and Management APIs</a></li> + <li>{{ domxref("Apps.install") }}</li> + <li>{{ domxref("DOMApplicationsRegistry.installPackage", "Apps.installPackage") }}</li> + <li><a href="/en-US/Apps/Build/Manifest" title="Documentazione sul manifesto">App manifest</a></li> + <li><a href="/en-US/Apps/Build/App_permissions">App permissions</a></li> +</ul> diff --git a/files/it/mozilla/marketplace/publishing/submit/index.html b/files/it/mozilla/marketplace/publishing/submit/index.html new file mode 100644 index 0000000000..265a1ad776 --- /dev/null +++ b/files/it/mozilla/marketplace/publishing/submit/index.html @@ -0,0 +1,10 @@ +--- +title: Submit +slug: Mozilla/Marketplace/Publishing/Submit +tags: + - NeedsTranslation + - TopicStub +translation_of: Archive/Mozilla/Marketplace/Publishing/Submit +--- +<p>This section describes the process for submitting an app to Firefox Marketplace</p> +<p>Residual details: <a href="/en-US/Marketplace/Publishing/Submit/Submitting_an_app">https://developer.mozilla.org/en-US/Marketplace/Publishing/Submit/Submitting_an_app</a></p> diff --git a/files/it/mozilla/mobile/index.html b/files/it/mozilla/mobile/index.html new file mode 100644 index 0000000000..f406d8be3a --- /dev/null +++ b/files/it/mozilla/mobile/index.html @@ -0,0 +1,28 @@ +--- +title: Mobile +slug: Mozilla/Mobile +tags: + - HTML + - HTTP + - JavaScript + - Mobile + - Mozilla +translation_of: Mozilla/Mobile +--- +<h2 id="Firefox_OS" name="Firefox_OS"><a href="/en-US/docs/Archive/B2G_OS">Firefox OS</a></h2> + +<p>Firefox OS è un sistema operativo mobile Open Source che utilizza Linux e Mozilla con il motore Gecko per eseguire una interfaccia utente e un insieme di applicazioni scritte interamente in HTML, CSS e javaScript</p> + +<p>Leggi come installare Firefox OS e come sviluppare applicazioni per esso.</p> + +<h2 id="Firefox_for_Android" name="Firefox_for_Android"><a href="/en-US/docs/Mozilla/Firefox_for_Android">Firefox per Android</a></h2> + +<p>Firefox per Android è il browser web mobile di Mozilla per i dispositivi Android. E' stato recentemente riscritto per poter utilizzare un'interfaccia utente nativa di Android, rendendolo più veloce, più snello e reattivo. Fornisce supporto per le più potenti API per accedere alle funzionalità del dispositivo, come la macchina fotografica e la chiamata telefonica.</p> + +<p>Leggi come contribuire al creare Firefox per Android, come utilizzare le sue API e come contribuire a creare componenti aggiunti.</p> + +<h2 id="Mobile_web_development" name="Mobile_web_development"><a href="/en-US/docs/Web/Guide/Mobile">Sviluppo web sul mobile</a></h2> + +<p>I dispositivi mobili solo molto diversi per quanto riguarda le caratteristiche hardware da un Desktop o laptot, e molte delle API utilizzate per lavorare con tutti gli ambienti sono ancora in corso di standardizzazione.</p> + +<p>Leggi come sviluppare siti web ottimali per i dispositivi mobili e sfruttare le nuove possibilità che tali offrono. Impara a creare il tuo sito web su diversi dispositivi e browser.</p> diff --git a/files/it/mozilla/mobile/viewport_meta_tag/index.html b/files/it/mozilla/mobile/viewport_meta_tag/index.html new file mode 100644 index 0000000000..5e6617d215 --- /dev/null +++ b/files/it/mozilla/mobile/viewport_meta_tag/index.html @@ -0,0 +1,94 @@ +--- +title: Usare il viewport meta tag per controllare il layout nei browser su mobile +slug: Mozilla/Mobile/Viewport_meta_tag +tags: + - Layout + - Mobile +translation_of: Mozilla/Mobile/Viewport_meta_tag +--- +<h2 id="Background">Background</h2> + +<p>La “{{glossary("viewport")}}” di un browser è l'area della finestra in cui si può vedere il contenuto di una pagina web. Spesso, questa non ha la stessa dimensione della pagina intera, in questo caso i browser mostrano delle barre di scorrimento (<em>scrollbar</em>) per permettere all'utente di scorrere in ogni direzione e usufruire di tutti i contenuti.</p> + +<p>Gli schermi di dispsitivi stretti (come i telefoni) renderizzano le pagine in una finestra virtuale, o “viewport”, che solitamente è più larga dello schermo, e successivamente stringono il risultato già renderizzato in modo che possa essere visto interamente. Gli utenti possono dunque spostarsi e ingrandire per vedere aree differenti della pagina. Per esempio, se lo schermo di uno smartphone ha una larghezza di 640 pixel, le pagine potrebbero essere renderizzate con una finestra virtuale di 980 pixel, e successivamente ristrette per stare nello spazio di 640 pixel.</p> + +<p>Questo avviene perché molte pagine non sono ottimizzate per dispositivi mobili (o almeno, appaiono peggio) quando renderizzati a una minore larghezza rispetto alla finestra virtuale. La “viewport” è un modo per rendere siti non ottimizzati per la visualizzazione da mobile per apparire in modo migliore su schermi stretti.</p> + +<h3 id="Enter_viewport_meta_tag">Enter viewport meta tag</h3> + +<p>However, this mechanism is not so good for pages that are optimized for narrow screens using <a href="/en-US/docs/Web/CSS/Media_Queries">media queries</a> — if the virtual viewport is 980px for example, media queries that kick in at 640px or 480px or less will never be used, limiting the effectiveness of such responsive design techniques.</p> + +<p>To mitigate this problem, Apple introduced the "viewport meta tag" in Safari iOS to let web developers control the viewport's size and scale. Many other mobile browsers now support this tag, although it is not part of any web standard. Apple's <a class="external" href="https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariWebContent/UsingtheViewport/UsingtheViewport.html">documentation</a> does a good job explaining how web developers can use this tag, but we had to do some detective work to figure out exactly how to implement it in Fennec. For example, Safari's documentation says the content is a "comma-delimited list," but existing browsers and web pages use any mix of commas, semicolons, and spaces as separators.</p> + +<p>Learn more about viewports in different mobile browsers in <a class="external" href="http://www.quirksmode.org/mobile/viewports2.html" title="http://www.quirksmode.org/mobile/viewports2.html">A Tale of Two Viewports</a> at quirksmode.org.</p> + +<h2 id="Viewport_basics">Viewport basics</h2> + +<p>A typical mobile-optimized site contains something like the following:</p> + +<pre><meta name="viewport" content="width=device-width, initial-scale=1"></pre> + +<p>The <code>width</code> property controls the size of the viewport. It can be set to a specific number of pixels like <code>width=600</code> or to the special value <code>device-width</code>, which is the width of the screen in CSS pixels at a scale of 100%. (There are corresponding <code>height</code> and <code>device-height</code> values, which may be useful for pages with elements that change size or position based on the viewport height.)</p> + +<p>The <code>initial-scale</code> property controls the zoom level when the page is first loaded. The <code>maximum-scale</code>, <code>minimum-scale</code>, and <code>user-scalable</code> properties control how users are allowed to zoom the page in or out.</p> + +<div class="blockIndicator warning"> +<p>Usage of <code>user-scalable=no</code> can cause accessibility issues to users with visual impairements such as low vision.</p> +</div> + +<h2 id="A_pixel_is_not_a_pixel">A pixel is not a pixel</h2> + +<p>In recent years, screen resolutions have risen to the size that individual pixels are hard to distinguish with the human eye. For example, recent smartphones generally have a 5-inch screens with resolutions upwards of 1920—1080 pixels (~400 dpi). Because of this, many browsers can display their pages in a smaller physical size by translating multiple hardware pixels for each CSS "pixel". Initially this caused usability and readability problems on many touch-optimized web sites. Peter-Paul Koch wrote about this problem in <a class="external" href="http://www.quirksmode.org/blog/archives/2010/04/a_pixel_is_not.html">A pixel is not a pixel</a>.</p> + +<p>On high dpi screens, pages with <code>initial-scale=1</code> will effectively be zoomed by browsers. Their text will be smooth and crisp, but their bitmap images will probably not take advantage of the full screen resolution. To get sharper images on these screens, web developers may want to design images – or whole layouts – at a higher scale than their final size and then scale them down using CSS or viewport properties. This is consistent with the <a class="external" href="http://www.w3.org/TR/CSS2/syndata.html#length-units">CSS 2.1 specification</a>, which says:</p> + +<blockquote> +<p>If the pixel density of the output device is very different from that of a typical computer display, the user agent should rescale pixel values. It is recommended that the pixel unit refer to the whole number of device pixels that best approximates the reference pixel. It is recommended that the reference pixel be the visual angle of one pixel on a device with a pixel density of 96dpi and a distance from the reader of an arm's length.</p> +</blockquote> + +<p>For web developers, this means that the size of a page is much smaller than the actual pixel count and browsers may size their layouts and images accordingly. But remember that not all mobile devices are the same width; you should make sure that your pages work well in a large variation of screen sizes and orientations.</p> + +<p>The default pixel ratio depends on the display density. On a display with density less than 200dpi, the ratio is 1.0. On displays with density between 200 and 300dpi, the ratio is 1.5. For displays with density over 300dpi, the ratio is the integer floor(<em>density</em>/150dpi). Note that the default ratio is true only when the viewport scale equals 1. Otherwise, the relationship between CSS pixels and device pixels depends on the current zoom level.</p> + +<h2 id="Viewport_width_and_screen_width">Viewport width and screen width</h2> + +<p>Sites can set their viewport to a specific size. For example, the definition <code>"width=320, initial-scale=1"</code> can be used to fit precisely onto a small phone display in portrait mode. This can cause <a class="external" href="http://starkravingfinkle.org/blog/2010/01/perils-of-the-viewport-meta-tag/">problems</a> when the browser doesn't render a page at a larger size. To fix this, browsers will expand the viewport width if necessary to fill the screen at the requested scale. This is especially useful on large-screen devices like the iPad. (Allen Pike's <a class="external" href="http://www.antipode.ca/2010/choosing-a-viewport-for-ipad-sites/">Choosing a viewport for iPad sites</a> has a good explanation for web developers.)</p> + +<p>For pages that set an initial or maximum scale, this means the <code>width</code> property actually translates into a <em>minimum</em> viewport width. For example, if your layout needs at least 500 pixels of width then you can use the following markup. When the screen is more than 500 pixels wide, the browser will expand the viewport (rather than zoom in) to fit the screen:</p> + +<pre><meta name="viewport" content="width=500, initial-scale=1"></pre> + +<p>Other <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#Attributes">attributes</a> that are available are <code>minimum-scale</code>, <code>maximum-scale</code>, and <code>user-scalable</code>. These properties affect the initial scale and width, as well as limiting changes in zoom level.</p> + +<p>Not all mobile browsers handle orientation changes in the same way. For example, Mobile Safari often just zooms the page when changing from portrait to landscape, instead of laying out the page as it would if originally loaded in landscape. If web developers want their scale settings to remain consistent when switching orientations on the iPhone, they must add a <code>maximum-scale</code> value to prevent this zooming, which has the sometimes-unwanted side effect of preventing users from zooming in:</p> + +<pre><meta name="viewport" content="initial-scale=1, maximum-scale=1"></pre> + +<p>Suppress the small zoom applied by many smartphones by setting the initial scale and minimum-scale values to 0.86. The result is horizontal scroll is suppressed in any orientation and the user can zoom in if they want to.</p> + +<pre><meta name="viewport" content="width=device-width, initial-scale=0.86, maximum-scale=3.0, minimum-scale=0.86"></pre> + +<h2 id="Common_viewport_sizes_for_mobile_and_tablet_devices">Common viewport sizes for mobile and tablet devices</h2> + +<p>If you want to know what mobile and tablet devices have which viewport widths, there is a comprehensive list of <a href="https://docs.adobe.com/content/help/en/target/using/experiences/vec/mobile-viewports.html" title="https://viewportsizer.com/">mobile and tablet viewport sizes here</a>. This gives information such as viewport width on portrait and landscape orientation as well as physical screen size, operating system and the pixel density of the device.</p> + +<h2 id="Specifications">Specifications</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Specification</th> + <th scope="col">Status</th> + <th scope="col">Comment</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('CSS3 Device', '#viewport-meta', '<meta name="viewport">')}}</td> + <td>{{Spec2('CSS3 Device')}}</td> + <td>Non-normatively describes the Viewport META element</td> + </tr> + </tbody> +</table> + +<p>There is clearly demand for the viewport meta tag, since it is supported by most popular mobile browsers and used by thousands of web sites. It would be good to have a true standard for web pages to control viewport properties. As the standardization process proceeds, we at Mozilla will work to keep up to date with any changes.</p> diff --git a/files/it/mozilla/performance/about_colon_memory/index.html b/files/it/mozilla/performance/about_colon_memory/index.html new file mode 100644 index 0000000000..b3d0e3c732 --- /dev/null +++ b/files/it/mozilla/performance/about_colon_memory/index.html @@ -0,0 +1,188 @@ +--- +title: 'about:memory' +slug: 'Mozilla/Performance/about:memory' +tags: + - Performance + - diagnosi + - memoria + - registro + - resoconto +translation_of: 'Mozilla/Performance/about:memory' +--- +<p>about:memory è una pagina speciale all'interno di Firefox che ti permette di vedere, salvare, caricare e differenziare misure dettagliate sull'uso di memoria di Firefox. Ti permette anche di fare altre operazioni legate alla memoria come attivare i GC, CC; scaricare registri GC e CC; e scaricare resoconti DMD.</p> + +<h2 id="Come_generare_registri_di_memoria">Come generare registri di memoria</h2> + +<p>Mettiamo che vuoi misurare l'uso di memoria di Firefox. Forse vorrai analizzarlo tu stesso, o forse qualcuno ti ha chiesto di usare about:memory per generare "registri di memoria" in modo che possano analizzare il problema che stai avendo. Segui questi passaggi.</p> + +<ul> + <li>Al momento d'interesse (Es. una volta che l'uso di memoria di Firefoz risulta alto) apri un nuovo pannello e scrivi "about:memory" nella barra degli indirizzi e premi "invio".</li> + <li>Se stai usando un canale di comunicazione dove possono essere inviati file, come bugzilla o un'e-mail, clicca sul pulsante "Measure and save...". Questo aprirà una finestra di dialogo che ti permetterà di salvare i registri di memoria su un file di tua scelta. (il nome del file dovrà avere il suffisso <code>.json.gz</code>). Dopo puoi allegare o caricare il file. I destinatari saranno in grado di vedere i contenuti di questo file all'interno di about:memory nella loro finestra di Firefox.</li> + <li>Se stai usando un canale di comunicazione dove può solo essere mandato del testo, come una sezione commenti di un sito, clicca sul pulsante "Measure..."- Questo farà in modo che venga generata una struttura ad albero all'interno di about:memory. Questa struttura è solo testo, quindi puoi copiarla e incollare parte o tutto il testo in qualsiasi buffer di testo. (Non devi per forza fare un'istantanea). Questo testo contiene meno misure di un file, ma è spesso abbastanza per diagnosticare problemi.</li> +</ul> + +<p>Nota che in entrambi i casi i dati generati contengono dati sensibili come una lista completa delle pagine web che hai aperte in altri pannelli. Se non desideri condividere queste informazioni, puoi scegliere la spunta "anonymize" prima di premere su "Measure and save..." o "Measure...". Questo fara in modo che i dati sensibili vengano rimossi, ma renderà anche più difficile per gli altri investigare l'uso di memoria.</p> + +<h2 id="Caricare_registri_di_memoria_da_file">Caricare registri di memoria da file</h2> + +<p>Il modo più facile di caricare registri di memoria da file è usare il pulsante "Load...". Puoi anche usare il pulsante "Load and diff..." per avere la differenza tra due file di registro.</p> + +<p>I file di registro singoli possono essere caricati automaticamente quando about:memory viene caricato aggiungendo una stringa di ricerca file, per esempio:</p> + +<pre>about:memory?file=/home/username/reports.json.gz +</pre> + +<p>Questa è maggiormente utile quando carichi registri di memoria ottenuti da un dispositivo con S. O. firefox</p> + +<p>I registri di memoria vengono salvati come file JSON gzipped. Questi file possono venire caricati per come sono, ma possono anche venire caricati dopo essere stati estratti.</p> + +<h2 id="Interpretare_i_registri_di_memoria.">Interpretare i registri di memoria.</h2> + +<p>Quasi tutto quello che vedi in about:memory ha un suggerimento esplicativo. Passa sopra un qualsiasi pulsante per vedere una descrizione di cosa fa. Passa sopra una qualsiasi misura per vedere una descrizione di cosa significa.</p> + +<h3 id="Informazioni_fondamentali_sulle_misure."><span class="mw-headline" id="Basics">Informazioni fondamentali sulle misure.</span></h3> + +<p>Molte misure usano i byte come unita, ma alcune sono somme o percentuali.</p> + +<p>Molte misure sono presentate all'interno di alberi. Ad esempio:</p> + +<pre> 585 (100.0%) -- preference-service + └──585 (100.0%) -- referent + ├──493 (84.27%) ── strong + └───92 (15.73%) -- weak + ├──92 (15.73%) ── alive + └───0 (00.00%) ── dead +</pre> + +<p>I nodi a foglia rappresentano effettive misure; il valore di ogni nodo interno è la somma dei suoi children.</p> + +<p>L'uso degli alberi permette alle misure di essere divide in ulteriori categorie, sotto-categorie, sotto-sotto-categorie, ecc., fin dove serve. Tutte le misure all'interno di un singolo albero non si soprappongono.</p> + +<p>Possono venire aggiunti percorsi usando "/" come separatore. Per esempio, <code>preference/referent/weak/dead </code>rappresenta il rpercorso che va all'ultimo nodo a foglia nell'esempio qua sopra. </p> + +<p>I sotto-alberi possono venire ristretti o allargati cliccandoci sopra. Se trovi un qualsiasi albero in particolare troppo grande da gestire, può essere utile restringere i sotto-alberi immediatamente sotto la radice e poi allargare graduatamente i sotto-alberi d'interesse.</p> + +<h3 id="Sezioni"><span class="mw-headline" id="Sections">Sezioni</span></h3> + +<p>Molti registri di memoria sono mostrati in base al processo, con un processo per sezione. All'interno delle misure di ogni processo, ci sono le seguenti sottosezioni.</p> + +<h4 id="Allocazioni_esplicite">Allocazioni esplicite</h4> + +<p>Questa sezione contiene un singolo albero, chiamato "explicit", che misure tutta la memoria allocata attraverso chiamate esplicite alle funzioni di allocazione di tipo heap (come <code>malloc</code> e <code>new</code>) e alle funzioni di allocazione non-heap (come <code>mmap</code> e <code>VirtualAlloc</code>).</p> + +<p>Qui c'è un esempio di una sessione di un browser dove i pannelli erano aperti su cnn.com, techcrunch.con e artechnica.com. Vari sotto-alberi sono stati allargati ed altri ristretti per presentare il tutto meglio.</p> + +<pre>191.89 MB (100.0%) -- explicit +├───63.15 MB (32.91%) -- window-objects +│ ├──24.57 MB (12.80%) -- top(http://edition.cnn.com/, id=8) +│ │ ├──20.18 MB (10.52%) -- active +│ │ │ ├──10.57 MB (05.51%) -- window(http://edition.cnn.com/) +│ │ │ │ ├───4.55 MB (02.37%) ++ js-compartment(http://edition.cnn.com/) +│ │ │ │ ├───2.60 MB (01.36%) ++ layout +│ │ │ │ ├───1.94 MB (01.01%) ── style-sheets +│ │ │ │ └───1.48 MB (00.77%) -- (2 tiny) +│ │ │ │ ├──1.43 MB (00.75%) ++ dom +│ │ │ │ └──0.05 MB (00.02%) ── property-tables +│ │ │ └───9.61 MB (05.01%) ++ (18 tiny) +│ │ └───4.39 MB (02.29%) -- js-zone(0x7f69425b5800) +│ ├──15.75 MB (08.21%) ++ top(http://techcrunch.com/, id=20) +│ ├──12.85 MB (06.69%) ++ top(http://arstechnica.com/, id=14) +│ ├───6.40 MB (03.33%) ++ top(chrome://browser/content/browser.xul, id=3) +│ └───3.59 MB (01.87%) ++ (4 tiny) +├───45.74 MB (23.84%) ++ js-non-window +├───33.73 MB (17.58%) ── heap-unclassified +├───22.51 MB (11.73%) ++ heap-overhead +├────6.62 MB (03.45%) ++ images +├────5.82 MB (03.03%) ++ workers/workers(chrome) +├────5.36 MB (02.80%) ++ (16 tiny) +├────4.07 MB (02.12%) ++ storage +├────2.74 MB (01.43%) ++ startup-cache +└────2.16 MB (01.12%) ++ xpconnect</pre> + +<p>Per capire i dettagli completi è richiesta della competenza, ma ci sono varie cose che vale la pena di segnalare.</p> + +<ul> + <li>Questo valore "explicit" alla radice dell'albero rappresenta tutta la memoria allocata attraverso chiamate esplicite alle funzioni di allocazione.</li> + <li> Il sotto-albero "window-objects" rappresenta tutti gli oggetti Javascript <code>window</code>, il che inclide i pannelli del browser e le finestre dell'interfaccia. Per esempio, il sotto-albero "top(http://edition.cnn.com/, id=8)" rappresenta il pannello aperto su cnn.com e "top(chrome://browser/content/browser.xul, id=3)" rappresenta la finestra dell'interfaccia principale del browser.</li> + <li>All'interno delle misure di ogni finestra ci sono sotto-alberi per il Javascript ("js-compartment(...)" e "js-zone(...)"); layout, sfogli di stile, il DOM e altre cose.</li> + <li>È chiaro che il pannello cnn.com sta usando più memoria del pannello techcrunch.com, che ne sta usando più del pannello arstechnica.com.</li> + <li> I sotto-alberi con nomi come "(2 tiny)" sono nodi artificiali inseriti per permettere ai sotto-alberi insignificanti di venire ristretti di default. Se selezioni la spunta "verbose" prima di misurare, tutti gli alberi verranno mostrati completamente allargati e non verranno inseriti nodi artificiali.</li> + <li>Il sotto-albero "js-non-window" rappresenta l'uso di memoria Javascript che non viene dalle finestre, ma dal nucleo del browser.</li> + <li>Il valore "heap-unclassified" rappresenta la memoria allocata di tipo heap che non è misurata da alcun recettore di memoria. Questo è in genere il 10---20% dell'"explicit". Se diventa più alto, indica che dovrebbero venire aggiunti ulteriori recettori di memoria. Il <a href="/en-US/docs/Mozilla/Performance/DMD" title="Performance/MemShrink/DMD">DMD</a> può essere usato per determinare dove questi recettori di memoria dovrebbero essere aggiunti.</li> + <li>Ci sono misure per altri contenuti come immagini e worker, e per i sotto-sistemi del browser come la cache di avvio e XPConnect.</li> +</ul> + +<p>Un po' dell'uso di memoria dei componenti aggiuntivi può venire identificato, come mostra il seguente esempio.</p> + +<pre>├───40,214,384 B (04.17%) -- add-ons +│ ├──21,184,320 B (02.20%) ++ {d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}/js-non-window/zones/zone(0x100496800)/compartment([System Principal], jar:file:///Users/njn/Library/Application%20Support/Firefox/Profiles/puna0zr8.new/extensions/%7Bd10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d%7D.xpi!/bootstrap.js (from: resource://gre/modules/addons/XPIProvider.jsm:4307)) +│ ├──11,583,312 B (01.20%) ++ jid1-xUfzOsOFlzSOXg@jetpack/js-non-window/zones/zone(0x100496800) +│ ├───5,574,608 B (00.58%) -- {59c81df5-4b7a-477b-912d-4e0fdf64e5f2} +│ │ ├──5,529,280 B (00.57%) -- window-objects +│ │ │ ├──4,175,584 B (00.43%) ++ top(chrome://chatzilla/content/chatzilla.xul, id=4293) +│ │ │ └──1,353,696 B (00.14%) ++ top(chrome://chatzilla/content/output-window.html, id=4298) +│ │ └─────45,328 B (00.00%) ++ js-non-window/zones/zone(0x100496800)/compartment([System Principal], file:///Users/njn/Library/Application%20Support/Firefox/Profiles/puna0zr8.new/extensions/%7B59c81df5-4b7a-477b-912d-4e0fdf64e5f2%7D/components/chatzilla-service.js) +│ └───1,872,144 B (00.19%) ++ treestyletab@piro.sakura.ne.jp/js-non-window/zones/zone(0x100496800)</pre> + +<p>Altre cose che vale la pena di far notare sono come segue:</p> + +<ul> + <li>Alcuni componenti aggiuntivi sono identificati dal nome, come la linguetta Tree Style. Altri sono identificati solo dall'identificatore esadecimale. Puoi guardare su about:support per vedere a quale componente aggiuntivo in particolare appartiene un identificatore. Per esempio, <code>59c81df5-4b7a-477b-912d-4e0fdf64e5f2</code> è Chatzilla.</li> + <li>Tutto l'uso di memoria Javascript per un componente aggiuntivo è misuratro separatamente e mostrato in questo sotto-albero.</li> + <li>Per i componenti aggiuntivi che usano finestre separate, come Chatzilla, l'uso di memoria di queste finestre verrà mostrato in questo sotto-albero.</li> + <li>Per i componenti aggiuntivi che usano overlay XUL, come AdBlockPlus, l'uso di memoria per questi overlay non verrà mostrato in questo sotto-albero; sarà invece nei sotto-alberi che non riguardano gli i componenti aggiuntivi e non sarà identificabile come causato da un componente aggiuntivo.</li> +</ul> + +<h4 id="Altre_misure">Altre misure</h4> + +<p>Questa sezione contiene alberi multipli, inclusde molti che si incrociano le misure nell'albero "explicit". Per esempio, nell'albero "explicit" tutti i DOM e le misure dei layout sono divise da finestra a finestra, ma in "Other Measurements" quelle misure sono aggregate in totali per l'intero browser, come mostra il seguente esempio.</p> + +<pre>26.77 MB (100.0%) -- window-objects +├──14.59 MB (54.52%) -- layout +│ ├───6.22 MB (23.24%) ── style-sets +│ ├───4.00 MB (14.95%) ── pres-shell +│ ├───1.79 MB (06.68%) ── frames +│ ├───0.89 MB (03.33%) ── style-contexts +│ ├───0.62 MB (02.33%) ── rule-nodes +│ ├───0.56 MB (02.10%) ── pres-contexts +│ ├───0.47 MB (01.75%) ── line-boxes +│ └───0.04 MB (00.14%) ── text-runs +├───6.53 MB (24.39%) ── style-sheets +├───5.59 MB (20.89%) -- dom +│ ├──3.39 MB (12.66%) ── element-nodes +│ ├──1.56 MB (05.84%) ── text-nodes +│ ├──0.54 MB (02.03%) ── other +│ └──0.10 MB (00.36%) ++ (4 tiny) +└───0.06 MB (00.21%) ── property-tables</pre> + +<p>Alcuni degli alberi di questa sezione misurano cose che non si incrociano con le misure dell'albero "explicit", come quelle nell'esempio "preference service" qua sopra.</p> + +<p>Per ultimo, alla fine di questa sezione ci sono misure individuali, come mostra l'esempio seguente.</p> + +<pre> 0.00 MB ── canvas-2d-pixels + 5.38 MB ── gfx-surface-xlib + 0.00 MB ── gfx-textures + 0.00 MB ── gfx-tiles-waste + 0 ── ghost-windows + 109.22 MB ── heap-allocated + 164 ── heap-chunks + 1.00 MB ── heap-chunksize + 114.51 MB ── heap-committed + 164.00 MB ── heap-mapped + 4.84% ── heap-overhead-ratio + 1 ── host-object-urls + 0.00 MB ── imagelib-surface-cache + 5.27 MB ── js-main-runtime-temporary-peak + 0 ── page-faults-hard + 203,349 ── page-faults-soft + 274.99 MB ── resident + 251.47 MB ── resident-unique +1,103.64 MB ── vsize</pre> + +<p>Alcune misure importanti sono come segue.</p> + +<ul> + <li>"resident". Uso fisico di memoria. Se vuoi una singola misura per riassumere l'uso di memoria, questa è probabilmente la migliore.</li> + <li>"vsize". Uso di memoria virtuale. Questa è spesso più alta di qualsiasi altra misura (in particolare su Mac). Ha realmente importanza sulle piattaforme a 32 bit come Win32. C'è anche "vsize-max-contigous" (non misurato su altre piattaforme, e non mostrato in questo esempio), che indica il più grande pezzo di spazio d'indirizzo virtuale disponibile. Se questo numero è basso, è probabile che la le allocazioni di memoria falliranno presto a causa di mancanza di spazio d'indirizzo virtuale.</li> + <li> Varie misure legate alla grafica ("gfx-*"). Le misure prese variano da piattaforma a piattaforma. La grafica è spesso fonte di alto uso di memoria e quindi queste misure possono essere utili nell'individuare tali casi.</li> +</ul> diff --git a/files/it/mozilla/performance/index.html b/files/it/mozilla/performance/index.html new file mode 100644 index 0000000000..828fe485be --- /dev/null +++ b/files/it/mozilla/performance/index.html @@ -0,0 +1,143 @@ +--- +title: Performance +slug: Mozilla/Performance +tags: + - Add-ons + - Debugging + - Development + - Mozilla + - NeedsTranslation + - Performance + - TopicStub +translation_of: Mozilla/Performance +--- +<p>The articles linked to from here will help you improve performance, whether you're developing core Mozilla code or an add-on.</p> + +<table class="topicpage-table"> + <tbody> + <tr> + <td> + <h3 id="Documentation">Documentation</h3> + + <dl> + <dt><a href="/en/Performance/Reporting_a_Performance_Problem" title="en/Performance/Reporting_a_Performance_Problem">Reporting a Performance Problem</a></dt> + <dd>A user friendly guide to reporting a performance problem. A development environment is not required.</dd> + <dt><a href="Benchmarking" title="Performance/Benchmarking advice">Benchmarking</a></dt> + <dd>Tips on generating valid performance metrics.</dd> + <dt><a href="/en/Extensions/Performance_best_practices_in_extensions" title="en/Extensions/Performance best practices in extensions">Performance best practices in extensions</a></dt> + <dd>A performance "best practices" guide for extension developers.</dd> + <dt><a href="/en/Performance/Measuring_add-on_startup_performance" title="en/Measuring Add-on Startup Performance">Measuring Add-on Startup Performance</a></dt> + <dd>A guide for add-on developers on how to set up a performance testing environment.</dd> + <dt><a href="/en/XUL_School/Appendix_A:_Add-on_Performance" title="en/XUL School/Appendix A: Add-on Performance">XUL School: Add-on Performance</a></dt> + <dd>Tips for add-on developers to help them avoid impairing application performance.</dd> + <dt><a href="/en/Performance/GPU_performance" title="en/GPU performance">GPU performance</a></dt> + <dd>Tips for profiling and improving performance when using a GPU.</dd> + <dt><a href="/en-US/docs/Mozilla/Performance/ScrollLinkedEffects">Scroll-Linked Effects</a></dt> + <dd>Information on scroll-linked effects, their effect on performance, related tools, and possible mitigation techniques.</dd> + <dt><a href="/en-US/docs/Mozilla/Performance/Automated_Performance_Testing_and_Sheriffing">Automated Performance Testing and Sheriffing</a></dt> + <dd>Information on automated performance testing and sheriffing at Mozilla.</dd> + </dl> + + <p><span class="alllinks"><a class="internal" href="/Special:Tags?tag=Performance" title="Special:Tags?tag=Performance">View all pages tagged with "Performance"...</a></span></p> + + <h3 id="Memory_profiling_and_leak_detection_tools">Memory profiling and leak detection tools</h3> + + <dl> + <dt><a href="https://developer.mozilla.org/en-US/docs/Tools/Memory" title="en/Performance/Profiling with the Built-in Profiler">The Developer Tools "Memory" panel</a></dt> + <dd>The memory panel in the devtools supports taking heap snapshots, diffing them, computing dominator trees to surface "heavy retainers", and recording allocation stacks.</dd> + </dl> + + <dl> + <dt><a href="/en-US/docs/Mozilla/Performance/about:memory">about:memory</a></dt> + <dd>about:memory is the easiest-to-use tool for measuring memory usage in Mozilla code, and is the best place to start. It also lets you do other memory-related operations like trigger GC and CC, dump GC & CC logs, and dump DMD reports. about:memory is built on top of Firefox's <a href="/en-US/docs/Mozilla/Performance/Memory_reporting">memory reporting</a> infrastructure.</dd> + <dt><a href="/en-US/docs/Mozilla/Performance/DMD">DMD</a></dt> + <dd>DMD is a tool that identifies shortcomings in about:memory's measurements, and can also do multiple kinds of general heap profiling.</dd> + <dt><a href="/en-US/docs/Mozilla/Performance/AWSY">Are We Slim Yet</a></dt> + <dd>areweslimyet.com (a.k.a. AWSY) is a memory usage and regression tracker.</dd> + <dt><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Performance/BloatView">BloatView</a></dt> + <dd>BloatView prints per-class statistics on allocations and refcounts, and provides gross numbers on the amount of memory being leaked broken down by class. It is used as part of Mozilla's continuous integration testing.</dd> + <dt><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Performance/Refcount_tracing_and_balancing">Refcount tracing and balancing</a></dt> + <dd>Refcount tracing and balancing are ways to track down leaks caused by incorrect uses of reference counting. They are slow and not particular easy to use, and thus most suitable for use by expert developers.</dd> + <dt><a href="/en-US/docs/Mozilla/Performance/GC_and_CC_logs">GC and CC logs</a></dt> + <dd>GC and CC logs can be generated and analyzed to in various ways. In particular, they can help you understand why a particular object is being kept alive.</dd> + <dt><a href="/en-US/docs/Mozilla/Testing/Valgrind">Valgrind</a></dt> + <dd><a class="external text" href="http://valgrind.org/" rel="nofollow">Valgrind</a> is a tool that detects various memory-related problems at runtime, including leaks. Valgrind is used as <a class="external text" href="/en-US/docs/Valgrind_test_job" rel="nofollow">part</a> of Mozilla's continuous integration testing, though the coverage is limited because Valgrind is slow.</dd> + <dt><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Testing/Firefox_and_Address_Sanitizer#LeakSanitizer">LeakSanitizer</a></dt> + <dd><span class="external text">LeakSanitizer</span> (a.k.a. LSAN) is similar to Valgrind, but it runs faster because it uses static source code instrumentation. LSAN is part of Mozilla's continuous integration testing, with most tests running through it as part of the AddressSanitizer (a.k.a. ASAN) test jobs.</dd> + <dt><a href="https://developer.apple.com/documentation/Performance/Conceptual/ManagingMemory/Articles/FindingLeaks.html">Apple tools</a></dt> + <dd>Apple provides <span class="external text">some tools</span> for Mac OS X that report similar problems to those reported by LSAN and Valgrind. The "leaks" tool is not recommended for use with SpiderMonkey or Firefox, because it gets confused by tagged pointers and thinks objects have leaked when they have not (see <a class="external text" href="https://bugzilla.mozilla.org/show_bug.cgi?id=390944" rel="nofollow">bug 390944</a>).</dd> + <dt><a href="/en-US/docs/Mozilla/Performance/Leak_Gauge">Leak Gauge</a></dt> + <dd>Leak Gauge is a tool that can be used to detect certain kinds of leaks in Gecko, including those involving documents, window objects, and docshells.</dd> + <dt><a href="https://dxr.mozilla.org/mozilla-central/source/memory/replace/logalloc/README">LogAlloc</a></dt> + <dd>LogAlloc is a tool that dumps a log of memory allocations in Gecko. That log can then be replayed against Firefox's default memory allocator independently or through another replace-malloc library, allowing the testing of other allocators under the exact same workload.</dd> + <dt><a href="/en-US/docs/Mozilla/Performance/Memory_Profiler">Memory Profiler</a></dt> + <dd>The memory profiler samples allocation events and provides different views to analyze the allocation characteristic.</dd> + </dl> + + <p>See also the documentation on <a href="/en-US/docs/Mozilla/Performance/Leak-hunting_strategies_and_tips">Leak-hunting strategies and tips.</a></p> + </td> + <td> + <h3 id="Profiling_and_performance_tools">Profiling and performance tools</h3> + + <dl> + <dt><a href="https://developer.mozilla.org/en-US/docs/Tools/Performance" title="en/Performance/Profiling with the Built-in Profiler">Profiling with the Developer Tools Profiler</a></dt> + <dd>The profiler built into the developer tools has a high-level waterfall, detailed call tree, allocations and GC profiling, and flame graphs. It is available on all platforms and release channels, and also supports remote profiling b2g and Fennec.</dd> + </dl> + + <dl> + <dt><a href="/en/Performance/Profiling_with_the_Built-in_Profiler" title="en/Performance/Profiling with the Built-in Profiler">Profiling with the Gecko Profiler</a> {{ gecko_minversion_inline("16.0") }}</dt> + <dd>The Gecko Profiler is a good tool to start with, particularly for understanding where time is spent within C++ code in Firefox.</dd> + <dt><a href="/en/Performance/Profiling_with_Instruments" title="en/Performance/Profiling with Instruments">Profiling with Instruments</a></dt> + <dd>How to use Apple's Instruments tool to profile Mozilla code.</dd> + <dt><a href="/en/Performance/Profiling_with_Xperf" title="en/Performance/Profiling with Xperf">Profiling with Xperf</a></dt> + <dd>How to use Microsoft's Xperf tool to profile Mozilla code.</dd> + <dt><a href="/en-US/docs/Performance/Profiling_with_Concurrency_Visualizer" title="en/Performance/Profiling with Concurrency Visualizer">Profiling with Concurrency Visualizer</a></dt> + <dd>How to use Visual Studio's Concurrency Visualizer tool to profile Mozilla code.</dd> + <dt><a href="/en/Performance/Profiling_with_Zoom" title="en/Performance/Profiling with Zoom">Profiling with Zoom</a></dt> + <dd>Zoom is a profiler for Linux done by the people who made Shark</dd> + <dt><a href="/en/Performance/Measuring_performance_using_the_PerfMeasurement.jsm_code_module" title="en/Performance/Measuring performance using the PerfMeasurement.jsm code module">Measuring performance using the PerfMeasurement.jsm code module</a> {{ gecko_minversion_inline("2.0") }}</dt> + <dd>Using <a href="/en/JavaScript_code_modules/PerfMeasurement.jsm" title="en/JavaScript code modules/PerfMeasurement.jsm"><code>PerfMeasurement.jsm</code></a> to measure performance data in your JavaScript code.</dd> + <dt><a href="/en-US/docs/Performance/Adding_a_new_Telemetry_probe" title="https://developer.mozilla.org/en-US/docs/Performance/Adding_a_new_Telemetry_probe">Adding a new Telemetry probe</a></dt> + <dd>Information on how to add a new measurement to the Telemetry performance-reporting system</dd> + <dt><a href="/en/Performance/Profiling_JavaScript_with_Shark" title="en/Performance/Profiling JavaScript with Shark">Profiling JavaScript with Shark</a> (obsolete - replaced by Instruments)</dt> + <dd>How to use the Mac OS X Shark profiler to profile JavaScript code in Firefox 3.5 or later.</dd> + <dt><a href="/en/Performance/Profiling_with_Shark" title="en/Performance/Profiling with Shark">Profiling with Shark</a> (obsolete - replaced by Instruments)</dt> + <dd>How to use Apple's Shark tool to profile Mozilla code.</dd> + <dt><a href="/en-US/docs/Mozilla/Performance/Investigating_CSS_Performance">Investigating CSS Performance</a></dt> + <dd>How to figure out why restyle is taking so long</dd> + </dl> + + <h3 id="Power_profiling">Power profiling</h3> + + <dl> + <dt><a href="/en-US/docs/Mozilla/Performance/Power_profiling_overview">Power profiling overview</a></dt> + <dd>This page provides an overview of relevant information, including details about hardware, what can be measured, and recommended approaches. It should be the starting point for anybody new to power profiling.</dd> + <dt><code><a href="/en-US/docs/Mozilla/Performance/tools_power_rapl">tools/power/rapl</a></code> (Mac, Linux)</dt> + <dd><code>tools/power/rapl</code> is a command-line utility in the Mozilla codebase that uses the Intel RAPL interface to gather direct power estimates for the package, cores, GPU and memory.</dd> + <dt><code><a href="/en-US/docs/Mozilla/Performance/powermetrics">powermetrics</a></code> (Mac-only)</dt> + <dd><code>powermetrics</code> is a command-line utility that gathers and displays a wide range of global and per-process measurements, including CPU usage, GPU usage, and various wakeups frequencies.</dd> + <dt><a href="/en-US/docs/Mozilla/Performance/TimerFirings_logging">TimerFirings logging</a> (All platforms)</dt> + <dd>TimerFirings logging is a built-in logging mechanism that prints data on every time fired.</dd> + <dt><a href="/en-US/docs/Mozilla/Performance/Activity_Monitor_and_top">Activity Monitor, Battery Status Menu and <code>top</code></a> (Mac-only)</dt> + <dd>The battery status menu, Activity Monitor and <code>top</code> are three related Mac tools that have major flaws but often consulted by users, and so are worth understanding.</dd> + <dt><a href="/en-US/docs/Mozilla/Performance/Intel_Power_Gadget">Intel Power Gadget</a> (Windows, Mac, Linux)</dt> + <dd>Intel Power Gadget provides real-time graphs for package and processor RAPL estimates. It also provides an API through which those estimates can be obtained.</dd> + <dt><code><a href="/en-US/docs/Mozilla/Performance/perf">perf</a></code> (Linux-only)</dt> + <dd><code>perf</code> is a powerful command-line utility that can measure many different things, including energy estimates and high-context measurements of things such as wakeups.</dd> + <dt><code><a href="/en-US/docs/Mozilla/Performance/turbostat">turbostat</a></code> (Linux-only)</dt> + <dd><code>turbostat</code> is a command-line utility that gathers and displays various power-related measurements, with a focus on per-CPU measurements such as frequencies and C-states.</dd> + <dt><code><a href="https://01.org/powertop">powertop</a></code> (Linux-only)</dt> + <dd><code>powertop</code> is an interactive command-line utility that gathers and displays various power-related measurements.</dd> + </dl> + + <h3 id="Related_Topics">Related Topics</h3> + + <dl> + <dd><a href="/en/JavaScript" title="en/JavaScript">JavaScript</a>, <a href="/en/XPCOM" title="en/XPCOM">XPCOM</a>, <a href="/En/Developer_Guide" title="en/Developing_Mozilla">Developing Mozilla</a>, <a href="/en/Extensions" title="en/Extensions">Extensions</a>, <a href="/en/Addons" title="en/Addons">Addons</a></dd> + </dl> + </td> + </tr> + </tbody> +</table> + +<p> </p> diff --git a/files/it/mozilla/preferences/index.html b/files/it/mozilla/preferences/index.html new file mode 100644 index 0000000000..1169ecabf1 --- /dev/null +++ b/files/it/mozilla/preferences/index.html @@ -0,0 +1,48 @@ +--- +title: Preferences +slug: Mozilla/Preferences +tags: + - NeedsTranslation + - TopicStub +translation_of: Mozilla/Preferences +--- +<p>The preference system makes it possible to store data for Mozilla applications using a key/value pairing system. These articles provide information about how to use the preference system.</p> +<table class="topicpage-table"> + <tbody> + <tr> + <td> + <h2 class="Documentation" id="Documentation" name="Documentation">Documentation</h2> + <dl> + <dt><a href="/en-US/docs/Preferences/Preferences_system" title="Preferences/Preferences system">Preferences system</a></dt> + <dd>An introduction to using the preference system in Mozilla.</dd> + <dt><a href="/en-US/docs/XUL_School/Handling_Preferences" title="XUL School/Handling Preferences">XUL School: Handling preferences</a></dt> + <dd>The XUL School tutorial chapter on preferences.</dd> + <dt><a href="/en-US/docs/Preferences/Preference_reference" title="Preferences/Preference_reference">Mozilla preference reference</a></dt> + <dd>A reference guide to all Mozilla preferences; currently a work in progress.</dd> + <dt><a href="/en-US/docs/Preferences/A_brief_guide_to_Mozilla_preferences" title="Preferences/A brief guide to Mozilla preferences">A brief guide to Mozilla preferences</a></dt> + <dd>An introductory guide to where preferences are stored and other useful information about the core preference system.</dd> + <dt><a href="/en-US/docs/Preferences/Using_preferences_from_application_code" title="Preferences/Using preferences from application code">Using preferences from application code</a> {{gecko_minversion_inline("6.0")}}</dt> + <dd>Firefox 6 introduced static functions for accessing preferences efficiently from within application code. This API is not available for add-ons, but if you're working on a Gecko application, this API is the preferred way to access preferences.</dd> + <dt><a href="/en-US/docs/Preferences/Mozilla_networking_preferences" title="Preferences/Mozilla networking preferences">Mozilla networking preferences</a></dt> + <dd>A guide to key networking-related preferences.</dd> + <dt><a href="/en-US/docs/Preferences/Mozilla_preferences_for_uber-geeks" title="Preferences/Mozilla preferences for uber-geeks">Mozilla preferences for uber-geeks</a></dt> + <dd>A guide to preferences that only truly elite geeks should play with.</dd> + </dl> + <p><span class="alllinks"><a href="/en-US/docs/tag/Preferences" title="tag/Preferences">View all pages tagged with "Preferences"...</a></span></p> + </td> + <td> + <h2 class="Community" id="Examples" name="Examples">Examples</h2> + <dl> + <dt><a href="/en-US/docs/Code_snippets/Preferences" title="Code snippets/Preferences">Code snippets</a></dt> + <dd>Preference-related code snippets.</dd> + <dt><a href="/en-US/docs/Adding_preferences_to_an_extension" title="Adding preferences to an extension">Adding preferences to an extension</a></dt> + <dd>How to add preferences to an existing extension.</dd> + </dl> + <h2 class="Related_Topics" id="Related_Topics" name="Related_Topics">Related Topics</h2> + <ul> + <li><a href="/en-US/docs/XUL" title="XUL">XUL</a>, <a href="/en-US/docs/JavaScript" title="JavaScript">JavaScript</a>, <a href="/en-US/docs/XPCOM" title="XPCOM">XPCOM</a>, <a href="/en-US/docs/Extensions" title="Extensions">Extensions</a>, <a href="/en-US/docs/Developer_Guide" title="Developing_Mozilla">Developing Mozilla</a></li> + </ul> + </td> + </tr> + </tbody> +</table> diff --git a/files/it/mozilla/preferences/una_breve_guida_alle_impostazioni_di_mozilla/index.html b/files/it/mozilla/preferences/una_breve_guida_alle_impostazioni_di_mozilla/index.html new file mode 100644 index 0000000000..6256382fe5 --- /dev/null +++ b/files/it/mozilla/preferences/una_breve_guida_alle_impostazioni_di_mozilla/index.html @@ -0,0 +1,110 @@ +--- +title: Una breve guida alle preferenze di Mozilla +slug: Mozilla/Preferences/Una_breve_guida_alle_impostazioni_di_Mozilla +translation_of: Mozilla/Preferences/A_brief_guide_to_Mozilla_preferences +--- +<div class="indent"> +<p>Questo articolo è rivolto agli utenti con conoscenze avanzate e agli amministratori di sistema. In questo articolo troverete una panoramica generale delle impostazioni di Mozilla ( note come preferenze ), compreso l'elenco dei file in cui esse vengono memorizzate ed un'analisi della sequenza di caricamento di questi file, oltre alle informazioni necessarie alla modifica di tali impostazioni.</p> +</div> + +<h2 id="Cos'è_una_preferenza"><span id="def">Cos'è una preferenza?</span></h2> + +<div class="indent"> +<p>Una preferenza è un qualsiasi valore oppure un particolare comportamento che possa essere selezionato fra altri valori o comportamenti ( presumibilmente, un valore o un comportamento è "preferibile" ad un altro ). Le modifiche alle preferenze, apportate attraverso l'interfaccia utente, normalmente diventano effettive immediatamente. I valori vengono salvati nel profilo utente ( nel file <code>prefs.js</code> ), sia per Firefox che per Thunderbird.</p> + +<p>Una preferenza viene letta da un file e può invocare fino a quattro metodi: <code>pref()</code>, <code>user_pref(), sticky_pref()</code> e <code>lockPref()</code>. Tutti i file che conservano le preferenze possono invocare <code>pref()</code>, <code>user_pref()</code> e sticky_pref(), mentre il file di configurazione può invocare anche <code>lockPref()</code>.</p> +</div> + +<h2 id="I_file_delle_preferenze"><span id="file">I file delle preferenze</span></h2> + +<div class="indent"> +<p><span id="files-skipline">Per proteggere la privacy, prevenendo la possibilità di un caricamento involontario, nel browser, di un file delle preferenze, la prima riga del file viene resa "</span>un-parseable" ( non analizzabile ) e saltata in fase di caricamento. La sola eccezione è per il file <code>user.js</code> .</p> + +<p>Al lancio dell'applicazione, vengono caricati diversi file delle preferenze:</p> + +<dl> + <dt class="term"><span id="files-def">I file delle preferenze di default</span></dt> + <dd> + <p>Firefox trova le preferenze di default in più file, tutti all'interno della directory dell'applicazione:</p> + + <ul> + <li>greprefs.js - contiene le preferenze condivise da tutte le applicazioni che utilizzano la piattaforma Mozilla.</li> + <li>services/common/services-common.js - contiene le preferenze per alcuni servizi condivisi. Verosimilmente, potrebbe essere incluso in qualche altro file.</li> + <li>defaults/pref/services-sync.js - contiene le preferenze di default per la sincronizzazione di Firefox ( Firefox Sync ): salvato anche in posizione strana.</li> + <li>browser/app/profile/channel-prefs.js - un file che contiene il nome del canale dell'utente da usare per gli aggiornamenti. Viene tenuto separato dalle altre preferenze, poichè può agire sulle modalità di applicazione degli aggiornamenti.</li> + <li>browser/app/profile/firefox.js - contiene le preferenze di default specifiche per Firefox.</li> + <li>browser/app/profile/firefox-branding.js - contiene le preferenze di default specifiche per la versione di Firefox installata (Nightly, Aurora, Beta, Release).</li> + <li>browser/defaults/preferences/firefox-l10n.js - contiene le preferenze di default specifiche per la lingua installata in Firefox. Nessuno degli altri file delle preferenze contiene preferenze locali specifiche.</li> + </ul> + </dd> + <dt class="term"><span id="files-conf"><abbr title="configuration">Config.</abbr></span> file</dt> + <dd> + <p>Un file di configurazione, normalmente con estensione <code>.cfg</code>, può essere invocato da un file di default delle preferenze utilizzando la preferenza <code>general.config.filename</code>. Questo file permette il blocco delle preferenze (preference locking) attraverso la funzione <code>lock_pref()</code>. I dettagli sul file di configurazione sono al di fuori dello scopo di questo documento.</p> + </dd> + <dt class="term"><span id="files-user">User pref. files</span></dt> + <dd> + <p>Nella directory di profilo ci sono due file delle preferenze riservate all'utente: <code>prefs.js</code> e <code>user.js</code>. <code>prefs.js</code> viene generato automaticamente dall'applicazione e non dovrebbe essere modificato manualmente, mentre <code>user.js</code> è un file opzionale che l'utente può creare per sovrascrivere le preferenze inizializzate in altri file delle preferenze.</p> + </dd> +</dl> +</div> + +<h2 id="Caricamento_delle_preferenze_e_risoluzione"><span id="loading">Caricamento delle preferenze e risoluzione</span></h2> + +<div class="indent"> +<p>Al lancio dell'applicazione, l'applicazione carica le preferenze nel seguente ordine:</p> + +<ol> + <li> + <p>tutti i file di default delle preferenze.</p> + </li> + <li> + <p>Se c'è, il file di configurazione.</p> + </li> + <li> + <p>I file delle preferenze dell'utente: il file <code>prefs.js prima</code>, il file <code>user.js</code> poi.</p> + </li> +</ol> + +<p>I conflitti vengono risolti in favore dell'ultimo record caricato; per esempio, <code>user.js</code> ha la precedenza su <code>prefs.js</code> .</p> + +<p>Se l'applicazione incontra un qualsiasi errore durante il caricamento di un file di default delle preferenze, l'applicazione emette un messaggio di avviso che informa che il caricamento del file è fallito e si chiude. Questo permette agli amministratori di sistema di sapere velocemente se c'è un errore di configurazione nell'installazione. Se l'applicazione incontra un qualsiasi errore durante il caricamento di un file delle preferenze dell'utente, invece, l'applicazione emette un messaggio di avviso, ma continua nell'esecuzione.</p> +</div> + +<h2 id="Salvare_le_preferenze"><span id="saving">Salvare le preferenze</span></h2> + +<div class="indent"> +<p>Normalmente, quando un utente conferma una modifica di una preferenza, effettuata attraverso l'interfaccia utente, come, ad esempio, la finestra di dialogo Preferenze, l'applicazione salva la modifica sovrascrivendo il file <code>prefs.js</code> . Alla chiusura dell'applicazione, tutte le preferenze utente vengono salvate nel file <code>prefs.js</code> . Questo significa anche che le preferenze inizialmente impostate nel file <code>user.js</code> verranno anche salvate nel file <code>prefs.js</code>.</p> + +<p class="note"><strong>NON modificare il file</strong> <code>prefs.js</code> direttamente.</p> + +<p>Nota: l'applicazione non modifica mai il file <code>user.js</code>. In questo modo, al lancio dell'applicazione, il file <code>user.js</code> sovrascrive le preferenze in conflitto con la precedente sessione dell'applicazione.</p> + +<p>Quando viene scritto il file <code>prefs.js</code>, vengono salvate solo le preferenze utente che hanno valori differenti dai valori di default. La sola eccezione a questo è la preferenza letta utilizzando la funzione <code>sticky_pref()</code> - questa preferenza viene scritta comunque, basta che contenga un valore dato dall'utente, anche se questo valore fosse identico al valore di default.</p> +</div> + +<h2 id="Modificare_le_preferenze"><span id="modifying">Modificare le preferenze</span></h2> + +<div class="indent"> +<p>Gli utenti avanzati possono impostare le preferenze utilizzando l'editor avanzato delle preferenze, digitando <code>about:config</code> nella barra degli indirizzi del browser. Questa interfaccia utente ( UI ) non è da raccomandare alla gran parte degli utenti. Le modifiche alle preferenze da effettuarsi da un programma possono essere richieste utilizzando il modulo JS <a href="http://dxr.mozilla.org/mozilla-central/source/toolkit/modules/Preferences.jsm" title="http://dxr.mozilla.org/mozilla-central/source/toolkit/modules/Preferences.jsm">Preferences.jsm</a> ( <span class="ital">JavaScript Module )</span>, oppure i metodi della classe statica mozilla::Preferences del codice C++.</p> + +<h3 id="Modificare_i_valori_di_default">Modificare i valori di default</h3> + +<p>Un amministratore di sistema può modificare una preferenza di default in due modi:</p> + +<ol> + <li>l'amministratore può aggiungere un file delle preferenze chiamato <code>all-<em>companyname</em>.js</code> (<code>install_directory/browser/defaults/preferences/all-<em>companyname</em>.js</code>). Questo file verrà analizzato per ultimo, nel corso del processo di caricamento delle preferenze.</li> + <li> + <p>l'amministratore, in alternativa, può salvare il file <code>user.js</code> nella directory <code><em>app_dir</em>/defaults/profile/</code> ; in questo modo, una copia del file <code>user.js</code> verrà salvata in ogni nuovo profilo creato. Questo metodo ha il vantaggio di riportare, ad ogni start-up, le preferenze ai valori voluti dall'amministratore. Ricorda, però, che un utente, detenendo i privilegi necessari ad accedere alla propria directory di profilo, potrà sempre modificare i valori di default, sempre che sappia come farlo. Un altro svantaggio di questa alternativa è che i profili esistenti non verranno influenzati dai nuovi valori assegnati. <em>Questo metodo è considerato user-hostile ( ostile all'utente ). Qualsiasi uso di questa tecnica, fatta da software quali le estensioni Firefox, al fine di sovrascrivere le preferenze utente normali, darà, come risultato, quello di essere inseriti nella blocklist di Firefox oppure di vedere rimosse forzatamente le preferenze stesse.</em></p> + </li> +</ol> + +<div class="note"> +<p>Nota: a causa degli abusi del file user.js, il supporto per il file user.js potrebbe essere rimosso nelle versioni future di Firefox.</p> +</div> +</div> + +<h2 id="Le_Sticky_Preference">Le Sticky Preference</h2> + +<p>Le Sticky preference furono introdotte in Firefox 40, via <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1098343">bug 1098343</a>.</p> + +<p>Le Sticky preference vengono create con la funzione <code>sticky_pref()</code>. Queste preferenze si comportano come le preferenze di default, ma ovunque venga stabilito un valore per la preferenza, quel valore viene sempre scritto, anche se uguale al valore di default. Le Sticky preference vengono usate, generalmente, per le preferenze che hanno un valore di default differente per ciascun canale. L'intento è di impostare il valore di una preferenza per un canale e far sì che quel valore resti invariato, anche utilizzando un differente canale, per il quale sia previsto un diverso valore di default. Per esempio, ipotizziamo che Nightly abbia una preferenza "some.preference" con valore di default impostato a "<code>true", mentre </code>DeveloperEdition assegna alla stessa preferenza il valore di default "<code>false". </code>Ipotizziamo ora che l'utente desideri che la preferenza abbia valore<code> "true" </code>per entrambi i canali. Se la preferenza non è una Sticky preference e l'utente esegue DeveloperEdition e cambia la preferenza in "<code>true", </code>la modifica verrà salvata perchè non è uguale al valore di default. Quando l'utente eseguirà Nightly, la preferenza avrà lo stesso valore di default e, di conseguenza, <em>non</em> verrà salvata da Nightly. Quando l'utente eseguirà ancora DeveloperEdition, il valore della preferenza sarà "<code>false", </code>poichè Nightly non aveva salvato alcuna preferenza utente. Se la preferenza viene definita come Sticky preference, il valore "<code>true" </code>verrà salvato da Nightly anche se riconosciuto come valore corrente di default, così che quando verrà eseguita DeveloperEdition, la preferenza avrà il valore desiderato di "<code>true</code>".</p> diff --git a/files/it/mozilla/projects/index.html b/files/it/mozilla/projects/index.html new file mode 100644 index 0000000000..6291137b31 --- /dev/null +++ b/files/it/mozilla/projects/index.html @@ -0,0 +1,14 @@ +--- +title: Projects +slug: Mozilla/Projects +tags: + - Mozilla + - NeedsContent + - NeedsTranslation + - Projects + - TopicStub +translation_of: Mozilla/Projects +--- +<p>{{ draft() }}</p> +<p>This page needs to become a pretty index to Mozilla projects whose documentation is located under it.</p> +<p>{{ LandingPageListSubpages() }}</p> diff --git a/files/it/mozilla/projects/nss/esempi_codice_nss/index.html b/files/it/mozilla/projects/nss/esempi_codice_nss/index.html new file mode 100644 index 0000000000..e98ceaa015 --- /dev/null +++ b/files/it/mozilla/projects/nss/esempi_codice_nss/index.html @@ -0,0 +1,28 @@ +--- +title: Esempi di Codice NSS +slug: Mozilla/Projects/NSS/Esempi_Codice_NSS +tags: + - Esempi NSS +translation_of: Mozilla/Projects/NSS/NSS_Sample_Code +--- +<h2 id="Esempi_di_Codice_NSS">Esempi di Codice NSS</h2> + +<p>La collezione di esempi di codice che segue, mostra come NSS possa essere usato per le operazioni crittografiche, la gestione di certificati, SSL, ecc... Mostra inoltre alcune buone norme nell'applicazione della crittografia.</p> + +<p> </p> + +<ol> + <li><a href="nss_sample_code/NSS_Sample_Code_Sample1">Esempio di Codice 1: Generazione di Chiavi e Trasporto tra server</a></li> + <li><a href="nss_sample_code/NSS_Sample_Code_Sample1">Esempio di Codice 2: Crittografia Simmetrica</a></li> + <li><a href="nss_sample_code/NSS_Sample_Code_Sample1">Esempio di Codice </a><a href="nss_sample_code/NSS_Sample_Code_sample3"> 3: Hashing, MAC</a></li> + <li><a href="nss_sample_code/NSS_Sample_Code_Sample1">Esempio di Codice </a><a href="nss_sample_code/NSS_Sample_Code_sample4"> 4: Crittografia PKI</a></li> + <li><a href="https://developer.mozilla.org/it/docs/Mozilla/Projects/NSS/nss_sample_code/NSS_Sample_Code_sample2">Esempio di Codice </a><a href="nss_sample_code/NSS_Sample_Code_sample5">5: Crittografia PKI con chiave pubblica e privata raw in formato DER</a></li> + <li><a href="nss_sample_code/NSS_Sample_Code_sample6">Sample Code 6: Chiavi Simmetriche Permanenti in database NSS</a></li> +</ol> + +<p><br> + Questi esempi dono molto vecchi e necessitano di essere sostituiti. Vedi https://bugzilla.mozilla.org/show_bug.cgi?id=490238</p> + +<p>C'è una git repo temporanea con il lavoro in corso</p> + +<pre class="bz_comment_text" id="comment_text_42">git clone git://fedorapeople.org/~emaldonado/samples.git</pre> diff --git a/files/it/mozilla/projects/nss/index.html b/files/it/mozilla/projects/nss/index.html new file mode 100644 index 0000000000..718314f916 --- /dev/null +++ b/files/it/mozilla/projects/nss/index.html @@ -0,0 +1,198 @@ +--- +title: Network Security Services +slug: Mozilla/Projects/NSS +tags: + - JSS + - NSS + - NeedsMigration + - NeedsTranslation + - TopicStub +translation_of: Mozilla/Projects/NSS +--- +<p><strong>Network Security Services</strong> (<strong>NSS</strong>) is a set of libraries designed to support cross-platform development of security-enabled client and server applications. Applications built with NSS can support SSL v2 and v3, TLS, PKCS #5, PKCS #7, PKCS #11, PKCS #12, S/MIME, X.509 v3 certificates, and other security standards.</p> +<p>For detailed information on standards supported, see <a href="/en-US/docs/Overview_of_NSS" title="Overview_of_NSS">Overview of NSS</a>. For a list of frequently asked questions, see the <a href="/en-US/docs/NSS_FAQ" title="NSS_FAQ">FAQ</a>.</p> +<p>NSS is available under the Mozilla Public License. For information on downloading NSS releases as tar files, see <a href="https://developer.mozilla.org/en-US/docs/NSS_Sources_Building_Testing">Download PKI Source</a>.</p> +<p>If you're a developer and would like to contribute to NSS, you might want to read the documents <a href="/en-US/docs/An_overview_of_NSS_Internals" title="/en-US/docs/An_overview_of_NSS_Internals">highlevel overview of internal details of NSS</a> and <a href="/en-US/docs/Getting_Started_With_NSS" title="/en-US/docs/Getting_Started_With_NSS">getting started with NSS</a>.</p> +<table class="topicpage-table"> + <tbody> + <tr> + <td> + <h2 class="Documentation" id="Documentation" name="Documentation">Documentation</h2> + <h3 id="Background_Information">Background Information</h3> + <dl> + <dt> + <a href="/en-US/docs/Overview_of_NSS">Overview of NSS</a></dt> + <dd> + Provides a brief summary of NSS and its capabilities.</dd> + <dt> + <a href="/en-US/docs/NSS_FAQ">NSS FAQ</a></dt> + <dd> + Answers basic questions about NSS.</dd> + <dt> + <a href="/en-US/docs/Introduction_to_Public-Key_Cryptography">Introduction to Public-Key Cryptography</a></dt> + <dd> + Explains the basic concepts of public-key cryptography that underlie NSS.</dd> + <dt> + <a href="/en-US/docs/Introduction_to_SSL">Introduction to SSL</a></dt> + <dd> + Introduces the SSL protocol, including information about cryptographic ciphers supported by SSL and the steps involved in the SSL handshake.</dd> + </dl> + <h3 id="Getting_Started">Getting Started</h3> + <dl> + <dt> + <a href="/en-US/docs/NSS/NSS_Releases" title="NSS_releases">NSS Releases</a></dt> + <dd> + This page contains information about the current and past releases of NSS.</dd> + <dt> + <a href="/en-US/docs/NSS_Sources_Building_Testing">Get the source code and Build it</a></dt> + <dd> + Instructions on how to build NSS on the different supported platforms.</dd> + <dt> + <a href="/en-US/docs/Mozilla/Developer_guide/Source_Code/Mercurial">Get Mozilla Source Code Using Mercurial</a></dt> + <dd> + Information about with working with Mercurial.</dd> + <dt> + <a href="/en-US/docs/Mozilla/Developer_guide/Source_Code/CVS">Get Mozilla Source Code Using CVS (deprecated)</a></dt> + <dd> + Old deprecated CVS documentation.</dd> + </dl> + <h3 id="NSS_APIs">NSS APIs</h3> + <dl> + <dt> + <a href="/en-US/docs/Introduction_to_Network_Security_Services">Introduction to Network Security Services</a></dt> + <dd> + Provides an overview of the NSS libraries and what you need to know to use them.</dd> + <dt> + <a href="NSS/SSL_functions">NSS Public Functions</a></dt> + <dd> + Summarizes the APIs exported by the NSS shared libraries.</dd> + <dt> + <a href="/en-US/docs/NSS_reference">NSS Reference</a></dt> + <dd> + API used to invoke SSL operations.</dd> + <dt> + <a href="NSS/NSS_API_GUIDELINES">NSS API Guidelines</a></dt> + <dd> + Explains how the libraries and code are organized, and guidelines for developing code (naming conventions, error handling, thread safety, etc.)</dd> + <dt> + <a href="NSS/nss_tech_notes">NSS Technical Notes</a></dt> + <dd> + Links to NSS technical notes, which provide latest information about new NSS features and supplementary documentation for advanced topics in programming with NSS.</dd> + </dl> + <h3 id="Tools_testing_and_other_technical_details">Tools, testing, and other technical details</h3> + <dl> + <dt> + <a href="/en-US/docs/NSS_Sources_Building_Testing">Build Instructions for NSS</a></dt> + <dd> + Describe how to check out and build NSS releases.</dd> + </dl> + <dl> + <dt> + <a href="/en-US/docs/Mozilla/Projects/NSS/NSS_Developer_Tutorial">NSS Developer Tutorial</a></dt> + <dd> + How to make changes in NSS. Coding style, maintaining ABI compatibility.</dd> + </dl> + <dl> + <dt> + <a href="NSS/Tools">NSS Tools</a></dt> + <dd> + Tools for developing, debugging, and managing applications that use NSS.</dd> + <dt> + <a href="NSS/NSS_Sample_Code">Sample Code</a></dt> + <dd> + Demonstrates how NSS can be used for cryptographic operations, certificate handling, SSL, etc.</dd> + <dt> + <a href="http://www-archive.mozilla.org/projects/security/pki/nss/testnss_32.html">NSS 3.2 Test Suite</a></dt> + <dd> + <b>Archived version.</b> Describes how to run the standard NSS tests.</dd> + <dt> + <a href="http://www-archive.mozilla.org/projects/security/pki/nss/performance_reports.html">NSS Performance Reports</a></dt> + <dd> + <b>Archived version.</b> Links to performance reports for NSS 3.2 and later releases.</dd> + <dt> + <a href="http://www-archive.mozilla.org/projects/security/pki/nss/nss-3.11/nss-3.11-algorithms.html">Encryption Technologies Available in NSS 3.11</a></dt> + <dd> + <b>Archived version.</b> Lists the cryptographic algorithms used by NSS 3.11.</dd> + <dt> + <a href="http://www-archive.mozilla.org/projects/security/pki/nss/loadable_certs.html">NSS 3.1 Loadable Root Certificates</a></dt> + <dd> + <b>Archived version.</b> Describes the scheme for loading root CA certificates.</dd> + <dt> + <a href="http://www-archive.mozilla.org/projects/security/pki/nss/db_formats.html">cert7.db</a></dt> + <dd> + <b>Archived version.</b> General format of the cert7.db database.</dd> + </dl> + <h3 id="PKCS_11_information">PKCS #11 information</h3> + <ul> + <li><a href="/en-US/docs/PKCS11" title="PKCS11">Documentation on PKCS #11 modules</a></li> + <li><a href="/en-US/docs/PKCS11_Implement">Implementing PKCS #11 for NSS</a></li> + <li><a href="/en-US/docs/PKCS11_Module_Specs" title="PKCS11_Module_Specs">The strings NSS uses to load PKCS #11 modules</a></li> + <li><a href="/en-US/docs/PKCS11_FAQ">PKCS #11 FAQ</a></li> + <li><a href="/en-US/docs/PKCS11_Jar_Install">Using the JAR Installation Manager to Install a PKCS #11 Cryptographic Module</a></li> + <li><a href="http://www-archive.mozilla.org/projects/security/pki/pkcs11/">PKCS #11 Conformance Testing - Archived version</a></li> + </ul> + <dl> + </dl> + <h3 id="CA_certificates_pre-loaded_into_NSS">CA certificates pre-loaded into NSS</h3> + <ul> + <li><a href="http://www.mozilla.org/projects/security/certs/policy/">Mozilla CA certificate policy</a></li> + <li><a href="http://www.mozilla.org/projects/security/certs/included/">List of pre-loaded CA certificates</a> + <ul> + <li>Consumers of this list must consider the trust bit setting for each included root certificate. <a href="https://www.imperialviolet.org/2012/01/30/mozillaroots.html">More Information</a>, <a href="https://github.com/agl/extract-nss-root-certs">Extracting roots and their trust bits</a></li> + </ul> + </li> + </ul> + <dl> + </dl> + <h3 id="NSS_is_built_on_top_of_Netscape_Portable_Runtime_(NSPR)">NSS is built on top of Netscape Portable Runtime (NSPR)</h3> + <dl> + <dt> + <a href="NSPR">Netscape Portable Runtime</a></dt> + <dd> + NSPR project page.</dd> + <dt> + <a href="/en-US/docs/Mozilla/Projects/NSPR/Reference">NSPR Reference</a></dt> + <dd> + NSPR API documentation.</dd> + </dl> + <h3 id="Additional_Information">Additional Information</h3> + <ul> + <li><a href="/en-US/docs/JavaScript_crypto" title="JavaScript_crypto">Using the window.crypto object from JavaScript</a></li> + <li><a href="/en-US/docs/HTTP_Delegation" title="HTTP_Delegation">Delegation of HTTP download for OCSP</a></li> + <li><a href="/en-US/docs/TLS_Cipher_Suite_Discovery" title="TLS_Cipher_Suite_Discovery">TLS Cipher Suite Discovery</a></li> + <li><a href="/en-US/docs/NSS_Certificate_Download_Specification" title="NSS_Certificate_Download_Specification">NSS Certificate Download Specification</a></li> + <li><a href="/en-US/docs/NSS/FIPS_Mode_-_an_explanation" title="FIPS Mode - an explanation">FIPS Mode - an explanation</a></li> + <li><a href="/en-US/docs/NSS_Key_Log_Format" title="NSS Key Log Format">Format of key log files</a></li> + <li>View <a href="/en-US/docs/tag/NSS" title="/en-US/docs/tag/NSS">all NSS-related articles on MDN</a></li> + </ul> + <h3 id="Testing">Testing</h3> + <ul> + <li><a href="/en-US/docs/Testing_third-party_PKCS#11_modules.2Ftokens_with_NSS" title="Testing_third-party_PKCS#11_modules.2Ftokens_with_NSS">Testing third-party PKCS #11 modules/tokens with NSS</a></li> + </ul> + <h3 id="Planning">Planning</h3> + <p>Information on NSS planning can be found at <a class="external" href="http://wiki.mozilla.org/NSS">wiki.mozilla.org</a>, including:</p> + <ul> + <li><a class="external" href="http://wiki.mozilla.org/FIPS_Validation">FIPS Validation</a></li> + <li><a class="external" href="http://wiki.mozilla.org/NSS:Roadmap">NSS Roadmap page</a></li> + <li><a href="https://fedoraproject.org/wiki/User:Mitr/NSS:DeveloperFriendliness" title="https://fedoraproject.org/wiki/User:Mitr/NSS:DeveloperFriendliness">NSS Improvement Project</a></li> + </ul> + </td> + <td> + <h2 class="Community" id="Community" name="Community">Community</h2> + <ul> + <li>View Mozilla Security forums...</li> + </ul> + <p>{{ DiscussionList("dev-security", "mozilla.dev.security") }}</p> + <ul> + <li>View Mozilla Cryptography forums...</li> + </ul> + <p>{{ DiscussionList("dev-tech-crypto", "mozilla.dev.tech.crypto") }}</p> + <h2 class="Related_Topics" id="Related_Topics" name="Related_Topics">Related Topics</h2> + <ul> + <li><a href="/en-US/docs/Security" title="Security">Security</a></li> + </ul> + </td> + </tr> + </tbody> +</table> +<p> </p> diff --git a/files/it/mozilla/qa/bug_writing_lineeguida/index.html b/files/it/mozilla/qa/bug_writing_lineeguida/index.html new file mode 100644 index 0000000000..31eca62c6d --- /dev/null +++ b/files/it/mozilla/qa/bug_writing_lineeguida/index.html @@ -0,0 +1,253 @@ +--- +title: Linee guida per la segnalazione dei Bug +slug: Mozilla/QA/Bug_writing_lineeguida +translation_of: Mozilla/QA/Bug_writing_guidelines +--- +<div class="note"> +<p><strong>Se avete bisogno di aiuto con i software Mozilla (per esempio con Firefox, Seamonkey o Thunderbird), usate una delle <a href="http://www.mozilla.org/support/">support options</a> disponibili.</strong> Non modifcate questa pagina!</p> +</div> + +<p><span class="seoSummary">Questa pagina da per scontato che vogliate contribuire al progetto Mozilla raccogliendo abbastanza informazioni per poter caricare un bug report utile, nel sistema di bug tracking di Mozilla.</span> Grazie!</p> + +<p>Se siete nuovi nella segnalazione dei bug, potreste voler provare ad ottenere aiuto da i contributori di maggior esperienza. Controllate la sezione Community nella pagina <a href="/en-US/docs/QA">QA</a> (Question and Answers - Domande e risposte) per avere indicazioni. Se vi accingete a segnalare un bug Firefox, potete anche ottenere assistenza nel canale <span style="font-family: monospace;">#firefox</span> su <a href="irc://irc.mozilla.org/firefox">irc.mozilla.org</a>. Per altri progetti (es., Thunderbird, SeaMonkey) potete trovare il canale appropriato su <a href="https://wiki.mozilla.org/IRC">IRC</a>.</p> + +<h2 id="Come_segnalare_un_bug">Come segnalare un bug</h2> + +<h3 id="Aprite_un_nuovo_bug_report_per_ogni_problema!">Aprite un nuovo bug report per ogni problema!</h3> + +<p>Così verrà completato un flusso di correzione bug (bugfix) efficace per ogni problema.</p> + +<h3 id="Altri_dettagli_cui_prestare_attenzione">Altri dettagli cui prestare attenzione</h3> + +<ol> + <li>Descrivere i <strong>passi per riprodurre il bug</strong>: + + <ul> + <li>Se avete <a href="#Writing_precise_steps_to_reproduce">precisi passi per riprodurre </a>— ottimo! — siete sulla buona strada per segnalare un bug report utile.</li> + <li>Se riuscite a riprodurre occasionalmente, ma non a seguito di specifici passi, dovete fornire <a href="#specific-types">ulteriori informazioni</a> perchè il bug report sia utile.</li> + <li>Se non riuscite a riprodurre il problema, probabilmente non è utile riportarlo, a meno che non riusciate a fornire informazioni univoche circa il suo verificarsi.</li> + </ul> + </li> + <li>assicuratevi che il vs software sia aggiornato. L'ideale sarebbe, testare il problema conuna versione in fase di sviluppo per vedere se il bug è stato già corretto (e.g. <a href="http://www.mozilla.com/en-US/firefox/channel/">Firefox Beta, Aurora</a>, o l'avanzatissima <a class="link-https" href="https://nightly.mozilla.org/">Nightly</a>).</li> + <li>Quando riportate un bug di Firefox, prima verificate se potete riprodurlo in un <a href="https://support.mozilla.org/en-US/kb/profile-manager-create-and-remove-firefox-profiles">nuovo profilo Firefox</a>. Se il bug si verifica solo nel vostro profilo esistente, provate a identificare quali <a href="https://support.mozilla.org/en-US/kb/troubleshoot-extensions-themes-to-fix-problems">settings, extensions</a>, o <a href="https://support.mozilla.org/en-US/kb/profiles-where-firefox-stores-user-data">files nel vostro profilo</a> sono necessari per riprodurre il bug. + <ul> + <li>Se il bug sembra "eclatante" (cioè ovviamente che affligge una larga porzione di utenti), <span id="result_box" lang="it"><span title="If the bug seems egregious (i.e. obviously affecting a large portion of users), there's probably something unusual about your setup that's a necessary part of the steps to reproduce the bug."> probabilmente c'è qualcosa di insolito nella configurazione che è una parte necessaria dei passaggi per riprodurre il bug. </span><span title="You have much better chances of figuring it out than a developer who does not have access to your system. + ">Hai molte più possibilità di capirlo rispetto a uno sviluppatore che non ha accesso al tuo sistema.</span></span></li> + <li><span lang="it"><span title="If the bug falls into one of specific types of bugs listed in a section below, it may still be useful even if you can't reproduce it in a new Firefox profile. + +">Se il bug rientra in uno dei<a href="https://developer.mozilla.org/en-US/docs/Mozilla/QA/Bug_writing_guidelines$translate?tolocale=it#specific-types"> tipi specifici di bug elencati in una sezione sottostante</a>, potrebbe comunque essere utile anche se non potete riprodurlo in un nuovo profilo Firefox.</span></span><br> + </li> + </ul> + </li> + <li><span lang="it"><span title="Open the Enter a new bug form, which will guide you through most of the bug reporting process: + + ">Apri il modulo <a href="https://bugzilla.mozilla.org/enter_bug.cgi?format=guided">Inserisci un nuovo bug</a> </span></span> (<a class="link-https" href="https://bugzilla.mozilla.org/enter_bug.cgi?format=guided">Enter a new bug</a><span lang="it"><span title="Open the Enter a new bug form, which will guide you through most of the bug reporting process: + + ">) che ti guiderà nella maggior parte del processo di segnalazione dei bug:</span></span> + <ul> + <li><span lang="it"><span title="Create a Bugzilla account if you don't have one already, select the product having the bug. + ">Crea un account Bugzilla se non ne hai già uno, seleziona il prodotto con il bug.</span></span></li> + <li><span lang="it"><span title="Enter a clear unique summary as described below;">Inserite un <strong>riassunto univoco chiaro</strong> (</span></span><strong>clear unique summary</strong>) come <a href="https://developer.mozilla.org/en-US/docs/Mozilla/QA/Bug_writing_guidelines$translate?tolocale=it#Writing_a_clear_summary">descritto nel seguito</a><span lang="it"><span title="Enter a clear unique summary as described below;">; </span><span title="check if the bug has already been reported (if you want to be more thorough, there's an advanced guide on screening duplicate bugs). + ">controlla se il bug è già stato segnalato (se vuoi essere più completo, c'è una guida avanzata sullo</span></span> <a href="https://developer.mozilla.org/en-US/docs/Screening_duplicate_bugs">screening dei bug duplicati</a><span lang="it"><span title="check if the bug has already been reported (if you want to be more thorough, there's an advanced guide on screening duplicate bugs). + ">).</span></span></li> + <li><span lang="it"><span title="Provide precise steps to reproduce, expected results and actual results as described in the following section. + ">Fornite <strong>passaggi precisi per riprodurre, risultati attesi</strong> e <strong>risultati effettivi</strong> come <a href="https://developer.mozilla.org/en-US/docs/Mozilla/QA/Bug_writing_guidelines$translate?tolocale=it#Writing_precise_steps_to_reproduce">descritto nella sezione seguente</a>.</span></span></li> + <li><span lang="it"><span title="Provide additional information (also described below), especially if you can't reproduce the bug in a new profile;">Fornite ulteriori informazioni (anche<a href="https://developer.mozilla.org/en-US/docs/Mozilla/QA/Bug_writing_guidelines$translate?tolocale=it#Providing_additional_information"> descritte di seguito</a>), soprattutto se non è possibile riprodurre il bug in un nuovo profilo; </span><span title="and/or by reporting a crash, memory usage, performance, regression bug;">e / o segnalando<strong> crash, utilizzo della memoria, prestazioni, bug di regressione</strong>; </span><span title="or if the problem is with a specific web site. + +">o se il problema è con un sito web specifico.</span></span></li> + </ul> + </li> + <li><span lang="it"><span title="If you have multiple issues, please file separate bug reports.">In caso di problemi multipli, si prega di presentare segnalazioni di bug separate.</span></span></li> +</ol> + +<h2 id="Scrivere_un_riassunto_chiaro">Scrivere un riassunto chiaro</h2> + +<p>Come descrivereste il bug usando approssimativamente 10 parole? Questa è la prima parte del vostro bug report che un<span class="short_text" id="result_box" lang="it"><span> triager o uno sviluppatore vedrà.</span></span></p> + +<p>Un buon riassunto deve identificare il bug report in maniera rapida e chiara. Esso deve spiegare il problema, non suggerire la soluzione.</p> + +<ul> + <li>Bene: " <span class="short_text" id="result_box" lang="it"><span>L'annullamento di una finestra di dialogo Copia file provoca l'arresto anomalo di File Manager</span></span> "</li> + <li>Male: "Il Software va in crash"</li> +</ul> + +<ul> + <li><span id="result_box" lang="it"><span>Bene: "Lo scorrimento della freccia giù non funziona in <textarea> in stile con overflow: nascosto"</span></span></li> + <li><span lang="it"><span>Male: "Il browser dovrebbe funzionare con il mio sito web"</span></span></li> +</ul> + +<h2 id="Scrivere_passi_precisi_per_riprodurre">Scrivere passi precisi per riprodurre</h2> + +<p><span id="result_box" lang="it"><span>Come può uno sviluppatore riprodurre il bug sul proprio computer?</span><br> + <br> + <span>I passaggi per la riproduzione sono la parte più importante di qualsiasi segnalazione di bug.</span> <span>Se uno sviluppatore è in grado di riprodurre il bug, è molto probabile che il bug sia corretto.</span> <span>Se i passaggi non sono chiari, potrebbe non essere nemmeno possibile sapere se il bug è stato corretto.</span></span></p> + +<table class="standard-table"> + <tbody> + <tr> + <th>Cosa includere in un bug report?</th> + <th>Bene (preciso) esempio</th> + <th> + <p>Cattivo (inpreciso)</p> + </th> + </tr> + <tr> + <td><span id="result_box" lang="it"><span>Indicare se è possibile riprodurre il bug a volontà, occasionalmente o per niente.</span></span></td> + <td>Posso riprodurlo eseguendo i passi seguenti:</td> + <td> </td> + </tr> + <tr> + <td> + <p><span id="result_box" lang="it"><span>Descrivi il tuo metodo di interazione con Firefox oltre all'intento di ogni passaggio.</span></span></p> + </td> + <td> + <p><span id="result_box" lang="it"><span>1. Avvia Firefox facendo clic sull'icona del desktop</span><br> + <span>2. Premere Cmd + N (o Ctrl + N per utenti Windows) per aprire una nuova finestra del browser</span><br> + <span>3. Incolla </span></span><a class="link-https" href="https://mail.google.com/" rel="freelink">https://mail.google.com/</a> nella barra degli indirizzi e premere Invio</p> + </td> + <td>Apri Gmail in un'altra finestra</td> + </tr> + <tr> + <td> + <p><span id="result_box" lang="it"><span>Dopo i passaggi, descrivere con precisione il <strong>risultato</strong> (<strong>effettivo) osservato</strong> e il <strong>risultato atteso</strong>.</span> <span>Separare chiaramente i fatti (osservazioni) dalle speculazioni.</span></span></p> + </td> + <td><span id="result_box" lang="it"><span><strong>Risultati previsti</strong>: la mia Posta in arrivo viene visualizzata correttamente.</span><br> + <span><strong>Risultati effettivi</strong>: nella mia Posta in arrivo viene visualizzato il messaggio "Il browser non supporta i cookie (errore -91)".</span></span></td> + <td> + <p>"Non funziona"</p> + + <p>"La pagina è mostrata non correttamente"</p> + </td> + </tr> + </tbody> +</table> + +<h2 id="Providing_additional_information">Providing additional information</h2> + +<p>The following information is requested for most bug reports. You can save time by providing this information below the Expected results. If you need to attach multiple files, you can do so after submitting the report.</p> + +<h3 id="For_specific_types_of_bugs"><a name="specific-types">For specific types of bugs</a></h3> + +<p>If you are reporting a <strong>crash bug</strong>, please <a href="/en-US/docs/How_to_get_a_stacktrace_for_a_bug_report">include a Breakpad ID or attach stack trace</a>, and include the crash signature in the bug summary as well as in the <strong>Crash Signature</strong> field.</p> + +<p>If you are reporting a <strong>memory use or leak bug</strong>, please <a href="/en-US/docs/Mozilla/Performance/about:memory">attach the output of about:memory</a>. Ideally, find steps to reproduce an increase in what is shown in about:memory (even after clicking the "Minimize memory usage" button at the bottom). If you have trouble finding steps to reproduce, try the Firefox Support page titled <a href="https://support.mozilla.org/en-US/kb/firefox-uses-too-much-memory-ram">Firefox Uses Too Much Memory (Ram) - How to Fix</a>. If you are a C++ developer, <a class="link-https" href="https://developer.mozilla.org/en-US/docs/Mozilla/Performance">more precise tools are available</a>.</p> + +<p>If you are reporting a <strong>bug about slowness or high CPU usage</strong>, please <a href="/en-US/docs/Mozilla/Performance/Reporting_a_Performance_Problem">provide a link to the performance profile in the bug</a>.</p> + +<p>If you are reporting a <strong>hang</strong> (beachball on OS X or "not responding" on Windows), please follow the instructions in <a href="/en-US/docs/How_to_Report_a_Hung_Firefox">How to Report a Hung Firefox</a>.</p> + +<p>If you are reporting a bug involving a <strong>Flash hang</strong>, please visit <a href="https://wiki.mozilla.org/Flash/Hang_Debugging">https://wiki.mozilla.org/Flash/Hang_Debugging</a> to learn how to provide useful information for developers.</p> + +<p>If you are reporting a <strong>bug involving a specific web page</strong>, please try to make a <a href="/en-US/docs/Reducing_testcases">reduced testcase</a> and attach it to the bug report. If you don't have time or expertise, please report the issue to <a href="https://webcompat.com/">webcompat.com</a> instead, where our volunteers will do this for you.</p> + +<p>If the bug was <strong>recently introduced</strong>, finding a <a href="http://mozilla.github.io/mozregression/quickstart.html">regression window</a> can help identify the cause of the bug.</p> + +<p><a href="http://www.chiark.greenend.org.uk/~sgtatham/bugs.html#intermittent">What if my bug seems "random" or "intermittent"?</a></p> + +<h3 id="For_most_Firefox_bugs">For most Firefox bugs</h3> + +<p>You should provide the following information for most Firefox bugs.</p> + +<table class="standard-table"> + <tbody> + <tr> + <th>What should you include in a bug report?</th> + <th>Example</th> + </tr> + <tr> + <td>Indicate if the problem can be reproduced using a <a href="https://support.mozilla.org/en-US/kb/profile-manager-create-and-remove-firefox-profiles">new Firefox profile</a> and any changes you need to make in order to reproduce.</td> + <td>The problem can be reproduced in a new profile, but only if Preferences -> Privacy & Security -> Tracking Protection is selected.</td> + </tr> + <tr> + <td>If you can only reproduce with an existing profile try to figure out what <a href="https://support.mozilla.org/en-US/kb/troubleshoot-extensions-themes-to-fix-problems">settings, extensions</a>, or <a href="https://support.mozilla.org/en-US/kb/profiles-where-firefox-stores-user-data">files in your profile</a> are needed to reproduce the bug. If you skip the step, <a href="https://support.mozilla.org/en-US/kb/use-troubleshooting-information-page-fix-firefox">save the troubleshooting information from about:support</a> to a file and attach it to the bug report.</td> + <td>I can't reproduce in a new profile, about:support information from the offending profile is attached.</td> + </tr> + <tr> + <td> + <p>Indicate if the problem can be reproduced using the <a href="https://nightly.mozilla.org/">latest Nightly build</a>. Include the <strong>Build ID</strong> from <a href="https://support.mozilla.org/en-US/kb/use-troubleshooting-information-page-fix-firefox">about:support</a>.</p> + + <p>If possible, test using the new Firefox profile you created. If you need to test the Nightly build with your regular profile, you might want to <a href="https://support.mozilla.org/en-US/kb/back-and-restore-information-firefox-profiles">back up the profile</a> first, since the pre-release build may corrupt your data.</p> + </td> + <td>The problem can be reproduced on the latest Nightly (Build ID 20170416100136).</td> + </tr> + </tbody> +</table> + +<p> </p> + +<div class="originaldocinfo"> +<h2 id="Original_document_information">Original document information</h2> + +<ul> + <li>Author(s): Jesse Ruderman, Gervase Markham</li> + <li>Other Contributors: Eli Goldberg, Claudius Gayle, Jan Leger, Felix Miata, Peter Mock, Chris Pratt, Chris Yeh, and others.</li> +</ul> +</div> + +<p> </p> + +<hr> +<h2 id="Advanced">Advanced</h2> + +<h3 id="Finding_the_correct_product_and_component" name="Finding_the_correct_product_and_component"><strong style="font-weight: bold;">Finding the correct product and component</strong></h3> + +<p>You will be asked to categorize your bug into a "product" and a "component" within that product, in order to direct your report to the correct developers.</p> + +<p>If you're using Firefox, the bug is most likely in "Firefox", "Toolkit", or "Core".</p> + +<ul> + <li><a class="link-https" href="https://bugzilla.mozilla.org/describecomponents.cgi?product=Firefox">List of components in the "Firefox" product</a> - Most parts of Firefox that you interact with directly</li> + <li><a class="link-https" href="https://bugzilla.mozilla.org/describecomponents.cgi?product=Toolkit">List of components in the "Toolkit" product</a> - Interface widgets and some frontend features</li> + <li><a class="link-https" href="https://bugzilla.mozilla.org/describecomponents.cgi?product=Core">List of components in the "Core" product</a> - Web page rendering, networking, etc.</li> +</ul> + +<p>When in doubt, search for similar bugs and see which component they are in.</p> + +<p>If none of the components seem appropriate, look for a "General" component in the most appropriate product.</p> + +<h3 id="General_Outline_of_a_Bug_Report">General Outline of a Bug Report</h3> + +<div class="note"> +<p>Most of the following article has been merged into this page from QMO: How to write a proper bug</p> +</div> + +<ul> + <li><strong>Summary</strong>: How would you describe the bug in less than 60 characters? It should quickly and uniquely identify a bug report as well as explain the problem, not your suggested solution. Good: "Canceling a File Copy dialog crashes File Manager" Bad: "Software crashes" Bad: "Browser should work with my web site"</li> + <li><strong>Component</strong>: In which sub-part of the software does it exist? This field is a requirement to submit any bug report. Click the word "Component" to see a description of each component. If none seems appropriate, highlight the "General" component.</li> + <li><a name="version"> </a><strong>Version</strong>: select the earliest Version with what the problem can be reproduced: + <ul> + <li>Developers will use that information to narrow down the commit what introduced a regression</li> + <li>QA staff needs that information to distinguish bugs with similar symptoms, but different roots. + <ul> + <li>Bugs that definitively appeared in different <em>Product</em> <em>Versions</em> probably will have different roots</li> + <li>But Bugs that started with the same <em>Product</em> <em>Version</em> probably are DUPLICATEs</li> + </ul> + </li> + <li><em>Trunk</em> does not allow any useful query. We have <em>Trunk</em> version bugs from beginning of the project until today, no common characteristics at all what can be tagged with this version. Avoid Trunk, replace it by precise information with what version the problem appeared if you can.</li> + </ul> + </li> + <li><strong>OS</strong>: On which operating system (OS) did you find it? (E.g. Linux, Windows, and Mac.) Example: "<em>If you know the bug happens on more than one type of operating system, choose "All". If your OS isn't listed, choose Other".</em></li> + <li><strong>Description</strong>: The details of your problem report, including: + <ul> + <li><u>Overview</u>: This is a larger detailed restatement of the summary. An example would be: <em>"Drag-selecting any page crashes Mac builds in the NSGetFactory function"</em>.</li> + <li><u>Build Id</u>: To find this either go to the "about:support" page via the location bar or, if you have MozQA's <a href="https://addons.mozilla.org/en-US/firefox/addon/nightly-tester-tools/">Nightly Tester Tools</a> extension, then go to Tools | Nightly Tester Tools and select the option that contains the output of the build Id. It should look something like this: <em>"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:38.0) Gecko/20100101 Firefox/38.0 ID:20150330004006 CSet: 9e57e9776571"</em>.</li> + <li><u>Additional Builds and Platforms</u>: Whether or not the bug takes place on other platforms (or browsers, if applicable). It should look something like this: <em>"Doesn't Occur On Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:38.0) Gecko/20100101 Firefox/38.0 ID:20150330004006 CSet: 9e57e9776571"</em>.</li> + </ul> + </li> + <li><strong>Steps to Reproduce</strong>: Minimized, easy-to-follow steps that will trigger the bug. If they're necessary, make sure to include any special setup steps. A good example of this would look like the following:<br> + 1) View any web page. (I used the default sample page, http://www.google.com/).<br> + 2) Drag-select the page. Specifically, while holding down the mouse button, drag the mouse pointer downwards from any point in the browser's content region to the bottom of the browser's content region.</li> + <li><strong>Actual Results</strong>: What the application did after performing the above steps. An example would be: <em>The application crashed.</em></li> + <li><strong>Expected Results</strong>: What the application should have done, were the bug not present. An example would be: <em>The window should scroll downwards. Scrolled content should be selected. Or, at least, the application should not crash.</em></li> +</ul> + +<p> </p> + +<div class="originaldocinfo"> +<h4 id="Original_document_information_2">Original document information</h4> + +<ul> + <li>Author(s): Aakash Desai</li> + <li>Date last modified: June 3, 2013 at 2:41 am PST</li> +</ul> +</div> diff --git a/files/it/mozilla/qa/index.html b/files/it/mozilla/qa/index.html new file mode 100644 index 0000000000..99a8a38dd2 --- /dev/null +++ b/files/it/mozilla/qa/index.html @@ -0,0 +1,251 @@ +--- +title: 'QA: Quality assurance at Mozilla' +slug: Mozilla/QA +tags: + - Landing + - NeedsTranslation + - QA + - Testing + - TopicStub +translation_of: Mozilla/QA +--- +<p>The Mozilla Quality Assurance (QA) team drives software quality assurance activities across Mozilla and plays a key role in releasing a diverse range of software products on schedule. Within each project in Mozilla, we work to explore new features, write and execute tests, uncover and file bugs, build and maintain tools, collect and analyze metrics, and support the release world-class products that promote the open Web.</p> + +<p><span class="seoSummary">Here you'll find articles and tools to help you gear up to join the QA team testing Firefox to ensure that each release is as good as it can be.</span></p> + +<h2 id="Get_started">Get started</h2> + +<ul class="card-grid"> + <li><span>How can I help test?</span> + + <p>There are lots of ways for you to become a <a href="/en-US/docs/Mozilla/QA/How_can_I_help_test_">community contributor</a> to the Mozilla quality team.</p> + </li> + <li><span>Bugs</span> + <p>All Mozilla projects use <a href="https://bugzilla.mozilla.org/">Bugzilla</a> to track bugs. Learn how to <a href="/en-US/docs/Mozilla/QA/Bug_writing_guidelines" title="/en-US/docs/Mozilla/QA/Bug_writing_guidelines">report a bug</a> and get familiar with <a href="/en-US/docs/What_to_do_and_what_not_to_do_in_Bugzilla">what to do in Bugzilla</a>.</p> + </li> + <li><span>Events</span> + <p>Get involved in our weekly <a href="/en-US/docs/Mozilla/QA/Bug_Verification_Day">Bug Verification Day</a> or <a href="/en-US/docs/Mozilla/QA/Bug_Triage_Day">Bug Triage Day</a>. You may even <a href="/en-US/docs/Mozilla/QA/Organizing_a_Testday">organize a testday</a> for your local community!</p> + </li> + <li><span>IRC</span> + <p><a href="/en-US/docs/Mozilla/QA/Getting_Started_with_IRC">Get started with IRC</a>, the primary form of communication for members of the Mozilla community.</p> + </li> +</ul> + +<h2 id="Bugs">Bugs</h2> + +<div class="row topicpage-table"> +<div class="section"> +<h3 id="Reporting_bugs">Reporting bugs</h3> + +<dl> + <dt><a href="/en-US/docs/Mozilla/Bugzilla">Bugzilla</a></dt> + <dd>All Mozilla projects use <a href="https://bugzilla.mozilla.org/">Bugzilla</a> to track bugs. You will need to <a href="https://bugzilla.mozilla.org/createaccount.cgi">create an account with Bugzilla</a> in order to report bugs and triage them.</dd> + <dt><a href="/en-US/docs/Mozilla/QA/Bug_writing_guidelines" title="/en-US/docs/Mozilla/QA/Bug_writing_guidelines">Bug writing guidelines</a></dt> + <dd>The more effectively a bug is reported, the more likely that an engineer will actually fix it. By following these guidelines, you can help ensure that your bugs stay at the top of the Mozilla engineers' heap, and get fixed.</dd> + <dt><a href="/en-US/docs/Mozilla/QA/A_Bugs_Life" title="/en-US/docs/Mozilla/QA/A_Bugs_Life">A Bug's Life</a></dt> + <dd>This tutorial will give an overview of what happens in the states that a bug will go through as well as how it will go from one to the next within its total life. It also explains the meaning of flags/keywords used in QA.</dd> + <dt><a href="/en-US/docs/Mozilla/QA/Filing_Crash_Bugs">Filing Crash Bugs</a></dt> + <dd>This document lists guidelines and tips on how to file bug reports for crashes in a way that helps in debugging and fixing the reported issue.</dd> +</dl> +</div> + +<div class="section"> +<h3 id="Triaging_bugs">Triaging bugs</h3> + +<dl> + <dt><a href="/en-US/docs/Mozilla/QA/Confirming_unconfirmed_bugs" title="en-US/docs/Confirming unconfirmed bugs">Confirming unconfirmed bugs</a></dt> + <dd>Identify useful bug reports and close the rest.</dd> + <dt><a href="/en-US/docs/Mozilla/QA/Triaging_Bugs_for_Firefox" title="/en-US/docs/Mozilla/QA/Triaging_Bugs_for_Firefox">Triaging Bugs for Firefox</a></dt> + <dd>Information about the entire bug triaging process – from processing incoming bugs to narrowing down the steps to reproducing bugs.</dd> + <dt><a href="/en-US/docs/Screening_duplicate_bugs">Screening duplicate bugs</a></dt> + <dd>Help get bugs fixed faster by screening incoming reports for duplicates.</dd> + <dt><a href="/en-US/docs/What_to_do_and_what_not_to_do_in_Bugzilla">General Guidelines</a></dt> + <dd>What to do and what not to do in Bugzilla.</dd> +</dl> +</div> +</div> + +<hr> +<h2 id="Manual_testing">Manual testing</h2> + +<div class="row topicpage-table"> +<div class="section"> +<dl> + <dt><a href="/en-US/docs/Mozilla/QA/Test_Case_Writing_Primer">Manual Test Case Writing Primer</a></dt> + <dd>How to write proper manual test cases</dd> +</dl> +</div> + +<div class="section"> +<dl> + <dt><a href="https://testrail.stage.mozaws.net/">TestRail</a></dt> + <dd>Mozilla QA's manual test cases reside in TestRail. You will need an LDAP account in order to login and execute test cases. Learn more on the <a href="https://wiki.mozilla.org/TestEngineering/Testrail">TestRail wiki page</a>.</dd> +</dl> +</div> +</div> + +<hr> +<h2 id="Automated_testing">Automated testing</h2> + +<div class="row topicpage-table"> +<div class="section"> +<dl> + <dt><a href="/en-US/docs/Mozilla/QA/Automated_testing" title="/en-US/docs/Mozilla/QA/Automated_testing">Automated testing at Mozilla</a></dt> + <dd>Documentation about creating and using automated tests for Mozilla code.</dd> + <dt><a href="/en-US/docs/Mozilla/QA/Running_automated_tests">Running automated tests</a></dt> + <dd> + <p>This page lists the steps required to run Mozilla's automated test suites.</p> + </dd> + <dt><a href="/en-US/docs/Mozilla/QA/Developing_tests" title="en-US/docs/Developing_Tests">Developing tests</a></dt> + <dd>Ensure that future changes to Mozilla don't break things that currently work correctly.</dd> + <dt><a href="/en-US/docs/Mozilla/QA/Avoiding_intermittent_oranges" title="en-US/docs/QA/Avoiding intermittent oranges">Avoiding intermittent test failures</a></dt> + <dd>Suggestions for ways to make your tests more reliable, thereby helping to avoid random, intermittent test failures.</dd> + <dt><a href="/en-US/docs/Mozilla/QA/Test_Verification">Test Verification</a></dt> + <dd>When a changeset adds a new test, or modifies an existing test, the test verification (TV) test suite performs additional testing to help find intermittent failures in the modified test as quickly as possible.</dd> + <dt><a href="/en-US/docs/Mozilla/QA/Mozharness_FAQ">Mozharness FAQ</a></dt> + <dd>Answers to common questions about Mozharness.</dd> +</dl> +</div> + +<div class="section"> +<dl> + <dt><a href="/en-US/docs/Mozilla/QA/Robocop" title="/en-US/docs/Mozilla/QA/Robocop">Robocop</a></dt> + <dd>Robocop is the automated testing system used for Firefox for Android. Learn its <a href="/en-US/docs/Mozilla/QA/Robocop/Code_style_guidelines">code style guidelines</a></dd> + <dt><a href="/en-US/docs/Mozilla/QA/Marionette">Marionette</a></dt> + <dd>Get started with Marionette UI testing.</dd> + <dt><a href="/en-US/docs/Mozilla/QA/web-platform-tests">web-platform-tests</a></dt> + <dd>Learn how to use the industry standard, cross-browser, cross-platform <a href="http://testthewebforward.org/docs/">Web runtime testing system</a> from the <a href="https://www.w3.org/">W3C</a> used by Mozilla and others to ensure browser interoperability.</dd> + <dt><a href="/en-US/docs/Mozilla/QA/external-media-tests">External Media Tests</a></dt> + <dd>Get started testing HTML5-based video elements using VideoPuppeteer, a <a href="/en-US/docs/Mozilla/QA/Marionette">Marionette</a>- -based test suite used to test sites like YouTube and Netflix.</dd> + <dt><a href="/en-US/docs/Mozilla/QA/Chrome_tests">Chrome tests</a></dt> + <dd>A chrome test is basically a <a href="https://developer.mozilla.org/en-US/docs/Mochitest" title="en/Mochitest">Mochitest</a> running with chrome privileges.</dd> +</dl> +</div> +</div> + +<hr> +<h2 id="Firefox_QE">Firefox QE</h2> + +<div class="row topicpage-table"> +<div class="section"> +<dl> + <dt><a href="/en-US/docs/Mozilla/QA/Triaging_Bugs_for_Firefox" title="/en-US/docs/Mozilla/QA/Triaging_Bugs_for_Firefox">Triaging Bugs for Firefox</a></dt> + <dd>Information about the entire bug triaging process – from processing incoming bugs to narrowing down the steps to reproduce a bug.</dd> +</dl> + +<dl> + <dt><a href="/en-US/docs/Mozilla/QA/Tips_and_Tricks">Tips and Tricks</a></dt> + <dd>These tips and tricks will make your life easier when you are testing.</dd> +</dl> +<a href="/en-US/docs/Downloading_Nightly_or_Trunk_Builds">Downloading Nightly or Trunk Builds</a> + +<dl> + <dd>Every 24 hours, a "nightly" build is created that testers all over the world download and test, reporting as they go along on any bugs that hit them. </dd> +</dl> +</div> + +<div class="section"> +<dl> + <dt><a href="/en-US/docs/Mozilla/Command_Line_Options">Command Line Options</a></dt> + <dd>Command line options are used to specify various startup options for Firefox.</dd> + <dt><a href="/en-US/docs/Mozilla/Performance/Reporting_a_Performance_Problem">Reporting a Performance Problem</a></dt> + <dd>This article will guide you in reporting a performance problem using the <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Performance/Profiling_with_the_Built-in_Profiler">Gecko Profiler extension</a>.</dd> + <dt><a href="/en-US/docs/Mozilla/Projects/Crash_reporting">Crash reporting</a></dt> + <dd>Firefox ships with an open-source crash reporting system.</dd> +</dl> +</div> +</div> + +<hr> +<h2 id="Firefox_for_Android">Firefox for Android</h2> + +<div class="row topicpage-table"> +<div class="section"> +<dl> + <dt><a href="/en-US/docs/Mozilla/QA/Mobile_Firefox">Mobile Firefox</a></dt> + <dd>Firefox for Android is the mobile version of Firefox with a native Android look and feel.</dd> + <dt><a href="/en-US/Firefox_for_Android/Compatibility_Testing">Compatibility Testing</a></dt> + <dd>Help us identify websites that do not work well in Firefox by reporting the specific issues that you find in your investigation.</dd> +</dl> +</div> + +<div class="section"> +<dl> + <dt><a href="/en-US/docs/Mozilla/QA/Fennec_Android:_Logging_with_the_Android_Debug_and_Logcat">Logging with the Android Debug Bridge and Logcat</a></dt> + <dd>This article will provide a walkthrough in downloading and setting up an environment to which one can gain access to and view Android system logs.</dd> + <dt><a href="/en-US/docs/Mozilla/QA/Firefox_Mobile:_Enabling_the_Error_Console">Enabling the Error Console</a></dt> + <dd>See the Mozilla Hacks article on <a class="external external-icon" href="https://hacks.mozilla.org/2012/08/remote-debugging-on-firefox-for-android/">Remote Debugging on Firefox for Android</a> for web content. If you need to debug the Firefox browser itself use Android's <a class="external external-icon" href="http://developer.android.com/tools/help/logcat.html">adb logcat</a>.</dd> +</dl> +</div> +</div> + +<hr> +<h2 id="Firefox_OS">Firefox OS</h2> + +<div class="row topicpage-table"> +<div class="section"> +<h3 id="Manual_testing_2">Manual testing</h3> + +<dl> + <dt><a href="/en-US/Firefox_OS/Simulator_vs_Emulator_vs_Device">Simulator vs Emulator vs Device</a></dt> + <dd>These are three basic options when it comes to getting a Firefox OS environment in order to work on, or developing for, Firefox OS.</dd> + <dt><a href="/en-US/Firefox_OS/Debugging">Debugging</a></dt> + <dd>Discover the different tools at your disposal to debug your Firefox OS code.</dd> + <dt><a href="/en-US/Firefox_OS/Developing_Firefox_OS/Filing_bugs_against_Firefox_OS">Reporting Bugs</a></dt> + <dd>This article provides a guide to filing bugs against the Firefox OS project, including Gaia and B2G.</dd> +</dl> +</div> + +<div class="section"> +<h3 id="Platform_(Gecko)">Platform (Gecko)</h3> + +<dl> + <dt><a href="/en-US/Firefox_OS/Platform/Automated_testing">Automated Testing</a></dt> + <dd>Learn various aspects of testing Firefox OS, including running different tests, automation, and result reporting and tracking.</dd> + <dt><a href="/en-US/Firefox_OS/Platform/Automated_testing/Gaia_performance_tests">Gaia Performance Tests</a></dt> + <dd>This article provides information about running performance tests on Gaia, as well as how to create new tests.</dd> + <dt><a href="/en-US/Firefox_OS/Platform/Feature_support_chart">Feature Support Chart</a></dt> + <dd>There are several different builds of Firefox OS you can download or build for yourself, and there are some differences between the types of features available on each device.</dd> +</dl> +</div> +</div> + +<hr> +<h2 id="Web_QA">Web QA</h2> + +<div class="row topicpage-table"> +<div class="section"> +<dl> + <dt><a href="/en-US/docs/Mozilla/QA/Reducing_testcases" title="en-US/docs/Reducing testcases">Reducing testcases</a></dt> + <dd>Improve bug reports by turning broken web pages into simple testcases, which can help developers understand the bug and can also be used for creating automated tests.</dd> + <dt><a href="/en-US/docs/Mozilla/QA/Managing_Web_QA_XFails">Managing XFails</a></dt> + <dd>One of the ongoing tasks of the Web QA department is managing xfails. This document will explain what xfails are, and describe the steps one can take to investigate and update them.</dd> +</dl> +</div> + +<div class="section"> +<dl> + <dt><a href="/en-US/docs/Mozilla/QA/Running_Web_QA_automated_tests">Running Automated Tests</a></dt> + <dd>So you’re interested in contributing to Mozilla Web QA automation projects but don’t know where to start? This doc will help you get up and running a set of tests locally.</dd> +</dl> +</div> +</div> + +<hr> +<h2 id="Glossary">Glossary</h2> + +<div class="section"> +<dl> + <dt><a href="/en-US/docs/Glossary/Smoke_Test">Smoke Test</a></dt> + <dd></dd> +</dl> +</div> + +<h2 id="See_also">See also</h2> + +<ul> + <li><a href="https://lists.mozilla.org/listinfo/dev-quality">Mailing list</a></li> + <li><a href="https://quality.mozilla.org/">Blog</a></li> + <li><a href="/en-US/docs/tag/QA" title="en-US/docs/tag/QA">View all documents tagged QA</a></li> + <li><a href="/en-US/docs/tag/QA:Tools" title="en-US/docs/tag/QA:Tools">View all documents tagged QA:Tools</a></li> +</ul> diff --git a/files/it/mozilla/tech/index.html b/files/it/mozilla/tech/index.html new file mode 100644 index 0000000000..f9682e62e1 --- /dev/null +++ b/files/it/mozilla/tech/index.html @@ -0,0 +1,14 @@ +--- +title: Mozilla technologies +slug: Mozilla/Tech +tags: + - Landing + - Mozilla + - NeedsTranslation + - Reference + - TopicStub + - XUL +translation_of: Mozilla/Tech +--- +<p>Mozilla has several technologies used as components of its projects. These are documented here. (flesh out this text).</p> +<p>{{LandingPageListSubpages}}</p> |