Opera 12.50 snapshot 1538: 内核升级、合并实验版扩展 API 等等

挪威的暑假快结束了,而 Opera 桌面团队在奥斯陆的部分成员却没有放暑假一直在开工(嗤。译者一直对奥斯陆这个夏天最高 23°C 的气温耿耿于怀)。以下就是部分成果。

之前《Opera 实验性桌面版带来新扩展 API: 截图、加载本地文件、更新内容拦截》介绍过的新 API 现在已经从实验室版本引入主线版本。

CORE-43667(Dragonfly 远程调试利用 UPnP 自动发现 Dragonfly 实例)、CORE-26961(Dragonfly 格式化 JS 代码)是之前预告过、依赖于新内核的新特性。

还有大量的性能细节优化和 bug 修复;对 WebSocket 的实现更新到 RFC6455;UA 字串有所精简,去掉了过时的加密强度记号(crypto strength token),和只会惹麻烦的 UI 语言记号;
对 CSS Transitions、Animations 和 Transforms 的实现,现在已经不需要任何私有前缀。这些变化值得前端开发者注意,Opera Developer News 对此有更详细的说明

其他对标准的支持还有不少更新。

重点关注

  • Performance work, bug fixes, improved standard support…
  • Removed the UI language and crypto strength token from the UA string (more info)
  • CORE-46791 Drop prefixes for CSS Transitions, Animations and Transforms (more info)
  • CORE-40054 URL filter API improvements (more info)
  • CORE-34226 Add Screenshot API (more info)
  • CORE-34077 Add Resource Loader API (more info)
  • CORE-39021 Add Page Visibility API
  • CORE-46424 Add ProgressEvent constructor
  • CORE-46593 New opera:config settings – “First Update Delay” (the longest we are prepared to wait for unstyled content) and “First Styled Update Delay” (how long we want to delay styled paints to ensure that as much content as possible is there once we paint)
  • CORE-46258 <track> subtitles/captions for <video> (without UI)
  • CORE-37103 Update WebSocket implementation to rfc6455 (more info)
  • CORE-41400 Update to Unicode 6.1.0 specification
  • CORE-44859 Allow sites to enable x-domain window.onerror information (implement <script crossorigin>)
  • CORE-45552 Remove support for recognizing versions in JavaScript MIME types
  • CORE-46830 FileList spec compliance
  • CORE-46870 Drop Voice XML, CSS Speech, etc. support
  • CORE-45319 Change our implementation of the resolution media query to use CSS units
  • CORE-46645 Introduce support for the dppx unit
  • CORE-45517 Implement TypedArray slice()
  • CORE-40915 Support HTML5’s isProtocolHandlerRegistered(), isContentHandlerRegistered(), unregisterProtocolHandler() and unregisterContentHandler() methods

已知问题

  • Clicking the star icon in the address bar crashes Opera
  • text-shadow is broken on Windows
  • DSK-139675 Problems with key event handling on Mac
  • Google+ 对 Opera 的检测代码不能辨别新 UA 导致错误(更多信息)
这是一个开发版,不推荐普通用户使用,仅供测试。此版本存在着很多已知问题,可能会造成崩溃或者数据丢失,甚至无法正常使用。请勿覆盖之前的版本,并在备份数据后安装使用。

下载地址

更新日志

桌面版

  • DSK-365046 Show extension download progress
  • DSK-358198 [Mail] Display date group header when scrolling
  • DSK-370118 Closed tabs don’t go to closed tabs history
  • DSK-370089 Tabs set to “No images” when upgrading from previous build
  • DSK-346772 Plugin shown in the wrong window after detaching
  • DSK-167121 Poor visibility of search results in source viewer and text fields
  • DSK-234254 Focus set to zoom, not document when switching tab or closing Dragonfly
  • DSK-364455 iTunes won’t open
  • CORE-47649 Numpad shortcut keys do not work
  • DSK-370622 Display of shortcuts broken in context menus
  • DSK-369760 RTL interface broken
  • DSK-370265 [Mac] Swipe gestures don’t work
  • CORE-47720 [*nix] Typing letters in a Flash element with wmode transparent or opaque types numbers instead
  • DSK-369709 Pressing Enter to select entry from dropdown field doesn’t work
  • DSK-369606 Cannot change the size of any resizable UI element
  • DSK-369608 Shortcuts for creating private tab or private window creates 2 tabs or 2 windows
  • DSK-369883 Ctrl+Shift+I opens/closes Dragonfly, but also activates tab switch functionality

