スポンサーリンク

このドキュメントの内容は、以下の通りです。

Google IOでGoogle Chromeの拡張機能に関するプレゼンテーションが公開されました。
http://blog.chromium.org/2009/05/extensions-at-google-io.html

まとめ


  • パッケージはzipファイルで HTML,CSS,JavaScript
  • エクステンションはWebページを作るように作れる
  • エクステンションはそれぞれが1つのプロセスとして割り当てられる
  • ChromeもエクステンションもGoogleから配信されて常に最新になる
  • APIは互換を持つ

Google Chrome のエクステンション


  • パッケージはzipファイル(Firefoxと同じ)
  • パッケージには、HTML,CSS,JavaScriptのファイルが含まれる
  • エクステンションのUIのそれぞれのパーツは、完全に機能するWebページ
  • エクステンションを書くことは、ちょうどWebページを書くようにできる。デバッグツールも使えるし、JavaScriptライブラリ、同じテクニックも使える。
  • 簡単に開発ができて、インタラクティブな開発サイクル。
このような感じでUIが書ける。
<div id='button' class='toolstrip-button'>
<img src='icon.png'>
<span>Subscribe</span>
</div>

HTML5 Local Storage

localStorage.setItem("foo", "bar");
console.log(localStorage.getItem("foo"));

Cross-origin XMLHttpRequestでは、Webコンテンツのcookie jarを共有する

ブラウザAPI

  • タブとウィンドウのAPI
  • ブックマーク
  • ダウンロード
  • などなど

エクステンションプロセスモデル

  • Chromeは、マルチプロセスブラウザ
  • タブやプラグインはそれぞれ1つのプロセス
  • Webページやプラグインはブラウザをクラッシュさせない
  • タブの中のExploitは閉じこめられている
エクステンションもまた、それぞれ自身のプロセスを持つ。
  • それぞれのエクステンションが1つのプロセス
  • エクステンションは、ブラウザをクラッシュしない
  • Exploitは、閉じこめられている。

エクステンションは複数のWebページ

  • それぞれの toolstrip, サイドバーなどはWebページ
  • それぞれのブラウザウィンドウは、自身のwidgetのセットを持つ

エクステンションページは、通信できる

  • それらはすべての同じプロセス、同じスレッドにある
  • 通信は、inter-frame コミュニケーションに似ている。またはpopup windowを使う。
  • 直接的な関数呼び出し
    var total = 0;
    chrome.extension.getToolstrips().forEach(function(toolstrip) {
    	  total += toolstrip.someFunction("foobar");
    });
    console.log("total is: " + total);
    

パッケージングと配布

  • エクステンションは、MITMアタックを妨げるために署名される。
  • Manifestは、インストールUIをすぐに表示する。

デプロイメント、インストール

  • デプロイするためにあなたのサーバへCRXをコピーする
  • インストールは、すぐ!
    • リスタートは不要
  • あなたのCRXファイルはGoogleサービスが配布する

アップデート

アップデートは自動的に行われる。
  • ユーザはなにもしなくていい
  • ユーザは、常に最新のバージョンを使える
  • 再起動は不要
  • Chrome バージョンはの機能はForward compatible
  • Googleは、簡単に使えるアップデートサービスを提供する。

ギャラリー

  • エクステンションギャラリーがあります


スポンサーリンク
スポンサーリンク
 
いつもシェア、ありがとうございます!


もっと情報を探しませんか?

関連記事

最近の記事

人気のページ

スポンサーリンク
 

過去ログ

2020 : 01 02 03 04 05 06 07 08 09 10 11 12
2019 : 01 02 03 04 05 06 07 08 09 10 11 12
2018 : 01 02 03 04 05 06 07 08 09 10 11 12
2017 : 01 02 03 04 05 06 07 08 09 10 11 12
2016 : 01 02 03 04 05 06 07 08 09 10 11 12
2015 : 01 02 03 04 05 06 07 08 09 10 11 12
2014 : 01 02 03 04 05 06 07 08 09 10 11 12
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12

サイト

Vim入門

C言語入門

C++入門

JavaScript/Node.js入門

Python入門

FreeBSD入門

Ubuntu入門

セキュリティ入門

パソコン自作入門

ブログ

トップ


プライバシーポリシー