firefox and firebug with foxkeh

127
Firefox × Firebug ~Firefox for Web Developers~ Slides @ KDDI Web Communications on 2012/09/04 by Tomoya ASAI (dynamis) Last Update: 2012/09/06

Upload: dynamis-

Post on 15-Jan-2015

10.914 views

Category:

Technology


3 download

DESCRIPTION

KDDI Web Communications での勉強会で使用したスライド (当日スキップしたor後で追加したページあり)

TRANSCRIPT

Page 1: Firefox and Firebug with Foxkeh

Firefox × Firebug~Firefox for Web Developers~

Slides @ KDDI Web Communications on 2012/09/04by Tomoya ASAI (dynamis)

Last Update: 2012/09/06

Page 2: Firefox and Firebug with Foxkeh

about:

Page 3: Firefox and Firebug with Foxkeh

about:dynamisMozilla Japan

http://dynamis.jp@dynamitter

facebook.com/dynamisレッサーパンダが好き。

mailto: Tomoya ASAI <dynamis mozilla-japan.org>@

Page 4: Firefox and Firebug with Foxkeh

about:slides

下線なしリンクも使いますコードは要点だけの簡略版特に注意が必要なとき以外は-moz- 以外の接頭辞など割愛

右下には補足や一次情報源 URL

画像からも時々リンクしてます

mailto: Tomoya ASAI <dynamis mozilla-japan.org>@

Page 5: Firefox and Firebug with Foxkeh

�)�"�# �

%�����

� &"�'

��#��(��+

%��$�

��%����$��

Page 6: Firefox and Firebug with Foxkeh

�����

Page 7: Firefox and Firebug with Foxkeh

フォクすけの誕生日は 2006/09/01

Page 8: Firefox and Firebug with Foxkeh
Page 9: Firefox and Firebug with Foxkeh

Web Platform

Page 10: Firefox and Firebug with Foxkeh

� &���'�, �,��

フォクすけに教えて!

Page 11: Firefox and Firebug with Foxkeh
Page 13: Firefox and Firebug with Foxkeh

SemanticElements

MultiMedia

Canvas

HTML5Forms

OfflineSupport

Micro-Data

Server-Sent ev.

WebSockets

WebStorage

HTML5HTML5Parser

Mouse,Key ev.

XHTML5

WebWorkers

WebMessag-

ing

WAI-ARIA

W3C

WHATWG

HTML

Page 14: Firefox and Firebug with Foxkeh

SemanticElements

MultiMedia

Canvas

HTML5Forms

OfflineSupport

Micro-Data

Server-Sent ev.

WebSockets

WebStorage

LayoutMedia

Queries

HTML5

CSS3~Transform

Animation Regions

FlexBox

HTML5Parser

Mouse,Key ev.

XHTML5

WebWorkers

WebMessag-

ing

WAI-ARIA

W3C

WHATWG

HTML

Page 15: Firefox and Firebug with Foxkeh

SemanticElements

MultiMedia

Canvas

HTML5Forms

OfflineSupport

Micro-Data

WebGL

IndexedDB

SVG

Server-Sent ev.

WebSockets

WebSockets

Geo-location

FileAPI

WebStorage

XHR2

MathML

LayoutMedia

Queries

HTML5

CSS3~Transform

Animation Regions

FlexBox

HTML5Parser

Mouse,Key ev.

ECMAScript

CSP

SPDY

XHTML5

Orien-tation

WebWorkers

WebMessag-

ing

DOM4

SMIL Vibra-tion

XPathRSS

OGP

WAI-ARIA

W3C

WHATWG

other

Khronos

ECMA

IETF

WOFF

HTML

DNT

Page 16: Firefox and Firebug with Foxkeh

SemanticElements

MultiMedia

Canvas

HTML5Forms

OfflineSupport

Webm

H.264

Micro-Data

WebGL

WebSQL

IndexedDB

SVG

Server-Sent ev.

WebSockets

WebSockets

Geo-location

FileAPI

WebStorage

XHR2

MathML

WebAudio

LayoutMedia

Queries

HTML5

CSS3~Transform

Animation Regions

FlexBox

HTML5Parser

Mouse,Key ev.

