Opera 12.10 对页面可视性(Page Visibility) API 的支持

最近发布的 Opera 12.10 增加了对页面可视性(Page Visibility) API 的部分支持。
这是一个简单却强大的 API,因为它允许开发者规定一个文档在被隐藏时的行为。如果你有过在办公室手忙脚乱地想找出 200 个标签页中哪个在播放你预料之外的声音这种尴尬情况,你会觉得页面可视性 API 相当实用。

工作原理

页面可视性 API 对 HTML5 文档 接口增加了两个属性 — hiddenvisibilityState — 和一个 visibilitychange 事件(event)。当文档的窗口或标签页不可见,document.hidden 的值将为 true,否则为 false

document.visibilityState 属性直接表明一个文档的特定状态:hidden 或者 visible。标准规格也概述了另两个值 — prerenderunloaded,不过尚未支持。

当一个文档的可视性状态发生改变,Opera 会触发 visibilitychange 事件。这就是有趣之处。当文档不可视,visibilitychange 句柄可以暂停该文档的媒体或动画。当文档再次转为可视,句柄能恢复播放媒体或动画。这对于内存密集型应用例如游戏等特别有用。这个 demo 使用视频展示了一个例子。一个小小的警告:每次这个视频所在标签页置于前台时它都会自动播放。

限制

对此 API 的实现情况可能和你的预想有所出入。例如,从 Opera 切换到其他程序不会触发 visibilitychange 事件。最小化浏览器窗口也不会。

由于页面可视性 API 只是针对文档,你不能用它决定哪一个标签页或者窗口处于活动状态。决定你的文档是否可视因而处于活动状态,这是可行的。但是无法决定当前其他哪个标签页或窗口获得焦点。

其他浏览器

Opera 不是唯一支持这个 API 的浏览器,但是,是目前唯一一个使用无前缀属性的浏览器。其他浏览器的相应属性如下所示。

  • Chrome / WebKit: document.webkitVisibilityStatedocument.webkitHidden
  • Firefox: document.mozVisibilityStatedocument.mozHidden
  • Internet Explorer: document.msVisibilityStatedocument.msHidden

此外你还要监听 webkitvisibilitychangemozvisibilitychange,和 msvisibilitychange 事件。

[ Via Opera Developer NewsOpera.IM 编译 ]

large porn tube

Opera 12.10 正式版

Opera 12.10 正式发布,build 号为 1652,即 RC4。
了解 Opera 版本号规则的知道,12.10 并不是 12.00 的小更新,而是作为新一代存在的。
虽然大多数人认为这只是 12.50 难产的一个过渡版本,但更新的内容却不少。
Opera 12.10 包含了之前 12.50 的所有内核升级和新特性。扩展获得了一定程度的强化,浏览器自身有些小细节的改善也让人欣慰。

12.10 正式版之后,桌面团队会继续回到 12.50 的开发。

Opera 12.10 正式版下载

你可以使用检查更新或访问官方下载页面/ FTP 获取最新版本。

Opera 12.10 正式版新特性

网络标准支持

Opera 内核更新至 Presto/2.12.388。

  • 支持 SPDY协议:SPDY 是一种新的网络协议,作为 HTTP 和 TCP 的拓展,可以减小延迟和加速网页载入。
    Opera Turbo 也支持 SPDY。这个特性默认是关闭的,可以在 opera:config#Proxy|UseSPDYforTurbo 中启用它。
  • CSS3
    • 支持 CSS3 flexbox 弹性框布局模块。
    • 支持不带私有前缀的 CSS transitions, transforms, gradients, animations, flexbox
    • 为了兼容性,将部分 -webkit- 前缀 CSS 属性的子集映射到它们的 -o- 对应相似属性上。(网页开发者应该支持标准的无前缀属性)
    • @media 代码块可使用嵌套形式。
  • 支持全屏幕 API (Fullscreen API) 与页面可视性 API (Page Visibility API)。
  • 支持有序列表的 HTML5 reversed 属性。
  • 支持对携带 ICC Profiles 的图片进行颜色管理。
  • WebSockets:Opera 早在 10.70(该版本号被中途跳过,没有正式发布)的时候就支持  WebSockets 了,但是由于 WebSockets 自身的安全问题,Opera 和 Mozilla 都暂时禁用该特性,现在安全问题已解决,重新默认开启。

