(57)【特許請求の範囲】
【請求項１】
ウェブパブリッシャに関連付けられているコンピューティング・デバイスのマイクロプロセッサを用い、ウェブページを含むコンテンツを提供する提供工程と、
前記ウェブパブリッシャが、第２のコンピューティング・デバイスにおいて前記コンテンツをレンダリングするウェブブラウザに関連付けられている少なくとも１つの拡張機能を含むリストと、前記コンテンツに基づいて生成されたキーとにアクセスする工程であって、
前記コンテンツは、前記少なくとも１つの拡張機能を用いて前記ウェブブラウザによってレンダリングされ、
前記キーは前記提供工程の後特定の時間に生成され、
前記キーは、前記キーから前記コンテンツを生成するとともに前記コンテンツから前記キーを生成することができる可逆機能を用いて生成される工程と、
前記キーと期待される値との間の差を決定するために、前記キーに関連付けられている値と前記期待される値とを比較する比較工程と、
前記キーと前記期待される値との間の前記差に基づいて、少なくとも１つの拡張機能の前記リストのうちの拡張機能が前記コンテンツを変更したか否かを決定する決定工程であって、前記ウェブパブリッシャに関連付けられている前記コンピューティング・デバイスの前記マイクロプロセッサによって、複数の異なるブラウザからの複数のキーと前記期待される値との反復的比較を用いて行われる、前記決定工程と、
前記拡張機能が前記コンテンツを変更したと決定すると、前記第２のコンピューティング・デバイスにコードを提供する工程であって、前記コードは、前記第２のコンピューティング・デバイスによる実行時に前記拡張機能が前記ウェブページに対し作用することを防ぐ工程と、を含む方法。
【請求項２】
前記リストは前記ウェブブラウザにインストールされている全ての拡張機能を含む請求項１に記載の方法。
【請求項３】
前記ウェブパブリッシャによって識別された特定の時間に、前記ウェブブラウザ上にレンダリングされている前記コンテンツをロックするロック工程をさらに含む請求項１または２に記載の方法。
【請求項４】
前記ロック工程は前記ウェブブラウザによって行われる請求項３に記載の方法。
【請求項５】
前記ウェブブラウザを使用して前記キーを生成する工程をさらに含む請求項１〜４のいずれか一項に記載の方法。
【請求項６】
前記コンテンツのチェックサムを使用して前記キーを作成する工程をさらに含む請求項５に記載の方法。
【請求項７】
トレースを使用して前記キーを作成する工程をさらに含む請求項５に記載の方法。
【請求項８】
前記ウェブページのドキュメント・オブジェクト・モデルのテキストファイルバージョンに基づき前記キーを作成する工程をさらに含む請求項５に記載の方法。
【請求項９】
前記キーを使用して前記コンテンツを再作成する工程をさらに含む請求項１〜８のいずれか一項に記載の方法。
【請求項１０】
命令のセットを記憶するメモリと、
プロセッサと、を備えるシステムであって、前記プロセッサは前記命令のセットを実行し、
ウェブページを含むコンテンツを提供する工程と、
コンピューティング・デバイスにおいて前記コンテンツをレンダリングするウェブブラウザに関連付けられている少なくとも１つの拡張機能を含むリストと、前記コンテンツに基づき生成されたキーとを受け取る工程であって、
前記コンテンツは、前記少なくとも１つの拡張機能を用いて前記ウェブブラウザによってレンダリングされ、
前記キーは特定の時間に生成され、
前記キーは、前記キーから前記コンテンツを生成するとともに前記コンテンツから前記キーを生成することができる可逆機能を用いて生成される工程と、
前記キーと期待される値との間の差を決定するために、前記キーに関連付けられている値と前記期待される値とを比較する工程と、
前記キーと前記期待される値との間の前記差に基づいて、前記リストのうちの拡張機能が前記コンテンツを変更したか否かを決定する決定工程であって、ウェブパブリッシャに関連付けられている前記コンピューティング・デバイスのマイクロプロセッサによって、複数の異なるブラウザからの複数のキーと前記期待される値との反復的比較を用いて行われる、前記決定工程と、
前記拡張機能が前記コンテンツを変更したと決定すると、前記コンピューティング・デバイスにコードを提供する工程であって、前記コードは、前記コンピューティング・デバイスによる実行時に前記拡張機能が前記ウェブページに対し作用することを防ぐ工程と、を前記システムに行わせるように構成されている、システム。
【請求項１１】
前記システムは複数のキーと複数の期待される値との反復的な比較によって前記拡張機能を決定する請求項１０に記載のシステム。
【請求項１２】
前記リストは前記ウェブブラウザにインストールされている全ての拡張機能を含む請求項１０または１１に記載のシステム。
【請求項１３】
前記プロセッサは前記命令のセットを実行し、ウェブパブリッシャによって識別された特定の時間に、前記ウェブブラウザ上にレンダリングされている前記コンテンツをロックする工程を前記システムに行わせるようにさらに構成されている請求項１０〜１２のいずれか一項に記載のシステム。
【請求項１４】
前記キーは前記ウェブブラウザによって生成される請求項１０〜１３のいずれか一項に記載のシステム。
【請求項１５】
命令を含む非一時的なコンピュータ可読媒体であって、前記命令は実行されたときにコンピュータシステムのマイクロプロセッサに、
ウェブページを含むコンテンツを提供する工程と、
コンピューティング・デバイスにおいて前記コンテンツをレンダリングするウェブブラウザに関連付けられている少なくとも１つの拡張機能を含むリストと、前記コンテンツに基づき生成されたキーとを受け取る工程であって、
前記コンテンツは、前記少なくとも１つの拡張機能を用いて前記ウェブブラウザによってレンダリングされ、
前記キーは特定の時間に生成され、
前記キーは、前記キーから前記コンテンツを生成するとともに前記コンテンツから前記キーを生成することができる可逆機能を用いて生成される工程と、
前記キーと期待される値との間の差を決定するために、前記キーに関連付けられている値と前記期待される値とを比較する工程と、
前記キーと前記期待される値との間の前記差に基づいて、前記リストのうちの拡張機能が前記コンテンツを変更したか否かを決定する決定工程であって、ウェブパブリッシャに関連付けられている前記コンピューティング・デバイスの前記マイクロプロセッサによって、複数の異なるブラウザからの複数のキーと前記期待される値との反復的比較を用いて行われる、前記決定工程と、
前記拡張機能が前記コンテンツを変更したと決定すると、前記コンピューティング・デバイスにコードを提供する工程であって、前記コードは、前記コンピューティング・デバイスによる実行時に前記拡張機能が前記ウェブページに対し作用することを防ぐ工程と、を行わせる非一時的なコンピュータ可読媒体。
【請求項１６】
前記拡張機能は、前記ウェブブラウザを使用してレンダリングされたときに前記コンテンツを変更する請求項１５に記載の非一時的なコンピュータ可読媒体。
【請求項１７】
前記リストは前記コンピューティング・デバイスにおいて前記コンテンツをレンダリングしている前記ウェブブラウザに関連付けられている全ての拡張機能を含む請求項１５または１６に記載の非一時的なコンピュータ可読媒体。
【請求項１８】
前記命令は前記コンピュータシステムに、前記コンテンツをロックするための指定される時間を前記ウェブブラウザに提供する工程をさらに行わせる、請求項１５〜１７のいずれか一項に記載の非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は一般にウェブテクノロジーに関し、さらに詳細にはウェブブラウザ拡張機能とウェブページに関する。
【背景技術】
【０００２】
ウェブを利用可能なコンピューティング・デバイスに実装されたウェブブラウザはユーザが全ての種類のコンテンツにアクセスすることを可能にする。ウェブブラウザはプログラムコードを読み、プログラムコードに規定された他の機能を行うとともに、各種のメディアファイル（例えば、画像、ビデオ、音声ファイル）に含まれた音声および視覚の両コンテンツをレンダリングすることを含み得、そのコードをウェブページとしてレンダリングするように構成されている。ウェブページは一般に多数の他の利用可能なプログラミング言語に加え、ＨＴＭＬ（ＨＴＭＬ５を含む）、ＣＳＳ、ＪａｖａＳｃｒｉｐｔ等のプログラミング言語を使用して実装される。
【０００３】
いくつかのブラウザはユーザにブラウザにアド・オンまたは拡張機能をインストールすることを許している。そのような拡張機能はブラウザに機能を追加し、ブラウザの統合された部分として動作する。ブラウザ拡張機能はＪａｖａＳｃｒｉｐｔ等ウェブページを実装するのに用いた同じプログラミング言語を使用して書かれたプログラムコードを使用して実装され得る。ブラウザから見れば、拡張機能は、一旦インストールされると、ブラウザに統合された一部であるウェブページとして効果的に機能する。ユーザは、自身が興味を有する拡張機能をインストールすることによって、インストールするように選んだ拡張機能の機能を含む、カスタマイズされたブラウザ経験を効果的に作り出すことができる。
【０００４】
現在のインターネットシステムでは、意図されたコンテンツ配信の信頼性、安全性、完全性を確保することは困難である。パブリッシャウェブサイトはある程度の責任追跡性、予見性、信頼されるコンテンツ配信の確立をさまざまな成功の度合いで試みてきた。しかし、第三者（サードパーティ）のブラウザ拡張機能は、ユーザに明らかでなく、関係者全てに損害を与える可能性のある方法で、この信頼済みの関係に潜入する能力を持っている。今日、多くのブラウザが、ブラウザ、コンピュータシステム、またはコンテンツを変更またはそれと対話できる拡張機能の作成およびインストールを許可している。いくつかのケースではコンテンツを変更することは、広告遮断、広告注入、または各種のマルウェア等ある者にとって許されないかまたは希望されない方法である。
【０００５】
これら第三者の拡張機能はウェブパブリッシャとユーザとの間の直接の関係を変える。それは、正しい制御によって与えられる場合、両者にとって肯定的な影響を持ち得る。しかし、制御されていない場合、多くのパブリッシャおよびコンテンツプロバイダが開かれたインターネットから閉じたアプリケーションまたはペイウォールの後ろに撤退し、ユーザが有益なコンテンツを見つけて楽しむことをさらに困難にし得る。ウェブパブリッシャにとって、自身のコンテンツがそのウェブパブリッシャの使用条件の契約に一貫して配信されているかどうかを知ることは難しい。また、ウェブパブリッシャにとって、第三者の拡張機能がコンテンツを変更できる場合、ユーザに提供されるコンテンツ、性能、または機能を制御することは難しい。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ウェブページへの拡張機能変更を管理するシステムを提供する。
【課題を解決するための手段】
【０００７】
一般的な一態様によれば、方法はウェブパブリッシャに関連付けられているコンピューティング・デバイスのマイクロプロセッサを用い、ウェブページを含むコンテンツを提供することを含む。方法は、ウェブパブリッシャによって第２のコンピューティング・デバイスにおいてコンテンツをレンダリングするウェブブラウザに関連づけられている少なくとも１つの拡張機能を含むリストと、コンテンツに基づいて生成されたキーとにアクセスすることであって、キーは提供することの後特定の時間に生成されることを含む。方法はキーと期待される値の差を決定するためにキーに関連付けられている値と期待されている値とを比較することを含む。
【０００８】
実装は単独で、または互いに組み合わせて、以下の１つ以上の特徴を含み得る。方法は、比較することに基づいて、少なくとも１つの拡張機能のリストから、コンテンツを変更した特定の拡張機能を決定することを含む。決定することは、ウェブパブリッシャに関連付けられているコンピューティング・デバイスのマイクロプロセッサによって、複数の異なるブラウザからの複数のキーと期待される値との反復的比較を用いて行われ得る。リストはウェブブラウザにインストールされている全ての拡張機能を含み得る。方法はウェブパブリッシャによって識別された特定の時間に、ウェブブラウザにレンダリングされているコンテンツをロックすることを含み得る。ロックすることは、ウェブブラウザによって行われ得る。方法は、ウェブブラウザを使用してキーを生成することを含み得る。方法はコンテンツのチェックサムを使用してキーを作成することを含み得る。方法はトレースを使ってキーを作成することを含み得る。方法はウェブページのドキュメント・オブジェクト・モデルのテキストファイルバージョンに基づきキーを作成することを含み得る。方法は、キーを使用してコンテンツを再作成することを含み得る。特定の拡張機能はウェブブラウザを使用してレンダリングされるときコンテンツを変更し得る。
【０００９】
他の実装はコンピュータ記憶装置上に符号化された方法の動作を行うように構成された対応するシステム、装置、コンピュータプログラムを含む。
本明細書に記述された主題の１つ以上の実装は、１つ以上の以下の効果を提供しる。ウェブパブリッシャはユーザに提供されるコンテンツ、性能、機能を制御するコンテンツを判定、制御できる。１つ以上の実装の詳細は、添付の図面、以降の記載の中で説明される。他の特徴は明細書および図面から、および特許請求の範囲から明らかとなるであろう。
【図面の簡単な説明】
【００１０】
【図１】ブラウザ拡張機能を実装した一例となるシステムを示すブロック図。
【図２】ウェブブラウザのブラウザ拡張機能の一例のブロック図。
【図３】ブラウザ拡張機能の例となる分類および動作のブロック図。
【図４】ウェブブラウザの一例となるユーザインタフェースの図。
【図５】一例となる実施形態によるコンテンツに変更を加えたブラウザ拡張機能を検出するためのプロセスを示したフローチャート。
【図６】一例となる実施形態によるコンテンツに変更を加えたブラウザ拡張機能を検出するための別のプロセスを示したフローチャート。
【図７】一例となる実施形態により本明細書に記述された技術を実装するために用いられ得るコンピューティング・デバイスおよび携帯コンピューティング・デバイスを示した図。
【発明を実施するための形態】
【００１１】
個々の図面の同様な符号は同様な要素を示す。
各種の例において、ウェブブラウザは１つ以上のブラウザ拡張機能と対話することを含むかまたはそのように構成されている。この文脈において、「ブラウザ拡張機能」は定義可能な全体としてパッケージ化またはグループ化された、およびウェブブラウザに機能を拡張するように構成された１つ以上のウェブページを含み得る。本明細書で述べるように、「ブラウザ拡張機能」は小さなソフトウェアプログラムであって、ウェブブラウザの機能を変更するおよび向上させることができる。それらはＨＴＭＬ、ＪａｖａＳｃｒｉｐｔ、およびＣＳＳ等のウェブテクノロジーを使用して書かれ得る。拡張機能は、ほとんどまたはまったくユーザインタフェースを持ち得ない。いくつかの実施形態では、拡張機能は小さなユーザインタフェースアイコンまたはブラウザの「クロム」を変更する他のユーザインタフェースを提供し得る。本明細書では、「クロム」はブラウザに表示されているウェブページの外側領域（ウィンドウ枠、メニュー、ツールバー、およびスクロールバーを含むウェブブラウザウィンドウの境界等）を含むと定義される。アイコンまたは他のユーザインタフェースを選ぶということはブラウザ内で拡張機能による機能を作動させ得る。
【００１２】
拡張機能は、例えば広告をブロックするようにウェブページを変更し得る。いくつかのケースでは、悪意のある拡張機能がウェブパブリッシャの意図に反してウェブページにコンテンツ、不正活動、広告を注入し、ウェブパブリッシャのブランドに損害を与え得る。本明細書で参照するウェブパブリッシャは、例としてオンライン新聞またはオンラインストア等のウェブページに関連付けられているコンテンツプロバイダを意味する。
【００１３】
従って、いくつかのケースでは、ユーザが訪問するウェブサイトは信頼済みのウェブパブリッシャのシステムからきているように見えるコンテンツ（記事、テキスト、画像、ビデオ、リンク、広告など）を有する場合があるが、実際は、そのコンテンツはユーザまたはウェブパブリッシャが知らないうちに第三者のコンテンツに置き換えられている。いくつかのケースでは、広告主は、実際には見られていない広告に対して請求をされたとき、収益を失う可能性がある。例えば、拡張機能が広告を除いたり取り替えたりする可能性もあり、または、ウェブページ上の要素の順番を変更する可能性もある。広告を注入している拡張機能は、ウェブパブリッシャのコンテンツを犠牲にして自身の広告がよい場所に確実に出てくるようにページ上の要素をシャッフルする場合がある。
【００１４】
本明細書で記述されるシステムおよび方法は、ウェブパブリッシャがウェブパブリッシャの提供するウェブページ上で拡張機能の動作を管理できる方法を提供する。
図１はブラウザ拡張機能を実装する一例となるシステムのブロック図である。図１の例では、ディスプレイ１０６を使用して、リモートウェブパブリッシャ１０４で記憶しているページ１１０を含むブラウザウィンドウ１０８を提供するためにリモートウェブパブリッシャ１０４と通信しているローカル・コンピューティング・デバイス１０２が示されている。ウェブパブリッシャ１０４は例えばサーバ等のコンピューティング・デバイスであり得る。
【００１５】
ローカル・コンピューティング・デバイス１０２は事実上、ブラウザアプリケーション１１２を実行し、ウェブパブリッシャと通信するように構成される任意のコンピューティング・デバイスを表し得る。例えば、ローカル・コンピューティング・デバイス１０２は標準デスクトップまたはパーソナルコンピューティング・デバイス、ラップトップ、ノートブック、またはネットブックコンピュータ、タブレットコンピュータ、またはスマートフォン、テレビ、または他の携帯コンピューティング・デバイスを含み得る。そのようなコンピューティング・デバイスおよび他のコンピューティング・デバイスは公共インターネット、私用インターネット、または他のネットワーク等それによってウェブパブリッシャ１０４にアクセスする各種の方法で１つ以上のコンピュータネットワークを介して、ウェブパブリッシャ１０４にアクセスするように構成され得る。結果的に、ディスプレイ１０６は実質的に任意のタイプのディスプレイ（例えばモニタ、タッチスクリーン、または任意の他のタイプの視覚または聴覚ディスプレイ）を示すと理解され得る。
【００１６】
以下の例において、一般にローカル・コンピューティング・デバイス１０２とブラウザアプリケーション１１２は、典型的には、例えば、ウェブパブリッシャ１０４によって表されるウェブサーバから、ページ１１０を識別し、ページ１１０にアクセスし、ページ１１０をレンダリングするためのプロトコルを使用して、インターネットを介してウェブパブリッシャ１０４と通信すると想定される。しかし、そのような例は単に明確化及び簡潔さのために提供され、ちょうど上で参照されたように、ローカル・コンピューティング・デバイス１０２がブラウザアプリケーション１１２およびブラウザウィンドウ１０８に関連付けられているコンテンツの取得、処理、または提供を行う各種の方法の制限を意図したものではないことが認められる。
【００１７】
このように、ちょうど参照された例のタイプでは、一般にページ１１０が公共インターネットを介して利用可能な多くのタイプのウェブページを示していると想定され得る。例えば、簡単なシナリオでは、ページ１１０は、ローカル・コンピューティング・デバイス１０２のユーザに望まれているおよびブラウザウィンドウ１０８内で表示され得るテキスト、音、画像、広告、他のコンテンツを含む実質的に静的なページを示し得る。他の例では、ページ１１０はブラウザウィンドウ１０８のコンテキスト内においてユーザがしばしば操作し得る多くのタイプの動的または対話式のコンテンツを含み得る。多くのシナリオにおいて、ページ１００および／または関連付けられた実行可能なコードは、部分的にまたは完全にウェブパブリッシャ１０４において実行され得る（例えば、ウェブパブリッシャ１０４のプロセッサ、メモリ、および他のハードウェア／ソフトウェアリソースを利用し得る）。一方、関連する機能や特徴をブラウザウィンドウ１０８を介してユーザに提供するアプリケーションを表すと理解され得る。ちょうど参照したように、そのようなウェブページおよび関連付けられている機能及びアプリケーションは各種従来のプログラミング言語および技術（例えば、ＨＴＭＬ（ｈｙｐｅｒｔｅｘｔ  ｍａｒｋｕｐ  ｌａｎｇｕａｇｅ）、ＡＪＡＸ（Ａｓｙｎｃｈｒｏｎｏｕｓ  ＪａｖａＳｃｒｉｐｔ（登録商標））、ＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）、ＪａｖａＳｃｒｉｐｔ（登録商標）、ＪＳＯＮ（ＪａｖａＳｃｒｉｐｔ  ｏｂｊｅｃｔ  ｎｏｔａｔｉｏｎ）、および実行可能な多くの他のタイプのコード）を使用して実装できる。
【００１８】
図１の例では、ウェブパブリッシャ１０４のコンテンツ９６はページモデル１１４を含むまたはそれに関連付けられているとして示されているページ１１０を含む。一般的に言って、ページモデル１１４は、ページ１１０が書かれたプログラミング言語に関してページ１１０の構造、コンテンツ、および外観を規定するデータ構造を提供する。
【００１９】
本明細書に記述されている具体的な例では、ページモデル１１４はドキュメント・オブジェクト・モデル（ＤＯＭ）データ構造を示し得る。そのようなＤＯＭは、ちょうど参照したように、それ自身、ページ１１０のソースコード（例えばＨＴＭＬ）を示すデータ構造（典型的には、ツリー状データ構造）を示す。
【００２０】
ウェブパブリッシャ１０４はまた、ローカル・コンピューティング・デバイス１０２等他のコンピュータにコンテンツ９６を提供し得るコンテンツマネジャ９８を含み得る。いくつかの実施形態では、コンテンツマネジャ９８はまた、ウェブパブリッシャ１０４がブラウザまたはアプリケーション環境と交換することができるルール１１１を規定するように使用され得る。コンテンツマネジャ９８およびルール１１１を使用し、ウェブパブリッシャ１０４は拡張機能または他のアプリケーションに許可または権限をリアルタイムで適用、制御、監視、監査、付与、または保留し得る。一例として、オンライン新聞が、ユーザに対し提示される前にどの拡張機能がコンテンツに対する制御を有していたかに基づきどのコンテンツ９６を提供するかの保留または変更を行い得る。いくつかの実施形態では、以降で詳細を述べるように、ウェブパブリッシャは、課金または他の目的で使用可能である、ある拡張機能に基づくウェブページの変更またはウェブページとの対話に関する監査可能な記録へのアクセスを有し得る。監査可能な記録は例えばデータセット９４のようなデータストアに記憶され得る。図６に関して以下詳細を述べるように、データセット９４はまた、コンテンツ９６への変更を示す値等、他の値を記憶し得る。各種の実施形態では、データセット９４はウェブパブリッシャ１０４からリモートに記憶され得、ウェブパブリッシャは例えば図１に示すようなプロセッサ９２を使用して、必要とされることに基づいてデータセット９４にアクセスし得る。プロセッサ９２は図７に関して詳細に記述するようにマイクロプロセッサであり得る。ルール１１１もまたデータベースまたは他のデータストアに記憶され得る。いくつかのケースでは、ルール１１１はウェブパブリッシャ１０４からリモートに記憶され、ウェブパブリッシャ１０４は例えばプロセッサ９２を使用して原則的に必要に応じてルール１１１にアクセスし得る。
【００２１】
例として、ルール１１１は拡張機能の動作の管理を可能にするルールを含み得る。一例となるルールはブラウザ拡張機能がページを再フォーマットしたり、別の種類の情報がレンダリングされることを保留したり、または、ページによってもともと提供された順序とは違った順序でユーザに情報を表示したりすることを許す場合がある。別の例となるルールはどの第三者パートナーがページで操作できるかを制御し得る。別の例となるルールは、ページの要素に対する変更または置換の選択を拡張機能にさせることを可能とし得る。変更または代替はドメインごと、サイトごと、ページごと、記事ごと、または他の方法で定義され得る、さらに別の例として、ルールは複数のウェブパブリッシャにどのコンテンツを他のパブリッシャといっしょに配信できるかの方法を与え得る。例えば、オンライン新聞およびオンラインマガジンが協力し、オンライン新聞からのニュース欄がオンラインマガジンのハリウッド欄といっしょに配信されることを可能にし得る。
【００２２】
本明細書に記述するように、ブラウザ拡張機能はシステム１００で利用され、ブラウザアプリケーション１１２と関連付けて、および、従って、ブラウザウィンドウ１０８に関して、追加の特徴または機能を提供し得る。拡張機能の機能はそれに制限しないが、ネットワークトラフィックを観察および変更し、およびページ１１０のページモデル１１４を変更することを含み得る。他の機能はユーザとの対話、およびボタンおよび他のユーザインタフェース要素をブラウザに追加することと、ユーザとの対話を扱うこととを含み得る。
【００２３】
上の記述から理解できるように、拡張機能ファイル１２２によって定義される拡張機能は一般にブラウザ拡張機能、アド・オン、プラグイン、ウェブアプリケーション（ｗｅｂ  ａｐｐｓ）またはブラウザウィンドウ１０８またはページ１１０を提供する際、ブラウザアプリケーション１１２の外観または機能を強化するよう設計された任意の他のプログラムコードを参照する。拡張機能ファイル１２２は、特に、各リソースに対するリクエストをキャンセルする、ウェブページ１１０また参照されるリソースへのリクエストをリダイレクトする、ウェブページ１１０に関係したウェブリクエストのリクエストおよびレスポンスヘッダを変更するまたは、ウェブページ１１０を読み出すための認証情報を与える等、ウェブページ１１０に関係したネットワークリクエストへの変更を行い得る。例えば、拡張機能は、いくつかのケースではページ１１０の広告コンテンツ１２１を他の広告コンテンツと入れ替える、または広告コンテンツ１２１の出現または表示をブロックし得る。広告コンテンツ１２１は、表示するようにウェブパブリッシャに対し支払が行われているコンテンツである。例えば、広告コンテンツ１２１がハイジャック拡張機能によって他のコンテンツに置き換えられたら、広告主はそのウェブパブリッシャにより広告を行うことを望まなくなったり、そのウェブパブリッシャの収入が広告ビュー数の減少に基づいて減ったりし得る。
【００２４】
図１のシステム１００の簡単にされた例では、拡張機能ファイル１２２はローカル・コンピューティング・デバイス１０２にローカルに記憶されているように示されている。例えば、ローカル・コンピューティング・デバイス１０２のユーザはブラウザアプリケーション１１２で使用するように拡張機能ファイル１２２をプログラムし記憶している場合がある。しかし、追加のまたは代わりの例では、拡張機能ファイル１２２のいくつかまたは全ては遠隔的にアクセスされ得ることが分かるであろう。例えば、多くの場合、特定の拡張機能はブラウザアプリケーション１１２がアクセスし得る１つのフォルダまたはアーカイブにパッケージ化されている場合がある。例えば、拡張機能ファイル１２２のプロバイダおよび／またはディストリビュータ（図１の例では特に示されていない）は拡張機能ファイル１２２を作成し、パッケージ化し、システム１００のユーザは示されるようにそれによってローカル・コンピューティング・デバイス１０２で拡張機能ファイル１２２にアクセスし、拡張機能ファイル１２２をダウンロードおよびインストールすることを含む所望の拡張機能をダウンロードおよびインストールし得る。
【００２５】
ブラウザアプリケーション１１２は、ページ１１０のページモデル１１４をブラウザウィンドウ１０８でユーザに表示することができる情報に変換するのに使用されるレンダリングエンジン１２６を含み得る。レンダリングエンジン１２６はフレームワーク１４４によって規定されたメタタグを解析するのに使用される照合エンジン１４０を含み得る。照合エンジン１４０は、パブリッシャが規定したメタタグにしたがってページ１１０に対するインタフェースまたは変更を行う特定の権限を、適切な拡張機能に与え得る。照合エンジン１４０はこれらのアクションをリアルタイムで行い得る。照合エンジン１４０はパブリッシャが規定したメタタグによりページ１１０と整合させるまたはそれを変更する特権をある拡張機能から取り消し得る。いくつかの実施形態では、照合エンジン１４０はウェブパブリッシャ１０４に関連付けられている契約条項を拡張機能の所有者に示し、拡張機能の所有者が提案された契約条項を受け入れたうえで、照合エンジン１４０はその拡張機能に承認された契約の条項によってページ１１０と整合させるまたは、それを変更する特権を与える。いくつかの実施形態では、照合エンジン１４０は、例えば、プログラムでサーバ１７０等のサーバでのトランザクションのログを記録し、拡張機能の所有者に課金し、適当な間隔でパブリッシャに支払をし得る。
【００２６】
ブラウザアプリケーション１１２は拡張機能のインストール、ロード、実行を担い得る拡張機能マネジャ１２８を含み得る。ブラウザアプリケーション１１２は、拡張機能１２２とレンダリングエンジン１２６との通信のハンドリングを担い得る。そのようにして、特定の拡張機能１２２にイベントをディスパッチし、ウェブリクエストへの意図される変更を収集し、それらを照合エンジン１４０に送り、その結果をネットワークスタックに送り返し得る。この機能の一部または全部はブラウザアプリケーション１１２の他の構成要素によって実行され得る。
【００２７】
拡張機能マネジャ１２８はまた、ウェブパブリッシャ１０４にＤＯＭ要素等特定のブラウザ要素を露出し得るノーティファイア１４２を含み得る。以下、図３に関して詳細を述べるように、ＤＯＭ要素は例えば、ローカル・コンピューティング・デバイス１０２またはブラウザアプリケーション１１２にインストールされた特定のまたは各ブラウザ拡張機能の名前、各拡張機能の分類列挙、または各ブラウザ拡張機能が所与のウェブページで行う動作またはアクションのリスト（例えば、作成、読み取り、更新、削除）を含み得る。
【００２８】
いくつかのケースでは、拡張機能マネジャ１２８はまた、パブリッシャがプログラムでブラウザ拡張機能ＤＯＭ要素のリストを通じて反復することを許可する（例えばＪａｖａＳｃｒｉｐｔ（登録商標）でプログラムされ得る）フレームワーク１４４を含み得る。フレームワーク１４４は、どの程度詳細に拡張機能がページ１１０と相互運用するかを調整し得るパブリッシャが規定したウェブページメタタグの挿入を可能とする。フレームワーク１４４は拡張機能の分類がページ１１０と相互運用し得ることを特定し得る。フレームワーク１４４は更新、読み取り、削除、書き込みなど等、どのように動作またはアクションが一般的にページ１１０に適用され得るかを特定し得る。いくつかの実施形態では、フレームワーク１４４はウェブパブリッシャ１０４がページ１１０での各種の動作またはアクションを行う権利のために拡張機能の所有者からの支払いを要求し得る契約条項の定義を容易にし得る。
【００２９】
当然ながら、ブラウザアプリケーション１１２が各種の特徴、機能、動作モジュール、または図１との関連で特に示されていない他の要素を含むまたはそれに関連付けられ得ることが分かるであろう。同様にレンダリングエンジン１２６と拡張機能マネジャ１２８に関連して使われる専門用語は単なる例であり、存在するまたは将来存在し得る様々なタイプのブラウザアプリケーション１１２では本明細書で記述された各種の概念を参照するとき別の専門用語が用いられ得ることが分かるであろう。
【００３０】
システム１００はまた、リモートサーバ１７０を含み得る。サーバ１７０は中央ストレージ要素１８０、認定エンジン１７２、監査エンジン１８２を含み得る。いくつかのケースでは、中央ストレージ要素１８０はウェブページの各種拡張機能の行為に対応する監査証跡またはログを記憶し得る。認定エンジン１７２はブラウザ拡張機能がそれらを行うように規定された行為のみを行うことを認定するのに使われ得る。例えば、サーバ１７０は自動的に特定のブラウザ拡張機能を認定し、ブラウザ拡張機能によって行われたアクションの監査またはテストした結果に基づいてそれら認定されたブラウザ拡張機能分類を割り当て、またはブラウザ拡張機能をデジタル認定で署名し得る。（つまり、ブラウザ拡張機能が行うと断言したアクションのみを行っていることを確認する。）監査エンジン１８２は、例えば、中央ストレージ要素１８０と共同して、中央ストレージ要素１８０にこれも記憶される拡張機能に関連付けられた許可及び規定に基づいたアクションを評価して、様々なブラウザ拡張機能のあるアクションを追跡し、ログを作成することに用いられる。
【００３１】
いくつかのケースでは、ブラウザアプリケーション１１２はブラウザアプリケーションにインストールされている拡張機能が特定の許可を得ていると判定するために中央ストレージ要素１８０にリアルタイムでアクセスし得る。ブラウザアプリケーション１１２はその情報をページ１１０と関連付けられたウェブパブリッシャ１０４と共用し得る。例えば、図３に関して以下で詳細を述べるように、ページまたはある種のコンテンツを要求しているブラウザは、ブラウザアプリケーション１１２が拡張機能Ａ、Ｂ、およびＣをイントールしたこと、これらの拡張機能はアクションＸ、Ｙ、およびＺを行うことができることを、ウェブパブリッシャ１０４に通知し得る。次いで、ウェブパブリッシャ１０４はこの情報に基づいて、コンテンツを保留する、異なるフォームのコンテンツを提供する、ブラウザアプリケーション１１２のユーザを異なるタイプのコンテンツ（例えば、ＰＤＦまたは画像）にリダイレクトするなど等特定のアクションを行うことを選択し得る。ユーザはそのコンテンツを受け取ると、どうブラウザ拡張機能がコンテンツをウェブパブリッシャ１０４が提供した元々のページから変えたかを見ることができる。
【００３２】
図１の例にも示されるように、ブラウザアプリケーション１１２は拡張機能ファイル１２２に関連付けられている拡張機能等、特定の拡張機能のいくつかまたは全ての機能を実装するように構成され得る拡張機能マネジャ１２８を含み得る。例えば、拡張機能マネジャ１２８はレンダリングエンジン１２６に拡張機能ファイルの拡張機能に関連付けられている特定のファイルまたはページを実行、またはさもなければレンダリングするようにさせるよう構成され得る。拡張機能マネジャ１２８はまた、図２に関して以降詳細に述べるように、バックグラウンドページおよびコンテンツスクリプトを実行するように構成され得る。例えば、コンテンツスクリプトは特定の種類のコンテンツ（例えばリンクされていないウェブページ、またはＲＳＳフィード）の存在を検出するために、ブラウザウィンドウ１０８内にレンダリングするブラウザアプリケーション１１２によってロードされる任意のページを検査するように書かれている場合がある。つまり、コンテンツスクリプトは、ブラウザウィンドウ１０８内にロードされレンダリングされる任意のウェブページのコンテンツに対しそのような技術を実行し得る。コンテンツスクリプトが特定の種類のコンテンツを検出した場合、コンテンツスクリプトは拡張機能に特定の種類のコンテンツの検出された存在の拡張機能を通知するようなメッセージを渡し得る。いくつかのケースでは、（例えば拡張機能アイコン１２０を表示する等ブラウザウィンドウ１０８に関してページアクションを実行するために）拡張機能はブラウザウィンドウ１０８を実際に変更し得る。
【００３３】
図１の例では、ブラウザアプリケーション１１２は別々の機能モジュールを含んで示されている。しかし、そのような描写は単に例のためであり、他の実装も可能であることが分かるであろう。例えば、ブラウザアプリケーション１１２の単一要素は、２つ以上の要素によって実装され得る。逆に、図１に示されているブラウザアプリケーションの２つ以上の構成要素は単一の構成要素を用いて実行され得る。さらに、図１の例では、ローカル・コンピューティング・デバイス１０２がコンピュータ可読記憶媒体１０２ｂとともに少なくとも１つのプロセッサ１０２ａを含むように示されている。つまり、例えば、ローカル・コンピューティング・デバイス１０２は、望まれる結果を得るために並行して実行する２つ以上のプロセッサを利用してもよい。なお、コンピュータ可読記憶媒体１０２ｂは、例えば、少なくとも１つのプロセッサ１０２ａによって実行されるとき、ブラウザアプリケーション１１２に様々な機能、および本明細書で述べる他の関連した機能を行わせる命令を記憶するのに使用され得る従来の種類の任意のコンピュータメモリを表現し得る。図１のシステム１００の実施形態の追加また別例が可能である。
【００３４】
図２はウェブブラウザにおけるブラウザ拡張機能の一例のブロック図である。上で参照したように、拡張機能ファイルは様々な異なる種類のファイルを含み得る。例えば、図２に示されるような拡張機能２０４は、例えば拡張機能が提供し得る最重要ファイルおよび性能、および拡張機能がウェブページおよびブラウザアプリケーションと対話をする必要がある許可等拡張機能２０４についての情報を与えるマニフェストファイル２３０を含み得る。例えば、マニフェスト２３０は拡張機能の名前および拡張機能２０４が作用するように探し求める少なくとも１つのコンテンツタイプ２３２を含み得る。例えば、コンテンツタイプは画像、テキスト、ハイパーリンク、などであり得る。マニフェスト２３０は、また、図３に関して以降詳細に記載するように、読み取り、書き込み、更新、削除など等拡張機能２０４によって行われ得る１つ以上のアクション２３４または動作を示し得る。上で参照したように拡張機能は様々な他の種類のファイルを含み得ることはわかるであろう。例えば、拡張機能２０４は例えば、ブラウザウィンドウ２０８またはブラウザウィンドウ２０８内に表示されるようにウェブページ２０１のページモデルのコンテンツを変更することができるコンテンツスクリプトファイル２１２に関連して、ポップアップウィンドウを提供するブラウザのアクションに関連付けられているＨＴＭＬページ等、少なくとも１つのＨＴＭＬページ２２０を含み得る。
【００３５】
拡張機能２０４の実行に関して、以降で記述するようなコンテンツスクリプト２１２の他に、拡張機能２０４の実行は図１に示されるブラウザアプリケーションのレンダリングエンジンと同様に、しかし、それとは別のプロセスで進行し得る。コンテンツスクリプト２１２は、関連付けられている拡張機能がウェブページ（例えば、ウェブページ２０１）と対話できるようにするスクリプトを表現するか、またはそのスクリプトを含み得る。例えば、コンテンツスクリプト２１２はブラウザにロードされたとき、ウェブページ２０１のコンテキストにおいて実行するＪａｖａＳｃｒｉｐｔ（登録商標）として実装され得る。
【００３６】
コンテンツスクリプトはウェブページでリンクされていないＵＲＬを見つけてハイパーリンクに変換し、テキストをさらに読みやすくするためにフォントサイズを大きくし、広告や他のコンテンツを追加、ブロックすることができる。コンテンツスクリプトは間接的にブラウザＡＰＩを使用し、拡張機能データにアクセスし、親の拡張機能とメッセージを交換することによって拡張機能のアクションを要求することができる。コンテンツスクリプトはまた、図１に示したページモデル（例えばＤＯＭ）を使用してウェブページと通信を行うことができる。
【００３７】
コンテンツスクリプト２１２のコードによって、そのコンテンツスクリプトがどのように書かれているかに応じて、ウェブページへの注入が常時試みられてもよく、時々だけ注入されてもよい。さらに、拡張機能２０４は複数のコンテンツスクリプトをページに挿入することができ、これらコンテンツスクリプトの各々はＪａｖａＳｃｒｉｐｔ（登録商標）およびＣＳＳファイル等複数のファイルを持ち得る。
【００３８】
一般的に言って、コンテンツスクリプトはブラウザアプリケーションによって訪れられたウェブページの詳細を読み取るように構成され、そのようなページを変更するようさらに構成され得る。例えば、コンテンツスクリプトはページ２０１のページモデル（例えばＤＯＭ）を読取および／または変更を行うように構成され得る。しかし、例となる実施形態では、図１に関して以前述べたように、コンテンツスクリプトはウェブページ２０１に関連付けられたウェブパブリッシャによって提供されるルールに基づいてブラウザアプリケーションのレンダリングエンジンによってウェブページ２０１のページモデル（例えばＤＯＭ）にアクセスまたは変更することを制限され得る。このように、ウェブパブリッシャはあるウェブサイト上で拡張機能の行動を管理または追跡し得る。
【００３９】
図３はブラウザ拡張機能の例となる分類および動作のブロック図である。図３に示されるシステム３００は２つのコンピューティング・デバイス、デバイス３１０とデバイス３２０を含む。各デバイスは図１に関して上に記述したブラウザアプリケーション等ブラウザアプリケーションを含み得る。ブラウザアプリケーションはユーザ同意の下、図１に示すウェブパブリッシャ等ウェブパブリッシャに各種のブラウザ拡張機能要素をさらすブラウザＤＯＭ要素を含み得る。例えば、ブラウザ拡張機能要素はそのデバイスにインストールされている各ブラウザ拡張機能の名前、各拡張機能の分類列挙、各ブラウザ拡張機能が所与のウェブページで行う動作のリスト（例えば、作成、読み取り、更新、削除）を含み得る。
【００４０】
例えば、図３に示すように、各種のブラウザ要素３１２はデバイス３１０のブラウザアプリケーションによってウェブパブリッシャにさらされ得る。ブラウザ要素３１２はデバイス３１０で動作しているブラウザアプリケーションにインストールされている３つのブラウザ拡張機能の名前、分類、動作を含む。第１ブラウザ拡張機能は名前「広告サーバ（Ａｄｓｅｒｖｅｒ）」、分類「Ａ」、動作「読み取り、書き込み」を持っている。第２ブラウザ拡張機能は名前「コンバータ（Ｃｏｎｖｅｒｔｅｒ）」、分類「Ｂ」、動作「読み取り」を持っている。第３ブラウザ拡張機能は名前「電子メーラ（Ｅｍａｉｌｅｒ）」、分類「Ｃ」、動作「更新、削除」を持っている。
【００４１】
別の例として、ブラウザ要素３２２はデバイス３２０で動作するブラウザアプリケーションに関連付けられている。ブラウザ要素３２２はデバイス３２０で動作しているブラウザアプリケーションにインストールされている２つのブラウザ拡張機能の名前、分類、動作を含む。第１ブラウザ拡張機能は名前「広告サーバ（Ａｄｓｅｒｖｅｒ）」、分類「Ａ」、および動作「読み取り、書き込み」を持っている。第２ブラウザ拡張機能は、名前「ソーシャル状態（ＳｏｃｉａｌＳｔａｔｕｓ）」、分類「Ｂ」、動作「読み取り、書き込み、更新」を持っている。
【００４２】
図１のフレームワーク１４４等クライアント側フレームワーク（例えば、ＪａｖａＳｃｒｉｐｔで）はウェブパブリッシャにプログラムでブラウザ拡張機能ＤＯＭ要素のリストを通じて反復することを許可し得る。このフレームワークは拡張機能がどれだけ詳しくウェブパブリッシャによって提供されるウェブページと相互運用し得るかを調整するパブリッシャが規定したウェブページメタタグの挿入を容易にする。拡張機能の分類はページと相互運用する。一般に動作はウェブページに適用され得る。フレームワークは例えば、ウェブパブリッシャがページで各種の動作を行う権限に対し拡張機能の所有者から支払いを要求する契約条項の定義を容易にする。
【００４３】
図４はウェブブラウザの一例となるユーザインタフェースの図である。ユーザインタフェースはタブ４０２または図１に関し上で述べたブラウザアプリケーション等ウェブブラウザのウィンドウに実装され得る。タブ４０２はコンテンツ４１０および広告４２０と広告４２２を含んでいるウェブページ４０４を表示し得る。いくつかのケースでは、ブラウザアプリケーションで動作している拡張機能は広告４２０等広告の１つを変更またはブロックしようとする場合がある。いくつかのケースでは拡張機能はコンテンツ４１０をウェブパブリッシャが提供していない他のコンテンツと置き換えるようとする場合がある。いくつかのケースでは、拡張機能は広告４２２を別の広告または他のコンテンツと置き換えようとする場合がある。
【００４４】
ウェブパブリッシャにとって信頼されているブランドのインテグリティおよび権威性（オーソリティ）を維持するためには、彼らが提供するコンテンツにおけるより良い制御が必要である。拡張機能における制御は二重である。現在のビジネスモデルでは、新聞等のウェブパブリッシャはエンドユーザに無料、または低いコストのコンテンツを配信し続けるためには広告を提供するように編成されている。さらに新聞は正しいストーリーに対して適切に広告を提供することによってブランドのインテグリティ維持を確実にするように広告パートナーに法的責任をもつ。例えば、チョコレート供給者はその広告を増加する糖尿病および肥満率に関するストーリーの横に置きたくない場合がある。今日の広告ブロッカー拡張機能は良くてもパブリッシャが引き続き高品質低コストのコンテンツをユーザに届けることを確実にするように使用する収入源を取り去る。今日、ユーザは、広告と組み合わせてコンテンツを受け取るためにサービスプロバイダからの明示されていないサービス条項に同意しているか、または、広告が制限されているまたは広告がないコンテンツを与えるモデルを購入することによってオプトアウトのための機会を有する。しかし、上に述べた拡張機能は単に広告が提供されるのをブロックする。別のシナリオでは、広告拡張機能は、当該広告拡張機能のものを新聞広告に置き換え、チョコレート広告が間違った記事に対して提供される場合には、新聞に関して責任を生じさせる。
【００４５】
拡張機能はまた、自給可能でない場合があるパブリッシャにサービスを提供する。例えば、やっとウェブでの存在を確立したマミーロッジと呼ばれる地元の民宿の仮の一例を考えてみよう。信頼されているブランドとして、自身の予約サイトにローカル広告も提供し始めた。マミーロッジは信頼済みの拡張機能に自身のサイトで通貨換算を提供させることを可能としたいが、マミーロッジには今のところユーザが正しい通貨換算レートを得るかどうかを制御する能力はない。
【００４６】
拡張機能はユーザにも影響する。例えば、ユーザ「スージー」は毎日オンライン新聞のファッション、天気、ウェディング欄を読んでいるとしよう。彼女はまた、トップのニュースを読みたいが、これは通常彼女のリストの一番下にある。彼女は好みの記事が最初に来るようにオンライン新聞のホームページを自分流にアレンジしたいと思っている。彼女は積極的に好みの記事を選ぶことができるがそうする時間を費やさない方がよいと思っているだろう。どれだけの時間、どれだけ頻繁に新聞の欄を読んで、自分流にアレンジしたホームページの記事レイアウトを更新しているかを追う拡張機能をインストールすることができたら、彼女はオンライン新聞をさらにいっそう読むであろう。オンライン新聞はこの努力を支援したいが、まだその能力はない。もし、新聞がこのサービスのプロバイダが誰であるかを制御できるのであれば、彼らはブランドインテグリティを確実にし、より良いユーザ体験を申し出られるだろう。
【００４７】
また、別の例として、拡張機能は携帯デバイスのユーザにサービスを提供することができる。例えば、最新のスマートウォッチを買ったばかりのユーザ「トム」を考えてみよう。彼はできるだけデバイスから離れようとしているがいつも気を付けていたい見出しがいくつかある。彼はオンライン新聞に特定のトピックをペースの速い彼の仕事日と一体になっている時計にプッシュさせたい。これらのパブリッシャは、正しい配信を保証できるのであれば、自身のコンテンツを混合する場合がある。
【００４８】
図５は例となる実施形態によるコンテンツに変更を加えたブラウザ拡張機能を検出するプロセスのフローチャートである。図５に示すプロセスは少なくとも部分的には、図１に示すシステム１００（例えば図１に示すウェブパブリッシャ１０４）等コンピュータシステムによって行われる。ウェブパブリッシャはウェブページを含むコンテンツを提供し得る（５１０）。例えば、コンテンツはウェブページ１１０を含み得る。図１に示すブラウザアプリケーション１１２はレンダリングエンジン１２６を使用してページ１１０をレンダリングし得る。ブラウザはまた、例えばページ１１０のＤＯＭをロックすることによって、ウェブパブリッシャ１０４によって指定される時間にコンテンツをロックし得る。例えばブラウザは、例えばＷ３Ｃ  ＩＦｒａｍｅ  Ｓａｎｄｂｏｘ  Ａｔｔｒｉｂｕｔｅのサンドボックス属性を使用して、ウェブパブリッシャによって指定される時間以降にスクリプト、プラグイン、ポップアップ、またはブラウザ拡張機能がページ１１０のＤＯＭに対し作用することを防ぎ得る。
【００４９】
ウェブパブリッシャ１０４は例えば、図１に示すプロセッサ９２を使用して、コンテンツにアクセスした第１のウェブブラウザ（例えばブラウザアプリケーション１１２）に関連付けられている少なくとも１つの拡張機能についての拡張機能のリストにアクセスし得、また、そのコンテンツに基づいてウェブブラウザによって生成されたキーを受け取り得る（５２０）。第１ウェブブラウザはキーを生成するためにコンテンツに対し機能を実行する。機能の例として、第１ウェブブラウザはウェブページ上にレンダリングされたコンテンツのスクリーンショットをとり得る。別の例として、ブラウザは、コンテンツの送信においてそのコンテンツといっしょに含まれているビット数を数えるべく、コンテンツのチェックサムを実行する。第１ウェブブラウザは、別の例として、コンテンツのトレースを実行する。例えば、ウェブブラウザはブラウザプロセス、レンダリングされるプロセス、ブラウザによってレンダリングされるコンテンツについての情報を記録するログを作成するために、または、サーバおよびウェブブラウザによって交換されるデータについての情報のログをとるために、トレースを実行し得る。このデータ交換はデバッグ制御、サーバ変数、クッキー、レンダリングされるコンテンツ、および他の情報を含み得る。いくつかの実施形態では、トレースを実行した結果はブラウザプロセス等のプロセスにおいて発生するイベントのイベントタイムを含むレコード（トレースファイル等）である。例として、トレースは、パブリッシャコンテンツが、異なるパブリッシャからのコンテンツの第２のセットとマージされているレコードを含むことができる。このレコードは最終的なユーザビュにつながるフォーマッティングの任意の変更を含み得る。このレコードを使用して、将来においてコンテンツの順序を変えるため、またはコンテンツオーサに支払を行うための変更を行うことができる。
【００５０】
機能の他の例として、第１ウェブブラウザはＤＯＭをテキストファイルとして保存するかまたは、ページ１１０の異なるタグの数および場所、またはページ１１０の要素のタイプを保存し得る。この機能は、ウェブパブリッシャ１０４等のシステムが単にコンテンツからキーを生成するのではなく、キーからコンテンツを生成することができるように可逆である。例えば、キーがテキストファイルとしてＤＯＭを含むのであれば、ウェブパブリッシャはそのテキストファイルを使用してコンテンツを再作成し得る。ウェブパブリッシャは例として、新しいキーにより変更されるフォントサイズに基づいてコンテンツの長さを変えて、より大きなフォントサイズにはより簡潔なコンテンツを返し、より小さなフォントサイズにはより完全なコンテンツを返す。
【００５１】
ウェブパブリッシャ１０４は例えば、プロセッサ９２を使用して、キーに関連付けられている値と期待されている値とを比べ得る（５３０）。例えば、第１ウェブブラウザがビット数を作成するためにコンテンツ上でチェックサム機能を実行し、ビット数をキーと関連付けたとすると、ウェブパブリッシャはキーに関連付けられているビット数を、コンテンツに関連付けられるであろうとウェブパブリッシャが期待する期待されるビット数とを、例えば、ウェブパブリッシャによって提供される元のコンテンツに基づいて、比べることができる。この期待される値はコンテンツへの変更なしを表す値であり得る。ウェブパブリッシャ１０４は、値が期待される値と同じではないと判定し得る（５４０、いいえ）。この判定は第１ウェブブラウザによってレンダリングされたコンテンツが元々ウェブパブリッシャ１０４によって提供されたコンテンツと何らかの点において違っており、そのため、第１ウェブブラウザによってレンダリングされたときブラウザ拡張機能がコンテンツを変更したことを示し得る。例えば、ブラウザ拡張機能はコンテンツに関連付けられた広告を追加しまたは取り除き、テキストの場所を変え、テキストを削除し、ウェブページの視覚要素をハイライトし、ハイパーリンクを追加し、または、コンテンツの他の態様を変更してもよい。ウェブパブリッシャ１０４は値と期待される値との違いを判定し得る。ウェブパブリッシャ１０４は、次いで、例えば、プロセッサ９２を使用して、例えば、図６に関して以降詳細に記述するように、その違いに基づいてコンテンツを変更したリストから特定のブラウザ拡張機能を判定し得る（５５０）。いくつかの実施形態では、例えば、リストが１つのブラウザ拡張機能を含むだけなら、リストからの単一ブラウザ拡張機能によってウェブページまたはコンテンツが変更されたとウェブパブリッシャが自動的に判定することができるので、ウェブパブリッシャは判定をしなくてよい。いくつかの実施形態では、どのブラウザ拡張機能がコンテンツを変更したかを推定するために、ウェブパブリッシャは複数のリスト、複数のキー、および複数の期待される値を、反復的にまたはリアルタイムで解析し得る。複数のリスト、キー、期待される値は、各種のウェブブラウザおよびコンピューティング・デバイスから伝えられる。例えば、どのブラウザ拡張機能がコンテンツを変えたかを判定するために、ウェブパブリッシャは１００個のキーからなるセットおよび拡張機能の１００個のリストを解析し得る。一例では、ウェブパブリッシャは、異なるセットの拡張機能を各々インストールした１００個の異なるブラウザに同じコンテンツを送る。ウェブパブリッシャは、次いで、どの拡張機能がコンテンツを変更したかについての情報を受け取る。ウェブパブリッシャは、次いで、どの拡張機能がコンテンツを変更し得たか判定するために、コンテンツを変更したブラウザ全てに共通している拡張機能を探し得る。例えば、ウェブパブリッシャはブラウザのうちの４０個がコンテンツを変更したと判定し得る。それらの４０個のブラウザについて、全てが同じ拡張機能「Ａ」を共通して有しており、他に共通して有している拡張機能はない。その場合、ウェブパブリッシャは拡張機能「Ａ」がコンテンツに変更を生じているであろうと判定する。これに代えて、または加えて、ウェブパブリッシャは４０個のブラウザ全てが拡張機能「Ａ」、「Ｂ」、「Ｃ」をインストールし判定し、その他の６０個のブラウザのうちのいくつかは拡張機能「Ｂ」および「Ｃ」をインストールしたと判定し得るが、その他の６０個のブラウザはコンテンツを変更しなかった。その場合、ウェブパブリッシャはまた、拡張機能「Ａ」がコンテンツに変更を生じている可能性が高いと検出し得る。ウェブパブリッシャは、複数分、複数時間、複数日、さらには複数週にわたって、反復的な比較を用いてもよい。そのような比較は、ウェブパブリッシャによって提供されたコンテンツに対し拡張機能が行った変更に関する更新されたデータをウェブパブリッシャに提供するように、連続的および継続進行し得る。
【００５２】
図５に示すプロセスは様々な場所でユーザの見込みに遅れないように同時にリアルタイムに複数のコンピューティング・デバイスにおいて動作している複数のウェブブラウザで動作し得る。各種の実施形態において、例えば、図６に関して以降に詳細を述べるように、ウェブパブリッシャ１０４はインストールされたまたはコンテンツをレンダリングしているウェブブラウザで動作している全てのブラウザ拡張機能のリストを受け取る。各種の実施形態では、図５に示すプロセスのいくつかまたは全ては第三者のコンピュータで行われる。例えば、ステップ５２０−５５０の解析のいくつかまたは全ては第三者のコンピューティング・デバイスによって行われる。そのような例では、第三者のコンピューティング・デバイスはウェブパブリッシャ１０４に対する解析の結果を提供するかまたはアクセス可能であり得る。例えば、一実施形態では、ウェブブラウザが第三者のサーバ（図１に示すサーバ１７０等）にウェブブラウザにインストールされている全ての拡張機能のリストおよびコンテンツに基づいたウェブブラウザによって生成されたキーを送り得る。もしウェブページのコンテンツを変更しているブラウザ拡張機能がなかったら、第三者のサーバはキーに対してある値を受け取るように期待し得る。もしリスト中のブラウザ拡張機能のいずれかがウェブページのコンテンツを変更したら、キーの値は第三者のサーバが受け取ると期待している値とは違い得る。第三者のサーバが異なる値を確立し、ウェブパブリッシャに対するレポートを作成し得る。例えば、レポートはコンテンツを変更した拡張機能のリスト、コンテンツのどの態様を各拡張機能が変更したかを含み得、第三者のサーバはウェブパブリッシャにそのレポートを送るかまたは、例えば、セキュアログインを介してあるウェブサイトからダウンロードできるようにウェブパブリッシャにそのレポートが利用可能にし得る。
【００５３】
図６は一例となる実施形態による、コンテンツに変更を加えたブラウザ拡張機能を検出する別のプロセスを示すフローチャートである。図６に示すプロセスは少なくとも部分的には例えば、図１に示すウェブパブリッシャ１０４、図１に示すシステム１００等コンピュータシステムによって行われ得る。ウェブパブリッシャにはウェブページを含むコンテンツを提供し得る（６１０）。ウェブページは例えばオンライン新聞の一部であり得る。別のコンピューティング・デバイスのウェブブラウザは特定の時間でコンテンツをロックしてもよい（６１２）。例えば、ウェブブラウザは例えばＷ３Ｃ  ＩＦｒａｍｅ  Ｓａｎｄｂｏｘ  Ａｔｔｒｉｂｕｔｅのサンドボックス属性を使用してスクリプト、プラグイン、ポップアップ、またはブラウザ拡張機能がウェブパブリッシャによって指定された時間の後、ページ１１０のＤＯＭで動作することを防ぎ得る。
【００５４】
ウェブパブリッシャはコンテンツにアクセスするウェブブラウザに関連付けられている全ての拡張機能のリストにアクセスし得、ウェブパブリッシャはまた、コンテンツに基づいてウェブブラウザによって生成されたキーにアクセスし得る（６２０）。ウェブパブリッシャはキーに関連付けられている値を期待される値と比べ得る（６３０）。ウェブパブリッシャはその値が期待された値と同じであるかを判定し得る（６４０）。もし、そうであれば、ウェブパブリッシャはコンテンツを提供し続ける（６１０）。もし、そうでなければ（６４０、いいえ）、ウェブパブリッシャはその値と期待される値の間の違いを判定し、また、コンテンツを変更した特定のブラウザ拡張機能を判定するために、データセットに十分なデータがあるかどうかを判定する（６５０）。データセットは例えば図１に示すデータセット９４であり得る。一例となる実施形態として、ウェブパブリッシャはコンテンツにアクセスしたウェブブラウザに関連付けられている全ての拡張機能のリストにアクセスし得る（６２０）。ウェブブラウザに関連付けられている全ての拡張機能のリストで１つのブラウザ拡張機能だけがあったら、ウェブパブリッシャはどのブラウザ拡張機能がコンテンツを変更したかを判定するに充分なデータを持っている―一ブラウザ拡張機能。別の例として全てのブラウザ拡張機能のリストは図３のブラウザ要素３１２を含み得る。その例では、要素は（例えば広告）はウェブブラウザにレンダリングされるコンテンツから削除されていたら、ウェブパブリッシャはブラウザ要素３１２からブラウザ拡張機能に関連付けられた動作に基づき、リストからただ１つの特定の拡張機能がコンテンツを削除することが可能でさえあることを判定することができ得る。その例では、特定の拡張機能はブラウザ要素３１２（可能な動作として削除動作を持っているブラウザ要素３１２からの唯一の拡張機能）に示される「Ｅｍａｉｌｅｒ」ブラウザ拡張機能であり得る。その場合、ウェブパブリッシャはどの拡張機能がコンテンツを変更したかを判定するのに充分なデータを持ち得る。もしそうであれば（６５０、はい）、ウェブパブリッシャはコンテンツを変更した特定のブラウザ拡張機能を判定し得る（６６０）。もしそうでなければ（６５０、いいえ）、ウェブパブリッシャは将来の比較のためにその値をデータセットに記憶し（６５２）、コンテンツを提供し続け得る（６１０）。そのような例では、ウェブパブリッシャはどのブラウザ拡張機能がコンテンツを変更したかを判定するために、各種の他のコンピューティング・デバイスおよびウェブブラウザからのデータを使用して複数の反復比較をし得る。反復比較は複数秒、分、時間、日にさえわたって行われ得る。ウェブパブリッシャはウェブサーバに関連付けられているデータベースにまたは遠隔的なデータストアにデータセット９４を記憶し得る。
【００５５】
図７は本明細書で記述した技術といっしょに用いられ得る一般的なコンピュータ・デバイス７００と一般的な携帯コンピュータ・デバイス７５０の例を示す図である。コンピューティング・デバイス７００はラップトップ、デスクトップ、ワークステーション、携帯情報端末（ＰＤＡ）、サーバ、ブレードサーバ、メインフレーム、他の適当なコンピュータ等、各種形式のデジタルコンピュータを代表する意図にある。コンピューティング・デバイス７５０は携帯情報端末、携帯電話、スマートフォン、他の類似のコンピューティング・デバイス等、各種形式の携帯装置を代表する意図にある。本明細書に示す構成要素、それらの接続、関係とその機能は例示に限る。
【００５６】
コンピューティング・デバイス７００はプロセッサ７０２、メモリ７０４、記憶装置７０６、メモリ７０４と高速拡張ポート７１０につながる高速インタフェース７０８、低速バス７１４と記憶装置７０６につながる低速インタフェース７１２を含む。各構成要素７０２，７０４，７０６，７０８，７１０，７１２は各種バスを用いて相互に接続され、共通のマザーボードにまたは適当な方法にて取り付けられ得る。プロセッサ７０２は、高速インタフェース７０８に接続されるディスプレイ７１６等、外部入出力装置上のＧＵＩに対してグラフィック情報を表示するためにメモリ７０４または記憶装置７０６に記憶された命令を含む、コンピューティング・デバイス７００内で実行される命令を処理することができる。他の実施形態では、複数のメモリ、各種のメモリとともに、複数のプロセッサおよび／または複数のバスが適宜用いられ得る。また、複数のコンピューティング・デバイス７００が接続され、各装置は（例えば、サーババンク、ブレードサーバのグループ、または、マルチプロセッサシステムとして）必要な動作の一部を提供し得る。
【００５７】
メモリ７０４はコンピューティング・デバイス７００内に情報を記憶している。一実施形態では、メモリ７０４は揮発性記憶装置である。別の実施形態では、メモリ７０４は不揮発性記憶装置である。メモリ７０４はまた、磁気または光ディスク等他の形式のコンピュータ可読媒体であり得る。
【００５８】
記憶装置７０６はコンピューティング・デバイス７００に対して大容量記憶を提供することができる。一実施形態では、記憶装置７０６は、フロッピー（登録商標）ディスク装置、ハードディスク装置、光ディスク装置、またはテープ装置、フラッシュメモリ、または他の類似の個体記憶装置、記憶エリアネットワークまたは他の構成中の装置を含む一連の装置等コンピュータ可読媒体であるかそれらを含み得る。コンピュータプログラム製品は、情報担体により有形に具体化される。コンピュータプログラム製品は、また、実行されたとき、上述したもののように１つまたは複数の方法を行う命令を含み得る。情報担体は、メモリ７０４、記憶装置７０６、プロセッサ７０２上のメモリ等、コンピュータまたは機械可読媒体である。
【００５９】
高速コントローラ７０８はコンピューティング・デバイス７００に対して帯域幅集約型操作を管理する一方で、低速コントローラ７１２はより低い帯域幅集約型操作を管理する。このような機能の割り当ては例示のみである。一実施形態では高速コントローラ７０８は（例えばグラフィックプロセッサまたはアクセラレータを介して）メモリ７０４、ディスプレイ７１６に、各種の拡張カード（図示せず）を受け入れ得る高速拡張ポート７１０に接続される。本実施形態では、低速コントローラ７１２は記憶装置７０６と低速拡張ポート７１４に接続されている。各種の通信ポート（例えば、ＵＳＢ、ブルートゥース（登録商標）、イーサネット（登録商標）、ワイヤレスイーサネット）を含み得る低速拡張ポートは、キーボード、ポインティングデバイス、スキャナ、例えばネットワークアダプタを介したスイッチまたはルータ等のネットワーク装置等１つ以上の入出力装置に接続し得る。
【００６０】
コンピューティング・デバイス７００は図に示すように複数の異なる様式にて実装し得る。例えば、標準サーバ７２０として、または、そのようなサーバのグループにより複数回、実装し得る。また、ラックサーバーシステム７２４の一部として実装される。また、ラップトップコンピュータ７２２等パーソナルコンピュータで実装され得る。また別に、コンピューティング・デバイス７００からの構成要素は装置７５０等の携帯装置（図示せず）の他の構成要素と組み合わされてもよい。そのような装置の各々が１つ以上のコンピューティング・デバイス７００，７５０を含みえ、全システムが互いに通信し合う複数のコンピューティング・デバイス７００，７５０から構成されてもよい。
【００６１】
コンピューティング・デバイス７５０は、他の構成要素の中で、プロセッサ７５２、メモリ７６４、ディスプレイ７５４等入出力装置、通信インタフェース７６６、トランシーバ７６８を含む。装置７５０には、追加の記憶を提供するマイクロドライブまたは他の装置等記憶装置も提供され得る。構成要素７５０，７５２，７６４，７５４，７６６，７６８の各々は各種のバスを使って互いに接続され、そのいくつかは共通のマザーボードにまたは他の適切な方法にて実装され得る。
【００６２】
プロセッサ７５２はメモリ７６４に記憶されている命令を含む、コンピューティング・デバイス７５０内の命令を実行することができる。プロセッサは個別、複数のアナログ、デジタルプロセッサを含むチップのチップセットとして実装され得る。プロセッサは例えば、ユーザインタフェースの制御、装置７５０で動作するアプリケーション、装置７５０によるワイヤレス通信等、装置７５０の他の構成要素の調整を提供し得る。
【００６３】
プロセッサ７５２は制御インタフェース７５８とディスプレイ７５４に接続されたディスプレイインタフェース７５６を介してユーザと通信し得る。ディスプレイ７５４は例えばＴＦＴ  ＬＣＤ（Ｔｈｉｎ−Ｆｉｌｍ−Ｔｒａｎｓｉｓｔｏｒ  Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）、ＯＬＥＤ（Ｏｒｇａｎｉｃ  Ｌｉｇｈｔ  Ｅｍｉｔｔｉｎｇ  Ｄｉｏｄｅ）ディスプレイ、また適切な他のディスプレイ技術であり得る。ディスプレイインタフェース７５６はユーザにグラフィック情報と他の情報を示すディスプレイ７５４を駆動する適切な電気回路からなり得る。制御インタフェース７５８はユーザからコマンドを受け取り、それをプロセッサ７５２に送るために変換する。また、外部インタフェース７６２はプロセッサ７５２と通信して、他の装置と装置７５０の近距離通信を可能にするために提供され得る。外部インタフェース７６２は例えばいくつかの実装例では有線通信を提供し、他の実装例では無線通信を提供し得、また、複数のインタフェースが使用され得る。
【００６４】
メモリ７６４はコンピューティング・デバイス７５０内の情報を記憶している。メモリ７６４は１つ以上のコンピュータ可読媒体、揮発性記憶装置、または不揮発性記憶装置として実装することができる。拡張メモリ７７４も提供され、例えば、ＳＩＭＭ（Ｓｉｎｇｌｅ  Ｉｎ  Ｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）カードインタフェースを含み得る拡張インタフェース７７２を介して、装置７５０につながれる。このような拡張メモリ７７４は装置７５０のための追加記憶スペースを供給したり、また、装置７５０のためのアプリケーションまたは他の情報を記憶したりし得る。具体的には、拡張メモリ７７４は上述したプロセスを実行したり、補ったりする命令を含む場合があり、セキュアな情報も含む場合がある。このように、例えば、拡張メモリ７７４は装置７５０のセキュリティモジュールとして提供され、装置７５０のセキュアな使用を許可する命令を用いてプログラムされ得る。また、セキュアなアプリケーションは、追加の情報とともにＳＩＭＭカードを介して提供され得る。
【００６５】
メモリは以降で述べるように例えばフラッシュメモリおよび／またはＮＶＲＡＭメモリを含み得る。一実施形態では、コンピュータプログラム製品は、情報担体により有形に具体化される。コンピュータプログラム製品は、また、実行されたとき、上述したもののように１つ以上の方法を行う命令を含む。情報担体は、例えばトランシーバ７６８または外部インタフェース７６２を介して受け取り得るメモリ７６４、拡張メモリ７７４、プロセッサ７５２上のメモリ等、コンピュータまたは機械可読媒体である。
【００６６】
装置７５０は必要であればデジタルシグナルプロセス回路を含み得る通信インタフェース７６６を介して無線で通信し得る。通信インタフェース７６６は、とりわけＧＳＭ（登録商標）ボイスコール、ＳＭＳ、ＥＭＳ、ＭＭＳメッセージ、ＣＤＭＡ、ＴＤＭＡ、ＰＤＣ、ＷＣＤＭＡ（登録商標）、ＣＤＭＡ２０００、ＧＰＲＳ等、各種のモードまたはプロトコルのもと、通信を提供し得る。このような通信は例えばラジオ周波数トランシーバ７６８を介して発生し得る。またブルートゥース、ＷｉＦｉ、または他のそのようなトランシーバ（図示せず）を使用する等、単領域通信も発生し得る。また、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）レシーバーモジュール７７０は追加のナビゲーション、位置に関係した無線データを装置７５０上で動いているアプリケーションが適宜使用するよう装置７５０に提供し得る。
【００６７】
装置７５０はまた、ユーザから口頭の情報を受け取り、使用可能なデジタル情報に変換し得る音声コーデック７６０を用いて音声で通信でき得る。同様に音声コーデック７６０は例えば装置７５０の受話器でスピーカーを通して等、ユーザ用に聞こえる音を生成し得る。そのような音は音声電話呼び出しからの音、録音された音（例えば、音声メッセージ、音楽ファイル等）、装置７５０で動作しているアプリケーションによって生成された音も含み得る。
【００６８】
図に示したように、コンピューティング・デバイス７５０は様々な様式で実装し得る。例えば、携帯電話７８０として実装し得る。また、スマートフォン７８２、携帯情報端末、または他の同様な携帯装置の一部としても実装し得る。
【００６９】
本明細書に記述したシステムおよび技術の各種実装はデジタル電気回路、集中回路、特に設計されたＡＳＩＣ（ａｐｐｌｉｃａｔｉｏｎ  ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔｓ）、コンピュータハードウェア、ファームウェア、ソフトウェア、および／またはこれらの混合において実現することができる。これらの各種実装は、記憶システムからデータおよび命令を受け取り、記憶システムにデータおよび命令を送信するように接続された、特殊または一般目的であり、プログラムできる少なくとも１つのプロセッサ、少なくとも１つの入力装置、および少なくとも１つの出力装置を含む、プログラムできるシステム上で実行できるおよび／または解釈できる１つ以上のコンピュータプログラムにおいての実装を含み得る。
【００７０】
これらコンピュータプログラム（プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとしても知られている）はプログラム可能プロセッサの機械命令を含み、高レベル手続き型、および／またはオブジェクト指向のプログラミング言語、および／または、アセンブリ／マシン言語で実装されることができる。本明細書で使われる用語「機械可読媒体」「コンピュータ可読媒体」は機械命令および／またはデータをプログラム可能プロセッサ（機械命令を機械可読シグナルとして受け取る機械可読媒体を含む）に提供するために用いられる任意のコンピュータプログラム製品、装置、機器（例えば、磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅｓ：ＰＬＤ）を参照する。「機械可読シグナル」は機械命令および／またはデータをプログラム可能プロセッサに提供するために用いられる任意のシグナルを参照する。
【００７１】
ユーザとの対話を提供するために、本明細書に記述したシステムおよび技術は、ユーザに情報を表示する、例えばブラウン管（ＣＲＴ）モニタまたは液晶（ＬＣＤ）モニタのディスプレイ装置および、ユーザがコンピュータに入力を提供できるようにキーボードと例えばマウスまたはトラックボールのポインティング装置を備えたコンピュータで実装することができる。他の種類の装置もユーザとの対話を提供するために使用することができる。例えば、ユーザに提供されるフィードバックは、あらゆる形式の知覚フィードバック（例えば視覚フィードバック、音響フィードバック、触覚フィードバック）が在り得る。ユーザからの入力は音響、スピーチ、触覚入力を含むどの形式でも受け取ることができる。
【００７２】
本明細書で記述されるシステムおよび技術は、バックエンドコンポーネント（例えばデータサーバとして）、またはミドルウェアコンポネント（例えばアプリケージョンサーバ）、フロントエンドコンポーネント（例えばグラフィックユーザインタフェースまたはユーザが本明細書に記述されたシステムおよび技術の実装と対話できるようにウェブブラウザをもつクライアントコンピュータ）を含む、またはこれらバックエンド、ミドルウェア、フロントエンドコンポーネントのどの組み合わせも含む、コンピューティング・システムで実装し得る。システムのコンポーネントはデジタルデータ通信（例えば通信ネットワーク）のどのような形式または媒体によってでも相互に接続し得る。通信ネットワークの例として、ローカルエリアネットワーク（「ＬＡＮ」）、ワイドエリアネットワーク（ＷＡＮ）、およびインターネットが含まれる。
【００７３】
コンピューティング・システムはクライアントおよびサーバを含むことができる。クライアントとサーバは一般に互いに離れており、典型的には通信ネットワークを通じて対話する。クライアントとサーバの関係はそれぞれのコンピュータで動作しているコンピュータプログラムのおかげで、および互いにクライアント―サーバ関係をもって生じる。
【００７４】
いくつかの実施形態を記述してきた。それでもなお、本発明の精神と範囲を逸脱することなしに各種の変更がなされると理解されるであろう。
また、図に示された論理フローは望まれる結果を得るために具体的に示される順序、または順次的な順序を要求しない。さらに、他のステップが提供され、またはステップが記述されたフローから削除され得、他の構成要素が記述されたシステムに追加、または削除され得る。従って、他の実装は以降の請求項の範囲内である。
【図１】
0006318266.tif 000002
【図２】
0006318266.tif 000003
【図３】
0006318266.tif 000004
【図４】
0006318266.tif 000005
【図５】
0006318266.tif 000006
【図６】
0006318266.tif 000007
【図７】
0006318266.tif 000008