Opus

ECMAScript ECMA

6th

USB

CSP

SPDY

WebCL

WebRTC

NetInfo

MP3

DeviceStorage

TCPSocket

NFC

File Sys

Notifi-cation

XHTML5

Orien-tation

WebWorkers

WebMessag-

ing

DOM4

SMIL Vibra-tion

Proxi-mity

XPathRSS

RDF

OGPSchema

.org

WAI-ARIA

W3C

WHATWG

other

Khronos

ECMA

IETF

WOFF

BatteryStatus

Radio

Tel

HTML

DNT

Page 17: Firefox and Firebug with Foxkeh

�����13./0-�2�

Page 18: Firefox and Firebug with Foxkeh

�����������

Page 19: Firefox and Firebug with Foxkeh

����4765�

Page 20: Firefox and Firebug with Foxkeh

Firefox DevTools

← このアイコンが続く← 間は標準ツールの話

Page 21: Firefox and Firebug with Foxkeh

Firefox Developer Tools

Firefox 4 から順次追加最初は Web コンソール専任のチームが開発してます

シンプルなツール群初心者でも比較的使いやすい

ときどき無駄ツール作りたくて作っただけだろ…

Page 22: Firefox and Firebug with Foxkeh

!���+"�

ちょっと考えてみてね

Page 23: Firefox and Firebug with Foxkeh

標準搭載されている機能は?ソース表示HTML エディタCSS エディタCSS リファレンスJavaScript エディタインスペクタレスポンシブ Web デザイン支援機能

HTTP 通信の記録開発ツールバーコンソールコマンドラインJS デバッガリモートデバッガページ毎のメモリ使用量確認

Page 24: Firefox and Firebug with Foxkeh

�,&+*�

おこらないでください

Page 25: Firefox and Firebug with Foxkeh

Firebug いらない?

タイムラインやデバッガ周りはまだ Firebug が圧倒複雑なアプリ開発には Firebug

細かな設定や拡張機能標準ツールを拡張する拡張機能は今のところほとんどないカスタマイズは Firebug が圧倒

Page 26: Firefox and Firebug with Foxkeh

標準ツールに向かないこと

パフォーマンス分析ネットワークタイムラインや JS プロファイリングなどはまだ

jQuery アプリ開発FireQuery が便利すぎる…

ピクセル単位のデザインFirebug × Pixel Perfect で完璧…

Page 27: Firefox and Firebug with Foxkeh

Page Source

Page 28: Firefox and Firebug with Foxkeh
Page 29: Firefox and Firebug with Foxkeh

ページのソースを表示

ありますよね、当然。ショートカット: Ctrl+UFx12 から行番号表示に対応

Validation構文エラー部分は赤くなります

選択部分のソースを表示範囲選択して右クリック

point!

Page 30: Firefox and Firebug with Foxkeh

Inspector

Page 32: Firefox and Firebug with Foxkeh

インスペクタ

要素を調査するツールショートカット: Ctrl+Alt+Iマウスオーバーで要素を選択

Fx14 でメニューを追加左: 対象要素の再選択右: innerHTML/outerHTML、 ノードの削除、クラスロック

https://developer.mozilla.org/ja/Tools/Page_Inspector

point!

Page 33: Firefox and Firebug with Foxkeh

HTML パネル

HTML リアルタイムエディタあちこちダブルクリックで編集右クリックから要素の削除、InterHTML/OuterHTML コピーソースでなく現在の DOM を編集

Firefox 17 から TreeEditor以前は属性などだけ編集できた

point!

https://developer.mozilla.org/ja/Tools/Page_Inspector/HTML_panel

Page 34: Firefox and Firebug with Foxkeh

スタイルパネル

CSS リアルタイムエディタスタイルの編集、オンオフ計算値スタイルの確認プロパティヘルプは MDN

スタイル変更もアニメーションして Foxy! な感じ。(・・).

https://developer.mozilla.org/ja/Tools/Page_Inspector/Style_panel

Page 35: Firefox and Firebug with Foxkeh

レイアウトビュー

CSS ボックスのサイズ確認Fx15 から搭載width x height とmargin, border, padding を確認畳むと width x height だけ表示point!

