Double-clicking a document usually opens a familiar desktop application. Installed web apps can participate in that flow too. The File Handling API lets a progressive web app declare which file types it understands, appear in an operating system's “Open with” menu, and receive the specific files a person chose.
This is more direct than visiting a site and opening a picker. It is also more sensitive. The handoff crosses from the operating system into a web origin, so browsers need clear installation, permission, and file-specific boundaries.
File Handling API connects files to installed web apps
The File Handling API is designed for installed progressive web apps. A developer declares supported MIME types and extensions in the web app manifest's file_handlers member. The operating system can then offer that installed app as a destination for matching files.
A drawing app might register its own project format and common image types. A text editor might accept plain text and Markdown. When someone chooses the app from an “Open with” menu—or makes it the default—the browser launches the installed web app and passes file handles through the launchQueue interface.
MDN's guide to associating files with a PWA recommends checking that launchQueue exists before relying on it. Support is not universal, so drag-and-drop, upload controls, and ordinary file pickers still matter.
File handling is not broad disk access
Registering as a handler does not expose every file with the same extension. The app receives the files the user explicitly opened with it. It does not gain a searchable inventory of the Documents folder or permission to wander through adjacent directories.
That distinction separates association from surveillance. The operating system knows that an app can handle a format; the web app receives a particular file only when the person makes a corresponding choice.
Broader editing workflows may use the File System Access API after the handoff. Our guide to the File System Access API explains how pickers, handles, and write permissions control direct file changes. File handling supplies the launch path; file-system capabilities govern what the app can subsequently read or save.
Installation creates the operating-system entry
A regular browser tab cannot quietly insert itself into system file associations. File handling is gated behind installation. The web app manifest supplies its identity, icons, start URL, display mode, and supported file types.
This gives the browser a durable application boundary to present to the operating system. It also gives the user something visible to uninstall, manage, or remove from defaults. Our article on the web app manifest explains why installation changes presentation without granting every browser permission.
Developers should register only formats their app genuinely supports. Claiming broad types such as every image or document format can clutter chooser menus and encourage accidental handoffs. A product earns useful integration by being specific.
Permission stays close to the opening action
Chrome's File Handling API documentation describes a permission prompt shown when an installed PWA opens a file. The prompt is tied to the user's choice of that app, making the request easier to understand than a permission shown without context.
A remembered allow or block decision can persist across launches. Changes to the manifest's file-handler declarations may reset the permission because the scope of what the app claims to handle has changed.
The central rule remains simple: opening a file with an app is permission for that app to receive that file, not a standing invitation to collect unrelated documents. If an app asks for a directory or more files afterward, judge that as a separate request.
Default apps deserve extra care
Making a web app the default handler reduces friction. It also means a double-click can send files to that origin without presenting an “Open with” choice each time. That is convenient for a trusted editor and risky for an app tried once.
Before changing a default, open a non-sensitive sample. Check whether the app keeps processing local, uploads to a server, or requires an account. Look for a clear save and export path so that the file does not become trapped in a proprietary workflow.
Operating systems provide settings for changing file associations later. If the app is no longer needed, remove its defaults before uninstalling it. The exact controls differ across Windows, macOS, and Linux, but the principle does not.
Developers should minimize surprise
A good file-handling experience displays the filename immediately and makes the current document unmistakable. It should warn before overwriting, preserve a recovery path, and explain when data leaves the device.
The app should also handle multiple launches predictably. Opening a second file might create a new window, add a tab, or replace the current document. Any of those can work if the behavior is consistent and unsaved work stays protected.
Privacy belongs in the architecture. Temporary files should not become permanent cloud copies by accident. Recent-file lists should be optional and easy to clear. Analytics should not include filenames, paths, or document contents.
How to decide whether to use a web file handler
Use the integration when the installed app has a clear job and the file type matches it. A focused diagram editor opening its own project format is an understandable relationship. A generic website asking to become the default for common documents deserves more scrutiny.
Keep a native or local fallback for important work, and export regularly when the app uses a specialized format. If the product requires a connection, test what happens offline before relying on it during travel or unstable connectivity.
The File Handling API makes web apps feel at home on the desktop without erasing their web identity. That is the right balance: useful integration, one chosen file at a time.
Browse with more intention
Noorani brings prayer times, Qibla, tracker blocking, and privacy into one calm desktop browser built for how Muslims live online.
