mockingbirdイベントハンドリング@拡張機能勉強会

8
Mockingbird イベトハドグ解説 Mozilla Japan Internship Mockingbird Project murata Creative Commons Attribution-Noncommercial 3.0 Unported (c) 2008, Mockingbird Project.

Upload: sotaro-karasawa

Post on 21-Aug-2015

1.632 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Mockingbirdイベントハンドリング@拡張機能勉強会

Mockingbird

イベントハンドリング解説

Mozilla Japan Internship

Mockingbird Project

murata

Creative Commons Attribution-Noncommercial 3.0 Unported (c) 2008, Mockingbird Project.

Page 2: Mockingbirdイベントハンドリング@拡張機能勉強会

イベント処理の流れ

イベントイベントイベントイベント送信送信送信送信

一定時間毎一定時間毎一定時間毎一定時間毎ににににリクエストリクエストリクエストリクエストをををを送信送信送信送信しししし

てててて受信受信受信受信

Creative Commons Attribution-Noncommercial 3.0 Unported (c) 2008,

Mockingbird Project.

Page 3: Mockingbirdイベントハンドリング@拡張機能勉強会

Tabの管理

• Firefoxでは,linkedPanelというPanel+作成時間で与えられるユニークなIDで管理

• 共有Tab(sharetab)を記録したtableで管理

– sharetabのlinkedPanel

– Mockingbird側のTabId

Creative Commons Attribution-Noncommercial 3.0 Unported (c) 2008,

Mockingbird Project.

Page 4: Mockingbirdイベントハンドリング@拡張機能勉強会

監視するイベント

• ページ遷移

• タブ操作

• スクロール

• ログイン・ログアウト

• キー操作 (Ver0.2 実装予定?)

• マウスクリック (Ver0.2 実装予定?)

Creative Commons Attribution-Noncommercial 3.0 Unported (c) 2008,

Mockingbird Project.

Page 5: Mockingbirdイベントハンドリング@拡張機能勉強会

ページ遷移

• pageshowを監視

– ページをロード後発生

– 表示するまでイベントの送信を行わないのでタイムラグが発生

• setTabTitleをバインディングして監視

– ページをロードする前に発生

• loadURIWithFlagで表示

Creative Commons Attribution-Noncommercial 3.0 Unported (c) 2008,

Mockingbird Project.

Page 6: Mockingbirdイベントハンドリング@拡張機能勉強会

タブ操作

• 追加– Addtabをバインディングして監視

– 追加した際に表示されるabout:blankはページ遷移と

して扱わないように

• 削除– Tabcloseイベントを監視

– 検知したらtabの共有解除イベントとして送信

– shareTabTableから消去

Creative Commons Attribution-Noncommercial 3.0 Unported (c) 2008,

Mockingbird Project.

Page 7: Mockingbirdイベントハンドリング@拡張機能勉強会

スクロール

• Scrollイベントを監視

– 頻繁に発生

– イベント発生したらタイマーを起動し,一定時間毎に位置を取得して送信

– 同じ位置だったらタイマーをストップ

• スクロールを再現

– 移動の経過がわかるように少しずつスクロール

– バックグラウンドのtabはそのまま移動

Creative Commons Attribution-Noncommercial 3.0 Unported (c) 2008,

Mockingbird Project.

Page 8: Mockingbirdイベントハンドリング@拡張機能勉強会

送信イベントの検知における問題

• サーバから受信して実行したイベントを自分が起こしたイベントとして検知してしまう

• イベントを実行する前に実行中イベントとして記録

• イベントを検知したときに,実行中イベントと登録されている場合,サーバに送信しない

• イベントが終了したら消去

Creative Commons Attribution-Noncommercial 3.0 Unported (c) 2008,

Mockingbird Project.