Giter VIP home page Giter VIP logo

downloadmanager's Introduction

用于替换Chrome浏览器下载管理功能,最新版可通过图标上右键菜单进入设置,配置是否启用浅色图标、通知


Edge用户注意:如果出现卡在处理中,请尝试 edge://settings/downloads -> 每次下载都询问我该做些什么 -> 关闭

目前所有此类插件都会出现这个问题。如果你有解决方法,可以留言或者pull


使用了Toastify进行toast展示

使用了iconfont的图标字体



由于2.0把Manifest从原来的V2更新到了V3,为了支持之前的的模块写法,因此需要最低 Chrome版本92 以上才能运行

主要用于chrome,chromium,微软的新版edge浏览器

chrome商店地址:下载管理

edge商店地址:下载管理


由于Manifest V3的限制,功能有变动。因为Manifest V3移除了部分HTMLDOM对象,如window,Audio,Image等,导致无法通过直接执行window.matchMedia("(prefers-color-scheme: dark)").matches来确定是否是深色模式。为了实现这个功能,每次检测是否深色模式时,必须先打开一个窗口来执行某些代码,然后通过storage或其他方式返回。而播放音频也是同样问题,由于移除了Audio对象,要播放音频,也只能另起窗口。

具体情况请看这里 ,现在播放音视频、检测深色模式等均需要使用chrome.windows.create来创建新窗口,在新窗口中执行js代码

在非macOS的系统下,打开窗口会有个弹窗一闪而过(如果是播放音频,还需要等播放音频时长的时间),体验很不好,所以有以下改动:

  • 屏蔽非macOS下的自动改变浏览器中插件图标颜色功能。
  • macOS下自动改变浏览器插件图标功能改为浏览器焦点发生改变时执行,以减少打开窗口的次数
  • 图标由原来的png图片文件改为采用OffscreenCanvas实时绘制,因此某些情况会出现浏览器中图标一闪而过的情况

chrome商店和edge商店,因为审核的原因,版本不一定一致。


实现的功能(基于chrome的API实现):

  • 接管系统下载
  • 显示下载进度
  • 清除下载历史
  • 创建下载项时通知
  • 下载完成后通知
  • 暂停,恢复下载
  • 重新下载
  • 打开文件
  • 打开下载目录
  • 复制文件名(不带下载路径)
  • 复制下载地址
  • 删除单个下载历史
  • 提示隐患文件
  • 删除文件和记录
  • 显示下载时间
  • 显示剩余时间
  • 新建下载项(支持一次下载多个链接)

预览图 预览图

如果有什么问题,请在issues提出,同时最好带上操作系统,浏览器以及版本,下载地址和复现步骤,便于查找问题

downloadmanager's People

Contributors

gitqwerty777 avatar jeremy-hibiki avatar yhl452493373 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

downloadmanager's Issues

macOS下安装插件后全屏切换闪屏问题

操作系统:MacBook Pro 16
CPU: M1 Pro
运行系统:macOS Monterey
谷歌浏览器版本:101.0.4951.64(正式版本) (arm64) || 102.0.5005.61(正式版本) (arm64)
插件版本:2.0.0

现象:
全屏Chrome后 使用触控板 左右滑动切换软件,在切换浏览器时闪屏!
尝试过卸载Chrome,更新Chrome都不行
最后禁用掉插件后,才恢复正常

建议:希望接管下载后能给个提示

可以设置在当前网页上给个通知吗,经常点了下载按钮但是以为没反应。。。
chrome 现在的通知变成 windows 通知,基本是废了
(Chrome版本 80.0.3970.5(正式版本)dev (64 位))

image

小bug

edge浏览器下载一直显示处理中

关于有时点击了下载链接,却没有出现下载项的问题

我自己测试的时候,确实会出现这个问题。

但是我把插件停用,只用浏览器自身的下载功能,查看其下载项创建情况,也会出现点了下载链接,下载项中没有新增下载项的问题。因此判断为浏览器的bug,其未将下载项正确创建并通过api反馈给插件。

如果你有点击后浏览器下载项中有,但是插件中没有的,请留下下载链接,我去排查原因

