根本から見直されたUI、同期サービスなどの新機能、iPhoneアプリの紹介はもちろん、Firefoxを別のブラウザへと変えてしまう超強力アドオンについても開発者自身が丁寧に解説。新しいAdd-on SDKを用いた拡張機能開発チュートリアル、真の拡張機能ハッカーだけが知る実践的開発テクニックに加え、HTML5、CSS3、SVG、次世代JavaScriptやデバイスセンサー系APIなど、Webテクノロジも広くカバー。Firefoxのすべてが詰まった本書を手に、ユーザーとして、Web開発者として、拡張機能開発者として、Firefoxを徹底的に使い倒そう。
サンプルPDF
● 1章:Hack #8 Personasで実現する着せ替えブラウザ
● 2章:Hack #14 VimperatorとKeySnailの設計上の違い
● 3章:Hack #18 拡張機能の開発(基礎編)
● 4章:Hack #34 e10sにおけるプロセス間通信の基本
● 5章:Hack #55 コンテンツセキュリティポリシー
● 6章:Hack #60 js-ctypesとXPConnectの違いを理解する
Firefox Hacks Rebooted
―Mozillaテクノロジ徹底活用テクニック
浅井 智也、池田 譲治、小山田 昌史、五味渕 大賀、下田 洋志、寺田 真、松澤 太郎 著
目次
目 次
クレジット
はじめに
1章 Firefoxの基本
#1 オリエンテーション
#2 Firefox 4以降の新機能
#3 新しいユーザーインタフェース
#4 タブグループ
#5 アプリタブ
#6 Firefox Syncを使ってブラウザ情報の同期を取ろう
#7 Firefox Home
#8 Personasで実現する着せ替えブラウザ
#9 ユーザープロファイルの基本
2章 拡張機能で自分専用ブラウザを作る
#10 Vimperator
#11 Vimperatorをさらに活用する
#12 KeySnail
#13 KeySnailをさらに活用する
#14 VimperatorとKeySnailの設計上の違い
#15 FirefoxとTwitter
3章 Add-on SDKでかんたん拡張機能開発
#16 Add-on SDKとは何か
#17 Add-on SDKのセットアップ
#18 拡張機能の開発(基礎編)
#19 addon-kitライブラリ
#20 api-utilsライブラリ
#21 拡張機能の開発(応用編)
#22 拡張機能のローカライズ
#23 拡張機能の自動テスト
4章 ディープな拡張機能開発
#24 再起動不要な拡張機能「Bootstrapped Extensions」の作り方
#25 Bootstrapped Extensionsの制限
#26 外部スクリプトをBootstrapped Extensionsで読み込む
#27 FirefoxのUIをBootstrapped Extensionsで変更する
#28 Bootstrapped Extensionsの設定UI
#29 Bootstrapped ExtensionsでのResource URLの登録
#30 Bootstrapped Extensionsと非同期な初期化処理や終了処理
#31 XPCOMコンポーネントをBootstrapped Extensionsに
組み込む
#32 Bootstrapped ExtensionsのFirefox 3.6対応
#33 Bootstrapped Extensionsでのchrome.manifestの利用
#34 e10sにおけるプロセス間通信の基本
#35 メッセージマネージャのAPI詳説
#36 コンテントスクリプト用のAPI詳説
#37 Chromeスクリプトからコンテントスクリプトへ同期的に
メッセージを送る
#38 Bootstrapped Extensionsでコンテントスクリプトを使う
#39 非同期処理のすすめ
#40 MozStorageの非同期API
#41 アドオンマネージャの非同期API
#42 ワーカーによるマルチスレッド処理
#43 JSDeferredで非同期処理をスッキリ書く
#44 Firefoxの非同期処理をDeferred化する
5章 FirefoxとWeb技術
#45 HTML5再入門
#46 ECMAScript5
#47 ECMAScript for XML
#48 E4X 応用
#49 CSS3時代のデザイン
#50 Webフォント徹底活用
#51 テキスト領域のリサイズ
#52 Canvas入門
#53 SVGとSMILによるアニメーション
#54 新しいアニメーション技術比較
#55 コンテンツセキュリティポリシー
#56 イマドキのセキュリティ機能を活用する
6章 Firefoxを極める
#57 AndroidでもFirefox
#58 デバイスセンサーを活用する
#59 プラグインプロセスの分離
#60 js-ctypesとXPConnectの違いを理解する
#61 js-ctypesの基本的な使い方
#62 js-ctypesで自力でメモリを管理する
#63 FirefoxとWebの未来
索引
コラム目次
Firefox HomeはWebアプリケーションへ
Bootstrapped Extensionsのテンプレート「restartless」
XULベース拡張機能とBootstrapped Extensionsの
起動プロセスの違い
SDKを使うメリット
restartlessに含まれる外部ファイルの読み込み用の機能
restartlessでのXULウィンドウの取得と監視
restartlessの設定UI提供用ライブラリ
restartlessでのResource URLの自動登録
restartlessのユーティリティ関数doAndWait()
restartlessによるFirefox 3.6への対応
JSON形式とは?
in-process contentとout-of-process content
Firefox Mobileのe10s
すべてのタブやすべてのウィンドウにコンテントスクリプトを
読み込ませる
すべてのタブやすべてのウィンドウのメッセージを受信する
すべてのタブやすべてのウィンドウにメッセージを送信する
名前付きのプレースホルダとカラム名での値の取り出し
ワーカー内で実行したい内容を後から指定するには?
「deferred」とは?
Deferredチェインの中に独自のメソッドを組み込む
キャンセル可能なDeferredオブジェクトの作り方
deferred.call( )は複数回呼んでも大丈夫?
タブモーダルなダイアログ
js-ctypesの由来
JavaScriptとjs-ctypesと64ビット整数
サイズが不定のポインタ型の引数