window.showDirectoryPicker abre um mundo totalmente novo

Capacidades e Casos de Uso

  • window.showDirectoryPicker() permite que um site obtenha um identificador persistente para um diretório local com acesso de leitura/escrita, ao contrário de webkitdirectory, que é um mecanismo de upload de uso único e, em grande parte, somente leitura.
  • Viabiliza apps web “local-first”: notas, IDEs, tocadores de música, editores de fotos e PWAs que operam diretamente sobre arquivos gerenciados pelo usuário e sincronizam por meio do próprio sistema de arquivos/nuvem do usuário.
  • Desenvolvedores relatam uso no mundo real:
    • PWAs de tocador de música local (especialmente úteis em Chromebooks).
    • Editores de imagens (por exemplo, “projetos locais” baseados em pastas).
    • Ferramentas internas corporativas de LLM que podem navegar e modificar pastas, planilhas e árvores de projetos.

Preocupações de Segurança e Privacidade

  • Principal preocupação: phishing e sites “chatos” enganando usuários para conceder acesso a diretórios, expondo potencialmente chaves SSH, configurações, fotos da câmera ou outros dados sensíveis.
  • Salvaguardas do Chrome/OS mencionadas:
    • Deve ser iniciado pelo usuário e via HTTPS.
    • Diretórios do sistema/root e alguns diretórios sensíveis (por exemplo, raiz da home, alguns diretórios de “Downloads”/do Windows) são bloqueados na seleção.
    • Confirmação extra para acesso de gravação.
  • Críticos consideram essas proteções fracas: usuários ainda podem selecionar ~/.ssh, configurações de apps ou locais de inicialização automática; proteção baseada em blacklist é vista como inerentemente incompleta.
  • Alguns propõem:
    • Blacklist de caminhos sensíveis gerenciada pela comunidade.
    • Pastas “Internet files” em whitelist ou somente pastas por domínio.
    • Forçar a criação de um novo diretório vazio em vez de selecionar diretórios existentes.
  • Outros argumentam que o risco é comparável ao de uploads de arquivos há muito estabelecidos e que consentimento do usuário mais sandboxing são suficientes; apontam a ausência de explorações amplamente conhecidas no mundo real até agora (contestada por argumentos de “ausência de evidência”).

Suporte de Navegadores e Política de Padronização

  • Atualmente implementado apenas em navegadores baseados em Chromium; Firefox e Safari rejeitaram explicitamente a ideia por preocupações de segurança.
  • Vários comentaristas veem isso como mais um passo em direção a um monocultivo Chrome/Chromium e APIs não padronizadas, dirigidas por fornecedor.
  • Alguns defendem a API como menos invasiva que apps nativos/Electron e elogiam o modelo de permissões e sandbox da web; outros acham que ela corrói a segurança do endpoint.

Alternativas e APIs Relacionadas

  • Origin Private File System (OPFS) oferece um espaço semelhante a um sistema de arquivos visível apenas ao site, melhorando a segurança mas reduzindo o controle do usuário, a visibilidade para backup e a interoperabilidade.
  • Alguns sugerem designs híbridos: pastas por site, visíveis para humanos e controladas pelo navegador, que equilibrem controle do usuário com isolamento.