Descrição
Use a API chrome.windows para interagir com as janelas do navegador. Use essa API para criar, modificar e reorganizar janelas no navegador.
Permissões
Quando solicitado, um windows.Window contém uma matriz de objetos tabs.Tab. Você precisa
declarar a permissão "tabs" no manifesto se precisar de acesso às propriedades url,
pendingUrl, title ou favIconUrl de tabs.Tab. Exemplo:
{
"name": "My extension",
...
"permissions": ["tabs"],
...
}
Conceitos e uso
A janela atual
Muitas funções no sistema de extensões usam um argumento windowId opcional, que, por padrão, é a
janela atual.
A janela atual é aquela que contém o código em execução. É importante perceber que isso pode ser diferente da janela superior ou em foco.
Por exemplo, digamos que uma extensão crie algumas guias ou janelas de um único arquivo HTML e que o
arquivo HTML contenha uma chamada para tabs.query(). A janela atual é aquela que contém a página que fez a chamada, independentemente de qual seja a janela mais alta.
No caso de service workers, o valor da janela atual volta para a última janela ativa. Em algumas circunstâncias, pode não haver uma janela atual para páginas em segundo plano.
Exemplos
Para testar essa API, instale o exemplo de API do Windows do repositório chrome-extension-samples.
Tipos
CreateType
Especifica o tipo de janela do navegador que será criada. "panel" foi descontinuado e está disponível apenas para extensões na lista de permissões no Chrome OS.
Enumeração
"normal"
Especifica a janela como padrão.
"popup"
Especifica a janela como uma janela pop-up.
"panel"
Especifica a janela como um painel.
QueryOptions
Propriedades
-
populate
booleano opcional
Se for verdadeiro, o objeto
windows.Windowterá uma propriedadetabsque contém uma lista dos objetostabs.Tab. Os objetosTabsó vão conter as propriedadesurl,pendingUrl,titleefavIconUrlse o arquivo de manifesto da extensão incluir a permissão"tabs". -
windowTypes
WindowType[] opcional
Se definido, o
windows.Windowretornado é filtrado com base no tipo. Se não for definido, o filtro padrão será['normal', 'popup'].
Window
Propriedades
-
alwaysOnTop
booleano
Se a janela está definida para ficar sempre em primeiro plano.
-
foco
booleano
Se a janela está em foco no momento.
-
altura
número optional
A altura da janela, incluindo o frame, em pixels. Em algumas circunstâncias, uma janela pode não receber uma propriedade
height. Por exemplo, ao consultar janelas fechadas na APIsessions. -
ID
número optional
O ID da janela. Os IDs de janela são exclusivos em uma sessão do navegador. Em algumas circunstâncias, uma janela pode não receber uma propriedade
ID. Por exemplo, ao consultar janelas usando a APIsessions, um ID de sessão pode estar presente. -
incognito
booleano
Se a janela é anônima.
-
esquerda
número optional
O deslocamento da janela em relação à borda esquerda da tela, em pixels. Em algumas circunstâncias, uma janela pode não receber uma propriedade
left. Por exemplo, ao consultar janelas fechadas na APIsessions. -
sessionId
string opcional
O ID da sessão usado para identificar uma janela de forma exclusiva, obtido da API
sessions. -
estado
WindowState opcional
O estado da janela do navegador.
-
tabs
Tab[] opcional
Matriz de objetos
tabs.Tabque representam as guias atuais na janela. -
superior
número optional
O deslocamento da janela em relação à borda superior da tela, em pixels. Em algumas circunstâncias, uma janela pode não receber uma propriedade
top. Por exemplo, ao consultar janelas fechadas na APIsessions. -
tipo
WindowType opcional
O tipo de janela do navegador.
-
largura
número optional
A largura da janela, incluindo o frame, em pixels. Em algumas circunstâncias, uma janela pode não receber uma propriedade
width. Por exemplo, ao consultar janelas fechadas na APIsessions.
WindowState
O estado da janela do navegador. Em algumas circunstâncias, uma janela pode não receber uma propriedade state. Por exemplo, ao consultar janelas fechadas na API sessions.
Enumeração
"normal"
Estado normal da janela (não minimizada, maximizada ou em tela cheia).
"minimized"
Estado de janela minimizada.
"maximized"
Estado de janela maximizada.
"fullscreen"
Estado de janela em tela cheia.
WindowType
O tipo de janela do navegador. Em algumas circunstâncias, uma janela pode não ter uma propriedade type atribuída. Por exemplo, ao consultar janelas fechadas na API sessions.
Enumeração
"normal"
Uma janela normal do navegador.
"popup"
Um pop-up do navegador.
"panel"
Descontinuado nesta API. Uma janela no estilo de painel do app do Chrome. As extensões só podem ver as próprias janelas de painel.
"app"
Descontinuado nesta API. Uma janela de app do Chrome. As extensões só podem ver as janelas do próprio app.
"devtools"
Uma janela de ferramentas para desenvolvedores.
Propriedades
WINDOW_ID_CURRENT
O valor windowId que representa a janela atual.
Valor
-2
WINDOW_ID_NONE
O valor windowId que representa a ausência de uma janela do navegador Chrome.
Valor
-1
Métodos
create()
browser.windows.create(
createData?: object,
): Promise<Window | undefined>
Cria (abre) uma nova janela do navegador com qualquer tamanho, posição ou URL padrão opcional fornecido.
Parâmetros
-
createData
objeto optional
-
foco
booleano opcional
Se
true, abre uma janela ativa. Se forfalse, abre uma janela inativa. -
altura
número optional
A altura em pixels da nova janela, incluindo o frame. Se não for especificada, o padrão será uma altura natural.
-
incognito
booleano opcional
Se a nova janela deve ser anônima.
-
esquerda
número optional
O número de pixels para posicionar a nova janela a partir da borda esquerda da tela. Se não for especificado, a nova janela será deslocada naturalmente da última janela em foco. Esse valor é ignorado para painéis.
-
setSelfAsOpener
booleano opcional
Chrome 64+ browser.* desde o Chrome 148Se for
true, o "window.opener" da janela recém-criada será definido como o autor da chamada e estará na mesma unidade de contextos de navegação relacionados que o autor da chamada. -
estado
WindowState opcional
Chrome 44+ browser.* desde o Chrome 148O estado inicial da janela. Os estados
minimized,maximizedefullscreennão podem ser combinados comleft,top,widthouheight. -
tabId
número optional
O ID da guia que será adicionada à nova janela.
-
superior
número optional
O número de pixels para posicionar a nova janela a partir da borda superior da tela. Se não for especificado, a nova janela será deslocada naturalmente da última janela em foco. Esse valor é ignorado para painéis.
-
tipo
CreateType opcional
Especifica o tipo de janela do navegador que será criada.
-
url
string | string[] opcional
Um URL ou uma matriz de URLs para abrir como guias na janela. Os URLs totalmente qualificados precisam incluir um esquema, por exemplo, "http://www.google.com", não "www.google.com". Os URLs não totalmente qualificados são considerados relativos na extensão. O padrão é a página "Nova guia".
-
largura
número optional
A largura em pixels da nova janela, incluindo o frame. Se não for especificada, o padrão será uma largura natural.
-
Retorna
-
Promise<Window | undefined>
Chrome 88+ browser.* desde o Chrome 148
get()
browser.windows.get(
windowId: number,
queryOptions?: QueryOptions,
): Promise<Window>
Recebe detalhes sobre uma janela.
Parâmetros
-
windowId
número
-
queryOptions
QueryOptions opcional
Chrome 88+ browser.* desde o Chrome 148
Retorna
-
Promise<Window>
Chrome 88+ browser.* desde o Chrome 148
getAll()
browser.windows.getAll(
queryOptions?: QueryOptions,
): Promise<Window[]>
Recebe todas as janelas.
Parâmetros
-
queryOptions
QueryOptions opcional
Chrome 88+ browser.* desde o Chrome 148
Retorna
-
Promise<Window[]>
Chrome 88+ browser.* desde o Chrome 148
getCurrent()
browser.windows.getCurrent(
queryOptions?: QueryOptions,
): Promise<Window>
Recebe a janela atual.
Parâmetros
-
queryOptions
QueryOptions opcional
Chrome 88+ browser.* desde o Chrome 148
Retorna
-
Promise<Window>
Chrome 88+ browser.* desde o Chrome 148
getLastFocused()
browser.windows.getLastFocused(
queryOptions?: QueryOptions,
): Promise<Window>
Recebe a janela que estava em foco mais recentemente, normalmente a janela "em cima".
Parâmetros
-
queryOptions
QueryOptions opcional
Chrome 88+ browser.* desde o Chrome 148
Retorna
-
Promise<Window>
Chrome 88+ browser.* desde o Chrome 148
remove()
browser.windows.remove(
windowId: number,
): Promise<void>
Remove (fecha) uma janela e todas as guias dentro dela.
Parâmetros
-
windowId
número
Retorna
-
Promessa<void>
Chrome 88+ browser.* desde o Chrome 148
update()
browser.windows.update(
windowId: number,
updateInfo: object,
): Promise<Window>
Atualiza as propriedades de uma janela. Especifique apenas as propriedades que serão alteradas. As propriedades não especificadas não serão alteradas.
Parâmetros
-
windowId
número
-
updateInfo
objeto
-
drawAttention
booleano opcional
Se for
true, faz com que a janela seja exibida de uma maneira que chame a atenção do usuário, sem mudar a janela em foco. O efeito dura até que o usuário mude o foco para a janela. Essa opção não terá efeito se a janela já estiver em foco. Defina comofalsepara cancelar uma solicitaçãodrawAttentionanterior. -
foco
booleano opcional
Se for
true, traz a janela para frente. Não pode ser combinado com o estado "minimized". Se forfalse, traz a próxima janela na ordem Z para a frente. Não pode ser combinado com o estado "fullscreen" ou "maximized". -
altura
número optional
A altura para redimensionar a janela em pixels. Esse valor é ignorado para painéis.
-
esquerda
número optional
O deslocamento da borda esquerda da tela para mover a janela em pixels. Esse valor é ignorado para painéis.
-
estado
WindowState opcional
O novo estado da janela. Os estados "minimized", "maximized" e "fullscreen" não podem ser combinados com "left", "top", "width" ou "height".
-
superior
número optional
O deslocamento da borda de cima da tela para mover a janela em pixels. Esse valor é ignorado para painéis.
-
largura
número optional
A largura para redimensionar a janela em pixels. Esse valor é ignorado para painéis.
-
Retorna
-
Promise<Window>
Chrome 88+ browser.* desde o Chrome 148
Eventos
onBoundsChanged
browser.windows.onBoundsChanged.addListener(
callback: function,
)
Disparado quando uma janela é redimensionada. Esse evento só é enviado quando os novos limites são confirmados, e não para mudanças em andamento.
Parâmetros
-
callback
função
O parâmetro
callbacké semelhante a:(window: Window) => void
-
janela
-
onCreated
browser.windows.onCreated.addListener(
callback: function,
filters?: object,
)
Disparado quando uma janela é criada.
Parâmetros
-
callback
função
Chrome 46+ browser.* desde o Chrome 148O parâmetro
callbacké semelhante a:(window: Window) => void
-
janela
Detalhes da janela criada.
-
-
filtros
objeto optional
-
windowTypes
Condições que o tipo de janela que está sendo criada precisa atender. Por padrão, ele satisfaz
['normal', 'popup'].
-
onFocusChanged
browser.windows.onFocusChanged.addListener(
callback: function,
filters?: object,
)
Disparado quando a janela em foco muda. Retorna chrome.windows.WINDOW_ID_NONE se todas as janelas do Chrome perderem o foco. Observação: em alguns gerenciadores de janelas do Linux, WINDOW_ID_NONE é sempre enviado imediatamente antes de uma mudança de uma janela do Chrome para outra.
Parâmetros
-
callback
função
Chrome 46+ browser.* desde o Chrome 148O parâmetro
callbacké semelhante a:(windowId: number) => void
-
windowId
número
ID da janela que acabou de receber o foco.
-
-
filtros
objeto optional
-
windowTypes
Condições que o tipo de janela que está sendo removido precisa atender. Por padrão, ele satisfaz
['normal', 'popup'].
-
onRemoved
browser.windows.onRemoved.addListener(
callback: function,
filters?: object,
)
Disparado quando uma janela é removida (fechada).
Parâmetros
-
callback
função
Chrome 46+ browser.* desde o Chrome 148O parâmetro
callbacké semelhante a:(windowId: number) => void
-
windowId
número
ID da janela removida.
-
-
filtros
objeto optional
-
windowTypes
Condições que o tipo de janela que está sendo removido precisa atender. Por padrão, ele satisfaz
['normal', 'popup'].
-