Core

  • CORE-42676 Drawing issue with transitions with transform scale and absolute positioning
  • CORE-44433 Absolute-positioned child of relative element leaves repaint traces
  • CORE-46956 Dragged content is cropped when dragging while zoomed in on page
  • CORE-47059 WebGL demo “renderscenetexture” doesn’t load in Opera
  • CORE-46780 Persistent storage file corrupted during shutdown
  • CORE-46811 -o-background-size:100% 100% wraps image
  • CORE-46758 Timestamp with <3 digits for milliseconds not parsed
  • CORE-6098 Adding optgroups using ‘add’ doesn’t work
  • CORE-46744 Corrupted fonts in Opera if path contains non-alfanumeric US-ASCII chars
  • CORE-15706 Flash of Unstyled Content (wrong font) effect on pages with webfonts
  • CORE-46666 WebGL GLSL parsing error at glsl.heroku.com
  • CORE-46682 JS innerText doesn’t generate ‘\n’ from <br> characters on read
  • CORE-46565 Inconsistency in behavior while copying from read-only text widgets
  • CORE-46569 Error pages are unstyled after visiting local web server
  • CORE-46673 Drag and drop is left in a wrong state if drag is cancelled while selection is dragged outside browser window
  • CORE-43823 Extra space under video when fit to height
  • CORE-46732 tab.postMessage(foo); does not work after the page in the tab is changed
  • CORE-46593 New prefs – “First Update Delay” and “First Styled Update Delay” – to control repaint of pages
  • CORE-46148 WebGL: Z fighting due to missing polygonOffset() support
  • CORE-46475 Preselected SVG text is not draggable
  • CORE-46211 getUserMedia should fail if camera is not available
  • CORE-41241 Gradients with certain angles cause unpainted garbage areas on 32 位
  • CORE-46002 Bounding box is wrong for boxes with box-shadow, causing updating bugs
  • CORE-30946 Remove the crypto strength token from the UA string
  • CORE-30998 Remove the UI language from the UA string
  • CORE-46283 Change event is not fired when dropping into input controls
  • CORE-46238 Wrong colors in Canvas demo
  • CORE-46297 Can’t tab out of select form element
  • CORE-30713 Using location.replace() to change location.hash shouldn’t add history entries
  • CORE-46326 XHR: remove Content-Transfer-Encoding and add DNT to setRequestHeader() restrictions
  • CORE-45866 Cursor fails to move up/down with pageup/down actions once entering editable container overflowing viewport
  • CORE-45955 Spatnav goes off screen in link list after zoom
  • CORE-46144 Some CSS values only handle 32 characters
  • CORE-45233 CSS rem unit does not respect “Minimum font size” setting
  • CORE-46233 Setting the onload handler of scripts to a string should set it to be null, not parse the string as a function
  • CORE-44928 Baselines don’t line up when font switching in alt text
  • CORE-46087 Wrong text rendering in elements with transform: rotate(180deg) or scale(-1)
  • CORE-43500 Aligh UTF-16 detection with Trident/WebKit
  • CORE-45979 Negative canvas shadowOffsetX/Y is off by one
  • CORE-46146 Gaussian blur renders with an offset error after first load of a page in HWA builds
  • CORE-45295 JSON.stringify() failure on cached number conversion
  • CORE-45896 Frame-Options error page link does not include fragment
  • CORE-45912 local keyword not allowed in background shorthand
  • CORE-45883 Introduce drag start movement threshold to avoid accidental drag
  • CORE-45672 MHTML and mail print fails, only header/footer showing (object with height:-o-content-size is not displayed)
  • CORE-45653 `Array.apply(null, [,])` returns `[]` in Opera, `[undefined]` in Chrome, Firefox
  • CORE-14140 isPointInPath with points on the path
  • CORE-43687 Cursor fails to move up/down once entering editable container overflowing viewport
  • CORE-45588 Spatial navigation not working properly on initially focused empty element
  • CORE-45636 Opacity doesn’t apply correctly on children to hidden inlines
  • CORE-45650 Incorrect TypedArray#set behavior
  • CORE-44859 Allow sites to enable x-domain window.onerror information (implement <script crossorigin>)
  • CORE-45645 Date and High Number – return something meaningful
  • CORE-45678 Visibility toggling removes inputs from Tab key navigation
  • CORE-45686 Skin radius is used wrong on background and border
  • CORE-45664 box-shadow: inherit treated as invalid
  • CORE-36850 Bogus “x-euc-jp” charset tag not handled
  • CORE-44881 Mousemove events sometimes report wrong screen coordinates (image panning jumps around)
  • CORE-26623 Repeated SVG in <img>s does not display until reload
  • CORE-44188 Input blur event is not captured in iframes using Tab key
  • CORE-44808 Array.prototype.reverse handling of holes w/ prototypes having indexed properties
  • CORE-43450 Video controls don’t follow keyboard tab cycle correctly when video is only Tab-able element on page
  • CORE-45584 Selection in number input cleared when other input is focused
  • CORE-45492 Wrong computed style for -o-animation when duration has default value
  • CORE-45498 Wrong computed style for -o-animation with value “none, none”
  • CORE-45497 -o-animation-duration computed style missing comma when having multiple values
  • CORE-45424 Scrolling on <input type=”number”> does not respect the step
  • CORE-45522 Scroll event not fired on window object in SVG document
  • CORE-41681 Media controls position/duration field sometimes cropped
  • CORE-74 Clicking link to “#” adds a history entry even when URL already ends with #
  • CORE-45530 Remove remnants of VBScript hack (was needed back in the IE6 days)
  • CORE-45440 Don’t throw document’s URL out of the cache immediately before using it
  • CORE-45185 Can’t close Dragonfly window and extension pop-ups on Desktop (uses window.close())
  • CORE-44652 SVG Text element with text-overflow set to ellipsis is not animated correctly
  • CORE-32453 Navigating to different page after scrolling in RTL document shows parts of previous page
  • CORE-44912 Baselines don’t line up when font switching in Canvas
  • CORE-32979 (new Image) not instanceof Image (and similar for Audio and Option)
  • CORE-45318 Regression: Drag and drop of selection from number input and/or nested frames
  • CORE-45155 Unexpected behaviour of F7 in MHTML files
  • CORE-47549 Copying text from readonly input fields no longer possible
  • CORE-47565 Uploading zip files results in file with size 0
  • CORE-47699 Ctrl+Space shortcut to go to homepage doesn’t work on Speed Dial page
  • CORE-47701 Pressing space to open focused dropdown field doesn’t work

