chrome.devtools.inspectedWindow

refresh date: 2026-09-25 robots: noindex

Descrição

Use a API chrome.devtools.inspectedWindow para interagir com a janela inspecionada: obtenha o ID da guia da página inspecionada, avalie o código no contexto da janela inspecionada, recarregue a página ou obtenha a lista de recursos na página.

Manifesto

As chaves a seguir precisam ser declaradas no manifesto para usar essa API.

"devtools_page"

Use chrome.devtools.inspectedWindow para interagir com a janela inspecionada: obtenha o ID da guia da página inspecionada, avalie o código no contexto da janela inspecionada, recarregue a página ou obtenha a lista de recursos na página.

Consulte o resumo das APIs do DevTools para uma introdução geral ao uso das APIs das ferramentas para desenvolvedores.

Visão geral

A propriedade tabId fornece o identificador da guia que pode ser usado com as chamadas de API chrome.tabs.*. No entanto, a API chrome.tabs.* não é exposta às páginas de extensão das Ferramentas para Desenvolvedores devido a considerações de segurança. Você precisará transmitir o ID da guia para a página em segundo plano e invocar as funções da API chrome.tabs.* de lá.

O método reload pode ser usado para recarregar a página inspecionada. Além disso, o autor da chamada pode especificar uma substituição para a string do user agent, um script que será injetado no início do carregamento de página ou uma opção para forçar o recarregamento de recursos em cache.

Use a chamada getResources e o evento onResourceContent para ver a lista de recursos (documentos, folhas de estilo, scripts, imagens etc.) na página inspecionada. Os métodos getContent e setContent da classe Resource, junto com o evento onResourceContentCommitted, podem ser usados para permitir a modificação do conteúdo do recurso, por exemplo, por um editor externo.

Como executar código na janela inspecionada

O método eval permite que as extensões executem código JavaScript no contexto da página inspecionada. Esse método é poderoso quando usado no contexto certo e perigoso quando usado de forma inadequada. Use o método tabs.executeScript, a menos que você precise da funcionalidade específica fornecida pelo método eval.

Estas são as principais diferenças entre os métodos eval e tabs.executeScript:

  • O método eval não usa um mundo isolado para o código que está sendo avaliado. Portanto, o estado do JavaScript da janela inspecionada pode ser acessado pelo código. Use esse método quando o acesso ao estado do JavaScript da página inspecionada for necessário.
  • O contexto de execução do código que está sendo avaliado inclui a API do console das ferramentas para desenvolvedores. Por exemplo, o código pode usar inspect e $0.
  • O código avaliado pode retornar um valor que é transmitido para o callback da extensão. O valor retornado precisa ser um objeto JSON válido (pode conter apenas tipos primitivos de JavaScript e referências acíclicas a outros objetos JSON). Tenha cuidado ao processar os dados recebidos da página inspecionada. O contexto de execução é essencialmente controlado pela página inspecionada. Uma página mal-intencionada pode afetar os dados retornados à extensão.

Uma página pode incluir vários contextos de execução de JavaScript diferentes. Cada frame tem o próprio contexto, além de um contexto adicional para cada extensão que tem scripts de conteúdo em execução nesse frame.

Por padrão, o método eval é executado no contexto do frame principal da página inspecionada.

O método eval usa um segundo argumento opcional que pode ser usado para especificar o contexto em que o código é avaliado. Esse objeto options pode conter uma ou mais das seguintes chaves:

frameURL
Use para especificar um frame diferente do principal da página inspecionada.
contextSecurityOrigin
Use para selecionar um contexto no frame especificado de acordo com a origem da Web.
useContentScriptContext
Se for verdadeiro, execute o script no mesmo contexto que os scripts de conteúdo da extensão. (Equivalente a especificar a origem da Web da extensão como a origem de segurança do contexto.) Isso pode ser usado para trocar dados com o script de conteúdo.

Exemplos

O código a seguir verifica a versão do jQuery usada pela página inspecionada:

