Gerenciamento de arquivos no Chrome OS

O processamento de arquivos permite configurar o ChromeOS para que sua extensão possa abrir arquivos usando o menu "Abrir" do menu "Arquivo" ou o menu "Abrir com" do menu de contexto. Depois de abertos, processe os dados do arquivo usando a API Launch Handler da plataforma da Web. Em seguida, você usará APIs padrão da plataforma da Web para exibir ou processar o arquivo.

Um gerenciador de arquivos foi adicionado ao menu "Abrir" do ChromeOS.
Um gerenciador de arquivos foi adicionado ao menu "Abrir" do ChromeOS.

Disponibilidade em extensões

ChromeOS 120 ou mais recente.

Permissões

Nenhuma permissão é necessária para o processamento de arquivos.

Manifesto

Você precisa adicionar a matriz "file_handlers" ao arquivo manifest.json.

Contextos de apoio

Essa API pode ser usada em service workers de extensão, pop-ups, painéis laterais ou scripts de conteúdo.

Configurar um gerenciador de arquivos

Cada membro de "file_handlers", ou seja, cada gerenciador de arquivos, especifica um ou mais tipos de arquivo a serem processados por uma página de extensão específica.

Os gerenciadores especificados serão adicionados à janela "Arquivos" do ChromeOS, com os menus "Abrir" e "Abrir com" especificamente. Eles só aparecerão nesses menus quando o usuário selecionar um arquivo com a extensão específica. Por exemplo, se um gerenciador de arquivos especificar .txt, os menus do ChromeOS só vão mostrar esse gerenciador quando um arquivo com essa extensão for selecionado.

Processar um arquivo

O gerenciador de arquivos é um arquivo HTML contido na sua extensão. Quando o usuário selecionar seu gerenciador em um menu, o arquivo HTML será aberto em uma nova guia. O processamento do arquivo, seja ele exibido ou usado de outra forma, é feito com JavaScript usando as APIs adequadas da plataforma da Web. O código de processamento precisa estar em um arquivo JavaScript separado, ser incluído por uma tag <script> e estar na extensão. O arquivo de script usa a interface LaunchQueue da API Launch Handler para receber um objeto FileSystemFileHandle.

Exemplo

O exemplo a seguir demonstra como receber um objeto FileSystemFileHandle usando a interface LaunchQueue. Para ver o processamento de arquivos em ação, instale a demonstração do processamento de arquivos.

if ('launchQueue' in window) {
  launchQueue.setConsumer(async launchParams => {
    if (!launchParams.files || !launchParams.files.length) { return; }
    const fileHandle = launchParams.files[0];
  });
}
``````