网页兼容性

  • CORE-46791 Drop prefixes for CSS Transitions, Animations and Transforms
  • CORE-46968 Inset box-shadow is misrendered when box has border
  • CORE-31145 Negative blur radius should make shadow properties invalid
  • CORE-26856 CanvasRenderingContext2D.drawImage() fails to draw SVG images referenced by <img>
  • CORE-46892 ascii.io doesn’t work in Opera
  • CORE-35269 Meta refresh without URL parameter should not take base HREF into account
  • CORE-46901 Upload via drag and drop does not work on minus.com
  • CORE-46792 animation-direction should accept reverse and alternate-reverse
  • CORE-45651 Percentage height on nested elements causes overlapped content at top-menage.com
  • CORE-46110 Fixed position prevents overflow clipping of the absolutely positioned sibling (embedded Bing map overflows other content on page)
  • CORE-46918 rae-aschaffenburg.de – a:hover on float
  • CORE-45341 getBoundingClientRect() returns all 0’s for an inline element with a negative margin-right at the end of its parent
  • CORE-42934 Should not encode backslash (U+005C) in query part of URL
  • CORE-25834 self.WorkerGlobalScope is undefined – missing interface object
  • CORE-41499 List-item with text-align justify can get spacing in front of the first line
  • CORE-45327 Text inside OL -> LIs does not wrap if preceded by any block-level element. UL -> LIs are unaffected
  • CORE-45135 Content too far to the right at kramerelectronics.com
  • CORE-33735 Normalize CR and LF in textarea.value to LF
  • CORE-46429 onload not fired for innerHTML img not added to document tree
  • CORE-45552 Remove support for recognizing versions in javascript MIME types
  • CORE-39034 We do not send change events on enter if submit button is input type=image
  • CORE-43760 Broken dropdown menu on Facebook, doesn’t allow overflowing nowrap linebox next to float
  • CORE-13109 [DOM4] getAttribute() should dispatch on Qname
  • CORE-43199 Opera should not show loading indication for images not in the DOM
  • CORE-35005 Clicking links on “visualizing Japanese grammar” site fails – wrong decoding of javascript: URL in UTF-16 page
  • CORE-42782 raphaeljs.com – relative height in SVG attribute not the same as CSS property
  • CORE-40747 Width of SVG image with fixed height measured incorrectly for min/max width propagation
  • CORE-36093 Remove handling of percentages as intrinsic widths/heights (SVG height=”100%” width=”100%” defaults)
  • CORE-45463 embed and object are treated differently when it comes to SVG sizing
  • CORE-46370 Reading “frames” crossdomain should not throw
  • CORE-46355 Float breaks line despite white-space:nowrap being specified
  • CORE-30346 Smarter protection of window.parent, window.top (File/Folder hierarchy is not shown at skydrive.live.com)
  • CORE-44792 Inline resource has different caching behavior from appended resource
  • CORE-38525 Bottom aligned abspos propagates its bounding box too early when being pulled up during the reflow
  • CORE-43666 unload not fired for nested frameset if parent frameset is replaced
  • CORE-39007 Endless reload at Wikimedia – document.referrer not updated with location.href
  • CORE-45238 Inline resource has different caching behavior from appended resource
  • CORE-31511 Variable declarations inside eval’ed code should shadow native window properties
  • CORE-44190 DuckDuckGo dropdown menu renders with glitches on mouse hover
  • CORE-38697 &lt; entity in XML node’s attribute value serialized as < (Cloud9 IDE hangs during load)
  • CORE-40201 window.open(“”, “_self”) on clicking link prevents page navigation
  • CORE-46314 Yandex mailbox not loading
  • CORE-46309 BR doesn’t contribute to the bounding box (for scrolling)
  • OTW-8119 Files drag and drop at dropmocks.com doesn’t work
  • CORE-46713 JSLinux not booting
  • CORE-42819 Unable to go to the next page on stores.ebay.com; security check on setting document.domain inside IFRAME
  • CORE-46657 Invalid date format on Bank of Montreal site because we throw RegExp syntax error for (?:)?
  • CORE-46437 Inserting option into optgroup with whitespace inside select with multiple fails
  • CORE-46244 Scaling up an image results in ever increasing inaccuracy
  • CORE-46513 insertRule throws if index is undefined; breaks login for some Zimbra versions
  • CORE-46430 Om Nom on CutTheRope.ie is gone
  • CORE-46299 JavaScript window.location.href issue
  • CORE-46034 Selection fails to update when caret is placed with mouse clicks
  • CORE-44594 Unable to click button link with SVG background
  • CORE-46077 word-wrap doesn’t work anymore
  • CORE-45568 Setting width to ‘inherit’ after setting fixed width on positioned element makes it too wide; causes flicker and too wide menus on regentcinemas.com.au
  • CORE-45915 Gmail attachment column shows only “undefined”
  • CORE-43690 Element inside display:none element steals focus
  • CORE-45633 ‘in’ operator inside for pre-expression (Microsoft Ajax Minifier output breaks jQuery on opendataforafrica.org)
  • CORE-45475 dojo AMD loader – WRONG_THIS_ERR
  • CORE-44728 Ignore whitespace in option when searching for keyboard matches
  • CORE-45388 Nothing is displayed except top stories and advertisers when logging in at aol.com
  • CORE-45093 Unable to log in at yandex.ru
  • CORE-45025 Unable to click rich text buttons in Gmail
  • CORE-41623 document.referrer empty when embedding other origin IFRAMEs
  • CORE-45138 useMap attribute should not be resolved
  • CORE-45173 Registering web handlers makes browser unusable after restart
  • CORE-43385 Remove document.charset
  • CORE-45218 Can’t report problem with Google Maps

