Opera10alpha1のチェンジログについてのメモ

Opera10alpha1 をインストールしてみた。

こんなに早くインストールするつもりじゃなかったのだけど、チェンジログに気になるところがあったため。

日本語訳はこのあたりから。

これについてメモ

getClientRects() と getBoundingClientRect()

これらの関数が返すオブジェクトの名前が変わったらしい。それぞれ、TextRectangle と TextRectangleList だそう。

というわけで、9.5系のときにあったバグがどうなっているかこれ↓で確認したところ、

どれも直ってない!

このバグのせいで自作 Hit-a-Hint ブックマークレットはかなり無駄な処理をやって遅くなっているのだけど、今のところはコードを修正する必要はないようだ (怒)。

window.setDocument

廃止になったらしい。

setDocument については id:quaa さんの RSS ログで setDocument とページ内検索してください。

おもしろいメソッドだけど使い道がないからなあ。

廃止の理由が、proprietary だからというのは Opera らしい。(Opera の専売なの?)

Selectors API

W3C の仕様書には

Objects implementing any of the Document, DocumentFragment or Element interfaces

Selectors API

とあるのだが、Opera 10では

The selectors API is experimentally supported in Opera 10 alpha (we don't implement it on the DocumentFragment nodes).

Opera 10 alpha: Web Fonts, Acid 3 and more - By Opera's Developer Relations Team

と、DocumentFragment には実装されていないらしい。正式版までには実装されるのかな? "we don't inplement it on the DocumentFragment nodes" という書き方が「これからも実装しません」の意味にも読めるのが心配。

Selectors APIと空間ナビゲーションのハイライト

空間ナビゲーションの青枠が当たっている要素のための疑似クラスで "-o-prefocus" というのがある (Opera 専用) のだけど、これも

document.querySelectorAll(':-o-prefocus')

で取得できる。しかし、この関数の評価の時点でアドレス欄にフォーカスがあったりすると、ちゃんと取得できないみたい。この場合は

document.querySelectorAll(':focus')

とかで代用できる。しかし、textarea などに空間ナビゲーションして青枠で囲まれている状態が "prefocus" なのだから、"focus" として取得できることに少し違和感がある。

document.querySelectorAll(':hover')

も同じ用途で使えるっぽい。空間ナビゲーションの青枠が出ている間は実際にマウスが hover している要素は無視されるらしい。

空間ナビゲーションである要素をハイライトしているときは、HTMLElement.focus() で他の要素をハイライトできるようになった

この部分↓はチェンジログが間違い。

A highlight will no longer be added when HTMLElement.focus() is called unless keyboard navigation is already activated

Changelog for Opera 10.0 Alpha 1 for Windows

「空間ナビゲーションである要素をハイライトしない限り、HTMLElement.focus() で他の要素をハイライトしなくなった」ではなくて、上の見出しが正解。

9.5系では、空間ナビゲーションの青枠が出ていようが出ていまいが HTMLElement.focus() では青枠は出なかった。

UserJSの実行される順番

User JS files will now be executed in alphabetical order rather than file system order

Changelog for Opera 10.0 Alpha 1 for Windows

これは意味不明。

9.5系までもアルファベット順のはずだけど。ファイルシステム順って何だろう。複数フォルダの UserJS が (実は) 使えるとか??

コメントいただきました。コンマで区切って複数のフォルダを指定することができるそうです。

Dragonflyが現在のタブを自動で選択してくれるようになった & HTTP Inspector が付いた

これは嬉しい。

JavaScript で HTTP の監視をやってるんだよなあ。おもしろそうなのであとで Dragonfly のソースを読んでみる。

同じ ID 属性値が2つある場合

The first ID (instead of the last) is now used on pages with duplicate IDs when navigating to fragment IDs

Changelog for Opera 10.0 Alpha 1 for Windows

9.5系まではドキュメントで最後にに出現するほうが使われていたけど、10からは最初にに出現するほう。

AutoPagerize で継ぎ足した要素に同じ ID が付いていると、継ぎ足す前と後で違う要素が取得されていたのだけど、それがなくなったっぽい。(未確認)

Widget はデフォルトではネットワーク接続が無効になっている

のでちゃんとソースに書いてオンにすること、と。

Network access for widgets is now opt-in. Thus, all existing widgets must be updated in order to have network access. All widgets on widgets.opera.com have been given Internet access. Network access is specified using the network attribute of the widget element. For instance, widgets that use will have Intranet access only. Widgets that use will have Intranet and Internet access.

Changelog for Opera 10.0 Alpha 1 for Windows

widgets.opera.com にあるものは自動で修正されているっぽいことがどこかに書いてあった気がする。

alpha1をインストールしてみた感想

ほとんど変わってなくて拍子抜けした。

レンダリングエンジンを書き換えてるなら上の getClientRects() のバグなんかは直っていてもおかしくなさそうなもんだけど。

果たしてこれから Opera 9.5 との違いは出るのかな。


canvas とかのチェンジログはよく知らないのでパスしました。