先日のMozilla勉強会のdynamisさんの資料でFirefox Hacks Rebootedの目次が公開されているんですが、たぶんコピペ需要ありそうなので手元の原稿を元に目次を作ってみました。宣伝などにご利用ください。
クレジット .. iii はじめに .. v 1章 Firefoxの基本 .. 1 #1.オリエンテーション .. 1 #2.Firefox 4以降の新機能 .. 7 #3.新しいユーザーインタフェース .. 13 #4.タブグループ .. 19 #5.アプリタブ .. 22 #6.Firefox Syncを使ってブラウザ情報の同期を取ろう .. 26 #7.Firefox Home .. 35 #8.Personasで実現する着せ替えブラウザ .. 39 #9.ユーザープロファイルの基本 .. 47 2章 拡張機能で自分専用ブラウザを作る .. 55 #10.Vimperator .. 56 #11.Vimperatorをさらに活用する .. 60 #12.KeySnail .. 69 #13.KeySnailをさらに活用する .. 80 #14.VimperatorとKeySnailの設計上の違い .. 87 #15.FirefoxとTwitter .. 91 3章 Add-on SDKでかんたん拡張機能開発 .. 97 #16.Add-on SDKとは何か .. 97 #17.Add-on SDKのセットアップ .. 102 #18.拡張機能の開発(基礎編) .. 108 #19.addon-kitライブラリ .. 117 #20.api-utilsライブラリ .. 133 #21.拡張機能の開発(応用編) .. 141 #22.拡張機能のローカライズ .. 155 #23.拡張機能の自動テスト .. 158 4章 ディープな拡張機能開発 .. 165 #24.再起動不要な拡張機能「Bootstrapped Extensions」の作り方 .. 166 #25.Bootstrapped Extensionsの制限.. 175 #26.外部スクリプトをBootstrapped Extensionsで読み込む .. 181 #27.FirefoxのUIをBootstrapped Extensionsで変更する .. 186 #28.Bootstrapped Extensionsの設定UI .. 195 #29.Bootstrapped ExtensionsでのResource URLの登録 .. 202 #30.Bootstrapped Extensionsと非同期な初期化処理や終了処理 .. 203 #31.XPCOMコンポーネントをBootstrapped Extensionsに組み込む .. 206 #32.Bootstrapped ExtensionsのFirefox 3.6対応 .. 213 #33.Bootstrapped Extensionsでのchrome.manifestの利用 .. 217 #34.e10sにおけるプロセス間通信の基本 .. 219 #35.メッセージマネージャのAPI詳説 .. 226 #36.コンテントスクリプト用のAPI詳説 .. 234 #37.Chromeスクリプトからコンテントスクリプトへ同期的にメッセージを送る .. 243 #38.Bootstrapped Extensionsでコンテントスクリプトを使う .. 247 #39.非同期処理のすすめ .. 249 #40.MozStorageの非同期API .. 252 #41.アドオンマネージャの非同期API .. 258 #42.ワーカーによるマルチスレッド処理 .. 270 #43.JSDeferredで非同期処理をスッキリ書く .. 278 #44.Firefoxの非同期処理をDeferred化する .. 298 5章 FirefoxとWeb技術 .. 321 #45.HTML5再入門 .. 321 #46.ECMAScript5 .. 329 #47.ECMAScript for XML .. 337 #48.E4X 応用 .. 351 #49.CSS3時代のデザイン .. 358 #50.Webフォント徹底活用 .. 363 #51.テキスト領域のリサイズ .. 371 #52.Canvas入門 .. 374 #53.SVGとSMILによるアニメーション .. 383 #54.新しいアニメーション技術比較 .. 392 #55.コンテンツセキュリティポリシー .. 404 #56.イマドキのセキュリティ機能を活用する .. 412 6章 Firefoxを極める .. 419 #57.AndroidでもFirefox .. 419 #58.デバイスセンサーを活用する .. 426 #59.プラグインプロセスの分離 .. 431 #60.js-ctypesとXPConnectの違いを理解する .. 440 #61.js-ctypesの基本的な使い方 .. 445 #62.js-ctypesで自力でメモリを管理する .. 465 #63.FirefoxとWebの未来 .. 467 コラム目次 Firefox HomeはWebアプリケーションへ .. 38 Bootstrapped Extensionsのテンプレート「restartless」 .. 167 XULベース拡張機能とBootstrapped Extensionsの起動プロセスの違い .. 172 SDKを使うメリット .. 180 restartlessに含まれる外部ファイルの読み込み用の機能 .. 184 restartlessでのXULウィンドウの取得と監視 .. 187 restartlessの設定UI提供用ライブラリ .. 200 restartlessでのResource URLの自動登録 .. 203 restartlessのユーティリティ関数doAndWait() .. 205 restartlessによるFirefox 3.6への対応 .. 216 JSON形式とは? .. 221 in-process contentとout-of-process content .. 222 Firefox Mobileのe10s .. 226 すべてのタブやすべてのウィンドウにコンテントスクリプトを読み込ませる .. 228 すべてのタブやすべてのウィンドウのメッセージを受信する .. 232 すべてのタブやすべてのウィンドウにメッセージを送信する .. 234 名前付きのプレースホルダとカラム名での値の取り出し .. 254 ワーカー内で実行したい内容を後から指定するには? .. 273 「deferred」とは? .. 284 Deferredチェインの中に独自のメソッドを組み込む .. 290 キャンセル可能なDeferredオブジェクトの作り方 .. 297 deferred.call()は複数回呼んでも大丈夫? .. 302 タブモーダルなダイアログ .. 306 js-ctypesの由来 .. 444 JavaScriptとjs-ctypesと64ビット整数 .. 451 サイズが不定のポインタ型の引数 .. 464