对于下载失败的处理有问题和一点小建议

Bug

顶部插件图标点开的界面中,对下载失败的任务点击代表继续下载的三角形按钮。无效。。

建议

1、期待加入自动重试功能。例如可以针对容易失败的网站添加自动重试N次的功能。

2、上方提案可行的话,期望有流量变化自动重置次数记录功能开关

下载链接点击后无反应

RT,点击后无反应,在预览页面显示为:

image

在下载界面显示为:

image

希望接管后,提供弹窗选项。

开始一直以为下载不下来……
PS,我使用的是edge dev版本,不知道是否与新出现的更新有关。

关于edge中选择文件下载位置功能

因为这个插件用的chrome的api接口,chrome会在下载前弹窗询问文件保存位置,但是edge更改了下载逻辑,导致其询问保存位置的弹窗变成了网页的一个footer。
当插件接管浏览器下载后,这个footer就没了,且edge没有提供接口调出选择文件下载位置弹窗的功能,而且edge的api中没有提供选择文件位置功能,所以当edge打开了 每次下载都询问我该做些什么 这个功能时,会无法完成下载,一直卡在处理中。因此如果使用此插件,需要关闭 每次下载都询问我该做些什么 这个功能。
如果你发现有其他插件能在开启 每次下载都询问我该做些什么 后正常使用,可以给我个链接,我去研究下。

关于新增功能需求

由于本插件是基于浏览器的api做的,因此,如果提的功能在浏览器的下载管理中不存在,本插件也就没法或不会实现。本插件主要目的是接管浏览器下载,免得每次查看下载文件都要打开一个新窗口。

如果有遇到bug,最好系统版本、浏览器版本、下载地址、复现步骤一并加上,便于定位问题所在

UI美化

建议下载状态变成完成或失败后不显示进度条,有个进度条感觉怪怪的

2.0.0偶尔会自动浅色图标变为深色图标

Chrome 101.0.4951.67 64位
扩展版本2.0.0
设置如下
image

在开始下载后偶尔会自动变成深色图标,右键进选项后就自动恢复为浅色图标了
我还没有找到100%复现的方法…

关于chrome中卡在“无法安全的下载此文件”的问题

在chrome81开始,如果页面混用http和https,控制台会开始打印警告信息,83开始,所有可执行文件,如果下载链接所在页面为https,但是下载链接为http,就会在下载完成后提示“无法安全的下载此文件”。但是问题在于chrome的开发者文档

https://developer.chrome.com/extensions/downloads

中,State一栏并没有一个状态来告知页面存在MIXED_CONTENT问题。查阅chrome下载页引用的js中,在

chrome://downloads/downloads.js

中定义了一个State,叫MIXED_CONTENT,据此可以判断是否存在MIXED_CONTENT。然而chrome开发者文档的State中并没有这个状态,打印api回掉参数,也没有这个状态,因此这个状态无法判断,只有等待后续chrome给出相关api再处理。目前解决办法:

chrome://flags/#treat-unsafe-downloads-as-active-content 设为 disable

下載完成後在圖標上提示

目前下載完成後在圖標上是看不出來的
下載小檔案時,因為瞬間就下載完,看不到下載過程的提示,導致不知道有沒有下載到,還要點擊圖示才知道
打開下載開始的通知的話,還需要手動關閉通知,有點不便
建議可以像百分瀏覽器一樣在圖標上顯示完成的任務計數,用戶點擊圖標後消除數字,正在下載的提示可能改成動畫或是其他符號
或是像火狐一樣下載完成後整個圖標變藍
總之就是希望可以從圖標分辨目前是正在下載或是已下載完成

疑似bug…

1

下载完成后的通知,“打开”和“打开目录”这两个按钮点击后无效果…

试了下另一个下载管理器扩展,那两个按钮都是正常的…

我又测试了下老版本,发现只有1.7.7是正常的,从1.8.8开始那两个按钮就失效了…

2

87.0.4280.66 (正式版本) (64 位)

黑色模式

希望能支持黑色模式,现在都是白色的。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.