smellman's Broken Diary

クソみたいなもんです

Firefox Hacks Rebooted の目次を作ってみた

先日の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