Hatena::Groupweb

vantguarde

 | 

3.4

Navigation Timing ― window.performance, CR, PR, and REC

| 23:48

window.performance

そろそろCRになりそうなNavigation Timingでこんな話がありました。2010年11月から今年1月の話なのでだいぶ前です。

Jonas brought up a couple questions about the current draft and we decide to have them discussed here.

[...]

- "Also, an issue that isn't related to privacy. This introduces a new global attribute called 'performance', right? This seems somewhat scary as it is quite a generic name, and will break any web pages that uses a global variable with that name."

はい。window.performanceなんてグローバル属性を追加しちゃって影響でないの?っていう話です。ああー。

console, document, navigatorにぶらさげるなんて案も出ていました。

Geckoではnavigatorの寿命がページのそれよりも長く、次のsame-originなページまで保つなんて話もあるようです。

というかWeb壊れんの?という疑問です。「何千もの高トラフィックなWebサイトのうち影響するのは0.00993%より小さい」なんて回答が。

「じゃあまあいいんじゃね?」と。

さて。

This adds a new property 'performance' to the global scope. I think there may be pages out there that already use that property for other things -- script variables or <div id="performance"> or <a name="performance"> or <form onsubmit="return validate(performance.value)"><input name="performance">, and so forth.

[...]

To avoid polluting the global scope with a common name, potentially breaking scripts out there, I suggest we move the attribute to the Navigator interface.

一週間後、Simon Pietersがそれまでリストで話題が出てこなかったかのように同じことを指摘し、Navigatorにぶらさげることを提案します。えっ。

Jonasさんが先ほどのnavigatorの話を再び伝えます。navigatorの寿命が長い理由は彼にも定かではないようですが、たぶん互換性のため、Netscape 4時代から続いてるんだそうです。他のとちがって、navigator.performanceになるとページを行ったりきたりする時に、同じオブジェクトが使われることになってしまうから、妙な挙動をとるんじゃないかと。ふむ。。

名前を変えてもいいんじゃないかという提案を受け、pagePerformanceなんて名前が提案されます。

「つーかやっぱ問題とか起こんなくね?」「replaceableにすればまあいんじゃね?」ということになりました。IE9で実装されていて、Microsoft的に仕様を安定させたいという思惑もあったようです。

あ、会話の表現はだいぶ違うと思います。

というわけでwindow.performanceはreplaceableで、window.performance.timing, window.performance.navigationはread-onlyなんて妙ちくりんな解決策が提案されます。

pagePerformanceにすればいいんじゃという話が出ます。たしかに。

しかし、LCになったらWebKitはprefix外しちゃうし、IE9開発が終盤で変更をかなりしにくいとかそんな関係で、名前は変わられないという。影響はたぶんないでしょうけど、まあなかなかに残念な話ではあるかと。

Geckoですが、パッチが書きあがってるようです。レビュアーがいなくて取り込まれていませんが……

CRとPRとREC

plh: [prior in the call] we need at least two implementations to move PR. We could do more but it's up to us. Since we have experience in mozilla, ie, and webkit engine, it doesn't seem we would gain much in waiting. and nothing prevent us from doing a navigation timing 2.0 if we want to. for CR, we need Zhiheng to make his latest editorial changes and we can then decide to move to CR for the duration of CR, it's also up to us. We need to have the tests and implementation report to move out of it. We could skip CR if we have those already btw

PRには実装ふたつが必要だけどMozilla, IE, WebKitがいい感じだからそんなに待たなくてもいいとか、Navigation Timing 2つくってもいいとか、テストと実装が充分ならCR飛ばせるとか、まあそういう話がでています。2.0ですか。まあ多分、ここから長いんでしょうけど。

あと、こんなことも。

One blocker that we haven't talked about but is going to bite us when we're going to move to PR is the references to the HTML5 specification. We aren't supposed to reference a moving draft from a w3c recommendation since it's supposed to be stable.

HTML5がnormative referenceとなっていて、まあHTML5なんてRECにならないですからそれがNavigation Timingの足かせになると。ここではPRですが、本当はRECですね。必要なものをAppendixなどに移すとか、そういう話が出ていますが、うーん。面倒な話です。

あーつかれたー。終わらないー

CR公開

追記追記。

出ましたね。

 | 
Contact: @vant / lepetitcroissant@gmail.com.