更多扩展 API

  • 扩展增加 上下文菜单/Context Menu API,允许扩展向网页右键菜单添加项目。
  • 用于对网页进行截图的 Screenshot API。
  • 使扩展易于加载本地资源的 Resource Loader API。
  • 强化 URL Filter API。

详情见数个月前的介绍

网络性能优化

  • 自动选择更快的主机:加入了对 RFC 6555 – Happy Eyeballs 的支持。现在 Opera 会尝试同时连接网站的 IPv4 和 IPv6 主机,然后选择响应更快的那一个。这能够消除 IPv4 或者 IPv6 缓慢或者不能使用所产生的额外的连接延时。
  • 预查询鼠标悬停处的链接 DNS:把鼠标光标移到链接上时 Opera 会对该链接进行 DNS 查询。只对 HTTP 链接进行 DNS 预取,不会预加载目标页面的资源/文档,预取频率不会高于每秒 5 次。
  • 系统兼容

    • Windows 7/8 触控特性的支持:触屏时代不远了,现在这方面已经有一定程度的支持。什么时候有 Win8 风格的界面呢?
    • Mac OS X Mountain Lion 整合:Mac 用户将享受山狮内置的分享功能和通知中心。
    • Mac 版本支持 Retina 屏幕
      对于 Mac 的用户,Opera 12.10 开始支持 Retina 即所谓视网膜级别显示精细度的屏幕。新版对皮肤进行了相应的更新,图标换成更高的分辨率。网页文本会自动利用更高的分辨率,不会影响网页的整体设计。为了限定哪些用户接收高分辨率图像,12.10 加入了两个新 API
      Opera 的扩展也支持使用高分辨率的图标。

    人性化小改进

    • 增加了使用键盘选择文本的功能。这个功能的开关,默认是 F7 键。
    • 移除了扰民多年的“允许在 HTTPS 页面上使用用户脚本”的确认对话框。
    • 原生支持调整文本输入区域大小,相关的 UserJS 可以光荣退休。
    • 内嵌查找工具栏不会自动隐藏。

    疑难杂症的改善

    • Google 搜索结果页上现在可以使用鼠标手势来快进。
    • 滚动网页时置于底部的进度栏会跳动的问题有显著的改善,但是没有完全消失。
    • 卡你妹据说有一定程度的改善。
    • 修复了好几个 NSL(Never Stop Loading) 的问题,天知道到底还有没有。。。

    改进清单:http://my.opera.com/ODIN/blog/opera-12-10-is-out
    详细更新日志请见:http://www.opera.com/docs/changelogs/

    Opera 12.10 RC4 build 1652

    RC4 来了,修复了 RC3 每次启动浏览器时自动打开欢迎页面的问题。

    注意下面两种安装包的选择。遇到任何严重问题请向桌面团队反馈

    下载地址

    下载 Opera(默认安装路径会覆盖稳定版)

    下载 Opera Next(默认安装路径是 Opera Next,不覆盖稳定版)

    更新日志

    • CORE-49167 Crash on unexpected gadget update info
    • DSK-376753 Cyrillic in Tahoma Bold displayed as nothing with Office:mac 2011 font set (duplicate copies) installed
    • DSK-376646 Welcome page haunting new installs (when ‘Install | Newest Used Beta Name’ not set)

    [ Via Opera Desktop TeamOpera.IM 编译 ]

    Opera 12.10 RC3 build 1650

    Opera 12.10 RC3 来了。
    注意下面两种安装包的选择。遇到任何严重问题请向桌面团队反馈

    下载地址

    下载 Opera(默认安装路径会覆盖稳定版)

    下载 Opera Next(默认安装路径是 Opera Next,不覆盖稳定版)

    更新日志

    • CORE-48890 Spdy HTTP header crash
    • REVERTED: CORE-49103 SVG newspaper demo is crashing Opera
    • CORE-48361 Crash when receiving data from network
    • CORE-45283 Skandiabanken doesn’t load from certain address
    • DSK-376419 Crash on opening tab with “Activate first tab opened from current tab” setting
    • DSK-376572 Text cut off in HTTP auth dialog

    [ Via Opera Desktop TeamOpera.IM 编译 ]

    Opera 12.10 RC2 build 1649

    Opera 12.10 RC2 来了。注意下面两种安装包的选择。遇到任何严重问题请向桌面团队反馈

    下载 Opera(默认安装路径会覆盖稳定版)

    下载 Opera Next(默认安装路径是 Opera Next,不覆盖稳定版)

    更新日志

    内核

    • CORE-47980 Dragend event is not fired when dropping SVG text selection
    • CORE-24046 Editable content in document should not get implicit focus/caret on page loading
    • CORE-37471 Zooming problem with Ctrl + scroll
    • CORE-49140 position:fixed 元素和视口滚动时的重绘问题
    • CORE-49103 SVG newspaper demo is crashing Opera

    桌面版

    • DSK-376555 Strange shortcut keys in menus (“Subtract”, “OemPlus”)
    • DSK-376406 High CPU usage when Downloads list not empty

    Linux:

    • DSK-364034 Address dropdown window cut off

    [ Via Opera Desktop TeamOpera.IM 编译 ]

    Opera 12.10 RC1 build 1647

    (注意,这已经是 RC,即正式版发布前的候选版本,默认安装路径会覆盖稳定版,谨慎起见安装前请先备份稳定版数据,或者另选其他路径安装。)
    修了若干 bug,最明显的是修复了上一个 build 输入 ^^ 会崩溃的“彩蛋” ^_^ 。

    在桌面团队官方博客原文下发表评论时请确保你提的 bug 的确是相较于 12.02 的倒退。
    (就是说,你提的 bug 如果不是 12.02 之后才出现的话,在这个将要发布正式版的时刻 Opera 桌面团队他们是肯定不管的了,当然,逻辑上这并不能得出推论:如果确实是 12.02 之后才有的问题他们就一定会管)

    下载地址

    更新日志

    • CORE-48734 Caret disappears when placed at the ending
    • CORE-48630 Rich text editor not setting cursor position properly after new line
    • DSK-376361 ctrl+reload button doesn’t do a forced reload
    • DSK-376464 ^^ crash
    • Several more crashers, so bizarre that I can’t describe them

    [ Via Opera Desktop TeamOpera.IM 编译 ]

    Opera 12.10 snapshot 1646

    这个版本修复了无法检查更新的 BUG,以及又一个 NSL 的问题。。。
    桌面团队表示很想称它为 RC,但还存在一些灵异的问题。

    已知问题

    • 输入 ^^ 引发崩溃。 ^^
    • [OS X] No 64-bit build for this snapshot
    这是一个开发版,不推荐普通用户使用,仅供测试。此版本存在着很多已知问题,可能会造成崩溃或者数据丢失,甚至无法正常使用。请勿覆盖之前的版本,并在备份数据后安装使用。

    下载地址

    更新日志

    • DSK-376420 Can’t check for updates, new mails or new feed messages
    • CORE-48780 NSL on multiple frames loading same resources
    • DSK-369807 Opera doesn’t go to targets when you fast forward
    • DSK-376407 [Mac] Transform rotated web font not displayed (Shinydemos)
    • CORE-49139 Crash when calculating baseline for Flexbox item which just had been deleted
    • CORE-49072 Crash when closing browser 33 seconds after enabling Turbo with SPDY

    [ Via Opera Desktop TeamOpera.IM 编译 ]

    Opera 12.10 snapshot 1644

    既然 Opera 总部已是银装素裹,似乎是时候解决 DSK-375761 这个黑屏 bug 了。所以现在你不仅能最小化 Opera 窗口,还能还原它哦,耶!(“哇好犀利啊!”)另外 ctrl + 1 打开第一个快速拨号而不是搜索面板,还有,Windows 用户现在又可以用 alt + 数字 输入 ☺ 之类的符号了!(桌面团队这几个感叹号的意思是,呐,做人呢最紧要就是开心,整天撞见新 bug 这种事情大家都不想的,当你习惯了一个新 bug,某一天我修好了它,你是不是像捡到钱一样喜出望外)

    12.10 正接近正式版,所以如果你遇到什么必须在正式发布前修复的严重问题,请尽快向桌面团队反馈,否则得等到下一个正式版才会修。

    已知问题

    • DSK-376420 不能打开检查更新的对话框
    • [OS X] CSS transform 修饰的网络字体(web font)不显示
    • [OS X] No 64-bit build for this snapshot
    这是一个开发版,不推荐普通用户使用,仅供测试。此版本存在着很多已知问题,可能会造成崩溃或者数据丢失,甚至无法正常使用。请勿覆盖之前的版本,并在备份数据后安装使用。

    下载地址

    更新日志

    内核

    • CORE-44854 Crash when firing an event inside an external, nested <use>
    • CORE-43107 Crash when running html mangler for a long while

    桌面版

    • DSK-375768 Further fix to DSK-375235 (Crash on clicking Delete in Delete Private data dialog after clicking Help)
    • DSK-375790 Esc does not open Dragonfly console
    • DSK-375581 Opera crashes when window with blocking dialog is closed
    • DSK-352233 Opera crashes in search field with old entries
    • DSK-375836 Speed Dial Ctrl+X shortcuts don’t work
    • DSK-369985 Scroll position in history is not remembered on restart
    • DSK-376125 Editing a preinstalled bookmark deletes the favicon
    • DSK-330376 Address field on the main toolbar isn’t always updated properly
    • DSK-160587 Search engine editor does not allow setting encoding manually, should default to UTF-8
    • DSK-372493 “The address type is unknown or unsupported” error
    • DSK-375725 “Rewind” doesn’t work on tabs opened from links

    Windows

    • DSK-375761/DSK-375750 Black window/UI not responding after minimizing and maximizing Opera
    • DSK-375966 Opera does not allow Alt+”numbers” to do symbols

    Linux/FreeBSD

    • DSK-366461 Remove the titlebar with themes: Hold Alt with left mouse button to move the Window
    • DSK-376165 Alt does not open the Opera menu: Hold Alt for half a second before releasing to avoid triggering the HUD on Ubuntu
    • DSK-344521 Running Opera through nohup doesn’t prevent it from closing with the terminal

    [ Via Opera Desktop TeamOpera.IM 编译 ]

    Opera 12.10 snapshot 1642: 当鼠标置于链接上时预查询 DNS

    当用户的鼠标悬停在链接上,他们很可能会点击链接。为了让用户能更快地打开目标页面,现在用户把鼠标光标移到连接上时 Opera 会对该链接进行 DNS 查询。如果用户果然决定点击该链接,打开目标页面将会更快。Opera 不会预加载目标页面的资源/文档,仅进行 DNS 查询。

    Opera 只对 HTTP 链接进行 DNS 预取,预取频率不会高于每秒 5 次。

    该特性的开关选项:opera:config#Network|DNSPrefetching

    (译者认为,只当悬停于链接时才预查询 DNS 是 Opera 出于对资源消耗的考虑。多数用户从移动鼠标到链接上到点击,动作几乎没有时间间隔,他们将很难察觉到速度有什么提升。部分用户习惯点击前先悬停于链接上,从工具提示或状态栏上看清楚域名——尤其该链接是当前页面对其他网站的引用——然后才决定会否点击。所以可能 Opera 的预取 DNS 行为对这部分用户才有意义。)

    已知问题

    • DSK-375750 [Windows] 安装了主题后不能还原窗口
    • DSK-375761 [Windows] Opera 最小化后再最大化后窗口黑屏并无响应
    • [OS X] No 64-bit build for this snapshot
    这是一个开发版,不推荐普通用户使用,仅供测试。此版本存在着很多已知问题,可能会造成崩溃或者数据丢失,甚至无法正常使用。请勿覆盖之前的版本,并在备份数据后安装使用。

    下载地址

    更新日志

    桌面版

    • DSK-375732 Prefetching DNS when hovering links
    • DSK-376038 text-shadow renders really weird (regression from 12.00)
    • DSK-375832 Thread starter messages missing from IMAP sent folder view
    • DSK-361306 Opera detects two Java plugins which leads to a freeze/crash
    • DSK-363907 Open in Background Window opens new Window in the Foreground
    • DSK-369215 History page: wrong grouping in quick search results
    • DSK-367126 Info and Links panels not working when displayed floating

    OS X

    • DSK-374969 Autoupdate silently fails for unprivileged installations (more robust installer)
    • DSK-375249 Drag & drop triggered when navigating between pages using flip-back/flip-forward and then dragging.
    • DSK-376027 Web fonts disappear on some pages with corrupt font names

    Linux

    • CORE-45685 LC_MESSAGES should take priority over LANG environmental variable for localization

    内核

    • CORE-49086 Opera often crashes while ew.com is open in a background tab
    • CORE-47458 Crash in layout properties
    • CORE-49107 Disallow internet shortcuts in frames (+ svg images)
    • CORE-49072 Networking related crashes

    [ Via Opera Desktop TeamOpera.IM 编译 ]

    Opera 12.10 snapshot 1639

    桌面团队:

    我们正在进行一场马拉松式的 bug 狩猎。你们将是我们的持续工作成果的裁判。

    除了修 bug,还有一些更漂亮的工作:一个月前,我们对 UI 进行了详细的检视以支持 OS X 的高像素密度显示。现在,我们让扩展开发者也同样有办法为用户提供高分辨率版本的扩展。详细信息请见 Addons blog 的文章 Extensions icons vs high resolution displays 。目前只有两个扩展使用了高分辨率图片,但是我们希望到正式版发布时这个数目会更多。

    已知问题

    • DSK-375750 [Windows] 安装了主题后不能还原窗口
    • DSK-375761 [Windows] Opera 最小化后再最大化后窗口黑屏并无响应
    这是一个开发版,不推荐普通用户使用,仅供测试。此版本存在着很多已知问题,可能会造成崩溃或者数据丢失,甚至无法正常使用。请勿覆盖之前的版本,并在备份数据后安装使用。

    下载地址

    更新日志

    Linux

    • DSK-374856 GTK3 themes are sometimes not fully drawn (e.g. corrupted tab bar)
    • DSK-373940 Installation shows a warning on Ubuntu 12.10
    • CORE-49083 Crash on start-up with no crash dialog

    Windows

    • DSK-372177 Windowless plug-ins fail with HWA enabled
    • DSK-375576 Closing tab in substack crashes opera

    OS X

    • DSK-358180 Restore full screen window sessions in full screen on startup
    • DSK-371991 Window stuck in full screen mode (not restoring toolbars) after exiting full screen
    • DSK-375443 Windowless plug-in in iframe blank when scrolling
    • DSK-375899 Plug-ins gets no event on modifier keyUp (Command key)
    • DSK-368008 Opera on Mac sends no keypress event on Control–V
    • DSK-375508 No progress bar in download tab on OSX
    • DSK-373932 Retina icon support for extensions
    • DSK-343973 Some pop-ups open as new tabs instead of separate windows

    桌面版

    • DSK-375383 Collapsing message list group hides the group header too
    • DSK-301287 no error message when trying to send email with invalid mailaddress
    • DSK-374803 Having two tabs open and closing the leftmost background tab with the close button, the last tab changes width on hover if it is a Speed Dial tab
    • DSK-351764 Dragging button to View Bar crashes memguarded Opera
    • DSK-375384 Crash after dragging Turbo badge from Speed Dial to address bar
    • DSK-183831 You shouldn’t be able to delete “Find in page” search or set it as default
    • DSK-375186 onet.pl – IMAP does not working

    内核

    • Networking related stability fixes
    • CORE-48446 Repaint issue on fixed element on scrolling
    • CORE-49067 Crash on calling Canvas.drawImage() from extension
    • CORE-42494 wbr tag collapses following whitespace
    • CORE-48888 CSS3 transitions/animations of transforms on floats not displaying correctly
    • CORE-49016 Some documents (for instance directory listings) scroll back to top on history navigation
    • CORE-49033 WebGL conformance, “Uint8ClampedArray(1) instanceof Uint8Array” subtest fails
    • CORE-49071 Incorrect Math.round() handling of large doubles
    • CORE-48891 vasttrafik.se – public transport travel-path renders erroneously
    • CORE-49009 CSS 2D Transform rotation causes elements to disappear
    • CORE-49070 Crash on right-click, scripting disabled and extension installed on start, scription enabled on runtime
    • CORE-48872 REVERTED Add application/json to the list of known content types

    [ Via Opera Desktop TeamOpera.IM 编译 ]