Description
Utilisez l'API chrome.windows pour interagir avec les fenêtres du navigateur. Vous pouvez utiliser cette API pour créer, modifier et réorganiser des fenêtres dans le navigateur.
Autorisations
Lorsqu'il est demandé, un windows.Window contient un tableau d'objets tabs.Tab. Vous devez déclarer l'autorisation "tabs" dans votre manifeste si vous avez besoin d'accéder aux propriétés url, pendingUrl, title ou favIconUrl de tabs.Tab. Exemple :
{
  "name": "My extension",
  ...
  "permissions": ["tabs"],
  ...
}
Concepts et utilisation
La fenêtre actuelle
De nombreuses fonctions du système d'extension acceptent un argument windowId facultatif, qui est défini par défaut sur la fenêtre actuelle.
La fenêtre actuelle est celle qui contient le code en cours d'exécution. Il est important de noter que cela peut être différent de la fenêtre la plus haute ou sélectionnée.
Par exemple, supposons qu'une extension crée quelques onglets ou fenêtres à partir d'un seul fichier HTML, et que ce fichier HTML contient un appel à tabs.query(). La fenêtre actuelle est celle qui contient la page qui a effectué l'appel, quelle que soit la fenêtre supérieure.
Dans le cas des service workers, la valeur de la fenêtre actuelle revient à la dernière fenêtre active. Dans certains cas, il peut ne pas y avoir de fenêtre actuelle pour les pages d'arrière-plan.
Exemples
Pour essayer cette API, installez l'exemple d'API Windows à partir du dépôt chrome-extension-samples.
Types
CreateType
Spécifie le type de fenêtre de navigateur à créer. "panel" est obsolète et n'est disponible que pour les extensions existantes figurant sur la liste d'autorisation de ChromeOS.
Énumération
"normal" 
 Spécifie que la fenêtre est une fenêtre standard.
"popup" 
 Spécifie que la fenêtre est une fenêtre pop-up.
"panel" 
 Spécifie que la fenêtre est un panneau.
QueryOptions
Propriétés
- 
    populatebooléen facultatif Si la valeur est "true", l'objet windows.Windowpossède une propriététabsqui contient une liste d'objetstabs.Tab. Les objetsTabne contiennent les propriétésurl,pendingUrl,titleetfavIconUrlque si le fichier manifeste de l'extension inclut l'autorisation"tabs".
- 
    windowTypesWindowType[] facultatif Si elle est définie, la windows.Windowrenvoyée est filtrée en fonction de son type. Si ce champ n'est pas défini, le filtre par défaut est défini sur['normal', 'popup'].
Window
Propriétés
- 
    alwaysOnTopbooléen Indique si la fenêtre est définie pour rester toujours au premier plan. 
- 
    Concentrationbooléen Indique si la fenêtre est actuellement la fenêtre sélectionnée. 
- 
    hauteurnumber facultatif Hauteur de la fenêtre, y compris le cadre, en pixels. Dans certains cas, il est possible qu'une propriété heightne soit pas attribuée à une fenêtre, par exemple lors de l'interrogation des fenêtres fermées à partir de l'APIsessions.
- 
    idnumber facultatif ID de la fenêtre. Les ID de fenêtre sont uniques dans une session de navigateur. Dans certains cas, il est possible qu'une propriété IDne soit pas attribuée à une fenêtre, par exemple lorsque vous interrogez des fenêtres à l'aide de l'APIsessions. Dans ce cas, un ID de session peut être présent.
- 
    navigation privéebooléen Indique si la fenêtre est en mode navigation privée. 
- 
    gauchenumber facultatif Décalage de la fenêtre par rapport au bord gauche de l'écran, en pixels. Dans certains cas, il est possible qu'une propriété leftne soit pas attribuée à une fenêtre, par exemple lors de l'interrogation des fenêtres fermées à partir de l'APIsessions.
- 
    sessionIdchaîne facultative ID de session utilisé pour identifier de manière unique une fenêtre, obtenu à partir de l'API sessions.