Page 36: Firefox and Firebug with Foxkeh

3D インスペクタ (旧称Tilt)

DOM 構造を3D可視化テクノロジーの無駄遣い開発時は無駄機能満載だった...

画面外要素の選択も簡単3D 表示&選択ツールです

point!

https://developer.mozilla.org/en/Tools/Page_Inspector/3D_view

Page 37: Firefox and Firebug with Foxkeh

Style Editor

Page 39: Firefox and Firebug with Foxkeh

スタイルエディタ

ページの全 CSS 一括編集編集した CSS は保存可能新規 CSS 作成や読み込みも可能ファイル単位のオンオフも

point!

https://developer.mozilla.org/ja/Tools/Style_Editor

Page 40: Firefox and Firebug with Foxkeh

Responsive

Page 41: Firefox and Firebug with Foxkeh
Page 42: Firefox and Firebug with Foxkeh

レスポンシブデザインビュー

任意解像度での表示を確認縦横サイズ入れ替え機能も実ウィンドウより大きな画面も

point!

Page 43: Firefox and Firebug with Foxkeh

隠し設定

プリセット画面サイズをabout:config で変更可能devtools.responsiveUI.presets =[{"width": 320, "height": 480},{"width": 360, "height": 640},{"width": 480, "height": 800}]など JSON 文字列で指定

再起動後に反映されます

Page 44: Firefox and Firebug with Foxkeh

Web Console

Page 47: Firefox and Firebug with Foxkeh

Web コンソール

基本的なコンソールショートカット: Ctrl+Alt+K表示位置: 上、下、別ウィンドウメッセージのフィルタ

コンソール開く前のログメッセージも記録される

point!

https://developer.mozilla.org/ja/Tools/Web_Console

Page 48: Firefox and Firebug with Foxkeh

簡易 JavaScript 実行環境

簡易 JS 実行環境コードの自動補完もあり注: Fx6 からロケーションバーのjavascript: URL はページ権限なしソーシャルエンジニアリング対応困るなら InheritPrincipal アドオンhttps://addons.mozilla.org/firefox/addon/inheritprincipal/

point!

https://developer.mozilla.org/ja/Tools/Web_Console

Page 49: Firefox and Firebug with Foxkeh

ネットワーク応答要求の確認

HTTP ヘッダの確認コンソールの URL をクリックRequest / Response ヘッダ通信時間や Cookie の確認

HTTP BODY も記録可能右クリックメニューから「要求ボディと応答ボディを記録」

point!

link_to_document

Page 50: Firefox and Firebug with Foxkeh

コンソール利用時の注意

コンソールは Sandbox 環境Web ページの要素には window 経由でアクセスする必要あり例えば、ページコンテキストにグローバル変数を定義するには:window.foo = "value";Inspector で選択している要素には $0 変数でアクセス可能point!

point!

https://developer.mozilla.org/ja/Tools/Web_Console

Page 51: Firefox and Firebug with Foxkeh

ビルトイン関数&変数

https://developer.mozilla.org/ja/Tools/Web_Console

関数や変数 機能

$() DOMノードをIDで検索。document.getElementById() またはページに $ 関数があればそれが使われる。

$$() DOMノードリストをCSSセレクタで検索。document.querySlectorAll()

$0 現在インスペクタで選択している要素

keys() 引数オブジェクトのプロパティ名リストを返す。object.keys

values() 引数オブジェクトの値リストを返す。

clear() コンソールの出力をクリア

inspect() 引数オブジェクトの調査ウィンドウを開く

pprint() オブジェクトや配列を見やすい形でダンプ出力

help() ヘルプページを開く

Page 52: Firefox and Firebug with Foxkeh

Scratchpad

Page 54: Firefox and Firebug with Foxkeh

スクラッチパッド

Eclipse Orion エディタ内蔵ショートカット: Shift+F4

コードを実行、調査、表示調査: インスペクタ画面を表示表示: 実行結果をコメントで挿入

選択範囲だけを実行可能!point!

https://developer.mozilla.org/ja/Tools/Scratchpad

Page 55: Firefox and Firebug with Foxkeh

スクラッチパッドの注意点

