FelisCatus / SwitchyOmega

Manage and switch between multiple proxies quickly & easily.
GNU General Public License v3.0
21.38k stars 3.21k forks source link

打开开发者工具时显示未加载资源 #300

Closed Anebrithien closed 9 years ago

Anebrithien commented 9 years ago

issue01

如图,计数器似乎是将

Failed to load resource: net::ERR_BLOCKED_BY_CLIENT

也计算在内了。按理这种被Adblock Plus主动拒绝加载的资源,不应该算在其中。 目前在Google Plus页面观测到此现象,另外:使用“自动切换”或者全局代理都会有计数器显示,但只有“自动切换”时点击图标才会提示“n个资源未加载”,不知道是否设计如此。

SwitchyOmega 2.3.7 Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.111 Safari/537.36

FelisCatus commented 9 years ago

ERR_BLOCKED_BY_CLIENT 的错误已经在代码里忽略了,此外也做了很多和广告屏蔽相关的检查。我觉得不是这个情况。(而且如果真的算了这个错误的话应该提示是2个资源未加载,而非1个。)

有没有更详细的测试说明?比如角标是在页面加载途中就显示的,还是在页面加载完成后几秒再出现的?目前为止SO最常见的误判就是某个请求实际上已经完成或已经取消,但SO仍然认为其超时的情况。可能可以留意这些。

FelisCatus commented 9 years ago

我自己测试了 G+ 似乎没这个问题。显示是AdBlock 屏蔽了1个资源(ERR_BLOCKED_BY_CLIENT),然后SO并没有提示有资源未加载。

Anebrithien commented 9 years ago

新打开的G+页面也是毫无问题,显示ERR_BLOCKED_BY_CLIENT时SO并未提示。我一般是保持G+页面常开,暂离一段时间回来就能看到这个。

看起来似乎还得排查下其他插件的影响,我试试看。

Loticyang commented 9 years ago

我用的软件过滤,现在上163都会有20+的未加载资源,我觉得这个问题似乎难以避免,要么选择不显示计数,要么人工无视计数

Anebrithien commented 9 years ago

我也认为与广告屏蔽插件无关了,因为我仅启用SO也能出现这个现象。

电脑挂着G+页面放一晚上还不是必现,下午我在尝试的过程中发现页面加载完毕都是正常,审查元素有可能会出现提示,这是视频

在写这个过程中,我又尝试了G+, Drive, Gmail网页,完全加载完毕后按F12就会有提示,即便我指定全局代理也是如此。点插件图标却不会提示未加载资源,仅仅是有个数字而已,完全不懂发生了什么,从哪里可以找到更多的细节?

Loticyang commented 9 years ago

....我不认为与广告屏蔽插件(软件)无关, 我只是觉得不管是你用插件拦截url或者本身加载就没有成功的url,这个扩展都会提示

Anebrithien commented 9 years ago

@Loticyang 这个issue的标题现在只是挂着的羊头了,按说应该没法判断未加载的资源是否因gfw作怪造成的吧?

而且,我觉得这个功能的本意应该是告诉用户,需要新增怎样的规则。比如我打开 .google.com看到了这个提示,应该告诉我是哪个URL加载失败,我才好去添加规则,而不是一点上去只能提示 .google.com本身,说不准是 *.googleusercontent.com没加载呢。 现在么,关掉这个提示也好。

再一个,全局代理按F12让提示出现了,点上去又什么都没有,到底怎么回事?

FelisCatus commented 9 years ago
  1. 非自动切换模式下,暂时没有做菜单的界面。可以试试自动切换模式,就可以看到具体是哪些规则未加载了。
    • 非自动切换模式的界面还在设计中。大致思想是可以看到详情但无法加入规则。(因为不是自动切换嘛,当然没有办法添加规则)
    • 如果是*.googleusercontent.com未加载,提示的规则是*.googleusercontent.com,这一点请放心。
    • 我承认这个很不友好,但我的考虑是先让用户至少能看到提示。看到提示即使无法添加规则,也能明白发生了什么。(比如应使用代理情景模式,但用户设置的是直接连接,此时数字提示就可以让用户意识到需要换成代理。)
  2. 关于F12:似乎开发者工具会请求一些 source map 等资源。关于这一点建议看开发者工具的控制台输出。如果那里什么也没显示,我也不知道该怎么办了。
  3. 再说一次,扩展拦截的URL是有做判断的,和AdBlock并不冲突(我检查过他们的源代码,考虑过多种情况)。从设计上来说,被扩展拦截的资源是不应该显示在那里的。如果真的有误判,请告诉我。但我需要更多可以改进和过滤的线索。
Anebrithien commented 9 years ago

@FelisCatus 感谢回应,最初我判断失误,的确与AdBlock不冲突。 我最初G+页面挂一晚上,早起看到一堆未加载资源的时候,点进去看到提示添加 *.google.com规则,这一点与我按F12后的效果是一致的。关键在于,前者不是必现的,得挂机多久或者有多少条post出现,再或者post里得有什么链接、图片? 现在已知按F12会出现,而且还是特定网页才行,控制台里也没找到任何线索。

Loticyang commented 9 years ago

和扩展是不冲突,但是我用的是adbyby啊,过滤广告的软件冲突不

FelisCatus commented 9 years ago

@Loticyang 对于防火墙或者流量过滤等确实是会提示的。不过你也可以看看请求的错误有没有什么明显特征,也许能在扩展里检测这种屏蔽也说不定。

FelisCatus commented 9 years ago

这边不知道情况如何了……至少我用了几个月,没遇到这种问题,也很难着手修复。

FelisCatus commented 9 years ago

抱歉,这个Issue实在是太久没有回复了。如果问题仍然存在,或者有新的信息,请在此评论并重新开启。