性能

  • CORE-46526 Improve performance of SVG animateMotion
  • CORE-45432 Leaving page with many frames takes a long time (temporary freeze)
  • CORE-46884 Slow performance with CSS3 transitioned images
  • CORE-45083 Increase Vega performance by triangulating simple polygons
  • CORE-45491 Optimizations of bilinear interpolation in Vega
  • CORE-45687 Performance: Setting style through DOM causes unnecessary property reloads
  • CORE-45874 High memory use when handing Canvas in some situations
  • CORE-46928 NSL with Delayed Script Execution enabled
  • CORE-37129 High CPU/NSL on some sites (window.constructor is Object object)
  • CORE-45142 Speed up area traversing with positioned elements
  • CORE-46308 Avoid creating opacity layers for SVG line elements with opacity
  • CORE-45472 Optimization of the Vega (software) rasterizer
  • CORE-43184 demo.zarafa.com freezes when using a non-English language
  • CORE-45748 Implement fast path for box shadows with uniform border radius
  • CORE-45075 “Army of the Immortals” is slow
  • CORE-45553 SVG freeze when transforming an empty bbox and then using the result
  • CORE-45284 Freeze when border-left-width or border-right-width is zero
  • CORE-45383 Slower to parse a function with many integers than it used to be
  • CORE-45337 Optimizations for Vega radial gradients
  • CORE-45277 Spatial navigation lockup
  • CORE-44725 Implement assembler optimized versions of pixel handling bottle necks

