{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://velox.dev/schema/methods/capture.offer.schema.json", "title": "capture.offer", "description": "Firefox offers an intercepted response to the daemon. The daemon MUST reply within 750 ms; the extension abandons the offer and lets Firefox download normally on timeout. This deadline is the whole reason capture fails open, and it is conformance-tested: a daemon that is slow, down, or erroring must never cost the user a download.", "x-privileged": false, "x-transports": ["uds", "ws"], "x-deadlineMs": 750, "x-errors": [-32011], "type": "object", "properties": { "params": { "type": "object", "additionalProperties": false, "required": ["url", "method", "tabUrl"], "properties": { "url": { "type": "string", "format": "uri" }, "method": { "type": "string", "enum": ["GET", "POST"] }, "tabUrl": { "type": "string", "format": "uri" }, "headers": { "oneOf": [{ "$ref": "https://velox.dev/schema/types/Headers.schema.json" }, { "type": "null" }] }, "cookies": { "type": ["array", "null"], "description": "Cookies for the URL, so authenticated downloads work outside the browser.", "items": { "$ref": "https://velox.dev/schema/types/Cookie.schema.json" } }, "contentType": { "type": ["string", "null"] }, "contentLength": { "type": ["integer", "null"], "minimum": 0 }, "contentDisposition": { "type": ["string", "null"] }, "filename": { "type": ["string", "null"], "description": "The extension's best guess; the daemon may override it." }, "userAgent": { "type": ["string", "null"] }, "referrer": { "type": ["string", "null"] }, "origin": { "type": ["string", "null"], "description": "moz-extension://... The daemon verifies this on the WS transport and refuses anything else." }, "requestId": { "type": ["string", "null"], "description": "The extension's webRequest id, echoed in logs so a capture decision can be traced back to one browser request." } } }, "result": { "type": "object", "additionalProperties": false, "required": ["action"], "properties": { "action": { "type": "string", "enum": ["take", "ignore"] }, "taskId": { "type": ["string", "null"], "format": "uuid", "description": "Set when action is 'take'." }, "reason": { "type": ["string", "null"], "description": "Why the offer was declined. Set when action is 'ignore'; the extension logs it in the popup's diagnostics.", "enum": ["excluded_host", "type_not_monitored", "below_min_size", "duplicate", "capture_disabled", "user_declined", "rule_ignore", null] } } } } }