Microsoft Publishes New Edge Explainers List on GitHub, Detailing Download URLs
Photo by BoliviaInteligente (unsplash.com/@boliviainteligente) on Unsplash
Microsoft has added a new Edge Explainers list on its GitHub repository, providing detailed download URLs and JSON‑formatted data for features such as multi‑file drag‑out support, as outlined in a recent report.
Key Facts
- •Key company: Microsoft
The new Edge Explainers repository on GitHub now includes a “DownloadURL‑list” spec that formalises a multi‑file drag‑and‑drop payload for Chromium‑based browsers. According to the explainer markdown file authored by Joone Hur, the proposal extends the legacy DownloadURL drag type—originally limited to a single file—by allowing an array of colon‑separated MIME type, filename, and URL triples to be encoded in JSON (see MSEdgeExplainers/DownloadURL‑list/explainer.md). The JSON schema is deliberately simple: each entry is an object with mimeType, fileName, and url fields, and the top‑level document is an array of such objects. This format mirrors the existing single‑file string (`mime/type:filename:url`) while providing a machine‑readable structure that downstream OS drag‑and‑drop handlers can parse without custom string‑splitting logic.
The motivation for the change is spelled out in the “Problem: The Single‑File Limitation” section of the same document. The current DownloadURL type encodes only one file, forcing users to initiate separate drags for each resource. The explainer cites a typical JavaScript snippet that constructs a single DownloadURL string on dragstart and notes that attempts to pass multiple entries via arrays or newline‑delimited strings have been rejected by Chromium (see the “Developer Workarounds and Limitations” paragraph). Those workarounds, which developers have posted on Stack Overflow, simply do not trigger the OS‑level file creation, underscoring the need for a native multi‑file mechanism.
From a UX perspective, the document argues that the single‑file constraint hampers workflows in web‑based productivity suites, data portals, and any application that surfaces batches of downloadable assets. By exposing a DownloadURL‑list type, Edge can enable a “drag‑multiple‑files‑out‑of‑browser” interaction that mirrors native file‑manager behaviour: a user selects several links, drags them to a desktop folder, and the OS receives a list of files to download in parallel. The explainer explicitly lists the goal of supporting this workflow on Windows, while noting that authentication‑protected resources remain out of scope (see “Goals” and “Non‑goals”).
Security and performance considerations are also addressed. The spec includes a “Drag Bomb Limit” that caps the number of URLs per drag operation to mitigate denial‑of‑service attacks, and it recommends that browsers enforce a per‑origin download‑request quota. Additionally, the JSON payload is designed to be immutable once the drag starts, preventing malicious scripts from injecting extra entries after the user has initiated the action. The document also proposes a single‑click UI element that can purge all pending downloads, offering a quick recovery path if a drag operation is aborted or mis‑used.
Future work outlined in the explainer points to broader adoption across Chromium forks and potential standardisation beyond Microsoft Edge. While the current implementation is Chromium‑specific, the authors suggest that the JSON‑based DownloadURL‑list could be proposed to the W3C Drag‑and‑Drop Working Group, paving the way for cross‑browser compatibility. The repository’s README notes that the list will be versioned and that downstream developers can subscribe to updates via the GitHub issue tracker, ensuring that any changes to the schema or security limits are communicated promptly.
In summary, Microsoft’s addition of the DownloadURL‑list explainer provides a concrete, JSON‑encoded solution to a long‑standing limitation in Chromium’s drag‑and‑drop API. By documenting the format, security boundaries, and UX rationale, the Edge team equips web developers with a clear path to implement multi‑file drag operations, potentially reshaping how browsers interact with the operating system’s file system.
Sources
This article was created using AI technology and reviewed by the SectorHQ editorial team for accuracy and quality.