Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Thaodan:mozilla
MozillaFirefox
0030-Bug-1822730-Add-basic-blob-protocol-handli...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0030-Bug-1822730-Add-basic-blob-protocol-handling-for-blo.patch of Package MozillaFirefox
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Rob Krum <biggestsonicfan@gmail.com> Date: Fri, 22 Sep 2023 18:23:35 -0700 Subject: [PATCH] Bug 1822730 - Add basic blob protocol handling for blob URIs that contain parsable http/s protocols --- toolkit/mozapps/downloads/DownloadLastDir.sys.mjs | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/toolkit/mozapps/downloads/DownloadLastDir.sys.mjs b/toolkit/mozapps/downloads/DownloadLastDir.sys.mjs index dfd5d2cd26e7622bccc90e99e82a0c82e194376c..23e5deed63d8acb6cda0713ae6c371316a3e9879 100644 --- a/toolkit/mozapps/downloads/DownloadLastDir.sys.mjs +++ b/toolkit/mozapps/downloads/DownloadLastDir.sys.mjs @@ -221,8 +221,8 @@ export class DownloadLastDir { /** * Pre-processor to extract a domain name to be used with the content-prefs - * service. This specially handles data and file URIs so that the download - * dirs are recalled in a more consistent way: + * service. This specially handles data, file and blob URIs so that the + * download dirs are recalled in a more consistent way: * - all file:/// URIs share the same folder * - data: URIs share a folder per mime-type. If a mime-type is not * specified text/plain is assumed. @@ -236,6 +236,9 @@ export class DownloadLastDir { */ #cpsGroupFromURL(url) { if (typeof url == "string") { + if (url.startsWith("blob:http://") || url.startsWith("blob:https://")) { + url = url.replace("blob:", ""); + } url = new URL(url); } else if (url instanceof Ci.nsIURI) { url = URL.fromURI(url); @@ -243,6 +246,14 @@ export class DownloadLastDir { if (!URL.isInstance(url)) { return url; } + if (url.protocol == "blob:") { + if ( + url.href.startsWith("blob:http://") || + url.href.startsWith("blob:https://") + ) { + return url.href.replace("blob:", ""); + } + } if (url.protocol == "data:") { return url.href.match(/^data:[^;,]*/i)[0].replace(/:$/, ":text/plain"); }
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor