chrome.contentSettings

Descrizione

Utilizza l'API chrome.contentSettings per modificare le impostazioni che controllano se i siti web possono utilizzare funzionalità come cookie, JavaScript e plug-in. In termini più generali, le impostazioni dei contenuti ti consentono di personalizzare il comportamento di Chrome in base al sito anziché a livello globale.

Autorizzazioni

contentSettings

Per utilizzare l'API, devi dichiarare l'autorizzazione "contentSettings" nel manifest dell'estensione. Ad esempio:

{   "name": "My extension",   ...   "permissions": [     "contentSettings"   ],   ... } 

Concetti e utilizzo

Pattern di impostazione dei contenuti

Puoi utilizzare i pattern per specificare i siti web interessati da ogni impostazione dei contenuti. Ad esempio, https://*.youtube.com/* specifica youtube.com e tutti i relativi sottodomini. La sintassi per i pattern di impostazione dei contenuti è la stessa dei pattern di corrispondenza, con alcune differenze:

  • Per gli URL http, https e ftp, il percorso deve essere un carattere jolly (/*). Per gli URL file, il percorso deve essere specificato completamente e non deve contenere caratteri jolly.
  • A differenza dei pattern di corrispondenza, i pattern delle impostazioni dei contenuti possono specificare un numero di porta. Se viene specificato un numero di porta, il pattern corrisponde solo ai siti web con quella porta. Se non viene specificato alcun numero di porta, il pattern corrisponde a tutte le porte.

Precedenza dei pattern

Quando per un determinato sito si applicano più regole di impostazione dei contenuti, ha la precedenza la regola con il pattern più specifico.

Ad esempio, i seguenti pattern sono ordinati in base alla precedenza:

  1. https://www.example.com/*
  2. https://*.example.com/* (corrisponde a example.com e a tutti i sottodomini)
  3. <all_urls> (corrispondenza con ogni URL)

Tre tipi di caratteri jolly influiscono sulla specificità di un pattern:

  • Caratteri jolly nella porta (ad es. https://www.example.com:*/*)
  • Caratteri jolly nello schema (ad esempio *://www.example.com:123/*)
  • Caratteri jolly nel nome host (ad esempio https://*.example.com:123/*)

Se un pattern è più specifico di un altro in una parte, ma meno specifico in un'altra, le diverse parti vengono controllate nel seguente ordine: nome host, schema, porta. Ad esempio, i seguenti pattern sono ordinati in base alla precedenza:

  1. https://www.example.com:*/* Specifica il nome host e lo schema.
  2. *:/www.example.com:123/* Non è altrettanto elevata perché, sebbene specifichi il nome host, non specifica lo schema.
  3. https://*.example.com:123/* Inferiore perché, sebbene specifichi la porta e lo schema, ha un carattere jolly nel nome host.

Pattern principali e secondari

L'URL preso in considerazione per decidere quale impostazione dei contenuti applicare dipende dal tipo di contenuti. Ad esempio, per contentSettings.notifications le impostazioni si basano sull'URL mostrato nella omnibox. Questo URL è chiamato "principale".

Alcuni tipi di contenuti possono prendere in considerazione URL aggiuntivi. Ad esempio, se un sito è autorizzato a impostare un contentSettings.cookies viene deciso in base all'URL della richiesta HTTP (che è l'URL principale in questo caso) e all'URL visualizzato nella omnibox (chiamato URL "secondario").

Se più regole hanno pattern primari e secondari, ha la precedenza la regola con il pattern primario più specifico. Se più regole hanno lo stesso pattern primario, ha la precedenza la regola con il pattern secondario più specifico. Ad esempio, il seguente elenco di coppie di pattern primario/secondario è ordinato per precedenza:

PrecedenzaPattern principalePattern secondario
1https://www.moose.com/*,https://www.wombat.com/*
2https://www.moose.com/*,<all_urls>
3<all_urls>,https://www.wombat.com/*
4<all_urls>,<all_urls>

I pattern secondari non sono supportati per l'impostazione dei contenuti delle immagini.

Identificatori di risorse

Gli identificatori delle risorse consentono di specificare le impostazioni dei contenuti per sottotipi specifici di un tipo di contenuti. Attualmente, l'unico tipo di contenuti che supporta gli identificatori di risorse è contentSettings.plugins, dove un identificatore di risorse identifica un plug-in specifico. Quando vengono applicate le impostazioni dei contenuti, vengono controllate prima le impostazioni per il plug-in specifico. Se non vengono trovate impostazioni per il plug-in specifico, vengono controllate le impostazioni generali dei contenuti per i plug-in.

Ad esempio, se una regola di impostazione dei contenuti ha l'identificatore di risorsa adobe-flash-player e il pattern <all_urls>, ha la precedenza su una regola senza identificatore di risorsa e con il pattern https://www.example.com/*, anche se quest'ultimo è più specifico.

Puoi ottenere un elenco di identificatori di risorse per un tipo di contenuti chiamando il metodo contentSettings.ContentSetting.getResourceIdentifiers(). L'elenco restituito può variare in base al set di plug-in installati sul computer dell'utente, ma Chrome cerca di mantenere stabili gli identificatori durante gli aggiornamenti dei plug-in.

Esempi

Per provare questa API, installa l'esempio di API contentSettings dal repository chrome-extension-samples.

Tipi

AutoVerifyContentSetting

Chrome 113+

Enum

"allow"

"block"

CameraContentSetting

Chrome 46 o versioni successive

Enum

"allow"

"block"

"ask"

ClipboardContentSetting

Chrome 121+

Enum

"allow"

"block"

"ask"

ContentSetting

Proprietà

  • cancella

    void

    Cancella tutte le regole di impostazione dei contenuti impostate da questa estensione.

    La funzione clear ha questo aspetto:

    (details: object) => {...}

    • dettagli

      oggetto

      • ambito

        Ambito facoltativo

        Dove cancellare l'impostazione (impostazione predefinita: normale).

    • returns

      Promise<void>

      Chrome 96+
  • get

    void

    Recupera l'impostazione dei contenuti corrente per una determinata coppia di URL.

    La funzione get ha questo aspetto:

    (details: object) => {...}

    • dettagli

      oggetto

      • in incognito

        booleano facoltativo

        Se controllare le impostazioni dei contenuti per una sessione di navigazione in incognito. (valore predefinito false)

      • primaryUrl

        stringa

        L'URL principale per cui devono essere recuperate le impostazioni dei contenuti. Tieni presente che il significato di un URL principale dipende dal tipo di contenuti.

      • resourceIdentifier

        ResourceIdentifier facoltativo

        Un identificatore più specifico del tipo di contenuti per cui devono essere recuperate le impostazioni.

      • secondaryUrl

        stringa facoltativa

        L'URL secondario per cui devono essere recuperate le impostazioni dei contenuti. Il valore predefinito è l'URL principale. Tieni presente che il significato di un URL secondario dipende dal tipo di contenuti e non tutti i tipi di contenuti utilizzano URL secondari.

    • returns

      Promise<object>

      Chrome 96+
  • getResourceIdentifiers

    void

    La funzione getResourceIdentifiers ha questo aspetto:

    () => {...}

  • imposta

    void

    Applica una nuova regola di impostazione dei contenuti.

    La funzione set ha questo aspetto:

    (details: object) => {...}

    • dettagli

      oggetto

      • primaryPattern

        stringa

        Il pattern per l'URL principale. Per informazioni dettagliate sul formato di un pattern, vedi Pattern delle impostazioni dei contenuti.

      • resourceIdentifier

        ResourceIdentifier facoltativo

        L'identificatore della risorsa per il tipo di contenuto.

      • ambito

        Ambito facoltativo

        Dove impostare l'impostazione (predefinita: normale).

      • secondaryPattern

        stringa facoltativa

        Il pattern per l'URL secondario. Il valore predefinito è la corrispondenza di tutti gli URL. Per informazioni dettagliate sul formato di un pattern, vedi Pattern delle impostazioni dei contenuti.

      • impostazione

        qualsiasi

        L'impostazione applicata da questa regola. Per i valori possibili, consulta la descrizione dei singoli oggetti ContentSetting.

    • returns

      Promise<void>

      Chrome 96+

CookiesContentSetting

Chrome 44+

Enum

"allow"

"block"

"session_only"

FullscreenContentSetting

Chrome 44+

Valore

"allow"

ImagesContentSetting

Chrome 44+

Enum

"allow"

"block"

JavascriptContentSetting

Chrome 44+

Enum

"allow"

"block"

LocationContentSetting

Chrome 44+

Enum

"allow"

"block"

"ask"

MicrophoneContentSetting

Chrome 46 o versioni successive

Enum

"allow"

"block"

"ask"

MouselockContentSetting

Chrome 44+

Valore

"allow"

MultipleAutomaticDownloadsContentSetting

Chrome 44+

Enum

"allow"

"block"

"ask"

NotificationsContentSetting

Chrome 44+

Enum

"allow"

"block"

"ask"

PluginsContentSetting

Chrome 44+

Valore

"block"

PopupsContentSetting

Chrome 44+

Enum

"allow"

"block"

PpapiBrokerContentSetting

Chrome 44+

Valore

"block"

ResourceIdentifier

L'unico tipo di contenuto che utilizza gli identificatori di risorse è contentSettings.plugins. Per saperne di più, consulta Identificatori di risorse.

Proprietà

  • descrizione

    stringa facoltativa

    Una descrizione leggibile della risorsa.

  • id

    stringa

    L'identificatore della risorsa per il tipo di contenuto specificato.

Scope

Chrome 44+

L'ambito di ContentSetting. Una delle regular: impostazione per il profilo normale (che viene ereditata dal profilo di navigazione in incognito se non viene sostituita altrove), incognito\_session\_only: impostazione per il profilo di navigazione in incognito che può essere impostata solo durante una sessione di navigazione in incognito e viene eliminata al termine della sessione (sostituisce le impostazioni normali).

Enum

"normale"

"incognito_session_only"

Proprietà

automaticDownloads

Se consentire ai siti di scaricare automaticamente più file. Una delle seguenti opzioni: allow: Consenti ai siti di scaricare automaticamente più file, block: Non consentire ai siti di scaricare automaticamente più file, ask: Chiedi quando un sito vuole scaricare automaticamente i file dopo il primo file. Il valore predefinito è ask. L'URL principale è l'URL del frame di primo livello. L'URL secondario non viene utilizzato.

autoVerify

Chrome 113+

Se consentire ai siti di utilizzare l'API Private State Tokens. Una delle seguenti opzioni: allow: consente ai siti di utilizzare l'API Private State Tokens, block: impedisce ai siti di utilizzare l'API Private State Tokens. Il valore predefinito è allow. Quando viene chiamato set(), il pattern URL principale deve essere <all_urls>. L'URL secondario non viene utilizzato.

camera

Chrome 46 o versioni successive

Se consentire ai siti di accedere alla fotocamera. Una delle seguenti opzioni: allow: consenti ai siti di accedere alla videocamera, block: non consentire ai siti di accedere alla videocamera, ask: chiedi quando un sito vuole accedere alla videocamera. Il valore predefinito è ask. L'URL principale è l'URL del documento che ha richiesto l'accesso alla videocamera. L'URL secondario non viene utilizzato. NOTA: l'impostazione "consenti" non è valida se entrambi i pattern sono "<all_urls>".

clipboard

Chrome 121+

Specifica se consentire ai siti di accedere agli appunti tramite le funzionalità avanzate dell'API Async Clipboard. Le funzionalità "avanzate" includono qualsiasi operazione diversa dalla scrittura di formati integrati dopo un gesto dell'utente, ad esempio la possibilità di leggere, scrivere formati personalizzati e scrivere senza un gesto dell'utente. Una delle seguenti opzioni: allow: Consenti ai siti di utilizzare le funzionalità avanzate degli appunti, block: Non consentire ai siti di utilizzare le funzionalità avanzate degli appunti, ask: Chiedi quando un sito vuole utilizzare le funzionalità avanzate degli appunti. Il valore predefinito è ask. L'URL principale è l'URL del documento che ha richiesto l'accesso agli appunti. L'URL secondario non viene utilizzato.

cookies

Se consentire o meno l'impostazione di cookie e altri dati locali da parte dei siti web. Uno dei seguenti valori: allow: accetta i cookie, block: blocca i cookie, session\_only: accetta i cookie solo per la sessione corrente. Il valore predefinito è allow. L'URL principale è l'URL che rappresenta l'origine del cookie. L'URL secondario è l'URL del frame di primo livello.

fullscreen

Deprecato. Non ha più alcun effetto. L'autorizzazione a schermo intero viene ora concessa automaticamente per tutti i siti. Il valore è sempre allow.

images

Se mostrare le immagini. Una delle allow: mostra le immagini. block: non mostrare le immagini. Il valore predefinito è allow. L'URL principale è l'URL del frame di primo livello. L'URL secondario è l'URL dell'immagine.

javascript

Se eseguire JavaScript. Una delle allow: esegui JavaScript, block: non eseguire JavaScript. Il valore predefinito è allow. L'URL principale è l'URL del frame di primo livello. L'URL secondario non viene utilizzato.

location

Se consentire la geolocalizzazione. Una delle seguenti opzioni: allow: consente ai siti di monitorare la tua posizione fisica, block: non consente ai siti di monitorare la tua posizione fisica, ask: chiede prima di consentire ai siti di monitorare la tua posizione fisica. Il valore predefinito è ask. L'URL principale è l'URL del documento che ha richiesto i dati sulla posizione. L'URL secondario è l'URL del frame di primo livello (che può essere diverso o meno dall'URL richiedente).

microphone

Chrome 46 o versioni successive

Se consentire ai siti di accedere al microfono. Una delle seguenti opzioni: allow: consente ai siti di accedere al microfono, block: non consente ai siti di accedere al microfono, ask: chiede quando un sito vuole accedere al microfono. Il valore predefinito è ask. L'URL principale è l'URL del documento che ha richiesto l'accesso al microfono. L'URL secondario non viene utilizzato. NOTA: l'impostazione "consenti" non è valida se entrambi i pattern sono "<all_urls>".

mouselock

Deprecato. Non ha più alcun effetto. L'autorizzazione di blocco del mouse viene ora concessa automaticamente per tutti i siti. Il valore è sempre allow.

notifications

Se consentire ai siti di mostrare notifiche desktop. Una delle seguenti opzioni: allow: Consenti ai siti di mostrare le notifiche desktop, block: Non consentire ai siti di mostrare le notifiche desktop, ask: Chiedi quando un sito vuole mostrare le notifiche desktop. Il valore predefinito è ask. L'URL principale è l'URL del documento che vuole mostrare la notifica. L'URL secondario non viene utilizzato.

plugins

Deprecato. Con la rimozione del supporto di Flash in Chrome 88, questa autorizzazione non ha più alcun effetto. Il valore è sempre block. Le chiamate a set() e clear() verranno ignorate.

popups

Se consentire ai siti di mostrare popup. Una delle seguenti opzioni: allow: Consenti ai siti di mostrare popup, block: Non consentire ai siti di mostrare popup. Il valore predefinito è block. L'URL principale è l'URL del frame di primo livello. L'URL secondario non viene utilizzato.

unsandboxedPlugins

Deprecato. In precedenza, controllava se consentire ai siti di eseguire plug-in non sottoposti a sandbox, ma con la rimozione del processo broker Flash in Chrome 88, questa autorizzazione non ha più alcun effetto. Il valore è sempre block. Le chiamate a set() e clear() verranno ignorate.