由于不小心把水杯打翻,水从散热孔流入机身,我的 T430s 在不到两年之后就光荣退役了,成为了我使用时间最短的一台电脑……本来 T 系列是有一定防水能力的,水从键盘上面浇下去顶多怀个键盘。可不巧从散热孔进去,电源模块烧掉了,又不能单换,只能换主板……最后,由于加拿大维修费太贵,我咬牙决定买台新电脑—— ThinkPad X1 Carbon 2nd Gen ,14寸轻薄超极本却有 i7 4600U , 8G 内存, 256G 硬盘,最关键的是—— 2560×1440 高分辨率屏幕!之前说我的 T430s 1600×900 的分辨率就已经很高,如今这个就可真是实打实的高分屏了。脑热买下后才突然担心起来——这接近苹果 retina 级别的屏幕用起来该不会很痛苦吧? Windows 和 Linux 对高分屏的支持有没有苹果那么好呢?使用了一周后,我可以对各位想要尝试高分屏的朋友说一句——放心吧!
在 Linux 上开启 Firefox 试验性 OMTC (从而恢复硬件加速)
Update: Firefox 40 起已经默认启用 Linux 下的 OMTC 支持(见这篇开发博客),无需再按照本文说明强制手动开启。
UPDATE: 发现开启 (Fixed)layers.offmainthreadcomposition.async-animations
会导致右键菜单无法响应鼠标位置,必须使用键盘控制。推荐关闭。
最近在玩儿一些 HTML5 游戏的时候发现我的 Firefox 图形渲染似乎比之前卡了很多。明明很早之前就强制开启了硬件加速却没觉得有效果。在 about:support 中一看,“GPU 图像加速窗口”竟然又变成了 0/1 Basic ,虽然下面的“WebGL 渲染器”正确识别到了我的 Intel 集显。根据文档,这说明部分启用了硬件加速,但由于不支持硬件合成器,所以事实上是把内容交给显卡计算后再读取出来显示。
搜索一番,看到这篇博客: No more main-thread OpenGL in Firefox (important note for Linux users who use OpenGL) 。才知道原来从去年开始, Firefox 正式将 OpenGL 合成从主线程移出来了。虽然 Off Main Thread Compositing (OMTC)已经实验了很长时间(搜索一下就可以看到不少 2012 年的记录),但在 Linux 上还是存在问题,所以就默认关闭,导致 Linux 无法使用硬件加速合成。
Content Security Policy 导致 bookmarklet 失效
近来发现在知乎、 Github 上我最常用的 bookmarklet (书签小工具,就是那种一句话 Javascript 书签)——饭否分享失效了。打开 Console 一看,有这样的提示:“Content Security Policy: 页面设置阻止读取一项资源:已经阻止执行内联脚本。”大概是孤陋寡闻,之前还没听说过 Content Security Policy 这玩意儿,猜测又是和 Cross-Origin Resource Sharing 有关系的什么东西,就做了一番搜索。
CSP 是一个可以限制页面中哪些 src (包括脚本、图片等等)可以被允许的实验性 HTTP Header 。这是 W3C Candidate Recommendation ,而这个是 MDN 上的相关资料。简而言之又是一个 defend by depth 的产物,可以给 XSS 防范再加上一层保险:直接禁止掉 inline script 和 inline eval ,然后给出一个允许加载的资源域的白名单,这样即使有 XSS 过滤漏洞,也无法注入站外的脚本。
但是问题就来了:用户直接在地址栏里输入的 Javascript 应该被允许么? Bookmarklet 应该被允许么? W3 文档这么说:
Enforcing a CSP policy should not interfere with the operation of user-supplied scripts such as third-party user-agent add-ons and JavaScript bookmarklets.
可事实是 Firefox ( Chrome 估计也是)没有正确实现,把 bookmarklet 也给拦截了,同时拦截掉了的还有 Lastpass 这样的插件的 JS 脚本,这也顺便解释了为什么 Lastpass 在知乎首页上无法自动填充的问题。
Github 博客上介绍这个新措施的文章里也提到了这个问题,并且给出了一个“解决方案”——直接把浏览器的 CSP 支持给禁用就好了……
强制启用 Firefox 的硬件加速功能
Firefox插件精选集——极速浏览 & 强大开发
由于前两天折腾Elementary for Firefox的时候不小心把FF搞得乱七八糟,最后只好咬牙删掉了已经使用一年多的配置文件夹,重新调校。于是正好趁机重新调整一下半年未变的插件列表,以KISS(Keep It Simple Stupid)为原则重新挑选轻量、强大的插件。所以便有了以下两份我精心制作的插件精选集:
(以下所有插件都能在Firefox 3.6下完美工作)
All for Speed
一切为了速度。此精选集适合一般网页浏览者,功能强大、轻量快速。
A lite and powerful collection consisting of mouse drag & go, tab enhancement, ad-block, download manager, auto proxy, etc. Strongly enhance your browsing experience. But everything is lite and fast.
包含:Adblock Plus、DownThemAll!、Firefox Sync、AutoProxy、QuickDrag、Tab Utilities Lite。提供了去广告、下载器、书签/密码/配置同步、自动代理、鼠标拖拽和标签页管理等功能。基本满足了日常需求,并且尽量选用轻量版,对速度几乎没有影响。
特别说明两点:一、放弃了著名的Tab Mix Plus,虽然功能强大,但是对速度的影响实在是太大了(能让首次启动耗时半分钟…),而Tab Utilities作为后起之秀效率要高上不少,而且功能毫不逊色(Lite版就已经能满足基本需要);二、放弃了许多国人常用的Fasterfox,一来不再更新,对FF 3.6兼容不佳,二来默认设置却又违反了RFC协议,对服务器造成极大负担,但实际效果却又不甚明显,如果确实有需要可以用Ailurus来自动调整有关设置。
Development Kit
专为网页开发人员准备,让FF成为最强大的WEB调试平台。
A powerful collection for web developers.
包含:Firebug、Greasemonkey、Web Development、User Agent Switcher、wmlbrowser、Page Speed。提供了强大的开发人员工具、用户脚本管理器、代码校验、UA切换、wml页面支持、页面载入速度优化等。是一个完备的开发人员工具箱。