Scratchpad も Sandbox 環境Web ページの要素には window 経由でアクセスする必要あり例えば、ページコンテキストにグローバル変数を定義するには:window.foo = "value";

point!

https://developer.mozilla.org/ja/Tools/Scratchpad

Page 56: Firefox and Firebug with Foxkeh

ショートカットキー

https://developer.mozilla.org/en/Tools/Using_the_Source_Editor

機能 キー 機能 キー

すべて選択 Ctrl-A 取り消し Ctrl-Z

コピー Ctrl-C インデント Tab

検索 Ctrl-F 逆インデント Shift-Tab

次を検索 Ctrl-G 行を上に移動 Alt-↑ @winCtrl-Option-↑ @mac

指定行に移動 Ctrl-L 行を下に移動 Alt-↓ @winCtrl-Option-↓ @mac

やり直し Ctrl-Shift-Z コメントオンオフ Ctrl-/ @Fx14~

貼り付け Ctrl-V 開き括弧に移動 Ctrl-[ @Fx14~

切り取り Ctrl-X 閉じ括弧に移動 Ctrl-] @Fx14~

Page 57: Firefox and Firebug with Foxkeh

Chrome にもスクラッチパッド

Content だけでなく Chrome 環境でも利用可能about:config で次の設定を:devtools.chrome.enabled=true「実行環境」メニューが追加拡張機能や Firefox 本体を開発する時に便利です

point!

https://developer.mozilla.org/ja/Tools/Scratchpad

Page 58: Firefox and Firebug with Foxkeh

JS Debugger

Page 59: Firefox and Firebug with Foxkeh
Page 60: Firefox and Firebug with Foxkeh
Page 61: Firefox and Firebug with Foxkeh

スクリプトデバッガ

JavaScript デバッガですショートカット: Ctrl+Alt+SFx15 からの新ツール別ウィンドウでも起動可能

監視点は現在未実装Object.prototype.watch を使うpoint!

Page 62: Firefox and Firebug with Foxkeh

Toolbar & GCLI

Page 64: Firefox and Firebug with Foxkeh

カスタムコマンドを定義

1. devtools.commands.dir 設定にカスタムコマンドディレクトリを指定する2. *.mozcmd ファイルを作る3. cmd refresh で読み込む

Scrachpad では: https://developer.mozilla.org/en/Tools/GCLI/Scratchpad

Page 65: Firefox and Firebug with Foxkeh

.mozcmd ファイルを作る ]]<]]]]0#/'�]�*'..1��]]]]&'4%3+25+10�]��*18]#]/'44#)'��]]]]2#3#/4�] ]]]]]]<]]]]]]]]0#/'�]�0#/'��]]]]]]]]5:2'�]�453+0)��]]]]]]]]&'4%3+25+10�]��*1]51]4#:]*'..1]51��]]]]]]>]]]]!�]]]]'9'%�](60%5+10�#3)4�]%105'95�]<]]]]]]]]3'5630]��11&]'7'0+0)�]�]�]#3)40#/'�]]]]>]]>!

http://incompleteness.me/blog/2012/06/25/hackathon-details/

Page 67: Firefox and Firebug with Foxkeh

about:memory

Page 68: Firefox and Firebug with Foxkeh
Page 69: Firefox and Firebug with Foxkeh

about:memory

explict > window-objects でタブ毎の使用メモリ確認Web ページだけでなくFirefox内部の使用メモリも確認できる

大規模アプリ開発時に長時間動作するアプリにも

Page 70: Firefox and Firebug with Foxkeh

オマケ: 開発中のもの…

Page 71: Firefox and Firebug with Foxkeh

Remote Debugger

Page 72: Firefox and Firebug with Foxkeh

リモートデバッガ

Android 版 Firefox に詳細手順こちらで解説:https://dev.mozilla.jp/2012/07/firefox-remote-debugger/

設定変えて有効化するので現状では隠し機能状態です

Page 73: Firefox and Firebug with Foxkeh

デバッガに追加予定の機能

変数の変更時にブレークタイムトラベル(巻き戻し)リモートデバッガの強化 ...などなど

Page 74: Firefox and Firebug with Foxkeh

Event Timeline

Page 76: Firefox and Firebug with Foxkeh