- 
    stateWindowState facultatif État de cette fenêtre de navigateur. 
- 
    ongletsTab[] facultatif Tableau d'objets tabs.Tabreprésentant les onglets actuels de la fenêtre.
- 
    topnumber facultatif Décalage de la fenêtre par rapport au bord supérieur de l'écran, en pixels. Dans certains cas, il est possible qu'une propriété topne soit pas attribuée à une fenêtre, par exemple lors de l'interrogation des fenêtres fermées à partir de l'APIsessions.
- 
    typeWindowType facultatif Type de fenêtre de navigateur. 
- 
    largeurnumber facultatif Largeur de la fenêtre, y compris le cadre, en pixels. Dans certains cas, il est possible qu'une propriété widthne soit pas attribuée à une fenêtre, par exemple lors de l'interrogation des fenêtres fermées à partir de l'APIsessions.
WindowState
État de cette fenêtre de navigateur. Dans certains cas, il est possible qu'une propriété state ne soit pas attribuée à une fenêtre, par exemple lors de l'interrogation des fenêtres fermées à partir de l'API sessions.
Énumération
"normal" 
 État normal de la fenêtre (ni réduite, ni agrandie, ni en plein écran).
"minimized" 
 État de la fenêtre réduite.
"maximized" 
 État de la fenêtre maximisée.
"fullscreen" 
 État de la fenêtre en plein écran.
"locked-fullscreen" 
 État de la fenêtre en mode plein écran verrouillé. L'utilisateur ne peut pas quitter cet état plein écran. Il n'est disponible que pour les extensions figurant sur la liste d'autorisation sur ChromeOS.
WindowType
Type de fenêtre de navigateur. Dans certains cas, il est possible qu'aucune propriété type ne soit attribuée à une fenêtre, par exemple lors de l'interrogation de fenêtres fermées à partir de l'API sessions.
Énumération
"normal" 
 Fenêtre de navigateur normale.
"popup" 
 Pop-up du navigateur.
"panel" 
 Obsolète dans cette API. Fenêtre de style panneau d'application Chrome. Les extensions ne peuvent voir que leurs propres fenêtres de panneau.
"app" 
 Obsolète dans cette API. Fenêtre d'une application Chrome. Les extensions ne peuvent voir que les fenêtres de leur propre application.
"devtools" 
 Fenêtre d'outils pour les développeurs.
Propriétés
WINDOW_ID_CURRENT
Valeur windowId représentant la fenêtre actuelle.
Valeur
-2 
 
WINDOW_ID_NONE
Valeur windowId qui représente l'absence de fenêtre du navigateur Chrome.
Valeur
-1 
 
Méthodes
create()
chrome.windows.create(
createData?: object,
): Promise<Window | undefined>
Crée (ouvre) une nouvelle fenêtre de navigateur avec les options de taille, de position ou d'URL par défaut fournies.
Paramètres
- 
    createDataobject facultatif - 
    Concentrationbooléen facultatif Si true, une fenêtre active s'ouvre. Sifalse, ouvre une fenêtre inactive.
- 
    hauteurnumber facultatif Hauteur en pixels de la nouvelle fenêtre, y compris le cadre. Si aucune valeur n'est spécifiée, la hauteur naturelle est utilisée par défaut. 
- 
    navigation privéebooléen facultatif Indique si la nouvelle fenêtre doit être une fenêtre de navigation privée. 
- 
    gauchenumber facultatif Nombre de pixels pour positionner la nouvelle fenêtre à partir du bord gauche de l'écran. Si elle n'est pas spécifiée, la nouvelle fenêtre est décalée naturellement par rapport à la dernière fenêtre sélectionnée. Cette valeur est ignorée pour les panneaux. 
- 
    setSelfAsOpenerbooléen facultatif Chrome 64 et versions ultérieuresSi la valeur est true, la propriété "window.opener" de la fenêtre nouvellement créée est définie sur l'appelant et se trouve dans la même unité de contextes de navigation associés que l'appelant.
