GoogleChrome

現状のFirefox,Chromeで、for-of でイテレートできるようにする

Firefox 26.0a1 (Nightly) @@iterator 実装なし 代わりに iterator メソッドを定義するとOK(仕様外) __iterator__ というものもあるが、for-of とは無関係(独自実装) GeneratorObject の next メソッドは値を返すのみで{ done: ..., value: ... }な値を…

v8エンジンの __proto__ が getter/setter になってた

28.0.1500.3 (Official Build 198635) dev-mで確認以前確認した時はまだDataDescriptorだったから、また変更されたみたい。 > Object.getOwnPropertyDescriptor(Object.prototype,"__proto__") Object {get: function, set: function, enumerable: false, co…

Symbol でプライベートな値を作る

ChromeのExperimental WebKit/JavaScript Features - fragmentary Experimental JavaScript Features の方に Symbol が使えると書かれていたので早速。Symbol ってのはなんて言うか、固有のプロパティのキーになれるもの?っていう説明で良いのかな。 var s …

Chrome Canary には document.webkitRegister があった

昨日はFirefox Nightlyにdocument.registerが実装されたって話を書いたが、もしやChrome Canaryにもあるんじゃ?と思って見てみたら、あった。 Bug 100229 - [Custom Elements] Implement bare-bone document.register() チェンジセット 143865 – WebKit た…

GoogleChrome(27.0.1425.2 dev-mあたり) の __proto__ 挙動が変わった

window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…

getEventListeners(node)

constructor.members_に使えるメソッド名一覧があることを発見して、getEventListeners(node)で、そのnodeでリッスンしているハンドラが取れる事を知った。デバッグに役に立ちそう。 参考 Command Line API Reference - Chrome Developer Tools — Google Dev…

マウスカーソルとテキスト選択の位置が合わなくなる

とあるサイトでマウスカーソルと選択文字が合わない事象が発生して、疑問に思ったのでちょっと実験してみた。どうも、inlineな要素にpadding-topのとline-heightを大きめに取ると、この現象が起こるみたい。 ソース <p> <span style="padding-top: 1em; line-height: 1em;"> 一行目: hogehogehogehogehogehogehogeh</span></p>…

WebRequest API でワザとリクエスト送信を遅くしてみた

WebRequest APIドキュメントを見ると、幾つかは blocking を指定して、同期的な実行にすることでリクエストヘッダだとかを書き換えたりできるようになってる。この前 DoNtTrackME なる拡張を作ったんだけど、これもリクエストヘッダに、DNT: 1を追加するもの…

初めてChrome拡張を作った DoNtTrackME

ただ、お願いするだけの拡張。 manifest.json{ "name": "DoNtTrackME", "description": "Do Not Track ME", "version": "0.1", "background_page": "background.html", "permissions": [ "webRequest", "webRequestBlocking", "*://*/*" ] } background.html <html lang="en"></html>…

chrome --js-flags="--harmony"

GoogleChromeのdevチャンネルでタイトルの様なコマンドラインオプションを付けると、ES Harmonyの機能を幾つか使えるみたい。元ネタ: https://mail.mozilla.org/pipermail/es-discuss/2012-January/019133.html ブロックスコープ harmony:block_scoped_bind…

GoogleChrome拡張のコンテンツスクリプトでUIを追加することについて

ViChromeというGoogleChromeの拡張機能がある。この拡張のセキュリティリスクを一つ発見した話。問題は既にversion 0.6.2 で解決されているので、話に出しても大丈夫だよね。既知のノウハウなのかもしれないが、個人的には「おお、なるほど!」と思ったので…

Chromeはコンテンツ側から生成したキーボードイベントを拾うのか?

独自キーバインドを設定するために、コンテンツ領域で keypress や keydown を拾う拡張機能が幾つかある。 keyconfig 系とか Vimperator 系とかね。んで、これらの拡張っていうか、GoogleChromeはコンテンツ側で生成してディスパッチしたキーボードイベント…

GoogleChrome の CDATA セクションの文字がコピーできないバグ

今日は変なのを見つけてばかりである。 今度は GoogleChrome ... なのか chromium なのか webkit なのか全然分からないので誰か検証して報告してくれると嬉しい。とりあえず、 http://code.google.com/p/chromium/issues/list で既知のバグか探したけど見つ…

やっぱり体感速度

Firefoxより速いGoogleChromeだが、 BarTapとかopener.jsとかインストールすると快適すぎて、とうとうchromeを使うこともなくなった Twitter / tyru: BarTapとかopener.jsとかインストールす ... というTwitter投稿があり、あぁなるほど、と思った。BarTapと…