chrome.devtools.inspectedWindow.eval(
  "jQuery.fn.jquery",
  function(result, isException) {
    if (isException) {
      console.log("the page is not using jQuery");
    } else {
      console.log("The page is using jQuery v" + result);
    }
  }
);

Para testar essa API, instale os exemplos da API devtools do repositório chrome-extension-samples.

Tipos

Resource

Um recurso na página inspecionada, como um documento, um script ou uma imagem.

Propriedades

  • url

    string

    O URL do recurso.

  • getContent

    void

    Promessa

    Recebe o conteúdo do recurso.

    A função getContent é semelhante a:

    (callback?: function) => {...}

    • callback

      função optional

      O parâmetro callback é semelhante a:

      (response: object) => void

      • resposta

        objeto

        Chrome 151+

        Um objeto que contém o conteúdo do recurso e a codificação dele.

        • conteúdo

          string

          Conteúdo do recurso (potencialmente codificado).

        • encoding

          string

          Vazio se o conteúdo não estiver codificado, caso contrário, o nome da codificação. Atualmente, apenas a codificação de base64 é suportada.

    • retorna

      Promise<object>

      Chrome 151+

      Uma função que recebe o conteúdo do recurso quando a solicitação é concluída.

      As promessas só são compatíveis com o Manifest V3 e versões mais recentes. Outras plataformas precisam usar callbacks.

  • setContent

    void

    Promessa

    Define o conteúdo do recurso.

    A função setContent é semelhante a:

    (content: string, commit: boolean, callback?: function) => {...}

    • conteúdo

      string

      Novo conteúdo do recurso. No momento, apenas recursos do tipo texto são aceitos.

    • commit

      booleano

      Verdadeiro se o usuário tiver terminado de editar o recurso e o novo conteúdo dele precisar ser mantido. Falso se for uma pequena mudança enviada durante a edição do recurso pelo usuário.

    • callback

      função optional

      O parâmetro callback é semelhante a:

      (error?: object) => void

      • erro

        objeto optional

        Definido como indefinido se o conteúdo do recurso foi definido com sucesso. Caso contrário, descreve o erro.

    • retorna

      Promise<object>

      Chrome 151+

      Uma função chamada após a conclusão da solicitação.

      As promessas só são compatíveis com o Manifest V3 e versões mais recentes. Outras plataformas precisam usar callbacks.

Propriedades

tabId

O ID da guia que está sendo inspecionada. Esse ID pode ser usado com chrome.tabs.* API REST.

Tipo

número

Métodos

eval()

Promessa
chrome.devtools.inspectedWindow.eval(
  expression: string,
  options?: object,
  callback?: function,
)
: Promise<object>

Avalia uma expressão JavaScript no contexto do frame principal da página inspecionada. A expressão precisa ser avaliada como um objeto compatível com JSON. Caso contrário, uma exceção será gerada. A função eval pode relatar um erro do DevTools ou uma exceção do JavaScript que ocorre durante a avaliação. Em ambos os casos, o parâmetro result do callback é undefined. No caso de um erro do DevTools, o parâmetro isException não é nulo, tem isError definido como verdadeiro e code definido como um código do erro. No caso de um erro de JavaScript, isException é definido como verdadeiro e value é definido como o valor de string do objeto gerado.