- 
    stateWindowState facultatif Chrome 44 et versions ultérieuresÉtat initial de la fenêtre. Les états minimized,maximizedetfullscreenne peuvent pas être combinés avecleft,top,widthouheight.
- 
    tabIdnumber facultatif ID de l'onglet à ajouter à la nouvelle fenêtre. 
- 
    topnumber facultatif Nombre de pixels pour positionner la nouvelle fenêtre à partir du bord supérieur de l'écran. Si elle n'est pas spécifiée, la nouvelle fenêtre est décalée naturellement par rapport à la dernière fenêtre sélectionnée. Cette valeur est ignorée pour les panneaux. 
- 
    typeCreateType facultatif Spécifie le type de fenêtre de navigateur à créer. 
- 
    urlstring | string[] facultatif URL ou tableau d'URL à ouvrir sous forme d'onglets dans la fenêtre. Les URL complètes doivent inclure un schéma, par exemple : 'http://www.google.com', et non 'www.google.com'. Les URL non complètes sont considérées comme relatives dans l'extension. Par défaut, il s'agit de la page "Nouvel onglet". 
- 
    largeurnumber facultatif Largeur en pixels de la nouvelle fenêtre, y compris le cadre. Si aucune valeur n'est spécifiée, la largeur naturelle est utilisée par défaut. 
 
- 
    
Renvoie
- 
            Promise<Window | undefined> Chrome 88 et versions ultérieures
get()
chrome.windows.get(
windowId: number,
queryOptions?: QueryOptions,
): Promise<Window>
Obtient des informations sur une fenêtre.
Paramètres
- 
    windowIdTotal 
- 
    queryOptionsQueryOptions facultatif Chrome 88 et versions ultérieures
Renvoie
- 
            Promise<Window> Chrome 88 et versions ultérieures
getAll()
chrome.windows.getAll(
queryOptions?: QueryOptions,
): Promise<Window[]>
Obtient toutes les fenêtres.
Paramètres
- 
    queryOptionsQueryOptions facultatif Chrome 88 et versions ultérieures
Renvoie
- 
            Promise<Window[]> Chrome 88 et versions ultérieures
getCurrent()
chrome.windows.getCurrent(
queryOptions?: QueryOptions,
): Promise<Window>
Obtient la fenêtre actuelle.
Paramètres
- 
    queryOptionsQueryOptions facultatif Chrome 88 et versions ultérieures
Renvoie
- 
            Promise<Window> Chrome 88 et versions ultérieures
getLastFocused()
chrome.windows.getLastFocused(
queryOptions?: QueryOptions,
): Promise<Window>
Obtient la fenêtre qui a été sélectionnée le plus récemment (généralement la fenêtre "au premier plan").
Paramètres
- 
    queryOptionsQueryOptions facultatif Chrome 88 et versions ultérieures
Renvoie
- 
            Promise<Window> Chrome 88 et versions ultérieures
remove()
chrome.windows.remove(
windowId: number,
): Promise<void>
Supprime (ferme) une fenêtre et tous les onglets qu'elle contient.
Paramètres
- 
    windowIdTotal 
Renvoie
- 
            Promise<void> Chrome 88 et versions ultérieures
update()
chrome.windows.update(
windowId: number,
updateInfo: object,
): Promise<Window>
Met à jour les propriétés d'une fenêtre. Ne spécifiez que les propriétés à modifier. Les propriétés non spécifiées restent inchangées.
Paramètres
- 
    windowIdTotal 
- 
    updateInfoobjet - 
    drawAttentionbooléen facultatif Si la valeur est true, la fenêtre s'affiche de manière à attirer l'attention de l'utilisateur sur la fenêtre, sans modifier la fenêtre sélectionnée. L'effet dure jusqu'à ce que l'utilisateur se concentre sur la fenêtre. Cette option n'a aucun effet si la fenêtre est déjà sélectionnée. Définissez la valeur surfalsepour annuler une requêtedrawAttentionprécédente.