稳定性

  • Numerous crash fixes not detailed below
  • DSK-366433 Opera crashes on Google search
  • CORE-47029 Crash at Lenovo “Shop now”
  • CORE-47026 Form crash in extensions
  • CORE-46764 Rich text editing (text selection) crash
  • CORE-46798 An animation may crash when corresponding keyframe rule has been deleted
  • CORE-46947 Crash on setting xhr.responseType in UNSENT state
  • CORE-46467 Crash after Delete Private Data
  • CORE-45525 Crash on trying to draw some SVG content into Canvas
  • CORE-46552 Opera crashes when accidentally creating infinite arrays
  • CORE-46369 WebGL GLSL conformance test crashes Opera
  • CORE-46399 Crash on blogger
  • CORE-46192 Crash when pasting into frameset
  • CORE-46115 Crash running CSS animation on root element
  • CORE-46093 Crash in XML parser when xlink:href in SVG is redirected back to the referring document
  • CORE-46230 documentedit ‘justifyfull’ on hidden element crashes
  • CORE-46038 [WebGL] Renderbuffer initialization crash
  • CORE-46023 [WebGL] glsl-function-nodes test crashes Opera
  • CORE-45869 Crash when dragging selection out of number input
  • CORE-45998 QR-code reader page consistently crashes Opera
  • CORE-45772 Crash on accessing properties of drag&drop dataTransfer object after drag finished
  • CORE-45932 Document edit crash when making an element non-editable
  • CORE-45632 Crash when saving to full disk
  • CORE-45628 Crash on switching back from print preview when page uses style background:url and an image element
  • CORE-43131 Thumbnail generation crashes on shutdown
  • CORE-45272 SVG altGlyph crash
  • CORE-45087 Crash on tylda.com
  • CORE-40844 Crash referencing a radialGradient outside a valid SVG-fragment
  • CORE-46908 TextSelection being modified after releasing it
  • CORE-45420 Crash on certificate installation
  • CORE-44135 SVG document.querySelector(‘textPath’) crash
  • CORE-45281 Crash when dragenter is paused by a dialog
  • CORE-45587 Crash on pretty-printing script in Dragonfly
  • CORE-47618 Crashes when going to fullscreen in embedded Flash player
  • CORE-46136 Incorrect handling of non-numeric operands involving immediates
  • CORE-45326 Memory leaks at soft.mydiv.net

