diff options
author | Ryan Johnson <rjohnson@mozilla.com> | 2021-04-29 16:16:42 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-29 16:16:42 -0700 |
commit | 95aca4b4d8fa62815d4bd412fff1a364f842814a (patch) | |
tree | 5e57661720fe9058d5c7db637e764800b50f9060 /files/it/mozilla/add-ons/webextensions | |
parent | ee3b1c87e3c8e72ca130943eed260ad642246581 (diff) | |
download | translated-content-95aca4b4d8fa62815d4bd412fff1a364f842814a.tar.gz translated-content-95aca4b4d8fa62815d4bd412fff1a364f842814a.tar.bz2 translated-content-95aca4b4d8fa62815d4bd412fff1a364f842814a.zip |
remove retired locales (#699)
Diffstat (limited to 'files/it/mozilla/add-ons/webextensions')
10 files changed, 0 insertions, 1385 deletions
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 deleted file mode 100644 index 56e7917140..0000000000 --- a/files/it/mozilla/add-ons/webextensions/anatomy_of_a_webextension/index.html +++ /dev/null @@ -1,146 +0,0 @@ ---- -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 deleted file mode 100644 index 955086de10..0000000000 --- a/files/it/mozilla/add-ons/webextensions/api/index.html +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: JavaScript APIs -slug: Mozilla/Add-ons/WebExtensions/API -tags: - - NeedsTranslation - - TopicStub - - WebExtensions -translation_of: Mozilla/Add-ons/WebExtensions/API ---- -<div>{{AddonSidebar}}</div> - -<div> -<p>JavaScript APIs for WebExtensions can be used inside the extension's <a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Anatomy_of_a_WebExtension#Background_scripts">background scripts</a> and in any other documents bundled with the extension, including <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Browser_action">browser action</a> or <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Page_actions">page action</a> popups, <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Sidebars">sidebars</a>, <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Options_pages">options pages</a>, or <a href="/en-US/Add-ons/WebExtensions/manifest.json/chrome_url_overrides">new tab pages</a>. A few of these APIs can also be accessed by an extension's <a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Anatomy_of_a_WebExtension#Content_scripts">content scripts</a> (see the <a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Content_scripts#WebExtension_APIs">list in the content script guide</a>).</p> - -<p>To use the more powerful APIs you need to <a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/manifest.json/permissions">request permission</a> in your extension's manifest.json.</p> - -<p>You can access the APIs using the <code>browser</code> namespace:</p> - -<pre class="brush: js line-numbers language-js"><code class="language-js"><span class="keyword token">function</span> <span class="function token">logTabs</span><span class="punctuation token">(</span>tabs<span class="punctuation token">)</span> <span class="punctuation token">{</span> - console<span class="punctuation token">.</span><span class="function token">log</span><span class="punctuation token">(</span>tabs<span class="punctuation token">)</span><span class="punctuation token">;</span> -<span class="punctuation token">}</span> - -browser<span class="punctuation token">.</span>tabs<span class="punctuation token">.</span><span class="function token">query</span><span class="punctuation token">(</span><span class="punctuation token">{</span>currentWindow<span class="punctuation token">:</span> <span class="keyword token">true</span><span class="punctuation token">}</span><span class="punctuation token">,</span> logTabs<span class="punctuation token">)</span><span class="punctuation token">;</span></code></pre> -</div> - -<div> -<p>Many of the APIs are asynchronous, returning a <code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise">Promise</a></code>:</p> - -<pre class="brush: js line-numbers language-js"><code class="language-js"><span class="keyword token">function</span> <span class="function token">logCookie</span><span class="punctuation token">(</span>c<span class="punctuation token">)</span> <span class="punctuation token">{</span> - console<span class="punctuation token">.</span><span class="function token">log</span><span class="punctuation token">(</span>c<span class="punctuation token">)</span><span class="punctuation token">;</span> -<span class="punctuation token">}</span> - -<span class="keyword token">function</span> <span class="function token">logError</span><span class="punctuation token">(</span>e<span class="punctuation token">)</span> <span class="punctuation token">{</span> - console<span class="punctuation token">.</span><span class="function token">error</span><span class="punctuation token">(</span>e<span class="punctuation token">)</span><span class="punctuation token">;</span> -<span class="punctuation token">}</span> - -<span class="keyword token">var</span> setCookie <span class="operator token">=</span> browser<span class="punctuation token">.</span>cookies<span class="punctuation token">.</span><span class="keyword token">set</span><span class="punctuation token">(</span> - <span class="punctuation token">{</span>url<span class="punctuation token">:</span> <span class="string token">"https://developer.mozilla.org/"</span><span class="punctuation token">}</span> -<span class="punctuation token">)</span><span class="punctuation token">;</span> -setCookie<span class="punctuation token">.</span><span class="function token">then</span><span class="punctuation token">(</span>logCookie<span class="punctuation token">,</span> logError<span class="punctuation token">)</span><span class="punctuation token">;</span></code></pre> -</div> - -<div> -<p>Note that this is different from Google Chrome's extension system, which uses the <code>chrome</code> namespace instead of <code>browser</code>, and which uses callbacks instead of promises for asynchronous functions. As a porting aid, the Firefox implementation of WebExtensions APIs supports <code>chrome</code> and callbacks as well as <code>browser</code> and promises. Mozilla has also written a polyfill which enables code that uses <code>browser</code> and promises to work unchanged in Chrome: <a class="external external-icon" href="https://github.com/mozilla/webextension-polyfill">https://github.com/mozilla/webextension-polyfill</a>.</p> - -<p>Firefox also implements these APIs under the <code>chrome</code> namespace using callbacks. This allows code written for Chrome to run largely unchanged in Firefox for the APIs documented here.</p> - -<p>Microsoft Edge uses the <code>browser</code> namespace, but doesn't yet support promise-based asynchronous APIs. In Edge, for the time being, asynchronous APIs must use callbacks.</p> - -<p>Not all browsers support all the APIs: for the details, see <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Browser_support_for_JavaScript_APIs">Browser support for JavaScript APIs</a>.</p> -</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 deleted file mode 100644 index 7f52576e62..0000000000 --- a/files/it/mozilla/add-ons/webextensions/api/runtime/connectnative/index.html +++ /dev/null @@ -1,122 +0,0 @@ ---- -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 deleted file mode 100644 index 1768642e7a..0000000000 --- a/files/it/mozilla/add-ons/webextensions/api/runtime/index.html +++ /dev/null @@ -1,168 +0,0 @@ ---- -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 deleted file mode 100644 index 07f8f4d05a..0000000000 --- a/files/it/mozilla/add-ons/webextensions/api/search/index.html +++ /dev/null @@ -1,10 +0,0 @@ ---- -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/content_scripts/index.html b/files/it/mozilla/add-ons/webextensions/content_scripts/index.html deleted file mode 100644 index 109482f57e..0000000000 --- a/files/it/mozilla/add-ons/webextensions/content_scripts/index.html +++ /dev/null @@ -1,495 +0,0 @@ ---- -title: Script di contenuto -slug: Mozilla/Add-ons/WebExtensions/Content_scripts -tags: - - WebExtensions -translation_of: Mozilla/Add-ons/WebExtensions/Content_scripts -original_slug: Mozilla/Add-ons/WebExtensions/Script_contenuto ---- -<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/index.html b/files/it/mozilla/add-ons/webextensions/index.html deleted file mode 100644 index 078f67268d..0000000000 --- a/files/it/mozilla/add-ons/webextensions/index.html +++ /dev/null @@ -1,88 +0,0 @@ ---- -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/user_interface/index.html b/files/it/mozilla/add-ons/webextensions/user_interface/index.html deleted file mode 100644 index bfc48bdc9e..0000000000 --- a/files/it/mozilla/add-ons/webextensions/user_interface/index.html +++ /dev/null @@ -1,89 +0,0 @@ ---- -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/add-ons/webextensions/what_are_webextensions/index.html b/files/it/mozilla/add-ons/webextensions/what_are_webextensions/index.html deleted file mode 100644 index 94139ae0ae..0000000000 --- a/files/it/mozilla/add-ons/webextensions/what_are_webextensions/index.html +++ /dev/null @@ -1,60 +0,0 @@ ---- -title: Cosa sono le estensioni? -slug: Mozilla/Add-ons/WebExtensions/What_are_WebExtensions -tags: - - Estensioni - - WebExtension -translation_of: Mozilla/Add-ons/WebExtensions/What_are_WebExtensions -original_slug: Mozilla/Add-ons/WebExtensions/Cosa_sono_le_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/your_first_webextension/index.html b/files/it/mozilla/add-ons/webextensions/your_first_webextension/index.html deleted file mode 100644 index 88781a40c2..0000000000 --- a/files/it/mozilla/add-ons/webextensions/your_first_webextension/index.html +++ /dev/null @@ -1,154 +0,0 @@ ---- -title: La tua prima estensione -slug: Mozilla/Add-ons/WebExtensions/Your_first_WebExtension -tags: - - Guida - - WebExtension -translation_of: Mozilla/Add-ons/WebExtensions/Your_first_WebExtension -original_slug: Mozilla/Add-ons/WebExtensions/La_tua_prima_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> |