- 
    Concentrationbooléen facultatif Si la valeur est true, la fenêtre est placée au premier plan. Cette valeur ne peut pas être combinée avec l'état "minimized" (réduite). Si la valeur estfalse, la fenêtre suivante dans l'ordre Z est placée au premier plan. Cette valeur ne peut pas être combinée avec les états "fullscreen" (plein écran) ou "maximized" (agrandi).
- 
    hauteurnumber facultatif Hauteur à laquelle redimensionner la fenêtre, en pixels. Cette valeur est ignorée pour les panneaux. 
- 
    gauchenumber facultatif Décalage depuis le bord gauche de l'écran pour déplacer la fenêtre, en pixels. Cette valeur est ignorée pour les panneaux. 
- 
    stateWindowState facultatif Nouvel état de la fenêtre. Les états "minimized" (réduit), "maximized" (agrandi) et "fullscreen" (plein écran) ne peuvent pas être combinés avec "left" (gauche), "top" (haut), "width" (largeur) ou "height" (hauteur). 
- 
    topnumber facultatif Décalage, en pixels, entre le bord supérieur de l'écran et la position où déplacer la fenêtre. Cette valeur est ignorée pour les panneaux. 
- 
    largeurnumber facultatif Largeur à laquelle redimensionner la fenêtre, en pixels. Cette valeur est ignorée pour les panneaux. 
 
- 
    
Renvoie
- 
            Promise<Window> Chrome 88 et versions ultérieures
Événements
onBoundsChanged
chrome.windows.onBoundsChanged.addListener(
callback: function,
)
Déclenché lorsqu'une fenêtre a été redimensionnée. Cet événement n'est déclenché que lorsque les nouvelles limites sont validées, et non pour les modifications en cours.
Paramètres
- 
    callbackfonction Le paramètre callbackse présente comme suit :(window: Window) => void - 
    fenêtre
 
- 
    
onCreated
chrome.windows.onCreated.addListener(
callback: function,
filters?: object,
)
Déclenché lorsqu'une fenêtre est créée.
Paramètres
- 
    callbackfonction Chrome 46 et versions ultérieuresLe paramètre callbackse présente comme suit :(window: Window) => void - 
    fenêtreDétails de la fenêtre créée. 
 
- 
    
- 
    filtresobject facultatif - 
    windowTypesConditions que le type de fenêtre en cours de création doit remplir. Par défaut, il satisfait ['normal', 'popup'].
 
- 
    
onFocusChanged
chrome.windows.onFocusChanged.addListener(
callback: function,
filters?: object,
)
Déclenché lorsque la fenêtre actuellement sélectionnée change. Renvoie chrome.windows.WINDOW_ID_NONE si toutes les fenêtres Chrome ont perdu le focus. Remarque : Sur certains gestionnaires de fenêtres Linux, WINDOW_ID_NONE est toujours envoyé immédiatement avant le passage d'une fenêtre Chrome à une autre.
Paramètres
- 
    callbackfonction Chrome 46 et versions ultérieuresLe paramètre callbackse présente comme suit :(windowId: number) => void - 
    windowIdTotal ID de la fenêtre nouvellement sélectionnée. 
 
- 
    
- 
    filtresobject facultatif - 
    windowTypesConditions que le type de fenêtre supprimé doit remplir. Par défaut, il satisfait ['normal', 'popup'].
 
- 
    
onRemoved
chrome.windows.onRemoved.addListener(
callback: function,
filters?: object,
)
Déclenché lorsqu'une fenêtre est supprimée (fermée).
Paramètres
- 
    callbackfonction Chrome 46 et versions ultérieuresLe paramètre callbackse présente comme suit :(windowId: number) => void - 
    windowIdTotal ID de la fenêtre supprimée. 
 
- 
    
- 
    filtresobject facultatif - 
    windowTypesConditions que le type de fenêtre supprimé doit remplir. Par défaut, il satisfait ['normal', 'popup'].
 
-