对标准的支持

  • CORE-46830 FileList spec compliance
  • CORE-43603 Opera does not follow WebGL spec for behavior of activeTexture()
  • CORE-46725 Update SharedWorker connect events to use .source
  • CORE-42041 Remove input.selectedOption
  • CORE-46870 Drop Voice XML, CSS Speech, etc. support
  • CORE-43592 Serialize HTML tree with trimming by text selection
  • CORE-46783 WebGL constants aren’t set on interface object and its prototype
  • CORE-46274 WebGL 1.0.1 – DOM API for compressed texture formats
  • CORE-46271 WebGL 1.0.1 – long uniform array name
  • CORE-46210 WebGL 1.0.1 – attrib location length limit
  • CORE-46251 WebGL 1.0.1 – vertex shader with uniform variable in loop condition should fail
  • CORE-45529 WebGL 1.0.1 – Uint8ClampedArray: Storing 0.6: expected 1, got 0
  • CORE-45528 WebGL 1.0.1 – Construction of huge typed arrays should throw exception
  • CORE-46306 WebGL 1.0.1 – shader with struct nesting less than maximum in WebGL spec should succeed
  • CORE-46145 Constrain Worker importScripts() over files
  • CORE-24217 max-height ignored for display: table elements
  • CORE-46728 RegExp construcor does not throw exception
  • CORE-46726 Node.replaceChild sometimes throws an element
  • CORE-45319 Change our implementation of the resolution media query to use CSS units
  • CORE-46640 Processing instructions are not “instanceof ProcessingInstruction”
  • CORE-46573 Structured cloning of object property attributes
  • CORE-46575 Missing WorkerLocation stringifier
  • CORE-46645 Introduce support for the dppx unit
  • CORE-46424 Add ProgressEvent constructor
  • CORE-46225 Removed attributes from WebForms2 Repeat support still remain
  • CORE-46450 Handling of form-related enumeration-valued properties
  • CORE-35527 It’s not possible to clear value of ‘input’ element with ‘type’ attribute set to ‘datetime’ or ‘datetime-local’
  • CORE-46333 Indirect eval with strict eval code sets incorrect ThisBinding
  • CORE-46396 History replaceState and pushState treats specified null and undefined URL arguments as URL strings
  • CORE-46358 Correctly redefine a function’s ‘prototype’ property
  • CORE-46163 Too loose type checking in WebGL DOM bindings for isBlah() functions
  • CORE-17944 XMLHttpRequest cannot use setRequestHeader(‘Range’,’bytes=1-6′)
  • CORE-23623 innerHTML/outerHTML serialization of pre, listing, textarea should start with \n
  • CORE-45840 Remove handling of 5-/6-byte UTF-8 sequences
  • CORE-45652 Dropzone attribute changes in HTML5 Drag and Drop specification
  • CORE-4336 Setting innerHTML in XML
  • CORE-44513 Setting <input type=file>.value to the empty string should unselect the files
  • CORE-45517 Implement TypedArray slice()
  • CORE-45573 Date.prototype.toJSON spec compliance
  • CORE-41930 Percentage max-height/min-height that should use content edge as containing block use border edge instead
  • CORE-2429 Remove listeners in removeEventListener immediately and implement Event.stopImmdiatePropagation
  • CORE-40915 Support HTML5’s isProtocolHandlerRegistered(), isContentHandlerRegistered(), unregisterProtocolHandler() and unregisterContentHandler() methods
  • CORE-45169 document.createTouchList() only allows creation of empty lists
  • CORE-31401 Implement CSSOM View matchMedia() method

蜻蜓/(龙、龙飞…)/Dragonfly

  • DSK-362460 Loading of resources much slower in Opera 12 beta than Opera 11.6x
  • CORE-40239 Result set to FAILED on empty response of an XHR
  • CORE-46921 JS reformatter of debugger breaks code with single line comments
  • CORE-45081 contentLength is not available when contentLength header was not set in response
  • CORE-37213 Does not give events for requests for appcache manifest files
  • CORE-45365 Interaction with file field elements
  • CORE-36517 Show window.load and domContentLoaded triggers
  • CORE-41612 Add the extension name (or id) to the injected scripts
  • CORE-45702 Opening brace should be on the same line in pretty-printed code
  • CORE-43667 [Dragonfly] Use UPnP to discover Dragonfly instances
  • CORE-45851 Style declaration for border-*-radius values set to 0 returned as “0” instead of “0px”
  • CORE-26961 Reformat (pretty print) code before generating JS debug info

[ Via Opera Desktop TeamOpera.IM 编译 ]

《Opera 12.50 snapshot 1538: 内核升级、合并实验版扩展 API 等等》有15个想法

  1. 12.01新开窗口都只能在最后,能改回在当前页的右侧么?例如从左向右1,2,3页,1里面打开的页面在1和2之间

    1. 应该是的,也可能最后RC的几个没并过来。。。这版对扩展改动较大,据说有丢失扩展个人设置的问题,所以还是先用12.01或者11.64吧。

发表评论

电子邮件地址不会被公开。 必填项已用*标注