inspect window(and Safari3と4の判定)

前回のをちょっと改良してwindowオブジェクトを解析してみた。
http://ss-o.net/test/window.html

で、Safari3からSafari4betaで新たに増えたグローバルプロパティを調べてみた。

getSearchEngine
postMessage
setSearchEngine
CSSVariablesDeclaration
CSSVariablesRule
CanvasRenderingContext2D
Clipboard
DOMStringList
File
FileList
HTMLCollection
MessageEvent
MimeType
MimeTypeArray
Plugin
PluginArray
Storage
StorageEvent
TextMetrics
WebKitAnimationEvent
WebKitCSSKeyframeRule
WebKitCSSKeyframesRule
WebKitCSSMatrix
WebKitCSSTransformValue
WebKitTransitionEvent
Worker
XMLHttpRequestUpload
applicationCache
localStorage
onwebkitanimationend
onwebkitanimationiteration
onwebkitanimationstart
onwebkittransitionend
sessionStorage
MessageChannel

うーん、Workerとか気になりますね。


で、グローバルオブジェクトでの Safari3 と Safari4 の判別(Google Chromeとの判別も含め)はこんな感じかな。

var isSafari3 = window.openDatabese && !window.postMessage;
var isSafari4 = window.openDatabese && window.postMessage;

もしくは、

var isSafari3 = window.getMatchedCSSRules && !window.postMessage;
var isSafari4_Chrome = window.getMatchedCSSRules && window.postMessage;

とか。