Parâmetros

  • expressão

    string

    Uma expressão a ser avaliada.

  • opções

    objeto optional

    O parâmetro de opções pode conter uma ou mais opções.

    • frameURL

      string opcional

      Se especificada, a expressão é avaliada no iframe com o URL correspondente ao informado. Por padrão, a expressão é avaliada no frame superior da página inspecionada.

    • scriptExecutionContext

      string opcional

      Chrome 107+

      Avalia a expressão no contexto de um script de conteúdo de uma extensão que corresponde à origem especificada. Se fornecido, scriptExecutionContext substitui a configuração "true" em useContentScriptContext.

    • useContentScriptContext

      booleano opcional

      Avalia a expressão no contexto do script de conteúdo da extensão de chamada, desde que o script de conteúdo já esteja injetado na página inspecionada. Caso contrário, a expressão não é avaliada, e o callback é invocado com o parâmetro de exceção definido como um objeto que tem o campo isError definido como verdadeiro e o campo code definido como E_NOTFOUND.

  • callback

    função optional

    O parâmetro callback é semelhante a:

    (response: object) => void

    • resposta

      objeto

      Chrome 151+

      O resultado da avaliação e as informações de exceção.

      • exceptionInfo

        objeto

        Um objeto que fornece detalhes se uma exceção ocorreu ao avaliar a expressão.

        • código

          string

          Defina se o erro ocorreu no lado do DevTools antes da avaliação da expressão.

        • descrição

          string

          Defina se o erro ocorreu no lado do DevTools antes da avaliação da expressão.

        • detalhes

          any[]

          Definido se o erro ocorreu no lado do DevTools antes da avaliação da expressão, contém a matriz dos valores que podem ser substituídos na string de descrição para fornecer mais informações sobre a causa do erro.

        • isError

          booleano

          Defina se o erro ocorreu no lado do DevTools antes da avaliação da expressão.

        • isException

          booleano

          Defina se o código avaliado produz uma exceção não processada.

        • valor

          string

          Defina se o código avaliado produz uma exceção não processada.

      • resultado

        objeto

        O resultado da avaliação.

Retorna

  • Promise<object>

    Chrome 151+

    Uma função chamada quando a avaliação é concluída.

    As promessas só são compatíveis com o Manifest V3 e versões mais recentes. Outras plataformas precisam usar callbacks.

getResources()

Promessa
chrome.devtools.inspectedWindow.getResources(
  callback?: function,
)
: Promise<Resource[]>

Recupera a lista de recursos da página inspecionada.

Parâmetros

  • callback

    função optional

    O parâmetro callback é semelhante a:

    (resources: Resource[]) => void

    • recursos

      Os recursos na página.

Retorna

  • Promise<Resource[]>

    Chrome 151+

    Uma função que recebe a lista de recursos quando a solicitação é concluída.

    As promessas só são compatíveis com o Manifest V3 e versões mais recentes. Outras plataformas precisam usar callbacks.

reload()

chrome.devtools.inspectedWindow.reload(
  reloadOptions?: object,
)
: void

Recarrega a página inspecionada.

Parâmetros

  • reloadOptions

    objeto optional

    • ignoreCache

      booleano opcional

      Quando verdadeiro, o carregador ignora o cache de todos os recursos da página inspecionada carregados antes que o evento load seja acionado. O efeito é semelhante a pressionar Ctrl+Shift+R na janela inspecionada ou na janela de ferramentas para desenvolvedores.

    • injectedScript

      string opcional

      Se especificado, o script será injetado em todos os frames da página inspecionada imediatamente após o carregamento, antes de qualquer script do frame. O script não será injetado após as recargas subsequentes, por exemplo, se o usuário pressionar Ctrl+R.

    • userAgent

      string opcional

      Se especificada, a string vai substituir o valor do cabeçalho HTTP User-Agent enviado durante o carregamento dos recursos da página inspecionada. A string também vai substituir o valor da propriedade navigator.userAgent que é retornada para todos os scripts em execução na página inspecionada.

Eventos

onResourceAdded

chrome.devtools.inspectedWindow.onResourceAdded.addListener(
  callback: function,
)

Disparado quando um novo recurso é adicionado à página inspecionada.

Parâmetros

  • callback

    função

    O parâmetro callback é semelhante a:

    (resource: Resource) => void

onResourceContentCommitted

chrome.devtools.inspectedWindow.onResourceContentCommitted.addListener(
  callback: function,
)

Acionado quando uma nova revisão do recurso é confirmada (por exemplo, o usuário salva uma versão editada do recurso nas Ferramentas para Desenvolvedores).

Parâmetros

  • callback

    função

    O parâmetro callback é semelhante a:

    (resource: Resource, content: string) => void