万象结晶核 发表于 2026-8-25 11:20

17.1.1006.64版本 关于下载文件的两个BUG


1、在设置中开启静默下载无效,每次仍然会弹出询问保存位置的窗口。(16版本没试过)

2、下载扩展/网页生成的Blob URL 时存在超过5 秒的延迟。(之前16版没这个问题)
第二个问题比较复杂,为此我不得不让ai自制了一个下载脚本来复现问题,脚本使用方法:
把代码放在篡改猴插件中运行,脚本的作用在页面右侧生成一个红色按钮(如下图所示),下载当前360社区也就是bbs.360.cn这个域名的页面上的第一张宽度大于500的图片,可以用社区中任意带图片的页面来测试。点击按钮后,延迟5秒才触发下载。而在chrome上进行同样的操作是秒下载。


这是ai分析的bug原因,我也不知道对不对:
【浏览器的内置下载模块(独立进程/云安全检测)在拦截 <a href="blob:..."> 下载行为时,试图跨进程直接请求虚拟的 blob: 协议地址,导致网络连接失败或陷入等待超时(约5秒),超时后才回退到网页流处理。建议优化内置下载器对 blob: 协议的识别与直通处理机制。

以下是脚本的代码:
// ==UserScript==
// @name         【Bug复现】自制下载器拦截Blob URL延迟测试
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description复现第三方浏览器内置下载器接管 Blob URL 导致弹出窗口卡顿 5 秒的问题
// @match      *://bbs.360.cn/*
// @grant      GM_xmlhttpRequest
// @grant      GM_addStyle
// @run-at       document-idle
// ==/UserScript==

(function() {
    'use strict';

    // 1. 添加一个醒目的测试按钮
    GM_addStyle(`
      #bug-repro-btn {
            position: fixed;
            top: 120px;
            right: 30px;
            z-index: 999999;
            padding: 10px 18px;
            background-color: #e74c3c;
            color: #ffffff;
            border: none;
            border-radius: 6px;
            font-size: 14px;
            font-weight: bold;
            cursor: pointer;
            box-shadow: 0 4px 12px rgba(0,0,0,0.3);
            transition: all 0.2s;
      }
      #bug-repro-btn:hover {
            background-color: #c0392b;
            transform: scale(1.05);
      }
      #bug-repro-btn:disabled {
            background-color: #95a5a6;
            cursor: not-allowed;
      }
    `);

    const btn = document.createElement('button');
    btn.id = 'bug-repro-btn';
    btn.textContent = '【测试】Blob 方式下载大图';
    document.body.appendChild(btn);

    btn.addEventListener('click', () => {
      // 2. 查找页面上第一张宽度 > 500 的图片
      const imgs = Array.from(document.querySelectorAll('img'));
      const targetImg = imgs.find(img => (img.naturalWidth > 500 || img.width > 500) && img.src);

      if (!targetImg) {
            alert('当前页面未找到宽度大于 500px 的大图,请打开一个包含图片的帖子后再试。');
            return;
      }

      btn.disabled = true;
      btn.textContent = '请求图片中...';

      // 3. 复现 Blob URL 下载逻辑
      GM_xmlhttpRequest({
            method: "GET",
            url: targetImg.src,
            responseType: 'blob',
            onload: function(response) {
                if (response.status === 200) {
                  btn.textContent = '已触发 a.click(),等待窗口弹出...';
                  
                  const blob = response.response;
                  const blobUrl = URL.createObjectURL(blob);

                  const a = document.createElement('a');
                  a.href = blobUrl;
                  a.download = 'test_blob_image.jpg';
                  a.style.display = 'none';
                  document.body.appendChild(a);

                  // ★ 核心问题触发点:通过 <a> 标签点击触发下载器拦截
                  a.click();

                  document.body.removeChild(a);

                  // 短暂延时后释放 Blob 内存
                  setTimeout(() => {
                        URL.revokeObjectURL(blobUrl);
                        btn.disabled = false;
                        btn.textContent = '【测试】Blob 方式下载大图';
                  }, 100);
                } else {
                  alert('获取图片失败,HTTP状态码:' + response.status);
                  btn.disabled = false;
                  btn.textContent = '【测试】Blob 方式下载大图';
                }
            },
            onerror: function() {
                alert('网络请求出错');
                btn.disabled = false;
                btn.textContent = '【测试】Blob 方式下载大图';
            }
      });
    });
})();



S黑鹰骑士F 发表于 2026-8-25 12:51

确实这样,我也发现了,设置不管用

Spirit_悔灭 发表于 2026-8-25 13:55

您好,您反馈 1静默下载功能不生效 2 扩展安装完成时间很长的问题转交给工作人员核实处理。麻烦您留个qq工作人员在需要时与您联系查看现场排查问题。
页: [1]
查看完整版本: 17.1.1006.64版本 关于下载文件的两个BUG