JP2012533823A - ローカルマシンに関する情報をブラウザアプリケーションに通信すること - Google Patents

ローカルマシンに関する情報をブラウザアプリケーションに通信すること Download PDF

Info

Publication number
JP2012533823A
JP2012533823A JP2012521645A JP2012521645A JP2012533823A JP 2012533823 A JP2012533823 A JP 2012533823A JP 2012521645 A JP2012521645 A JP 2012521645A JP 2012521645 A JP2012521645 A JP 2012521645A JP 2012533823 A JP2012533823 A JP 2012533823A
Authority
JP
Japan
Prior art keywords
file system
browser
information
browser application
markup language
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2012521645A
Other languages
English (en)
Other versions
JP2012533823A5 (ja
JP5619889B2 (ja
Inventor
カーヒル,マシュー
プットナム,クリストファー,ダブリュ.
ウェザーフォード,ダニエル
Original Assignee
フェイスブック,インク.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by フェイスブック,インク. filed Critical フェイスブック,インク.
Publication of JP2012533823A publication Critical patent/JP2012533823A/ja
Publication of JP2012533823A5 publication Critical patent/JP2012533823A5/ja
Application granted granted Critical
Publication of JP5619889B2 publication Critical patent/JP5619889B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/986Document structures and storage, e.g. HTML extensions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons

Abstract

ブラウザプラグインを使用してブラウザアプリケーションの機能性を増強する。このブラウザプラグインにより、ブラウザアプリケーションは、増強なしではアクセスできないファイルシステムの複数の部分へのアクセスが可能になる。ブラウザプラグインが提供する増強した機能性は、例えば、画像アップロードウェブアプリケーションに使用される。ブラウザアプリケーションはバックグラウンドで、例えば、いくつかの画像をアップロードする等のタスクを開始してもよく、その後、ブラウザアプリケーションがこのタスクを開始したページを離れる場合にもタスクの進捗をモニタしてもよい。ブラウザアプリケーションは、クライアント装置上で実行されるローカルウェブサーバを使用して、画像のレンダリングおよび長時間実行タスクの進捗のモニタを含むタスクを行ってもよい。
【選択図】 図1

Description

本発明は、ネットワーク上の情報リソースへのアクセスに使用されるブラウザアプリケーションの能力を増強するためのブラウザプラグインに関する。
ブラウザアプリケーションにより、ユーザは、インターネットまたは個人のネットワーク等のネットワーク上のリソース、また、ユーザのコンピュータ上のリソースから得られる情報を取り出したり、提供したりできる。情報リソースまたはリソースは、コンピュータに記憶されるファイルであってもよく、例えば、文書、画像ファイル、ビデオファイル、その他あらゆるメディアファイルである。典型的な使用例としては、ウェブサーバは、ハイパーテキストマークアップランゲージ(HTML)等のマークアップ言語により書かれた文書の形態で、クライアント装置上で実行されるブラウザアプリケーションへ情報を送信する。ブラウザアプリケーションにより取り出されるマークアップ言語文書は、データおよびブラウザアプリケーションにより実行される命令を含む。例えば、マークアップ言語文書には、ブラウザアプリケーションによりサポートされるスクリプトエンジンが実行するスクリプトが含まれる。ブラウザアプリケーションによりサポートされるスクリプト言語の一例としては、JAVASCRIPT(登録商標)が挙げられる。また、マークアップ言語文書は、マークアップ言語で書かれた命令も含み、この命令は、ブラウザアプリケーションにクライアント装置上でユーザインターフェイスをレンダリング(表示あるいは表現)および描写するためのものである。
マークアップ言語文書の命令によって起こる意図的および非意図的な危害を避けるため、ブラウザアプリケーションは、マークアップ言語文書により実行され得る命令の能力を制限する。例えば、マークアップ言語文書は、クライアント装置のファイルシステムのうち制限された部分のみへのアクセスが許可される。マークアップ言語文書の命令がクライアント装置のファイルシステムに対して無制限のアクセスを許可されると、悪意のあるウェブサイトがクライアント装置に記憶された個人情報を窃取し、またはクライアント装置に記憶されたユーザファイルを消去することもでき、データの損失を招くことになる。ブラウザアプリケーションの能力を制限するフレームワークは、「サンドボックス」と呼ばれる。更に、マークアップ言語文書に含まれる命令の能力は、例えばCまたはC++といった汎用プログラミング言語を用いた処理に比べて限定されている。マークアップ言語文書により実現可能なスクリプティング能力を使用して特定の機能を実施すると、それによって得られるパフォーマンスは、汎用プログラミング言語を用いた実施と比較して速度が遅い。
本発明の実施形態によれば、クライアント装置のファイルシステムの一部分への制限付きアクセスのみが許可されるブラウザアプリケーションにおける、マークアップ言語文書の処理能力が増強される。上記クライアント装置は、コンピュータシステム、携帯用通信装置、携帯電話、またはブラウザアプリケーションを実行できるあらゆる計算装置であってもよい。「ヘッドレス」プラグイン(ユーザとの対話を行うためのユーザインターフェイスを持たないブラウザプラグイン)等のブラウザプラグインを用いて、ブラウザアプリケーションの機能性が増強される。
一実施形態においては、ブラウザアプリケーションはウェブサイトからマークアップ言語文書を受信し、このマークアップ言語にはブラウザアプリケーションが直接アクセスできないファイルシステムの複数の部分にアクセスするための命令が含まれており、ブラウザアプリケーションはこのマークアップ言語文書の処理を行う。ブラウザアプリケーションの直接的アクセスが制限されているファイルシステムのこれらの部分にアクセスするために、ブラウザアプリケーションは、アクセス対象となるファイルシステムの上記部分を識別するブラウザプラグインモジュールへ要求を送信する。ブラウザアプリケーションは、ブラウザプラグインからファイルシステムの識別された部分に関連する情報を受信するとともに、マークアップ言語の命令に従ってこの情報を使用して、例えば、クライアント装置上で表示するために、この受信した情報をレンダリングする。ファイルシステムの識別された部分に関連する情報は、ファイルまたはディレクトリへの経路、ディレクトリコンテンツのリスト、ディレクトリ内のメディアファイルのサムネイル等のファイルまたはディレクトリに関連するメタデータ、あるいはブラウザアプリケーションが使用できるその他のあらゆるメタデータを含む、特定のファイルに関連するあらゆる情報を含んでもよい。
セキュリティ保全のために、一実施形態においては、マークアップ言語文書に従い、ブラウザアプリケーションはブラウザプラグインに情報の要求を送信する際に、この要求に付随するハッシュ値を用いる。ブラウザプラグインはこのハッシュ値を用いて上記要求の信頼性を確認し、これにより、無許可のマークアップ言語文書(例えば、他のウェブサイトから取得されたもの)または他の無許可のアプリケーションがブラウザプラグインにより提供される機能を呼び出すことを防ぐ。
本概要に記載される特徴および利点ならびに以下の詳細な説明は全てを網羅するものではない。多くの追加的特徴および利点は、本発明の図面、明細書および特許請求の範囲を考慮すれば、当業者には明らかであろう。
本発明の一実施例に係る、ウェブサイトと相互作用するブラウザアプリケーションを実行するクライアント装置のシステムアーキテクチャを示す図である。
本発明の一実施形態に係る、ブラウザアプリケーションがブラウザプラグインを用いて、ユーザファイルのローカルストレージについて記述する情報にアクセスする処理の相互作用図である。
本発明の一実施形態に係る、ユーザがブラウザアプリケーションと対話して、クライアント装置内に記憶された画像をウェブサーバにアップロードする処理の相互作用図である。
本発明の一実施形態に係る、ユーザファイルのディレクトリストラクチャをユーザが閲覧できるウェブページを示すブラウザアプリケーションの表示例である。
本発明の一実施形態に係る、ユーザファイルとして記憶された画像のサムネイルをユーザが閲覧できるウェブページを示すブラウザアプリケーションの表示例である。
本発明の一実施形態に係る、ウェブサーバにアップロードする画像のサムネイルをユーザが選択できるウェブページを示すブラウザアプリケーションの表示例である。
本発明の一実施形態に係る、選択した画像ファイルをクライアント装置からウェブサーバにアップロードする処理をユーザが開始できるウェブページを示すブラウザアプリケーションの表示例である。
本発明の一実施形態に係る、画像ファイルをウェブサーバにアップロードする処理の状況を表示するウェブページを示すブラウザアプリケーションの表示例である。
本発明の一実施形態に係る、プラグインを埋め込まないウェブページへ移動した後の処理状況をブラウザアプリケーションが表示する処理の相互作用図である。
図面は説明だけを目的とするものであり本発明の様々な実施形態を示す。当業者は以下の説明から、本明細書で示す構成および方法の代替の実施形態を、本明細書に記載された発明の原則から逸脱することなく採用してもよいことを容易に理解するであろう。
ブラウザアプリケーションの機能性を増強するためのブラウザプラグイン
ウェブアプリケーションの実施に使用されるマークアップ言語文書が実行する命令の能力が増強されれば、ウェブアプリケーションがもたらすユーザ体験の質を向上できる。更に、マークアップ言語文書が実行する増強された命令セットにより、増強された命令を用いなければ実施が不可能または非常に困難なウェブアプリケーションの特徴を開発することができる。
例えば、ブラウザは一般的に、ウェブアプリケーションがクライアント装置の特定のユーザファイルにアクセスするのを防止することによって、悪意のあるウェブサイトがこうしたアクセスを行うことを回避するよう、構成されている。しかしながら、この制限は包括的な制限であり、クライアント装置に対する全ての危害を回避するように念入りに実施されている、信頼性のあるウェブサイトにおいて実行される信頼できるアプリケーションを含む、全てのアプリケーションへのアクセスを拒否してしまう。例えば、ユーザが他のユーザと画像を共有できるようにクライアント装置からウェブサーバへ画像ファイルをアップロードするウェブアプリケーションは、クライアント装置に記憶されたユーザファイルにアクセスする必要がある。マークアップ言語文書による、クライアント装置上のユーザファイルへのアクセスを容易にすることで、開発者はアプリケーション(例えば、画像共有ウェブアプリケーション等)の開発を容易に行えるようになり、ユーザにとってより快適なユーザ体験、より高速なパフォーマンス、および特定のウェブサイト、アプリケーション、またはアクティビティに対して具体的にカスタマイズされたユーザインターフェイスを可能にする。
こうしたアクセスおよびそれに伴う利益は、ブラウザプラグインによって可能となる。ブラウザプラグインは、マークアップ言語文書にとって通常アクセスができないクライアント装置上で利用可能な様々なローカルリソースへのアクセスを提供する。ブラウザプラグインは、タスクのパフォーマンス向上も提供し、こうしたタスクは、マークアップ言語にも利用可能な基本的スクリプト言語によるサポートを用いて、非効率的に実施されていることが多い。一実施形態においては、ブラウザプラグインは、例えば、クライアント装置からウェブサーバへの画像のアップロード等の長時間実行タスクをウェブアプリケーションに開始させ、ユーザがこのタスクの進捗を定期的にモニタできるようにする。ユーザは、この長時間実行タスクをモニタしながら、ウェブアプリケーションを使用して他のタスクを行うことができる。一実施形態においては、ブラウザプラグインにより、計算集約型オペレーションをクライアント装置上で行うことができ、これにより、ウェブサーバの負荷は軽減される。例えば、画像またはビデオ処理タスクはクライアント装置上で行うことができる。クライアント側で処理を行う能力を使用することにより、クライアント装置とウェブサーバとの間で転送されるデータ量を低減でき、これにより、通信オーバーヘッドが低減し、ウェブアプリケーションのパフォーマンスが向上する。
ブラウザプラグインは、マークアップ言語文書に一般的に利用可能である命令セットに比べて、より多くの特徴を提供する汎用プログラミング言語を用いて実行される。ブラウザプラグインは、ブラウザプリケーションの機能性を拡張するActiveX(登録商標)またはNSAPI(登録商標)等の技術に基づいている。プラグインは、バイナリ実行可能ファイルとして利用することができる。ブラウザプラグインはマークアップ言語文書から呼び出せないプログラミング言語で書かれている場合もあるため、ブラウザプラグインによって提供される機能性に対するアプリケーションプログラミングインターフェイスは、例えば、ブラウザアプリケーションのスクリプトエンジンがサポートする言語等の、マークアップ言語文書から呼び出せる言語を用いることで提供される。ブラウザプラグインは、不正変更された可能性のあるブラウザプラグインコードのダウンロードを回避するため、信頼性のある情報ソースからダウンロードおよびインストールされなければならない。ヘッドレスプラグインはユーザと対話するユーザインターフェイスを持たないプラグインである。
ブラウザアプリケーションの機能性は、アプレットと呼ばれるJAVA(登録商標)プログラミング言語で書かれたプログラムを使用して拡張することができる。しかしながら、サンドボックスフレームワークは、このアプレットプログラムが利用可能なクライアント装置へのアクセスを制限する。署名付きJava(登録商標)アプレットは、署名なしjarに比べて、クライアント装置のより多くのリソースへアクセスできる。しかしながら、署名付きjarはユーザに、要求されたアクセスの概要を示すとともにユーザにアクセスを拒否する機会を与えるダイアログボックスを提示する場合もある。しかしながら、信頼性のあるソースからユーザがダウンロードしたアプリケーションに対して、ローカルリソースへのアクセスについてユーザの許可を要求するダイアログボックスを提示した結果、速度の低下だけでなく、特定の目的、ウェブサイト、またはアプリケーションに対するカスタマイズ性の欠如(機能性および外観上の両面で)という点で、望ましくないユーザ体験をもたらすかもしれない。
システムアーキテクチャ
図1は、ネットワーク120上で、ウェブサイトをホストするサーバ115と相互作用するブラウザアプリケーション140を実行するクライアント装置170のシステムアーキテクチャを示す図である。サーバ115はウェブサーバ105とコンテンツデータベース110とを含む。クライアント装置170は、ブラウザアプリケーション140と、ブラウザ用ローカルストレージ150と、ユーザファイル用ローカルストレージ155と、タスク実行モジュール165と、ブラウザプラグイン145と、ローカルウェブサーバ160とを含む。ブラウザアプリケーション140は、ユーザインターフェイス125と、ブラウザランタイム130と、セキュリティモジュール135とを含む。
クライアント装置170は、メンバ入力を受け付けることができ、ネットワーク120を介してデータを送受信できる計算装置である。例えば、クライアント装置170は、デスクトップコンピュータ、ラップトップコンピュータ、スマートフォン、個人用携帯情報端末(PDA)、その他、計算機能およびデータ通信能力を含む如何なる装置であってもよい。クライアント装置170はネットワーク120を介して通信するように構成され、ネットワーク120は、有線および無線通信システムを使用するローカルエリアネットワークおよび/またはワイドエリアネットワークのあらゆる組合せを含んでもよい。ウェブサーバ105は、ネットワーク120を介して、サーバ115にホストされるウェブサイトと1つ以上のクライアント装置170とをリンクさせる。ウェブサーバ105は、ウェブページの他にJava(登録商標)、Flash(登録商標)、XML(登録商標)等のウェブ関連コンテンツ等も供給する。ウェブサーバ105が供給するコンテンツはコンテンツデータベース110に記憶される。一実施形態においては、ウェブサーバとブラウザアプリケーションとの間の通信にはハイパーテキストトランスファープロトコル(HTTP)が使用される。
ブラウザアプリケーション140により、ユーザは、インターネットまたはプライベートネットワーク上の利用可能なリソース内の利用可能な情報の取り出しおよび提示を行うことができる。ウェブサーバ105は、例えばHTML等のマークアップ言語で書かれた文書をブラウザアプリケーション140に送信する。情報リソースは、ユニフォームリソースロケータ(URL)によって識別され、ウェブページ、例えば画像またはビデオ等のメディアファイル、その他サーバ115にホストされるあらゆるコンテンツであってもよい。ブラウザアプリケーション140は、ユーザに情報を提示するとともにユーザが入力を行うことができるインターフェイス125を有する。ユーザによる入力は、ユーザが提供するデータ、またはサーバ115に送信されるユーザからの要求を含んでもよい。ウェブサイトをホストするサーバ115は、更なる情報をマークアップ言語文書の形態で提供することにより応答してもよい。マークアップ言語文書は、提供された情報をレンダリングするとともにクライアント装置170上でアクションを取るための情報および命令を含む。ブラウザランタイム130は、マークアップ言語文書を処理し、それをユーザインターフェイス125上で表示するためにレンダリングし、このマークアップ言語文書で与えられる命令に基づいてアクションを取る。ブラウザランタイム130の一部の実施形態は、例えば、JAVASCRIPT(登録商標)等のクライアント側スクリプト言語を用いて提供される命令を処理するためのスクリプトエンジン175を含む。マークアップ言語文書は、このスクリプトエンジン175によりサポートされるクライアント側スクリプト言語を用いて提供される命令を含んでもよい。
マークアップ言語文書はクライアント装置170により処理される命令を含むことができるため、悪意のあるウェブサイトはクライアント装置に有害な命令を与え得る。セキュリティモジュール135は、クライアント装置170上のブラウザランタイム130のアクションを制御する。例えば、セキュリティモジュール135は、ブラウザランタイム130がクライアント装置170上のファイルシステムの複数の部分にアクセスすることを防止する。ブラウザランタイム130は、クライアント装置上の、ブラウザ用に確保されたローカルストレージ150の一部にアクセスすることができる。ローカルストレージ150の上記一部は、ブラウザランタイム130がデータをキャッシュしたり、ブラウザクッキーまたはその他のウェブページの処理に有用な情報を記憶したりするために使用してもよい。しかしながら、ブラウザランタイム130は、クライアント装置上のローカルストレージの他の部分にアクセスできなくてもよい。上記他の部分とは、例えば、ユーザファイルを記憶しているローカルストレージの一部である。ローカルストレージ155に記憶されるユーザファイルの例としては、ユーザがクライアント装置に記憶したテキスト文書、画像、およびビデオファイル等が挙げられる。
ブラウザプラグインは、ブラウザアプリケーション140の能力を増強するプログラムコードを含むモジュールである。ブラウザランタイム130は、ブラウザプラグイン145と相互作用して、ブラウザプラグイン145によって提供される機能を使用する。ブラウザプラグイン145のアクションはセキュリティモジュール135の制約を受けない。そのため、セキュリティモジュール135が許可しないブラウザランタイム130のアクションを、ブラウザプラグイン145により行えるようにしてもよい。例えば、ユーザファイル用ローカルストレージ155へのアクセスは、セキュリティモジュール135によって行うのではなく、ブラウザプラグイン155により可能としてもよい。ブラウザプラグインは、セキュリティモジュール135が敷くセキュリティをバイパスする能力を有するため、クライアント装置170のユーザが、ブラウザプラグイン145が信頼性のあるソースからダウンロードされたことを確認することが重要である。一実施形態においては、マークアップ言語文書が所定のドメインまたは所定のドメイン群から取得された場合のみ、ブラウザプラグイン145が要求を受け入れるようにしてもよい。ブラウザプラグインはマークアップ言語文書のソースの信頼性を確認し、このマークアップ言語文書が所定のドメイン以外のドメインから取得された場合には要求を拒否する。これにより、無許可のドメインがマークアップ言語文書を送信し、悪意のある目的でブラウザプラグイン145の能力を利用することを防止する。ブラウザプラグイン145は、ブラウザランタイム130が要求する長時間実行タスクを実行するためのアップロードスレッド165を起動してもよい。ブラウザプラグイン145は、クライアント装置上のローカルウェブサーバ160を起動して、ウェブサーバによりサポートされる機能性を利用してもよい。このローカルウェブサーバ160はクライアント装置上で実行される処理である。例えば、ブラウザランタイム130がローカルウェブサーバ160を使用して、クライアント装置170上で利用可能な画像をレンダリングしてもよい。
図2は、本発明の一実施形態に係る、ブラウザランタイム130がブラウザプラグイン145と相互作用して、ユーザファイル用ローカルストレージ145から得る情報にアクセスする処理の相互作用図である。ブラウザアプリケーション140のブラウザランタイム130はサーバ115からマークアップ言語文書を受信(205)する。マークアップ言語文書は、クライアント装置170内にブラウザプラグイン145がロードされていなければブラウザプラグイン145をロードし、クライアント装置170内に予めロードされていればプラグイン145とのリンクを取得する。実施形態によっては、ブラウザプラグインへのリンクの取得または作成を行うためのマークアップ言語命令は、「<embed>」と呼ばれるマークアップ言語タグである。この<embed>タグは、実行可能ファイルのファイル経路にプラグインコードを与える属性を特定する。例えば、マークアップ言語文書は、プラグインにとって実行可能なファイルが「plugin.exe」と呼ばれるとともにディレクトリ「../bin」において取得可能であることを特定するタグ<embed src="../bin/plugin.exe"・och>を含んでもよい。ブラウザランタイム130は取得したマークアップ言語文書を処理(210)する。マークアップ言語文書の処理210は、マークアップ言語文書の構文解析、このマークアップ言語文書が与える命令の処理、およびユーザインターフェイス125を用いて表示するためのマークアップ言語文書のレンダリングを含んでもよい。マークアップ言語文書は、セキュリティモジュール135によってブラウザランタイム130がアクセスできないファイルに関する情報を要求(215)してもよい。例えば、マークアップ言語文書は、ユーザファイル用ローカルストレージ155内のユーザファイルの情報を要求してもよい。
ブラウザプラグイン145は、無許可のドメインがブラウザプラグイン145の能力を濫用しようとしていないことを確かめるために、要求の信頼性を確認する。一実施形態においては、マークアップ言語文書はハッシュ値を生成する命令を含む。ブラウザプラグイン145はこのハッシュ値を用いて、マークアップ言語文書の信頼性を確認することができる。ハッシュ値は、異なる情報の組合せに基づいてもよい。一実施形態において、ハッシュ値は、例えばブラウザアプリケーションのプロセスID等、クライアント装置から収集された情報に基づいて計算される。一実施形態においては、ハッシュ値の計算に使用される情報はランダムに発生させた数値を含む。情報の要求がファイルに関連する場合、ハッシュ値の計算はこのファイルのフルパス名を含む。ブラウザランタイム130からブラウザプラグイン145への情報の要求はすべてハッシュ値を含む。ブラウザプラグインは、ファイルのフルパス名に基づいてハッシュ値を独立的に生成し、生成した値と要求に付随する値とを照合する。ブラウザプラグイン145への要求に付随するハッシュ値がブラウザプラグイン145の生成したハッシュ値と一致する場合、要求は処理され、そうでない場合には要求は拒否される。マークアップ言語文書を送信する無許可のドメインがハッシュ値生成のメカニズムの詳細を認識している可能性は低く、したがってこの無許可のドメインが与えるハッシュ値がブラウザプラグイン145の生成する値に一致する可能性も低い。ハッシュ生成メカニズムは、ウェブサーバ105およびブラウザプラグイン145が認識するソルトと呼ばれる値を用いてもよい。ソルトは、ハッシュ生成関数への入力として使用されるランダムビットを含む。クライアント特有のデータをハッシュの生成に使用してもよい。例えば、ブラウザアプリケーション140のプロセスIDをハッシュ生成に用いるソルトの一部として使用してもよい。実施形態によっては、ハッシュ値に基づく公開鍵暗号化メカニズムがブラウザプラグイン145への要求のソースの認証に使用される。
要求の信頼性の確認(220)が成功すると、ブラウザプラグインは、例えば、対応する情報の要求をユーザファイル用ローカルストレージ155に送信することによって、要求を処理する。ブラウザプラグインはユーザファイル用ローカルストレージ155へのアクセスが許可されているため、ユーザファイル用ローカルストレージ155は要求された情報を送信する。実施形態によっては、要求225および応答230は、例えば、ブラウザプラグイン145の実行に使用するCまたはC++等のプログラミング言語を使用して実行される関数呼出しであってもよい。ブラウザプラグインはファイルに関する情報を使用して処理235を行ってもよい。一実施形態においては、ファイルに関連する情報は、例えば、ファイルタイプ、ファイル拡張子、ファイルに関連する実行可能なプログラム、またはファイルに関連するユーザプレファレンス等のファイルに関連するメタデータである。ブラウザプラグインは画像ファイル用のサムネイルを生成してもよい。このサムネイルは、ファイルに関連するメタデータに基づいて生成または計算されてもよい。例えば、特定の拡張子を有するファイルをファイル拡張子に関連する特定のサムネイルを使用して表示してもよい。あるいはその代替として、特定の実行可能なプログラムに関連するファイルを、対応する実行可能なプログラムに関連するサムネイルを使用して表示してもよい。一実施形態においては、例えば、ウェブサーバ105にアップロードする必要があるビデオファイル等の大きなファイルをユーザ装置上のブラウザプラグイン145によりコード化して、アップロード時間を短縮したり、ファイルのコード化に起因するサーバ負荷を軽減したりすることができる。
ブラウザプラグイン235は要求された情報をブラウザランタイム130に送信する。受信した情報は、ブラウザランタイム130がユーザインターフェイス125を使用して表示するためにマークアップ言語文書をレンダリングするのに使用される。実施形態によっては、ブラウザプラグインが、クライアント装置上で利用可能なローカルリソースへのアクセスを可能とする機能性を提供してもよい。例えば、クライアント装置170の位置を、クライアント装置170内で利用可能なワイヤレス能力を使用して取得してもよい。実施形態によっては、計算集約型タスクをブラウザプラグインにより行い、これによりウェブサーバ105上からクライアント装置170へ作業をオフロードしてもよい。ユーザがウェブアプリケーション上で他のタスクを行っている間に、ビデオコード化タスクをバックグラウンドで行ってもよい。ユーザは、このタスクを実行するウェブページから離れる前に、長時間実行タスクが完了するのを待つ必要はない。
一実施形態においては、ブラウザプラグイン145を使用してクライアント装置170上で頻繁に使用される情報をキャッシュし、サーバ115からの反復的な情報の送信による通信オーバーヘッドを回避する。別の実施形態においては、ブラウザプラグイン145を使用して、プログラムコードまたはその他のサーバ115がホストするウェブサイトからの情報をダウンロードする。ブラウザプラグイン170は要求のソースを確認するための認証メカニズムを有するため、ユーザはプログラムコードまたは情報が信頼性のあるソースからダウンロードされていると確信が持てる。ブラウザプラグイン170が信頼性のあるソースからプログラムコードをダウンロードする能力により、サーバ115がホストするウェブサイトからソフトウェアをインストールする際に、より快適なユーザ体験を提供できる。
フォトアップローダの実施例
ブラウザプラグイン145の能力は様々な方法で適用することができる。図3は、ユーザ305がブラウザアプリケーション140と対話して、ローカルストレージ155に記憶された画像をサーバ115にアップロードする処理の相互作用図である。サーバ115から適当なウェブページを受信することにより画像アップロードアプリケーションが起動されると、ブラウザプラグインがインスタンス生成(305)される。画像アプロードアプリケーションを起動する、サーバ115からのマークアップ言語文書には、ブラウザランタイム130にローカルストレージの最上位ディレクトリに関する情報を要求(310)させる命令が含まれる。ブラウザプラグインは、最上位ディレクトリを記述する情報をブラウザランタイム130に送信(315)する。最上位ディレクトリは、例えば、クライアント装置のディスクドライブのルートディレクトリ、またはユーザファイルの記憶を意図したオペレーティングシステム特有のディレクトリ等、所定ディレクトリであってもよい。ブラウザランタイム130は、最上位ディレクトリをレンダリングし、ユーザインターフェイス125にそれらを表示(320)させる。図4は、画像アップロードアプリケーションのユーザインターフェイスが最上位ディレクトリを示す際のスクリーンショットである。ユーザインターフェイスのパネル410は、デスクトップディレクトリ、ホームディレクトリ、およびピクチャディレクトリを含む最上位ディレクトリを示す。
ユーザ305は、ディレクトリのコンテンツを見るために特定のディレクトリを選んで表示できる。例えば、図4においては、ピクチャディレクトリ430がユーザにより選択されている。ブラウザランタイム130は、ユーザの選択に応じて、ブラウザプラグイン145から選択されたディレクトリのディレクトリ情報を要求(330)する。ブラウザプラグイン145は要求された情報を取得するとともに、この要求された情報をブラウザランタイム130に送信(335)する。ブラウザランタイム130はユーザインターフェイス125にこの情報を表示する。図4のパネル420は、サブディレクトリ440を含む、選択されたディレクトリ430のサブディレクトリを示す。ユーザは、ディレクトリを選択して対応するサブディレクトリを閲覧する処理を繰り返し行うことができる。例えば、図5は、パネル520でサブディレクトリを見るためにパネル420で「フォトブース(Photo Booth)」と呼ばれるディレクトリ440をユーザが選択する例を示している。
ブラウザプラグイン145により送信(335)される、例えばディレクトリ550等のディレクトリについて要求される情報は画像ファイルを含んでもよい。ウェブアプリケーションにおける画像ファイルはサムネイルを使用して表示するのが好ましい。ディレクトリ内の各画像ファイルについて、ブラウザプラグインはこれらの画像ファイルに関する更なる情報へのアクセスに使用可能なURLを送信する。画像ファイルのURLにより、ブラウザランタイムはローカルウェブサーバ160を使用して画像ファイル情報にアクセスすることができる。例えば、ブラウザランタイム130は、ローカルウェブサーバ160に画像ファイルのURLを与えて、この画像ファイルに対応するサムネイルを要求(340)することができる。ローカルウェブサーバ160は画像ファイルの内容を処理(345)してサムネイル画像を生成するとともに、このサムネイル画像をブラウザランタイム130に送信(350)する。ブラウザランタイム130は、ローカルウェブサーバ160から受信した画像サムネイルをレンダリングし、サブディレクトリ情報とともにサムネイルをユーザインターフェイス125に表示(355)する。図5は、ユーザインターフェイスに表示されたパネル570が、選択されたディレクトリ550に記憶された画像ファイルに対応する画像のサムネイル560を表示している例を示している。ローカルウェブサーバ160へのアクセスには、ブラウザアプリケーションが、ウェブサーバ105の実行するあるドメインからダウンロードしたスクリプトを処理するとともに、ローカルウェブサーバ160の実行する別のドメインから得たデータを使用して文書のプロパティを編集することが必要となる。ブラウザアプリケーション140は同一生成元ポリシーを実施してもよい。同一生成元ポリシーは、あるドメインからロードされたスクリプトが別のドメインから得た文書のプロパティを処理することを防止する。一実施形態においては、文字列として与えられる動的スクリプトの実行を可能とするデータ交換形式を使用することにより、ブラウザへのこうした制限を克服する。例えば、JSONP(JavaScript(登録商標) Object Notation with Padding)は、外部ドメインから得たスクリプトコードを含むことができる<SCRIPT>タグを許容する。ローカルウェブサーバのURLを<SCRIPT>タグ内に埋込み、対応するウェブサイトから情報を取り出せる。<SCRIPT>タグ内で実行されるコードによりURLを参照できる。これにより、ブラウザプラグイン145はブラウザアプリケーション140の同一生成元ポリシーに対処できる。
ユーザ305は、サーバ115に画像ファイルをアップロードするためのサムネイル560を使用して1つ以上の画像ファイルを選択(360)できる。図6は、ユーザ350が選択した画像ファイル630のスクリーンショットを示す。ユーザが選択した画像ファイルのサムネイルは、選択した画像のサムネイルの周囲に境界線610を表示することにより、選択されていない画像から区別してもよい。ユーザインターフェイスボタン620により、ユーザは、ディレクトリの閲覧およびアップロードする画像の選択を行うユーザインターフェイスとの対話が完了したことを示すことができる。したがって、一実施形態においては、図7に示すユーザインターフェイスがユーザ305に提示される。このユーザインターフェイスは、アップロードするようにユーザが選択したファイル数710を示している。また、図7はユーザインターフェイスボタン720を示す。このユーザインターフェイスボタン720を使用して要求365をブラウザランタイム130に送信し、ファイルのアップロードを開始できる。
ブラウザランタイム130は、ブラウザプラグイン365に、選択した画像のアップロード処理を開始するよう要求する。ブラウザプラグイン365は、選択した画像ファイルをサーバ115にアップロードする処理を実行するアップロードスレッド165を起動する。ブラウザプラグイン365は、アップロードスレッド165からアップロード処理の状況を取得するとともに、この状況をブラウザランタイム160に提示できる。ブラウザランタイム130は、ユーザインターフェイス125においてユーザにアップロード状況を表示(380)する。図8は、進捗インジケータ810を使用してアップロード処理の状況を示す、一実施形態のスクリーンショットである。任意の時点のアップロード済みファイル数620を表示できる。別の実施形態においては、アップロード済みのデータ量または残りのアップロードデータ量を含むアップロード処理状況に関する情報が示される。一実施形態においては、タスク状況を説明するこの情報は、アップロードが必要な全データ量のパーセンテージとして示される。別の実施形態においては、タスク状況を説明するこの情報は残りのアップロードファイル数である。別の実施形態においては、タスク状況を説明するこの情報は、アップロードタスクが開始されてからの推定経過時間を含む。別の実施形態においては、タスク状況を説明するこの情報は、アップロードタスクが完了するまでの推定残り時間を含む。
クライアント装置170からサーバ115への画像のアップロードには非常に長い時間がかかることもあり、ユーザはこのアップロードタスクの進捗をモニタしながら他のアクティビティを続行してもよい。ユーザは、アップロードタスクを開始するために使用するウェブページから離れてもよい。結果として、新規のマークアップ言語文書がウェブサーバ105から取り出され、ブラウザアプリケーション140により表示される。マークアップ言語文書は詳細な命令を含む。この詳細な命令は、ブラウザプラグインとのリンクを作成および維持して、ブラウザランタイム130がマークアップ言語文書を処理しながらブラウザプラグイン145と相互作用できるようにする。ブラウザプラグイン145とのリンクを作成および維持するこの命令は、ブラウザプラグイン埋込み命令と呼ばれる。ドメインが提供する文書の全てがブラウザプラグイン145埋込み命令を含まなくてもよい。これは、これらの命令の実行はマークアップ言語文書の処理を遅くさせる可能性があるからである。ユーザが画像アップロードアプリケーションのウェブページから離れる際に、ブラウザプラグイン145へのリンクを作成および維持する命令を含まない新規のマークアップ言語文書を受信してもよい。ブラウザランタイム130はブラウザ用ローカルストレージ150に情報を記憶できる。このブラウザ用ローカルストレージ150により、ブラウザプラグイン145埋込み命令を有さないマークアップ言語文書が、画像アップロードタスクの状況を取り出すためにアップロードスレッド165と通信を行うことができる。
バックグラウンド処理状況の通信
図9は、ブラウザプラグイン145の埋込みを行わずに、マークアップ言語文書がアップロード処理状況を取得するとともに表示できる方法を説明している。写真をアップロードする例に関して説明しているが、言うまでもなく、この処理を用いてクライアント装置上で、そうでなければクライアント装置と通信して、実行されるあらゆる処理の状況を取得できる。例えば、マークアップ言語文書は、クライアント装置へのファイルのダウンロードおよびインストールを開始するスレッドを起動してもよい。本発明の実施形態を用いて、この処理の状況を取得するとともにブラウザアプリケーションにおいてこの状況を表示してもよい。これは、マークアップ言語文書に埋め込まれているか、そうでなければリンクされている、バックグラウンド処理を有さないマークアップ言語文書をブラウザアプリケーションが処理する際に行われてもよい。
図9の例で説明するように、ブラウザランタイム130がサーバ115から受信(905)した第1の文書は、ブラウザプラグイン145へのリンクを維持する命令を含む。ブラウザランタイム130は、この第1のマークアップ言語文書を処理(910)するとともに、画像アップロードタスクの実行を開始(915)する。第1のマークアップ言語文書は、ブラウザ用ローカルストレージ150と通信するとともにタスクに関連する情報を保存するための命令を含む。
一実施形態においては、ブラウザクッキーメカニズムを使用して、ブラウザ用ローカルストレージ150に記憶されたタスクに関連する情報を記憶する。このブラウザクッキーは、テキスト文字列としての情報を表す1つ以上の名前・値ペアを記憶する。一実施形態においては、ブラウザクッキーは、ローカルウェブサーバ160を使用してアクセスできるウェブページのURLとアップロードタスクの開始時間とを記憶する。ブラウザランタイム130は、ローカルウェブサーバ160上で利用可能なウェブページのURLを使用してアップロードタスクの状況を取得する。
実施形態によっては、ローカルサーバ上のウェブページのURLは認証目的のハッシュ値を含む。ローカルウェブサーバ160は独立的にハッシュ値を生成し、URLのハッシュ値と照合して、ローカルウェブサーバ160にアクセスするマークアップ言語文書のソースの信頼性を確認する。結果として、無許可のソースからのマークアップ言語文書はローカルウェブサーバ160にアクセスできない。これにより、無許可のウェブサイトが悪意のある目的でローカルウェブサーバ160を濫用することを防止する。
一実施形態においては、ブラウザプラグイン145は、マークアップ言語のソースの信頼性を確認するために使用するハッシュ値を生成する必要がある。ブラウザアプリケーション140がサーバ115からロードしたウェブページで、アップロードタスクの進捗を表示する必要があるものには全て、ブラウザプラグイン145を埋め込むことができる。しかしながら、ブラウザプラグイン145をウェブページに埋め込むことで、ウェブページをロードする速度は遅くなる。このため、ウェブページロードのパフォーマンスを向上するために、ブラウザプラグイン145はサーバ115からの全てのウェブページには埋め込まれない。ブラウザプラグイン145を用いる代わりに、ローカルウェブサーバ160からハッシュ値を含むURLへ直接的にアクセスして、進捗情報を取得することもできる。したがって、URLは、ブラウザクッキーメカニズムを使用してクライアント装置170上に記憶される。ブラウザアプリケーション140がロードする後続のウェブページであってブラウザプラグイン145が埋め込まれていないものには、クライアント装置170上に記憶された対応するブラウザクッキーを使用して上記URLを取り出すとともに、このURLを使用して進捗情報を取り込む命令が含まれる。
ユーザが第1のマークアップ言語文書から離れる際に、ブラウザランタイム130は、第2のマークアップ言語文書を受信(925)するとともに処理(930)する。この第2のマークアップ言語文書はブラウザプラグイン145の埋込みを行わない。第2のマークアップ言語文書は、保存されたタスク情報が利用可能な場合には、これを処理する命令を含む。保存されたタスク情報とは、例えば、第1マークアップ言語により記憶(920)したブラウザクッキー等である。ブラウザランタイム130は、ブラウザ用ローカルストレージ150へ要求935を送信して保存されたタスク情報を取り出し、ローカルストレージ150は保存されたタスク情報を返す。保存されたタスク情報により、ブラウザランタイム130はローカルウェブサーバ160にあるタスク情報を要求(945)できる。この要求945に応じて、ローカルウェブサーバはアップロードスレッド165の状況をポーリング(950)する。アップロードスレッド165はローカルウェブサーバ160にアップロードタスクの状況を返し、ローカルウェブサーバ160はタスクの状況をブラウザランタイム130に返す。タスクが依然実行中であれば、ブラウザランタイム130は第2マークアップ言語をレンダリング(965)し、例えば図8に示すタスク状況を表示する。
アップロードタスクが完了していれば、ユーザインターフェイス125上に適当な情報を表示し、アップロードタスクに関連する保存された情報はローカルストレージ150から消される。アップロードタスクに関連する保存された情報が消されれば、新規のアップロードタスクが開始されない限り、サーバ115からロードされる如何なる後続のマークアップ言語文書も、ローカルウェブサーバ160へのコンタクトを試行しないであろう。一実施形態においては、タスク情報はブラウザクッキーとして保存され、このブラウザクッキーはアップロードタスクが完了すると消される。
図9は、ブラウザアプリケーション140が第1および第2のマークアップ言語文書を受信する同一のインスタンスを示す。ブラウザアプリケーションが第1のマークアップ言語文書を受信するインスタンスは、ブラウザアプリケーションが第2のマークアップ言語文書をダウンロードするインスタンスと異なっていてもよい。例えば、ブラウザアプリケーション140が第1のマークアップ言語文書を受信するインスタンスが閉じられ、そしてブラウザアプリケーション140が再起動されて、第2マークアップ言語を受信する第2のインスタンスをインスタンス生成できる。第2のマークアップ言語文書を受信した後の処理工程の処理を、ブラウザアプリケーション140の第2インスタンスにより行ってアップロードタスクの状況を表示できる。
図9では、第1および第2のマークアップ言語文書の両方が、保存されたタスク情報を処理するための命令を含んでいるため、両方のマークアップ言語文書はサーバ115のホストする同一のウェブサイトから受信されると仮定している。2つのマークアップ言語文書の開発作業は調和的に行われなくてはならず、2つの独立したベンダが提供する2つの異なるウェブサイトから取得されたマークアップ言語文書が、既に保存されたタスク情報を処理するための命令を有する可能性は低い。したがって、図9に示すように、ユーザは第1のマークアップ言語文書から離れるが、同一のドメインから取得したウェブページに留まる。一実施形態においては、第1および第2のマークアップ言語文書は、この2つが保存されたタスク情報を処理するための命令を含むとともに、ローカルウェブサーバ160へのアクセスが許可されているという前提で、別々のドメインから取得されることができる。代替の実施形態においては、第1のマークアップ言語文書を提供するドメインによりツールバーが提供される。ツールバーは、ユーザがナビゲートしているドメインから独立してブラウザアプリケーション140上に留まる。ツールバーは、ユーザがあらゆるドメインの提供するあらゆるウェブサイトへナビゲートできる状態で、アップロードタスクの状況を提供し続けることができる。
図9に示す処理によりモニタできるタスクは、画像のアップロードに限定されず、別のタスクであってもよい。例えば、ブラウザプラグインが提供する長時間実行計算の状況は、図9に示す処理によりモニタしてもよい。別の実施形態においては、その他に例えば、ビデオ、音声ファイルまたは大きな文書を含むメディアファイル等、大きなファイルのアップロードをモニタしてもよい。別の実施形態においては、長時間実行タスクは、クライアント装置170上で行われるシステムメンテナンスタスクであってもよい。
変形例
本発明に係る実施形態の上記の記載は説明の目的で提供されており、本発明を網羅または開示された厳密な形態に限定することを意図していない。当業者は、上述の開示を考慮した上で、多くの変形および変更が可能であることを理解できるであろう。
上記記述の一部分は、情報での動作のアルゴリズムおよび記号表現の観点から本発明の実施形態を説明している。これらのアルゴリズム的記述および表現は、情報処理技術の当業者がそれらの作用の実質を他の当業者に効率的に伝えるために一般的に使用するものである。上記の動作は、機能的、計算的、または論理的に説明されているが、コンピュータプログラムまたは同等の電気回路、マイクロコード等により実施されると理解される。更に、これらの動作の配列をモジュールとして参照することは、一般性を失うことなく、時に簡便であることも証明されている。上述の動作およびそれらに関連するモジュールは、ソフトウェア、ファームウェア、ハードウェア、またはそれらのあらゆる組合せで実施してもよい。
本明細書に記載する如何なる工程、動作、または処理も、1つ以上のハードウェアまたはソフトウェアモジュールを用いて、それ自体のみ、または他の装置との組合せで実現または実施してもよい。一実施形態においては、ソフトウェアモジュールは、コンピュータプログラムコードを含むコンピュータ読み取り可能媒体を備えるコンピュータプログラム製品により実施される。このコンピュータプログラムは、上記の工程、動作、または処理のいずれかまたは全てを行うコンピュータプロセッサにより実行できる。
本発明の実施形態は、本明細書に記載する動作を行う装置に関するものでもよい。この装置は必要な目的のために特別に構成されたものでもよく、および/またはコンピュータに記憶されたコンピュータプログラムにより選択的に起動または再構成される汎用計算装置を備えてもよい。このようなコンピュータプログラムは、電子的命令を記憶するのに適した、コンピュータシステムバスに連結される、有形のコンピュータ読み取り可能記憶媒体または如何なる種類の媒体に記憶してもよい。更に、本明細書で参照する如何なる計算システムも、単一のプロセッサを含むか、計算能力を増大する目的で複数プロセッサによる設計を採用したアーキテクチャであってもよい。
本発明の実施形態は、搬送波により実現されるコンピュータデータ信号に関するものであってもよい。こうした実施形態には、コンピュータデータ信号はコンピュータプログラム製品または本明細書に記載する他のデータの組合せの任意の実施形態が含まれる。コンピュータデータ信号は、有形媒体または搬送波によって提供されて変調されるか、または搬送波によってコード化されることで実体的となり、任意の適当な送信方法に従って送信される成果物である。
最後に、本明細書で用いる言語は、読み易さと例示を主たる目的として選択され、本発明の主題の精密な記述または制限のために選択されたものではない。したがって、本発明の範囲は、この詳細な説明によって限定されず、これに基づく出願において発行する特許請求の範囲によって限定されると意図される。したがって、本発明の実施形態の開示は、以下の特許請求の範囲に示す発明の範囲を説明することを意図するが、限定することを意図しない。

Claims (27)

  1. ブラウザアプリケーションが直接的にアクセスすることを許可されないファイルシステムの一部分に関連する情報への該ブラウザアプリケーションのアクセスを認めるための、コンピュータにより実施される方法であって、
    前記ブラウザアプリケーションによってマークアップ言語文書を受信することと、ここで、前記マークアップ言語文書は、ブラウザアプリケーションが直接的なアクセスを許可されない前記ファイルシステムの一部分にアクセスするための命令を含み、
    前記ブラウザアプリケーションによって前記マークアップ言語文書を処理することと、
    前記ブラウザアプリケーションからブラウザプラグインモジュールへ前記ファイルシステムの前記一部分に関連する情報の要求を送信することと、ここで、前記要求は前記ファイルシステムの前記一部分を識別する情報を含み、
    前記ブラウザアプリケーションによって、前記ファイルシステムの前記一部分に関連する前記要求された情報を受信することと、
    前記マークアップ言語文書の命令に従って、前記ブラウザアプリケーションによって前記ファイルシステムの前記一部分に関連する前記受信した情報をレンダリングすることと、
    を備える方法。
  2. 前記マークアップ言語の命令に応じて、前記ブラウザプラグインモジュールをロードすることを更に備える、請求項1に記載の方法。
  3. 前記ブラウザプラグインはヘッドレスである、請求項1に記載の方法。
  4. 前記ファイルシステムの前記一部分に関連する前記情報は、前記ファイルシステムの前記一部分のファイルについてのメタデータを含む、請求項1に記載のコンピュータ実施方法。
  5. 前記ファイルシステムの前記一部分に関連する前記情報は、前記ファイルシステムの前記一部分のディレクトリについてのメタデータを含む、請求項1に記載の方法。
  6. 前記ファイルシステムの前記一部分に関連する前記情報は、前記ファイルシステムの前記一部分のファイルに関連するピクチャ情報を含む、請求項1に記載の方法。
  7. 前記ファイルシステムの前記一部分に関連する前記情報は、前記ファイルシステムの前記一部分のファイルからのコンテンツを含む、請求項1に記載の方法。
  8. 前記ブラウザプラグインモジュールへ情報の要求を送信することは、前記ブラウザプラグインモジュールにより提供される機能の呼び出しを行うことを含む、請求項1に記載の方法。
  9. 前記ファイルシステムの前記一部分を識別する前記情報は、前記ファイルシステムの前記一部分内のディレクトリの経路を含む、請求項1に記載の方法。
  10. 前記ファイルシステムの前記一部分を識別する前記情報は、前記ファイルシステムの前記一部分内のファイルの経路を含む、請求項1に記載の方法。
  11. 前記ブラウザプラグインモジュールへの前記情報の要求は、前記ブラウザプラグインモジュールが前記要求を送信する前記アプリケーションの信頼性を確認することを可能とするハッシュ値を含む、請求項1に記載の方法。
  12. 前記レンダリングすることは、前記ブラウザアプリケーションによって前記ファイルシステムの前記一部分からのファイルの名前をレンダリングすることを含む、請求項1に記載の方法。
  13. 前記レンダリングすることは、前記ファイルシステムの前記一部分における1つ以上のファイルに関連するサムネイル画像をレンダリングすることを含む、請求項1に記載の方法。
  14. コンピュータシステム上で実行されるブラウザアプリケーション上で、該ブラウザアプリケーションが直接的にアクセスすることを許可されない前記コンピュータシステムのファイルシステムの一部分に関連する情報を、レンダリングするためのコンピュータプログラム製品であって、前記コンピュータプログラム製品は、マークアップ言語文書を記憶するコンピュータ読み取り可能記憶媒体を備え、前記マークアップ言語文書は、
    ブラウザアプリケーションにおいて情報をレンダリングするための命令を含む、マークアップ言語によりコード化されたコンテンツと、
    前記ブラウザアプリケーションが直接的なアクセスを許可されない前記コンピュータシステムのファイルシステムの一部分に関連する情報を取り出すとともに、前記ブラウザアプリケーションによって前記情報をレンダリングするための命令と、を含み、前記命令は、コンピュータシステム上で実行される前記ブラウザアプリケーションに解釈されるためのものであり、前記コンピュータシステムに、
    前記ブラウザアプリケーションからの前記ファイルシステムの前記一部分に関連する情報の要求であって、前記ファイルシステムの前記一部分を識別する情報を含む要求を送信させ、
    前記ブラウザアプリケーションによって前記ファイルシステムの前記一部分に関連する前記情報を受信させ、および
    前記マークアップ言語文書の命令に従って前記ブラウザアプリケーションによって前記ファイルシステムの前記一部分に関連する前記受信した情報をレンダリングさせる、
    コンピュータプログラム製品。
  15. 情報を取り出すための前記命令は、前記コンピュータシステムに前記ブラウザプラグインモジュールをロードさせる、請求項14に記載のコンピュータプログラム製品。
  16. 前記ファイルシステムの前記一部分に関連する前記情報は、前記ファイルシステムの前記一部分のファイルに関連するピクチャ情報を含む、請求項14に記載のコンピュータプログラム製品。
  17. 前記ファイルシステムの前記一部分を識別する前記情報は、前記ファイルシステムの前記一部分内のファイルの経路を含む、請求項14に記載のコンピュータプログラム製品。
  18. 前記ブラウザプラグインモジュールへの前記情報の要求は、前記ブラウザプラグインモジュールが前記要求を送信する前記アプリケーションの信頼性を確認することを可能とするハッシュ値を含む、請求項14に記載のコンピュータプログラム製品。
  19. ブラウザアプリケーションが直接的にアクセスすることを許可されないファイルシステムの一部分に関連する情報への該ブラウザアプリケーションのアクセスを認めるための、コンピュータにより実施される方法であって、前記アクセスはブラウザプラグインによって提供され、前記方法は、
    ブラウザアプリケーションが直接的なアクセスを許可されない前記ファイルシステムの前記一部分に関連する情報の要求を受信することであって、前記要求は、マークアップ言語文書の命令の処理に応じて前記ブラウザアプリケーションによって送信される、情報の要求を受信することと、
    前記ファイルシステムの前記一部分に関連する前記要求される情報を、前記ブラウザアプリケーションに送信することであって、前記情報は前記マークアップ言語文書の命令に従って前記ブラウザアプリケーションによってレンダリングされる、前記ブラウザアプリケーションに送信することと、
    を備える方法。
  20. 前記情報の要求は、前記ブラウザプラグインモジュールが前記要求を送信する前記アプリケーションの信頼性を確認することを可能とするハッシュ値を含む、請求項19に記載の方法。
  21. 前記情報の要求において受信した前記ハッシュ値との比較のために第2のハッシュ値を生成すること
    を更に備える、請求項20に記載の方法。
  22. 前記ファイルシステムの前記一部分に関連する前記情報は、前記ファイルシステムの前記一部分のファイルについてのメタデータを含む、請求項19に記載の方法。
  23. 前記ファイルシステムの前記一部分に関連する前記情報は、前記ファイルシステムの前記一部分のディレクトリについてのメタデータを含む、請求項19に記載の方法。
  24. 前記ファイルシステムの前記一部分に関連する前記情報は、前記ファイルシステムの前記一部分のファイルに関連するピクチャ情報を含む、請求項19に記載の方法。
  25. 前記ファイルシステムの前記一部分に関連する前記情報は、前記ファイルシステムの前記一部分のファイルからのコンテンツを含む、請求項19に記載の方法。
  26. 前記ファイルシステムの前記一部分を識別する前記情報は、前記ファイルシステムの前記一部分内のファイルの経路を含む、請求項19に記載の方法。
  27. コンピュータシステム上で実行されるブラウザアプリケーション上で、前記ブラウザアプリケーションが直接的にアクセスすることを許可されない前記コンピュータシステムのファイルシステムの一部分に関連する情報を、レンダリングするためのコンピュータプログラム製品であって、前記コンピュータプログラム製品は、マークアップ言語文書を記憶するコンピュータ読み取り可能記憶媒体を備え、前記マークアップ言語文書は、
    ブラウザアプリケーションにおいて情報をレンダリングするための命令を含む、マークアップ言語によりコード化されたコンテンツと、
    前記ブラウザアプリケーションが直接的なアクセスを許可されない前記コンピュータシステムのファイルシステムの一部分に関連する情報を取り出すとともに、前記ブラウザアプリケーションによって前記情報をレンダリングするための命令と、を含み、前記命令は、コンピュータシステム上で実行される前記ブラウザアプリケーションに解釈されるためのものであり、前記ブラウザプラグインに、
    ブラウザアプリケーションが直接的なアクセスを許可されない前記ファイルシステムの前記一部分に関連する情報の要求であって、マークアップ言語文書の命令の処理に応じて前記ブラウザアプリケーションによって送信される要求を受信させ、および
    前記ファイルシステムの前記一部分に関連する前記要求される情報であって、前記マークアップ言語文書の命令に従って前記ブラウザアプリケーションによってレンダリングされる情報を前記ブラウザアプリケーションに送信させる、
    コンピュータプログラム製品。
JP2012521645A 2009-07-20 2010-06-16 ローカルマシンに関する情報をブラウザアプリケーションに通信すること Active JP5619889B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/506,225 US8601363B2 (en) 2009-07-20 2009-07-20 Communicating information about a local machine to a browser application
US12/506,225 2009-07-20
PCT/US2010/038858 WO2011011132A1 (en) 2009-07-20 2010-06-16 Communicating information about a local machine to a browser application

Publications (3)

Publication Number Publication Date
JP2012533823A true JP2012533823A (ja) 2012-12-27
JP2012533823A5 JP2012533823A5 (ja) 2014-01-30
JP5619889B2 JP5619889B2 (ja) 2014-11-05

Family

ID=43466106

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012521645A Active JP5619889B2 (ja) 2009-07-20 2010-06-16 ローカルマシンに関する情報をブラウザアプリケーションに通信すること

Country Status (9)

Country Link
US (2) US8601363B2 (ja)
EP (1) EP2457178A4 (ja)
JP (1) JP5619889B2 (ja)
CN (1) CN102473171B (ja)
AU (1) AU2010274979B2 (ja)
BR (1) BR112012001288A2 (ja)
CA (1) CA2768628C (ja)
WO (1) WO2011011132A1 (ja)
ZA (1) ZA201200186B (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013045400A (ja) * 2011-08-26 2013-03-04 Toshiba Corp 情報処理装置、情報処理方法、およびプログラム
KR20170095855A (ko) * 2014-12-19 2017-08-23 알리바바 그룹 홀딩 리미티드 데이터 통신 방법 및 장치
JP7397052B2 (ja) 2021-12-23 2023-12-12 Necパーソナルコンピュータ株式会社 接続制御装置、接続制御方法、及びプログラム

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7529795B2 (en) * 2006-03-20 2009-05-05 Stragent, Llc Message board aggregator
US7647351B2 (en) 2006-09-14 2010-01-12 Stragent, Llc Web scrape template generation
US8949340B2 (en) 2007-02-05 2015-02-03 Boadin Technology, LLC Systems and methods for organizing content for mobile media services
US8117242B1 (en) 2008-01-18 2012-02-14 Boadin Technology, LLC System, method, and computer program product for performing a search in conjunction with use of an online application
US8117225B1 (en) 2008-01-18 2012-02-14 Boadin Technology, LLC Drill-down system, method, and computer program product for focusing a search
US8131458B1 (en) 2008-08-22 2012-03-06 Boadin Technology, LLC System, method, and computer program product for instant messaging utilizing a vehicular assembly
US8078397B1 (en) 2008-08-22 2011-12-13 Boadin Technology, LLC System, method, and computer program product for social networking utilizing a vehicular assembly
US8073590B1 (en) 2008-08-22 2011-12-06 Boadin Technology, LLC System, method, and computer program product for utilizing a communication channel of a mobile device by a vehicular assembly
US8265862B1 (en) 2008-08-22 2012-09-11 Boadin Technology, LLC System, method, and computer program product for communicating location-related information
US8190692B1 (en) 2008-08-22 2012-05-29 Boadin Technology, LLC Location-based messaging system, method, and computer program product
US9075958B2 (en) * 2009-06-24 2015-07-07 Uniloc Luxembourg S.A. Use of fingerprint with an on-line or networked auction
US10068282B2 (en) * 2009-06-24 2018-09-04 Uniloc 2017 Llc System and method for preventing multiple online purchases
US20110093503A1 (en) * 2009-10-19 2011-04-21 Etchegoyen Craig S Computer Hardware Identity Tracking Using Characteristic Parameter-Derived Data
US10580051B2 (en) 2010-05-18 2020-03-03 Google Llc Background element associated with an application installed in a browser application
JP2012063846A (ja) * 2010-09-14 2012-03-29 Ricoh Co Ltd ファイル管理装置及びファイル管理プログラム
GB2484268A (en) 2010-09-16 2012-04-11 Uniloc Usa Inc Psychographic profiling of users of computing devices
US20120124091A1 (en) * 2010-11-12 2012-05-17 Microsoft Corporation Application file system access
DE102010063854A1 (de) * 2010-12-22 2012-07-12 Codewrights Gmbh Verfahren zum Bereitstellen von gerätespezifischen Informationen eines Feldgeräts der Automatisierungstechnik und/oder zum Bedienen eines Feldgeräts
GB2494098B (en) * 2011-04-11 2014-03-26 Bluecava Inc Thick client and thin client integration
US8819586B2 (en) 2011-05-27 2014-08-26 Microsoft Corporation File access with different file hosts
US20130179414A1 (en) * 2012-01-06 2013-07-11 Microsoft Corporation Mechanisms for connecting files between applications
US8996661B1 (en) * 2012-02-09 2015-03-31 Instart Logic, Inc. Smart packaging for mobile applications
CN103581145B (zh) * 2012-08-06 2017-02-08 联想(北京)有限公司 一种电子设备及应用于电子设备的安全防护方法
CN102929638B (zh) * 2012-11-07 2014-08-13 广州市动景计算机科技有限公司 扩展WebApp应用功能的方法和系统
CN104137073B (zh) * 2012-12-31 2017-11-21 华为技术有限公司 一种获取文件的方法和装置
US9223557B1 (en) * 2013-05-08 2015-12-29 Amazon Technologies, Inc. Application provided browser plugin
US9736131B2 (en) * 2013-09-24 2017-08-15 Cellco Partnership Secure login for subscriber devices
WO2016095686A1 (zh) * 2014-12-19 2016-06-23 北京奇虎科技有限公司 浏览器与移动终端之间进行通信的方法及浏览器装置
US10171427B2 (en) * 2015-01-29 2019-01-01 WebCloak, LLC Portable encryption and authentication service module
JP6828014B2 (ja) 2015-10-07 2021-02-10 株式会社ワコム 1つまたは複数の署名デバイスに通信可能に接続されたローカルコンピューヒング装置によって実行されるコンピュータ実装方法
CN107370778B (zh) * 2016-05-11 2020-06-30 阿里巴巴集团控股有限公司 一种启动应用的方法和系统
CN107015870B (zh) * 2016-09-19 2020-11-03 创新先进技术有限公司 实现web页面与本地应用通信的方法、装置和电子设备
CN109753332B (zh) * 2019-01-10 2020-09-11 北京字节跳动网络技术有限公司 用于展现信息的方法和装置
US20230245160A1 (en) * 2022-01-31 2023-08-03 Citadel Enterprise Ip Holdings Lp System and method for rewards cards optimization

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11306194A (ja) * 1998-04-23 1999-11-05 Sharp Corp 文字列に対するハッシュ値の計算方法およびその方法を実現するプログラムを記録した機械可読な記録媒体
JP2002500392A (ja) * 1997-12-29 2002-01-08 ポストクス・コーポレーション Htmlフォーマットを有するファイル内にデータを埋め込み、抽出し、処理する方法および装置
JP2004507848A (ja) * 2000-08-28 2004-03-11 コンテントガード ホールディングズ インコーポレイテッド 文書分配管理並びに標準のレンダリングエンジンを用いる制御方法及び制御装置
JP2004110755A (ja) * 2002-09-18 2004-04-08 Intelligent Network Institute 認証およびデータ保護によるネットワーク情報配信システム
US20050080880A1 (en) * 2003-09-26 2005-04-14 Von Tetzchner Jon Stephenson Presenting remote and local information in a web browser
JP2006023849A (ja) * 2004-07-06 2006-01-26 Ricoh Co Ltd 情報処理装置、配信装置、情報の配信方法、配信プログラム及び記録媒体
WO2006016407A1 (ja) * 2004-08-12 2006-02-16 Fujitsu Limited Javaアプレット、JARファイル生成方法、JARファイル生成プログラム、JARファイル生成装置
JP2007226508A (ja) * 2006-02-23 2007-09-06 Seiko Epson Corp ネットワークに接続可能な端末においてWebサーバから受信したデータベースエンジンを動作させる方法および端末
JP2008171038A (ja) * 2007-01-05 2008-07-24 Ants:Kk Webブラウザの表示領域内に表示される内容を変更するシステム及びそれを具現化するプログラム
JP2009026010A (ja) * 2007-07-18 2009-02-05 Yahoo Japan Corp コンテンツ配信装置、コンテンツ配信制御方法、および、コンテンツ配信制御プログラム
US20090100517A1 (en) * 2007-10-12 2009-04-16 Su Yong Kim Apparatus and method for monitoring and protecting system resources from web browser

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5809145A (en) * 1996-06-28 1998-09-15 Paradata Systems Inc. System for distributing digital information
US6374359B1 (en) 1998-11-19 2002-04-16 International Business Machines Corporation Dynamic use and validation of HTTP cookies for authentication
WO2001018636A1 (en) * 1999-09-09 2001-03-15 American Express Travel Related Services Company, Inc. System and method for authenticating a web page
US7788339B1 (en) * 2000-03-02 2010-08-31 Qwest Communications International Inc. System and method for automated download of multimedia files
ES2302723T3 (es) * 2000-03-20 2008-08-01 Comodo Research Lab Limited Procedimientos de acceso y de utilizacion de paginas web.
US6842770B1 (en) * 2000-08-18 2005-01-11 Apple Computer, Inc. Method and system for seamlessly accessing remotely stored files
US7206941B2 (en) * 2000-08-28 2007-04-17 Contentguard Holdings, Inc. Method and apparatus for validating security components through a request for content
US7228438B2 (en) * 2001-04-30 2007-06-05 Matsushita Electric Industrial Co., Ltd. Computer network security system employing portable storage device
US20030177248A1 (en) * 2001-09-05 2003-09-18 International Business Machines Corporation Apparatus and method for providing access rights information on computer accessible content
JP5068000B2 (ja) * 2003-07-31 2012-11-07 富士通株式会社 Xmlドリブンアーキテクチャにおける情報処理方法及びプログラム
US7313576B2 (en) * 2004-07-30 2007-12-25 Sbc Knowledge Ventures, L.P. System and method for flexible data transfer
US7752076B2 (en) * 2004-10-29 2010-07-06 International Business Machines Corporation Inventory management of resources
US8407220B2 (en) 2006-09-28 2013-03-26 Augme Technologies, Inc. Apparatuses, methods and systems for ambiguous code-triggered information querying and serving on mobile devices
US7664993B2 (en) * 2007-02-27 2010-02-16 Microsoft Corporation Automation of testing in remote sessions
US20080222417A1 (en) 2007-03-06 2008-09-11 James Downes Method, System, And Apparatus For Nested Security Access/Authentication With Media Initiation
US8090847B2 (en) * 2008-05-02 2012-01-03 Microsoft Corporation Session broker extensibility application program interface
US9239666B2 (en) 2007-09-12 2016-01-19 Citrix Systems, Inc. Methods and systems for maintaining desktop environments providing integrated access to remote and local resources
US8090767B2 (en) * 2008-01-07 2012-01-03 Apple Inc. Pairing and storage access scheme between a handheld device and a computing system

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002500392A (ja) * 1997-12-29 2002-01-08 ポストクス・コーポレーション Htmlフォーマットを有するファイル内にデータを埋め込み、抽出し、処理する方法および装置
JPH11306194A (ja) * 1998-04-23 1999-11-05 Sharp Corp 文字列に対するハッシュ値の計算方法およびその方法を実現するプログラムを記録した機械可読な記録媒体
JP2004507848A (ja) * 2000-08-28 2004-03-11 コンテントガード ホールディングズ インコーポレイテッド 文書分配管理並びに標準のレンダリングエンジンを用いる制御方法及び制御装置
JP2004110755A (ja) * 2002-09-18 2004-04-08 Intelligent Network Institute 認証およびデータ保護によるネットワーク情報配信システム
US20050080880A1 (en) * 2003-09-26 2005-04-14 Von Tetzchner Jon Stephenson Presenting remote and local information in a web browser
JP2006023849A (ja) * 2004-07-06 2006-01-26 Ricoh Co Ltd 情報処理装置、配信装置、情報の配信方法、配信プログラム及び記録媒体
WO2006016407A1 (ja) * 2004-08-12 2006-02-16 Fujitsu Limited Javaアプレット、JARファイル生成方法、JARファイル生成プログラム、JARファイル生成装置
JP2007226508A (ja) * 2006-02-23 2007-09-06 Seiko Epson Corp ネットワークに接続可能な端末においてWebサーバから受信したデータベースエンジンを動作させる方法および端末
JP2008171038A (ja) * 2007-01-05 2008-07-24 Ants:Kk Webブラウザの表示領域内に表示される内容を変更するシステム及びそれを具現化するプログラム
JP2009026010A (ja) * 2007-07-18 2009-02-05 Yahoo Japan Corp コンテンツ配信装置、コンテンツ配信制御方法、および、コンテンツ配信制御プログラム
US20090100517A1 (en) * 2007-10-12 2009-04-16 Su Yong Kim Apparatus and method for monitoring and protecting system resources from web browser

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
CSND200701422007; 手嶋 透: '絵で見るテクノロジ' 日経SYSTEMS 第176号, 20071126, 第113頁, 日経BP社 *
CSNG200700936021; 兒島 尚: 'Javaアプレット保護ツールCoziletのJava Web Startおよび署名なしプログラムへの' 情報処理学会論文誌 第48巻,第9号, 20070915, 第3228-3238頁, 社団法人情報処理学会 *
JPN6013063974; 兒島 尚: 'Javaアプレット保護ツールCoziletのJava Web Startおよび署名なしプログラムへの' 情報処理学会論文誌 第48巻,第9号, 20070915, 第3228-3238頁, 社団法人情報処理学会 *
JPN6013063976; 手嶋 透: '絵で見るテクノロジ' 日経SYSTEMS 第176号, 20071126, 第113頁, 日経BP社 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013045400A (ja) * 2011-08-26 2013-03-04 Toshiba Corp 情報処理装置、情報処理方法、およびプログラム
KR20170095855A (ko) * 2014-12-19 2017-08-23 알리바바 그룹 홀딩 리미티드 데이터 통신 방법 및 장치
KR102119931B1 (ko) 2014-12-19 2020-06-08 알리바바 그룹 홀딩 리미티드 데이터 통신 방법 및 장치
JP7397052B2 (ja) 2021-12-23 2023-12-12 Necパーソナルコンピュータ株式会社 接続制御装置、接続制御方法、及びプログラム

Also Published As

Publication number Publication date
CN102473171B (zh) 2016-09-07
US20110016382A1 (en) 2011-01-20
CA2768628A1 (en) 2011-01-27
BR112012001288A2 (pt) 2016-02-10
WO2011011132A1 (en) 2011-01-27
AU2010274979A1 (en) 2012-02-09
CN102473171A (zh) 2012-05-23
JP5619889B2 (ja) 2014-11-05
AU2010274979B2 (en) 2013-12-05
CA2768628C (en) 2014-08-05
US8601363B2 (en) 2013-12-03
US9471554B2 (en) 2016-10-18
EP2457178A1 (en) 2012-05-30
EP2457178A4 (en) 2014-01-15
ZA201200186B (en) 2014-03-26
US20140053062A1 (en) 2014-02-20

Similar Documents

Publication Publication Date Title
JP5619889B2 (ja) ローカルマシンに関する情報をブラウザアプリケーションに通信すること
US10241980B2 (en) Rendering a web page using content communicated to a browser application from a process running on a client
US8869024B2 (en) Monitoring a background process in a web browser and providing status of same
Jackson et al. Subspace: secure cross-domain communication for web mashups
US10496350B2 (en) Handling external content in web applications
US20220092147A1 (en) Intermediary server for providing secure access to web-based services
WO2016086767A1 (zh) 实现浏览器安全的方法、浏览器客户端和装置
US9684628B2 (en) Mechanism for inserting trustworthy parameters into AJAX via server-side proxy
US20080147671A1 (en) System for Running Web Applications Offline and Providing Access to Native Services
KR20190137178A (ko) 웹페이지를 통해 로컬 애플리케이션을 제어하는 시스템 및 방법
US11516279B2 (en) Systems and methods for accessing multiple resources via one identifier
US20130103743A1 (en) Medium for storing control program, client apparatus, and control method for client apparatus
JP5753302B1 (ja) ウェブページへのアクセスを警告するためのプログラム、方法、及びシステム
US9262546B2 (en) Web browser adapted to render a web page based on an identity and a type of program within which a hyperlink was selected
Kotowicz et al. Advanced chrome extension exploitation. leveraging api powers for better evil
Bhardwaj et al. Ephemeral apps
CN116955294A (zh) 文件预览方法、装置、电子设备及存储介质
CN112948727A (zh) 基于WebView的数据注入方法、装置、设备及存储介质

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130615

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130615

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131205

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20131205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140107

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140407

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140414

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140507

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140514

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140606

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140613

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140707

TRDD Decision of grant or rejection written
A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20140801

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140812

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140917

R150 Certificate of patent or registration of utility model

Ref document number: 5619889

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250