mockingbirdイベントハンドリング@拡張機能勉強会
TRANSCRIPT
Mockingbird
イベントハンドリング解説
Mozilla Japan Internship
Mockingbird Project
murata
Creative Commons Attribution-Noncommercial 3.0 Unported (c) 2008, Mockingbird Project.
イベント処理の流れ
イベントイベントイベントイベント送信送信送信送信
一定時間毎一定時間毎一定時間毎一定時間毎ににににリクエストリクエストリクエストリクエストをををを送信送信送信送信しししし
てててて受信受信受信受信
Creative Commons Attribution-Noncommercial 3.0 Unported (c) 2008,
Mockingbird Project.
Tabの管理
• Firefoxでは,linkedPanelというPanel+作成時間で与えられるユニークなIDで管理
• 共有Tab(sharetab)を記録したtableで管理
– sharetabのlinkedPanel
– Mockingbird側のTabId
Creative Commons Attribution-Noncommercial 3.0 Unported (c) 2008,
Mockingbird Project.
監視するイベント
• ページ遷移
• タブ操作
• スクロール
• ログイン・ログアウト
• キー操作 (Ver0.2 実装予定?)
• マウスクリック (Ver0.2 実装予定?)
Creative Commons Attribution-Noncommercial 3.0 Unported (c) 2008,
Mockingbird Project.
ページ遷移
• pageshowを監視
– ページをロード後発生
– 表示するまでイベントの送信を行わないのでタイムラグが発生
• setTabTitleをバインディングして監視
– ページをロードする前に発生
• loadURIWithFlagで表示
Creative Commons Attribution-Noncommercial 3.0 Unported (c) 2008,
Mockingbird Project.
タブ操作
• 追加– Addtabをバインディングして監視
– 追加した際に表示されるabout:blankはページ遷移と
して扱わないように
• 削除– Tabcloseイベントを監視
– 検知したらtabの共有解除イベントとして送信
– shareTabTableから消去
Creative Commons Attribution-Noncommercial 3.0 Unported (c) 2008,
Mockingbird Project.
スクロール
• Scrollイベントを監視
– 頻繁に発生
– イベント発生したらタイマーを起動し,一定時間毎に位置を取得して送信
– 同じ位置だったらタイマーをストップ
• スクロールを再現
– 移動の経過がわかるように少しずつスクロール
– バックグラウンドのtabはそのまま移動
Creative Commons Attribution-Noncommercial 3.0 Unported (c) 2008,
Mockingbird Project.
送信イベントの検知における問題
• サーバから受信して実行したイベントを自分が起こしたイベントとして検知してしまう
• イベントを実行する前に実行中イベントとして記録
• イベントを検知したときに,実行中イベントと登録されている場合,サーバに送信しない
• イベントが終了したら消去
Creative Commons Attribution-Noncommercial 3.0 Unported (c) 2008,
Mockingbird Project.