イベントタイムライン

発生したイベントを可視化マウス、キーボード、描画、ページ遷移などのイベント

複雑なイベントデバッグに開発中 (アドオン公開中)http://grssam.com/

http://grssam.com/

Page 77: Firefox and Firebug with Foxkeh

Marionette

Page 78: Firefox and Firebug with Foxkeh

Marionette (要独自ビルド)

リモートテストドライバSelenium 的なものですB2G 開発のため優先実装されたJSON で命令をポートに流すPython クライアントあり

Firefox 標準には入ってない独自ビルドの作成が必要

Page 79: Firefox and Firebug with Foxkeh

ドキュメントは MDN にあります:https://developer.mozilla.org/ja/Tools

最新情報は公式ブログで:http://blog.mozilla.org/devtools/

Page 80: Firefox and Firebug with Foxkeh

Firebug

以後 Firebug の話

Page 81: Firefox and Firebug with Foxkeh
Page 82: Firefox and Firebug with Foxkeh

Firebug

伝統と信頼の開発者ツール情報量も結構豊富?アメリカの方言で蛍のこと間違ってもゴキさんじゃないpoint!

Page 83: Firefox and Firebug with Foxkeh

Inspector

Page 84: Firefox and Firebug with Foxkeh
Page 85: Firefox and Firebug with Foxkeh

クイック情報ボックス便利

Page 86: Firefox and Firebug with Foxkeh

クイック情報ボックス便利

Page 87: Firefox and Firebug with Foxkeh

Web Font も簡単に確認

Page 88: Firefox and Firebug with Foxkeh

Console

Page 89: Firefox and Firebug with Foxkeh
Page 90: Firefox and Firebug with Foxkeh
Page 91: Firefox and Firebug with Foxkeh

Console & Log

複数行表示モードオススメCtrl+Enter で実行

XHR や Cookie も確認別のパネルを開かなくて OK

Page 93: Firefox and Firebug with Foxkeh

help

Page 94: Firefox and Firebug with Foxkeh
Page 95: Firefox and Firebug with Foxkeh

Console - help コマンド

独自関数の定義一覧を表示Firebug 1.10 の新機能

こんな関数知ってました?dir(), dirxml(), table()monitor(), profile()$(), $$(), $$x()$0, $1, $n()

Firebug 1.10 の新機能

Page 96: Firefox and Firebug with Foxkeh

HTML

Page 97: Firefox and Firebug with Foxkeh
Page 98: Firefox and Firebug with Foxkeh

HTML パネル

インスペクタのパネルHTML 編集できます変化したらブレークも

Page 99: Firefox and Firebug with Foxkeh

実体の表示方法変更

ex: "∫" シンボル表示: ∫名前表示: &int;ユニコード表示: &#8747;Firebug 1.10 の新機能

Page 100: Firefox and Firebug with Foxkeh

CSS

Page 101: Firefox and Firebug with Foxkeh
Page 102: Firefox and Firebug with Foxkeh

配色の調整も簡単

Page 104: Firefox and Firebug with Foxkeh

Firebug 用拡張機能: CSS Usage

ページで使われてる ルールの確認に

Page 105: Firefox and Firebug with Foxkeh

Script

Page 106: Firefox and Firebug with Foxkeh
Page 107: Firefox and Firebug with Foxkeh

Script (JavaScript デバッガ)

いわゆるデバッガですブレークしてデバッグ変数の確認、書き換えXHR, DOM 変更, Cookie などにもブレークポイント設定可能

右クリックで条件付ブレークポイントも設定可能

Page 108: Firefox and Firebug with Foxkeh

DOM

Page 109: Firefox and Firebug with Foxkeh
Page 110: Firefox and Firebug with Foxkeh

DOM パネル

選択した要素や JS オブジェクトを確認するパネル普通にツリー展開表示編集・削除ウォッチの追加も

Page 111: Firefox and Firebug with Foxkeh

Net

Page 112: Firefox and Firebug with Foxkeh
Page 113: Firefox and Firebug with Foxkeh

通信のタイムライン表示

HTTP 通信の確認Back/Forward キャッシュ戻る・進む時の通信も確認

"持続" オプションリロードしてもクリアされない

