TracDragDropPluginをChrome7.0betaに対応
id:jun66j5さんが作成された便利なプラグイン、TracDragDropPluginですが、Google Chrome4には対応しているそうですが、自分が普段使っているChrome7.0betaでは残念ながら動かない。
デバッグしてみると、HTML5かGoogle Gearsの判定がうまくいっていない模様で、ちょっと修正すれば動くようになりました。
trac-hacksにチケットを投稿しようと思いましたが、TracDragDropPluginのコンポーネントがなぜか現在は存在しないようなので投稿できず…。なのでここにパッチ内容を書いておきます。
Index: 0.12/tracdragdrop/htdocs/tracdragdrop.js =================================================================== --- 0.12/tracdragdrop/htdocs/tracdragdrop.js (revision 9287) +++ 0.12/tracdragdrop/htdocs/tracdragdrop.js (working copy) @@ -352,11 +352,10 @@ try { new FileReader(); var xhr = new XMLHttpRequest(); - if (!xhr.upload || !xhr.sendAsBinary) { - return false; + if (xhr.upload && xhr.sendAsBinary) { + methods = methodsHTML5; + return true; } - methods = methodsHTML5; - return true; } catch (e) { } Index: 0.11/tracdragdrop/htdocs/tracdragdrop.js =================================================================== --- 0.11/tracdragdrop/htdocs/tracdragdrop.js (revision 9287) +++ 0.11/tracdragdrop/htdocs/tracdragdrop.js (working copy) @@ -347,11 +347,10 @@ try { new FileReader(); var xhr = new XMLHttpRequest(); - if (!xhr.upload || !xhr.sendAsBinary) { - return false; + if (xhr.upload && xhr.sendAsBinary) { + methods = methodsHTML5; + return true; } - methods = methodsHTML5; - return true; } catch (e) { }
※パッチ補足:Chrome7betaだとxhr.uploadは存在するがxhr.sendAsBinaryはundefinedなのでfalseが返り、GoogleGearモードになっていませんでした。