Firebug 1.11 から SPDY かどうかも一目で確認可能に

Page 114: Firefox and Firebug with Foxkeh

青線: DOMContentLoaded赤線: load イベント発生時灰色: ブロッキング水色: DNS lookup黄緑: 接続赤色: 送信紫色: 待機緑色: 受信

Page 115: Firefox and Firebug with Foxkeh

Cookie

Page 116: Firefox and Firebug with Foxkeh
Page 117: Firefox and Firebug with Foxkeh

Cookie Management

Cookie 追加、編集、削除セッション Cookie 削除も

Cookie のエクスポートTab 区切りの CSV 出力

Cookie 書き換えでブレークデバッグにも使えます

Firebug 1.10 の新機能

Page 118: Firefox and Firebug with Foxkeh

Options

Page 119: Firefox and Firebug with Foxkeh

Firebug Options

キーボードショートカットカスタマイズできるの大事特に OS とのバッティング時…

外部エディタの設定文字サイズ個人的にコレ超大事

Page 120: Firefox and Firebug with Foxkeh

隠し?オプション

about:config で設定可能extensions.firebug.*

ex: ログ保存行数extensions.firebug.net.logLimitextensions.firebug.console.logLimit

Page 121: Firefox and Firebug with Foxkeh

FoxkehBug

Page 124: Firefox and Firebug with Foxkeh

Firebug のデザイン変更

1. Stylish をインストールhttps://addons.mozilla.org/firefox/addon/stylish/

2. Stylish 設定画面で 「新しいスタイルを書く」

userChrome.css では一部パネルで効かなかったので Stylish 使用を推奨

Page 125: Firefox and Firebug with Foxkeh

パネルの背景を変える��]�+3'(19] �]QVEH].+0'#3)3#&+'05]EFB]/1;.+0'#3)3#&+'05]���0#/'42#%']*5/.]63.�*552���8888�13)� ����9*5/.���/1;&1%6/'05]63.�%*31/'���(+3'$6)�%105'05�2#0'.*5/.�<]]*5/.=�2#0'.�1&']<]]]]$#%-)3160&�]��]ZX\GY?UAFSW?Y]��]]]]]].+0'#3)3#&+'05�51]$1551/�]3)$#�����������������]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]3)$#������������������]]]]]]63.�*552���3&:0#/+4,2�(19-'*20)��]8*+5']�+/2135#05�]]>]]*5/.=�&+4#$.'&�#0'.�19]<]��][TRCD@INMO]��]]]]$#%-)3160&�]��]UAFJKLP?ZX\GY?UAFSW]��]]]]]]63.�*552���3&:0#/+4,2�(19-'*+%10��20)�]013'2'#5]��29]��29�]]]]]].+0'#3)3#&+'05�51]$1551/�]3)$#�����������������]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]3)$#������������������]]]]]]63.�*552���3&:0#/+4,2�(19-'*20)�]�+/2135#05�]]>>

半透明の白を重ねて読みやすさ確保画像 URL は好きなもので置き換えてね

Page 126: Firefox and Firebug with Foxkeh

アイコンを変える�0#/'42#%']63.�*552���888/1;+..#13)�-':/#45'3�)#5'-''2'3�5*'3'+410.:96.���/1;&1%6/'05]]]63.�%*31/'���$3184'3�%105'05�$3184'396.��]]63.�%*31/'���(+3'$6)�%105'05�(+3'(19�(+3'$6)�3#/'96.�<]]�(+3'$6)$65510�]]�/'06"(+3'$6)�]�#22/'06"(+3'$6)�]�/'06"8'$�'7'.12'3"(+3'$6)]<]]]].+4545:.'+/#)'�]63.�*552���(19-'*,2�(#7+%10+%1�]�+/2135#05�]]>]]�($�+3'$6)�'06]�]+/#)']<]]]]8+&5*���29�]]]]*'+)*5���29�]]]]2#&&+0).'(5���29�]]]]$#%-)3160&�]63.�*552���(19-'*,2�(#7+%10+%1�]013'2'#5]�+/2135#05�]]>>

see also: http://sub.g.hatena.ne.jp/Penpen/20120728/1343484192