JP2012515961A - マルチタブアプリケーションにおけるメッセージ対話を実現する方法およびシステム - Google Patents

マルチタブアプリケーションにおけるメッセージ対話を実現する方法およびシステム Download PDF

Info

Publication number
JP2012515961A
JP2012515961A JP2011546578A JP2011546578A JP2012515961A JP 2012515961 A JP2012515961 A JP 2012515961A JP 2011546578 A JP2011546578 A JP 2011546578A JP 2011546578 A JP2011546578 A JP 2011546578A JP 2012515961 A JP2012515961 A JP 2012515961A
Authority
JP
Japan
Prior art keywords
window
tab
page
application program
windows
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.)
Pending
Application number
JP2011546578A
Other languages
English (en)
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 JP2012515961A publication Critical patent/JP2012515961A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/107Computer-aided management of electronic mailing [e-mailing]
    • 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/957Browsing optimisation, e.g. caching or content distillation
    • 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/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Theoretical Computer Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Marketing (AREA)
  • Tourism & Hospitality (AREA)
  • Quality & Reliability (AREA)
  • General Business, Economics & Management (AREA)
  • Operations Research (AREA)
  • Computer Hardware Design (AREA)
  • Economics (AREA)
  • General Engineering & Computer Science (AREA)
  • User Interface Of Digital Computer (AREA)
  • Digital Computer Display Output (AREA)

Abstract

マルチタブアプリケーションにおけるメッセージ対話を実現する方法が開示される。方法は、トップウインドウとして、マルチタブアプリケーションにおけるタブに対応するページウインドウを生成すること(S201)と、ページウインドウに関連したメッセージ対話を実行すること(S202)と、を含む。マルチタブアプリケーションにおいてメッセージ対話を実現するシステムもまた開示される。
【選択図】図2

Description

本発明はマルチタブアプリケーションプログラミングの分野に関し、より詳細には、マルチタブアプリケーションプログラムにおけるメッセージ対話を実現する方法およびシステムに関する。
ブラウザはしばしば、ユーザがインターネットにアクセスするための最も共通に用いられる入口となる。多くの場合に、ユーザは多くのウェブページに同時に注意を払うことが可能となることを望む。ディスプレイスクリーンのサイズが限られているため、図1で示すようにマルチタブブラウザが開発されている。このマルチタブブラウザにおいては、各タブがウェブページに対応し、ユーザは特定の時刻に1つのウェブページのみのコンテンツに集中することができる。しかしながら、ユーザが他のウェブページのコンテンツに集中したい場合は、ユーザはタブを切り換えることのみを要する。
このタイプのマルチタブブラウザは、ユーザがウェブページを見るための利便を提供することができるが、ページハンギングと呼ばれるある状態(すなわち、ユーザがウェブページ上の動作、例えばページのスクロールやリンクのクリックなどを行えなくなる)の蔓延がしばしば発生する。すなわち、単一のページウインドウがハングした場合、該単一のページウインドウのハングに伴って他のページウインドウもまたハング状態となる。例えば、ユーザが10のウェブページを開いており現在のページがSohuホームページである場合、ユーザが現在のページを閲覧しているとき、現在のページが突然ハングしたとするならば、ユーザは他の9つのウェブページを動作させることができない。この時点では、これらのページの閲覧を続けるためには、ユーザは他の9つのページの閲覧を取り消し、閲覧処理を終了させ、ブラウザを再起動し、9つのウェブページを再び開かなければならない。
本発明は、マルチタブアプリケーションプログラムにおけるメッセージ対話を実現する方法およびシステムを提供するためのものであり、従来技術における、単一のページウインドウがハングした場合に該単一のページウインドウのハングに伴って他のページウインドウもまたハング状態となる問題を解決することができる。
この目的を達成するために、本発明は以下の特徴を提供する。
マルチタブアプリケーションプログラムにおけるメッセージ対話を実行する方法は、
1つ以上のトップレベルウインドウとして、マルチタブアプリケーションプログラムにおける各タブに対応する1つ以上のページウインドウを生成することと、
1つ以上の前記ページウインドウに関連するメッセージ対話を実行することと、を含む。
好ましくは、1つ以上のトップレベルウインドウとして、マルチタブアプリケーションプログラムにおける各タブに対応するページウインドウを生成することが、
前記マルチタブアプリケーションプログラムのメインフレームウインドウと同じレベルに、1つ以上のトップレベルウインドウとして、マルチタブアプリケーションプログラムにおける各タブに対応する1つ以上の前記ページウインドウを生成することをさらに含む。
好ましくは、前記ページウインドウに関連する前記メッセージ対話を実行することが、
前記マルチタブアプリケーションプログラムのメインフレームウインドウによって、1つ以上のメッセージをノンブロッキングモードで前記ページウインドウに送信することを含む。
好ましくは、前記ノンブロッキングモードは、
タイムアウトメカニズムと共に、非同期メッセージ送信モードまたは同期メッセージ送信方法を含む。
好ましくは、前記ページウインドウに関連する前記メッセージ対話を実行することが、
前記マルチタブアプリケーションプログラムのメインフレームウインドウと1つ以上の前記ページウインドウの間にマッピング関係を生成し、記憶することと、
前記メインフレームウインドウによって、前記メインフレームウインドウと1つ以上の前記ページウインドウの間の前記マッピング関係に基づいて、1つ以上のメッセージを前記ページウインドウに送信することと、
受信されたメッセージに対応する1つ以上の動作を実行するように、1つ以上の前記ページウインドウをトリガすることと、を含む。
好ましくは、前記方法は、前記マルチタブアプリケーションプログラムのメインフレームウインドウの位置およびサイズと合致させるように、前記ページウインドウの位置およびサイズを調整することをさらに含む。
好ましくは、前記方法は、タブに対応するページウインドウのハングを判定した場合、ユーザにプロンプトで示すことをさらに含む。
好ましくは、1つ以上のトップレベルウインドウとして、前記マルチタブアプリケーションプログラムにおける各タブに対応する1つ以上のページウインドウを生成することが、
前記マルチタブアプリケーションプログラムにおける新しいタブを生成する場合、トップレベルウインドウとして前記新しいタブに対応するページウインドウを生成することをさらに含む。
好ましくは、前記マルチタブアプリケーションプログラムは、マルチタブウェブページブラウザ、マルチタブドキュメントエディタ、またはマルチタブリーダを含む。
好ましくは、前記マルチタブアプリケーションプログラムにおける複数の前記タブに対応する複数の前記ページウインドウが、異なるスレッドに属し、
および/または、
前記マルチタブアプリケーションプログラムのメインフレームウインドウと、複数の前記タブに対応する1つ以上の前記ページウインドウが、異なるスレッドに属する。
好ましくは、トップレベルウインドウとして、前記マルチタブアプリケーションプログラムにおける各タブに対応する前記ページウインドウを生成することが、
エンプティオーナを有する1つ以上のトップレベルウインドウとして、前記マルチタブアプリケーションプログラムにおける前記各タブに対応する前記ページウインドウを生成することをさらに含む。
マルチタブアプリケーションプログラムにおけるメッセージ対話を実行するシステムは、
1つ以上のトップレベルウインドウとして、前記マルチタブアプリケーションプログラムにおける各タグに対応する1つ以上のページウインドウを生成するように構成された、ウインドウ管理モジュールと、
前記ページウインドウに関連するメッセージ対話を実行するように構成された、メッセージ対話モジュールと、を含む。
好ましくは、前記ウインドウ管理モジュールはさらに、前記マルチタブアプリケーションプログラムのメインフレームウインドウと同じレベルに、1つ以上のトップレベルウインドウとして、前記マルチタブアプリケーションプログラムにおける前記各タブに対応する1つ以上のページウインドウを生成するように用いられる。
好ましくは、前記メッセージ対話モジュールはさらに、前記マルチタブアプリケーションプログラムのメインフレームウインドウにおいて、1つ以上のメッセージをノンブロッキングモードで前記ページウインドウに送信するように用いられる。
好ましくは、前記メッセージ対話モジュールは、
前記マルチタブアプリケーションプログラムのメインフレームウインドウと1つ以上の前記ページウインドウの間のマッピング関係を生成し、記憶するように構成されたマッピング関係記憶サブモジュールと、
前記メインフレームウインドウと1つ以上の前記ページウインドウの間のマッピング関係に基づいて、1つ以上のメッセージを1つ以上のページウインドウに送信するメインフレームウインドウによって用いられ、受信されたメッセージに対応する1つ以上の動作を実行するように前記ページウインドウをトリガするように用いられる、通信サブモジュールと、をさらに含む。
好ましくは、前記システムは、前記マルチタブアプリケーションプログラムのメインフレームウインドウの位置およびサイズと合致させるように、1つ以上の前記ページウインドウの位置およびサイズを調整するように構成された、ウインドウ調整モジュールをさらに含む。
好ましくは、前記システムは、ページウインドウがハングした場合、ユーザにプロンプトで示すように構成されたプロンプトモジュールをさらに含む。
好ましくは、前記ウインドウ管理モジュールは、前記マルチタブアプリケーションプログラムにおける新しいタブを生成する場合、トップレベルウインドウとして前記新しいタブに対応するページウインドウを生成するようにさらに構成される。
好ましくは、前記マルチタブアプリケーションプログラムは、マルチタブウェブページブラウザ、マルチタブドキュメントエディタ、またはマルチタブリーダを含む。
好ましくは、前記システムは、前記マルチタブアプリケーションプログラムにおける複数の前記タブに対応する複数の前記ページウインドウを異なるスレッドに生成するように構成された、第1の生成モジュール、
および/または、
前記マルチタブアプリケーションプログラムのメインフレームウインドウと、1つ以上の前記タブに対応する1つ以上の前記ページウインドウを異なるスレッドに生成するように構成された、第2の生成モジュール、をさらに含む。
好ましくは、前記ウインドウ管理モジュールは、エンプティオーナを有する1つ以上のトップレベルウインドウとして、前記マルチタブアプリケーションプログラムにおける各タブに対応する1つ以上のページウインドウを生成するようにさらに構成される。
コンピュータプログラム命令を含むコンピュータ読み取り可能な媒体は、前記コンピュータプログラム命令がコンピュータユニットによって実行された場合、コンピュータユニットに、
1つ以上のトップレベルウインドウとして、マルチタブアプリケーションプログラムにおける各タブに対応する1つ以上のページウインドウを生成することと、
前記ページウインドウに関連するメッセージ対話を実行することと、を指示する。
本発明の実施形態は以下の技術的効果を開示する。
本発明の実施形態によれば、トップレベルウインドウとしてマルチタブアプリケーションプログラムにおけるタブに対応するページウインドウを生成することによって、ページウインドウはもはや親ウインドウを有さなくなる。したがって、ページウインドウに対応するメッセージ対話を実行する場合、親ウインドウがシステムメッセージをページウインドウにブロッキングモードで送信する状況がなくなる。したがって、そのようなシステムメッセージを送信することによって生じるページウインドウのハングの蔓延の問題が回避されうる。1つのページウインドウがハングした場合であっても、他のページウインドウは影響を受けない。すなわち、アプリケーションプログラムの通常の実行に影響を与えることなく、他のページウインドウ上の動作は通常どおり実行されうる。
従来技術におけるマルチタブブラウザのインターフェイスの例示図である。 マルチタブアプリケーションプログラムにおいてメッセージ対話を実現する本発明の実施形態によって提供される方法のフロー図である。 従来技術におけるマルチタブブラウザのウインドウ構造の例示図である。 本発明の実施形態におけるマルチタブブラウザのウインドウ構造の例示図である。 本発明の実施形態におけるページウインドウのハングの最中のインターフェイスの例示図である。 本発明の実施形態におけるマルチタブアプリケーションプログラムにおいてメッセージ対話を実現する例示図である。
本発明の上記の目的、特徴および利点をよりよく理解するために、以下には図面および詳細な実施形態と共に、本発明の詳細な記載をさらに提供する。
図2を参照すると、本発明は、マルチタブアプリケーションプログラムにおいてメッセージ対話を実現し、以下のステップを含む方法を提供する。
S201:トップレベルウインドウとして、マルチタブアプリケーションプログラムにおける各タブに対応する1つ以上のページウインドウを生成する。
S202:トップレベルウインドウにおいてユーザメッセージ対話を実施する。すなわち、アプリケーションプログラムのメインフレームウインドウとトップレベルウインドウとしてのページウインドウの間のメッセージ対話などの、ページウインドウに関連するメッセージ対話を実行する。
理解を容易にするために、本発明の実施形態において参照される、マルチタブアプリケーションプログラムの概念と、オペレーティングシステムなどのウインドウおよびトップレベルウインドウの概念を、以下に簡単に説明する。図1を参照すると、タブに関して、従来のマルチタブウェブブラウザのインターフェイスが示される。図1においては、「遨游起始頁」「搜狐−中国...」および「空白頁」と名付けられた小さい長方形の箱が個々のウェブページのタブであり、各タブはウェブページウインドウに対応する。いわゆるマルチタブアプリケーションプログラムは、単独のウインドウに表示するための個々のタブに対応するページウインドウを統合し、タブがクリックされた場合に異なるページどうしを切り換える。例えば、図1に示されるウェブページブラウザは同時に複数のタブを含むことができ、したがってマルチタブウェブブラウザと呼ばれる。
本発明の実施形態において示されるマルチタブアプリケーションプログラムには、マルチラブウェブブラウザ、マルチタブドキュメントエディタ(例えばexcelなど)、およびマルチタブドキュメントリーダなどが挙げられるが、これらに限られない。加えて、アプリケーションプログラムはシングルプロセスアプリケーションプログラムまたはマルチプロセスアプリケーションプログラムであってよく、個々のタブに対応するページウインドウは単一のプロセスで生成されてもよく、複数のプロセスで生成されてもよい。しかしながら、単一のプロセスで生成される場合も複数のプロセスで生成される場合も、ページウインドウはすべてハングの蔓延の問題を有する。本発明の実施形態によるそのような問題の解決方法は、マルチプロセスアプリケーションプログラムと同様にシングルプロセスアプリケーションプログラムにも応用可能である。
本発明の実施形態において記載されるように、ウインドウはシステムの表示領域を参照する。アプリケーションプログラムはウインドウを使用して、出力を表示するか、ユーザからの入力を受信する。本発明の実施形態において記載される「ウインドウ」は、Windowsにも、他の従来のウインドウベースのオペレーティングシステムにも限られないことに留意すべきである。Windowsでないオペレーティングシステムにおいてさえも、ヒューマンコンピュータ対話(HCI)インターフェイス(例えばダイアログボックスなど)は、コンピュータインターフェイスとして提供される限り、本発明の実施形態において記載されたウインドウと見なすことができる。一方では、アプリケーションプログラムはウインドウを介してシステムディスプレイにアクセスし、他方では、アプリケーションプログラムはウインドウを使用してシステムディスプレイを他のアプリケーションプログラムと共用する。任意の所与の時刻において、ユーザ入力を受信することができるウインドウは1つのみであるため、ユーザはウインドウおよび、マウス、キーボードならびにほかの入力装置を介してウインドウを占有するアプリケーションプログラムと対話できる。
Windowsファミリーオペレーティングシステムがここで例として使用される。Windowsオペレーティングシステム(他のウインドウベースのグラフィカルオペレーティングシステム、例えばMac特有のオペレーティングシステム、macなども含む)においては、すべてのグラフィカルインターフェイスベースのアプリケーションプログラムは少なくとも1つのウインドウを生成する必要があり、それはメインフレームウインドウと呼ばれる。このウインドウはユーザとアプリケーションプログラムの間の主要なインターフェイスである。多くのアプリケーションプログラムが、関連するタスクを完了するために、直接的に、あるいは間接的にいくつかの他のウインドウを生成してもよい。ひとたび1つのウインドウが生成されると、Windowsシステムは対応するユーザ対話メッセージをウインドウに提供することができる。Windowsシステムは、ウインドウを動かす、ウインドウのサイズを調節するなどのユーザによって要求された多くのタスクを自動的に完了することができる。Windows環境においては、任意の数のウインドウが生成されうる。Windowsは様々な方法で情報を表示でき、ディスプレイスクリーンの管理とウインドウの位置および表示の制御に関与し、いかなる2つのアプリケーションプログラムも同時にシステムディスプレイの同じ部分で競合することがないことを保証する。
アプリケーションプログラムウインドウは一般に、タイトルバー、メニューバー、ツールバー、境界、クライアント領域、スクロールバーおよびほかの構成要素を含む。複数のウインドウの間の関係は通常、樹枝状の接続関係、すなわち、1つのウインドウが0、1、2またはそれ以上の子ウインドウを有し、各子ウインドウは1つのみの定められた親ウインドウを有することができる。特定のウインドウが親ウインドウを有さないか、デスクトップウインドウ(ウインドウクラスが#32769であるウインドウはデスクトップウインドウと呼ばれる)である場合、その特定のウインドウはトップレベルウインドウと呼ばれる。
例としてWindowsオペレーティングシステムをなおも使用して、Windowsアプリケーションプログラムを実行することは、ドライブとしての外部イベントに依存することを必要とし、外部イベントを記載する情報はメッセージと呼ばれる。例えば、ユーザがキーボード上のキーを押すと、システムはキーボードが押されたというイベント(keyboard−being−pressed event)の発生を示す特定のメッセージを生成する。いわゆるイベント駆動は、Windowsアプリケーションプログラムの実行順がイベントの発生順に依存することを意味し、イベント駆動型プログラムの設計はメッセージの生成と取り扱いが中心となる。実行させると、Windowsアプリケーションプログラムは連続して、任意の可能な入力メッセージを受信し、決定を生成し、そして適切な処理を実行する。
アプリケーションプログラムによって得られる様々なメッセージは、ハードウェア装置によって生成される入力メッセージと、Windowsオペレーティングシステムからのシステムメッセージとして分類することができる。
アプリケーションプログラムは入力メッセージからの入力を受信する。例えば、マウスの移動またはキーボードが押されたことは入力メッセージを生成しうる。Windowsシステムはすべての入力装置を監視して入力メッセージをキューに配置することに関与し、ここでキューとはメッセージを一時的に記憶するシステム定義メモリブロック、いわゆるシステムメッセージキューである。Windowsシステムにおいて実行される各グラフィック装置インターフェイス(GDI)スレッドは、それ自身のメッセージキューを有する。
ユーザがマウスを移動させるかキーボードを押すと、得られた入力メッセージがまずシステムメッセージキューに配置される。したがって、Windowsシステムはシステムメッセージキューから毎回1つの入力メッセージを取り除き、取り除かれた入力メッセージに関する宛先ウインドウを決定し、取り除かれた入力メッセージを、宛先ウインドウを生成したアプリケーションプログラムのメッセージキューに送信する。アプリケーションプログラムはアプリケーションプログラムキューによる入力を受信する。すなわち、アプリケーションプログラムはメッセージループと呼ばれる制御構造を用いてアプリケーションプログラムキューからメッセージを読み出し、読み出されたメッセージを対応するウインドウに送信する。対応するウインドウのウインドウ機能は、したがって、メッセージのチェックおよび適切な処理の実行に関与する。
システムメッセージは入力メッセージとは異なる。Windowsシステムはシステムメッセージを、システムメッセージキューおよびアプリケーションプログラムキューを介して送信するのではなく、適切なウインドウ機能に直接送信する。このようにして、Windowsシステムは特定のウインドウに影響を与えるイベントを、該特定のウインドウに直接通知する。例えば、ユーザがアプリケーションプログラムウインドウを起動させた場合、Windowsシステムは該起動させたウインドウに、対応するシステムメッセージを直接送信する。
一般に、メッセージは2つのモード、すなわち、ブロッキングモード(例えば「SendMessage」)およびノンブロッキングモード(例えば「PostMessage」「PostThreadMessage」「SendMessageCallback」「SendNotifyMessage」および「SendMessageTimeout」など)で送信可能であることに留意すべきである。当業者は通常、「SendMessage」を同期メッセージ送信方法とみなし、「PostMessage」「PostThreadMessag」「SendMessageCallback」「SendNotifyMessage」を非同期メッセージ送信方法とみなし、「SendMessageTimeout」をタイムアウト機構を備えた同期メッセージ送信方法とみなす。例えば、ウインドウBはスレッドAに属していない(ウインドウBがスレッドAに属しているかどうかは、ウインドウBがどのスレッドにおいて生成されたかによって決まる。すなわち、ウインドウBがスレッドAにおいて生成された場合、ウインドウBはスレッドAに属するが、そうでないばあいはウインドウBはスレッドAに属さない)と仮定する場合、スレッドAがメッセージをウインドウBに送信するとき、異なるメッセージ送信モードが以下の特徴を有してもよい。
スレッドAがメッセージMをウインドウBにブロッキングモードで送信する場合、スレッドAの実行が続行される前に、スレッドAはウインドウBがメッセージMの処理を完了するまで待たなくてはならない。ウインドウBがメッセージMを処理する場合、処理の最中に発生した無限ループまたはデッドロックなどの何らかの問題が、メッセージ処理が戻ることを阻止することがある。この時点で、ウインドウBはハングしているとみなされ、したがってスレッドAは実行も、他のメッセージを受信して処理することも続行できない。したがって、ウインドウBのハングは直接スレッドAのハングを引き起こすことがあり、その後にスレッドA内のすべてのウインドウがハングする。
メッセージがノンブロッキングモードで送信される場合、ウインドウBにメッセージを送信したすぐ後にスレッドAは戻ることができ、ウインドウBがメッセージBの処理を完了するまで待つ必要はない(「PostMessage」ならびに他の非同期方法を使用する場合は、待つ必要がない。「SendMessageTimeout」を使用する場合は、待ち時間閾値がプリセットされることができ、スレッドAがプリセットされた閾値よりも長い期間待った場合は、スレッドAは待つのをやめ、戻って他のメッセージを取り扱う)。したがって、ウインドウBがハングした場合は、スレッドAは実行を続けることができる。
上記の2つの場合において、ウインドウBはスレッドAに属さない。ウインドウBがスレッドAに属する場合、ウインドウのハングはメッセージがブロッキングモードで送信されるかノンブロッキングモードで送信されるかにかかわらず蔓延する。したがって、ウインドウBのハングは常にスレッドAに影響を与える。加えて、ウインドウBは子ウインドウまたはトップレベルウインドウであることができ、ウインドウ構造は上記の性能に影響を与えない。
アプリケーションプログラムによって読み込まれた様々なメッセージの間で、入力メッセージのためのメッセージ送信モードが通常はアプリケーションプログラム(通常はノンブロッキングモードに設定される)によって決定される。これに対して、システムメッセージのための送信モードは一般にオペレーティングシステムによって決定される。例として、現在最も広く用いられているWindowsオペレーティングシステムを使用すると、Windowsオペレーティングシステムはシステムメッセージをブロッキングモードで送信する(通常は「SendMessage」を使用する)。
本発明の実施形態において提供される方法のよりよい理解のために、以下では、マルチタブブラウザにおいて一度ページがハングすると他のページも動作しなくなる理由を解析するための例として、マルチタブウェブページブラウザを使用する。
ウインドウを生成する場合、現在のマルチタブウェブページブラウザは通常、異なるタブに対応するページウインドウを同じ親ウインドウから引き継ぐ。例えば、図3は、図1と同じウェブページを閲覧するYaoyouブラウザのウインドウ構造を示す。
図3において、「Maxthon2_View」はウェブページコンテンツを表示するウインドウであり、単にページウインドウと呼ばれる。Maxthon2_Viewは単にコンテナウインドウにすぎず、ウェブページコンテンツを表示するように構成された、Internet Explorer_Server(図示せず)などの他の子ウインドウも有することに留意すべきである。3つのウェブページが現在開かれているため、3つのMaxthon2_Viewページウインドウがウインドウ構造内にあり、これら3つのページウインドウのすべてが親ウインドウとして「Afx:400000:2008:10011:0:0」ウインドウを有する。
言い換えれば、各タブはウェブページに対応し、各ウェブページはウインドウのグループによって管理される(ウインドウ構造図内の「Maxthon2_View」の前の「+」記号の下にある子ウインドウ(図示せず)のグループを参照)。子ウインドウのグループは親ウインドウ(すなわち「Maxthon2_View」)を有し、それらの親ウインドウ(すなわち「Maxthon2_View」)もまた親ウインドウ(すなわち上記ウインドウ構造における「Afx:400000:2008:10011:0:0」)を有する。
このウインドウ構造において、ユーザがタブに対応するページ上である動作を実行する場合(例えばウェブページズーム動作)、処理の流れは以下のようになる。ユーザはまずズームボタンをクリックし、このボタンを含むウインドウがメインフレームウインドウにメッセージがクリックされたことを知らせる。メインフレームウインドウが現在表示されているタブに対応するページウインドウを発見し、該ページウインドウにズーム動作を送信する。そして、ページウインドウはメッセージを読み込みズーム動作を実行する。もちろん、この期間に、Windowsオペレーティングシステムの特徴(前記したような)のために、あるシステムメッセージがウインドウの間で交換されてもよい。これらのシステムメッセージはWindowsオペレーティングシステムによってブロッキングモードで送信される。したがって、すべてのシステムメッセージに応答があった後にのみ、ページウインドウの動作が完了することができる。
例えば、図3に示すウインドウ構造(明確にするために、「05B6」、「070C」および「0774」が、それぞれ「Window004705B6””Maxthon2_View」、「Window006C070C””Maxthon2_View」および「Window00270774””Maxthon2_View」を示すために用いられる)において、現在示されるタブに対応するウインドウが「05B6」でありユーザがズームボタンをクリックしたとすると、メインフレームウインドウ「Maxthon2_Fram」がズーム動作メッセージを「05B6」ページウインドウに送信するとき、「05B6」ページウインドウの親ウインドウ「Afx:400000:2008:10011:0:0」は、システムメッセージをその子ウインドウのそれぞれ(例えば「05B6」、「070C」および「0774」)にブロッキングモードで送信する必要がある。さらに、すべてのシステムメッセージが応答した後にのみ、ページウインドウ「05B6」上のズーム動作が完了することができる。
この時点では、現在示されている「05B6」がハングした場合、ユーザが「070C」上で動作したいときに、ページウインドウ「070C」の親ウインドウ「Afx:400000:2008:10011:0:0」がなおもシステムメッセージをその子ウインドウのそれぞれ(例えば「05B6」、「070C」および「0774」)にブロッキングモードで送信する必要がある。しかしながら、「05B6」がハングした場合、「05B6」は、親「Afx:400000:2008:10011:0:0」が「05B6」にシステムメッセージを送信した後に応答することができない。したがって、親ウインドウ「Afx:400000:2008:10011:0:0」がいつまでも待ち状態にあり、「070C」の動作は完了することができない。「070C」の動作を完了するために、親ウインドウ「Afx:400000:2008:10011:0:0」は「070C」を含むその子ウインドウのそれぞれにシステムメッセージを送信する必要がある。しかしながら、ハング「05B6」は親ウインドウ「Afx:400000:2008:10011:0:0」に対応する必要がないため、ブロッキングモードのために、親ウインドウ「Afx:400000:2008:10011:0:0」はページウインドウ「05B6」からの応答を受信するまで他の動作を実行することができず、親ウインドウ「Afx:400000:2008:10011:0:0」は「070C」上のユーザ動作を完了するためにすべての子ウインドウにシステムメッセージを送信することを完了できない。したがって、「070C」上のユーザ動作がいつまでも待ち状態にあり、「070C」はもはやシステムメッセージに応答することができない。同様に、「0774」へのいかなる動作も完了することができない。すなわち、ウインドウ「Afx:400000:2008:10011:0:0」とページウインドウ「05B6」「070C」「0774」の間の親子関係に基づいて、ページウインドウ上の任意の動作を完了するためには、親ウインドウ「Afx:400000:2008:10011:0:0」がシステムメッセージをその子ウインドウのそれぞれにブロッキングモードで送信する必要がある。したがって、いかなるページウインドウのハングも、他のページウインドウが動作不能になるため、他のページウインドウに直接影響しうる。
Windowsシステム内のすべてのシステムメッセージがノンブロッキングモードで送信可能な場合、異なるウインドウが異なるスレッドに配置される限り、アプリケーションプログラムは当然ながらハングを阻止されることができる。しかし上に述べたように、実際にはそれが当てはまらない。ある周辺機器のメッセージ(例えばマウス、キーボードなど)ならびに描画メッセージ(WM_PAINT、WM_NCPAINTなど)のみがノンブロッキングモードで送信される。他のシステムメッセージ(例えば、サイズ変更の告知WM_SIZE、位置変更の告知WM_POSCHANGINGおよびWM_POSCHANGEDなど)はブロッキングモードで送信される。
ウインドウBがハングしたとすると、スレッドAがウインドウBにメッセージをノンブロッキングモードで送信する場合、スレッドAの実行は影響を受けない(メッセージが時間内に処理されないことのみ)。しかし、スレッドAがウインドウBにシステムメッセージを送信する場合(システムメッセージは一般にブロッキングモードで送信される)、スレッドAはウインドウBのハングに続いてハングする。これらのシステムメッセージはWindowsシステム内で実装されるため、ページウインドウのハングの蔓延はサードパーティのアプリケーションプログラム(例えばブラウザなど)を変更することによっては阻止できない。
マルチタブアプリケーションプログラムにおいてユーザメッセージ対話を実行する場合、以下のシステムメッセージが通常生成されてブロッキングモードで送信されることができる。
親ウインドウは1つ以上の子ウインドウを有する。親ウインドウが焦点を有する場合(例えば、ブラウザのメインフレームウインドウが、ある動作によって現在のアクティブウインドウとなっている場合)、Windowsシステムは「WM_CHILDACTIVATE」メッセージをブロッキングモードで送信する。
いくつかのオペレーティングシステム(例えばWindowsオペレーティングシステムなど)においては、多数のトップレベルウインドウ(A、B、C...)が共通の「オーナ」ウインドウOを有する状況がありうることに留意すべきである。1つのトップレベルウインドウのサイズまたは表示状態が変化した場合は、オーナウインドウOはWM_POSCHANGINGおよびWM_POSCHANGEDメッセージを他のトップレベルウインドウ(B、C...)にブロッキングモードで送信する。もちろん、これらの状況は他のオペレーティングシステムには存在しないはずである。
上記の分析からわかるように、1つのウインドウのハングがブラウザ全体の動作不能につながる問題の根本的原因は、通常は、個々のタブに対応するページウインドウが共通の親ウインドウを有し、個々のページウインドウがユーザ入力メッセージに対応する場合、親ウインドウが個々のページウインドウにシステムメッセージを(ブロッキングモードで)送信することにある。すべてのシステムメッセージが正常に処理される場合にのみ、ユーザメッセージ対話は完了することができる。したがって、ページウインドウAがハングした場合は、親ウインドウがページウインドウAにシステムメッセージを送信するとき、ページウインドウAは親ウインドウに応答メッセージを残すことができず、それが親ウインドウをいつまでも待ち状態にする。この時点では、動作が他のページウインドウ上で実行される必要がある場合、親ウインドウは反応することができない。したがって、他のページウインドウ上の動作が完了することができず、そのことが、アプリケーションプログラム全体が正常に実施できなくなることさえも引き起こす場合がある。
加えて、図3に示した上記例において、個々のページウインドウは「Afx:400000:2008:10011:0:0」の子ウインドウであり、「Afx:400000:2008:10011:0:0」はメインフレームウインドウの子ウインドウでもある。したがって、この例では、メインフレームウインドウと個々のページウインドウの間の関係は直接の親子関係ではない。実際には、しかしながら、当業者は、種々のマルチタブアプリケーションプログラムを設計する際の相違のために、個々のページウインドウがメインフレームウインドウの直接の子ウインドウである(すなわち、それらの間に直接の親子関係がある)状況、または、個々のページウインドウとメインフレームウインドウなどの間に複数のレベルのウインドウが存在する状況が存在してもよいことを理解している。しかし、いずれの状況かに関係なく、個々のページウインドウは親ウインドウを有し、親ウインドウは個々のページウインドウにシステムメッセージをブロッキングモードで送信する。したがって、ハングが蔓延する現象は常に存在する。
しかしながら、実際には、親ウインドウがシステムメッセージを個々のページウインドウにブロッキングモードで送信することに実用的な意義はないはずである(オペレーティングシステムはシステムメッセージを用いるかもしれないが、アプリケーションプログラムはシステムメッセージを用いないはずである。言い換えれば、Windowsシステムがこのシステムメッセージを送信しない場合でさえも、アプリケーションプログラムはなお正確に動作することができる)。個々のページウインドウがシステムメッセージを受信する場合、個々のページウインドウは他のいかなる処理もすることなく応答メッセージを戻す必要があるかもしれない。したがって、実際には、親ウインドウが個々のページウインドウにシステムメッセージを送信しなかった場合、現在表示されているページウインドウはユーザ入力メッセージをなおも取り扱うことができる。
したがって、本発明の実施形態においては、マルチタブアプリケーションプログラムにおける複数のタブに対応するページウインドウはメインフレームウインドウと同じレベルに、トップレベルウインドウとして生成される。したがって、個々のページウインドウにブロッキングモードでいかなるシステムメッセージを送信する親ウインドウも存在しない。もちろん、Windowおよび他のオペレーティングシステムにおいて、個々のページウインドウはなおも共通のオーナを有してもよく、オーナが個々のページウインドウにシステムメッセージを送信してもよい。オーナウインドウが個々のページウインドウにシステムメッセージを送信することを避けるために、トップレベルウインドウのオーナはエンプティに設定される。
したがって、ウインドウ構造に関して、以前には単一のツリー構造に対応していたアプリケーションプログラムは、今や複数のツリー構造に対応する(ツリー構造の数はアプリケーションプログラムのタブの数によって決まる)。図4は、本発明の実施形態において提供されるマルチタブブラウザのウインドウ構造を示す。図示されるように、SE_AxControlは各タブに対応するページウインドウである。この構造は、タブに対応するページウインドウを、もはや親ウインドウを有さない(または親ウインドウとしてのデスクトップを有さない)ものとする。したがって、ページウインドウがユーザ入力メッセージに対応する場合、個々のページウインドウにメッセージを送信する親ウインドウはもはや存在せず、すべてのページウインドウは互いに独立している。したがって、ユーザ入力メッセージに応答する場合、特定のページウインドウがハングした場合でさえも、他のページウインドウは影響を受けない。ユーザは他のページウインドウを閲覧することを続行することができ、ハングしたページウインドウを閉じるかリロードすることができる。
したがって、本発明の実施形態において開示された方法が用いられる(トップレベルウインドウとしてページウインドウを生成する)場合、以前のメインフレームウインドウとページウインドウの間に多くの関係(直接の親子関係または複数のレベルのウインドウによって隔てられた関係)が存在するとしても、子ウインドウとしてのページウインドウにシステムメッセージを送信する親ウインドウは存在しない。このことは、オペレーティングシステムがシステムメッセージを送信する必要性によって生じるハング蔓延問題の根本的な解決法を提供しうる。
例えば、図4に示すウインドウ構造において(明確化のために、「09C6」、「0A6E」、「097E」が、それぞれページウインドウ「Window 01F609C6””SE_AxControl」、「Window 01D50A6E””SE_AxControl」および「Window 0109097E””SE_AxControl」を表すために使用される)、現在表示されているタブがページウインドウ「09C6」に対応するとすれば、ユーザがブラウザのメインフレームウインドウをある動作の間に現在のアクティブウインドウにする場合(例えば、ユーザがブラウザのタイトルバーをマウスでクリックする)、メインフレームウインドウ「SE_SogouExploreFrame」が使用されて対応するメッセージを「09C6」ページウインドウに送信し、したがって動作は、いかなるシステムメッセージも生成されることなく、直接実行されうる。すなわち、ページウインドウ(「09C6」、「0A6E」、「097E」)が親ウインドウを有さず、これらのページウインドウのオーナもまたエンプティに設定されることができ、ブラウザのメインフレームウインドウが属するスレッドも同様に、ページウインドウにいかなるシステムメッセージも送信しない。
この時点で、現在表示されている「09C6」がハングした場合、「09C6」「0A6E」および「097E」に共通の、現在表示されているページウインドウ上の動作の完了を容易にするためにこれらのページウインドウにシステムメッセージをブロッキングモードで送信する必要がある親ウインドウがないので、「09C6」が親ウインドウに応答することができないために他のシステムメッセージを処理することができなくなる「09C6」「0A6E」および「097E」に共通の親ウインドウがない。したがって、ユーザが「070C」上で動作を実行する必要がある場合、メインフレームウインドウ「SE_SogouExploreFrame」のみが「070C」に入力メッセージを送信する必要があり、「070C」上の動作を完了することができる。ページウインドウ上の動作を完了するために子ウインドウとしてのページウインドウにブロッキングモードでシステムメッセージを送信する親ウインドウに関与することがない。同様に、「0774」上の動作もまた完了することができる。したがって、本発明の実施形態にしたがって開示された技術的解決法によれば、ページウインドウのハングはもはや蔓延せず、アプリケーションプログラム全体が影響を受けることはない。
本発明の実施形態によれば、様々な入力メッセージ対話がノンブロッキングモードまたはブロッキングモードのいずれかで実行されることができることに留意すべきである。もちろん、ノンブロッキングモードが用いられる場合、メインフレームウインドウがメッセージをページウインドウに送信する場合、メインフレームウインドウはページウインドウがメッセージの処理を完了することを待つことなく、他のページウインドウからのメッセージを処理するために戻る。したがって、結果はより良好になる。当業者は、メインフレームウインドウによってメッセージをページウインドウに送信するためにいかなるモードが用いられるか、あるいはどのようなメッセージを生成すべきか、などをマルチタブアプリケーションプログラム自身が制御することができることを理解する。言い換えれば、このことはサードパーティのアプリケーションプログラム(例えばブラウザ)を改良することによって行われうる。しかしながら、上で述べた状況において、子ウインドウにシステムメッセージをブロッキングモードで送信する親ウインドウ(従来技術のページウインドウ)はサードパーティアプリケーションプログラム(ブラウザ)によってではなく、Windowsオペレーティングシステムによって制御される。したがって、システムメッセージを送信するためのモードは、サードパーティアプリケーションプログラムを変更することによって変更することはできず、それがページウインドウのハングの蔓延の問題を解決するための最も難しい部分となる。本発明の実施形態は異なる手法を提供する。ページウインドウを子ウインドウの本来の形態からトップレベルウインドウに変更することによって、ページウインドウはもはや親ウインドウを有さなくなる。したがって、ある親ウインドウが個々のページウインドウにシステムメッセージを送信することをWindowsオペレーティングシステムが必要とする状態が、もはや存在せず、それがページウインドウのハングの蔓延の問題を最終的に解決する。
上に述べたように、2つ以上のウインドウが同じスレッドに属する場合は、ブロッキングモードとノンブロッキングモードのいずれもハング蔓延を引き起こすことがある。したがって、本発明の実施形態において、ハングが蔓延することを阻止するより望ましい結果を達成するために、異なるウインドウは異なるスレッドに属するようにされてよく(例えば、異なるページウインドウは異なるスレッドに属し、および/またはメインフレームウインドウとページウインドウは異なるスレッドに属する)、ハングの蔓延の発生をさらに減少させる。もちろん、いくつかのマルチタブアプリケーションプログラムはそれ自身がマルチスレッドである。すなわち、異なるページウインドウおよびメインフレームウインドウはすでに異なるスレッドにより生成されている。したがって、これらのマルチタブアプリケーションプログラムはもはやスレッド関連の変更を必要としない。
加えて、特定のページウインドウがハングしていることが判定された場合、ユーザにプロンプトで示すことができる(ページウインドウのハングの発生をユーザに告知し、ユーザにページウインドウを閉じるかリロードするように気づかせる。図5を参照)。したがって、本発明の実施形態は効率的にユーザエクスペリエンスを向上させる。
ページウインドウがハングしているかどうかをどのように判定するかに関して、いくつかの代替の方法がそのような検査のために用いられうる。例えば、一定の時間の間(例えば5秒間)、ページウインドウが該ページウインドウに送られたいかなるメッセージも処理しない場合は、該ページウインドウはハングの可能性があるとみなす、などである。実際には、ページウインドウがハングしたかどうかを正確に検出することは不可能かもしれず(Windowsシステム自身でさえもこれを達成できない)、したがって、ある誤った検出が発生するかもしれないことに留意すべきである。
メインフレームウインドウとページウインドウの間のメッセージ対話を実施することに関して、メインフレームウインドウと個別のタブに対応するページウインドウの間に、あるマッピング関係が存在することに留意すべきである。ユーザとのメッセージ対話を完了させるために、メインフレームウインドウとページウインドウの間の通信が、このマッピング関係に基づいて達成される。Yaoyouブラウザのようなブラウザのウインドウなどの従来のウインドウ構造において、Windowsシステムは自動的にそのようなマッピング関係を生成することができる。メインフレームウインドウはページウインドウを得て該ページウインドウにメッセージを送信するために、システム関数(例えばGetWindow(CHILD))を使用することのみが必要である。
しかしながら、本発明の実施形態において、この従来のウインドウ構造は壊され、Windowsシステムはメインフレームウインドウとページウインドウの間のマッピング関係を自動的に生成することができない可能性がある。したがって、ページウインドウを得るために呼び出される関数が存在しない。上記状況において、メインフレームウインドウとページウインドウの間の通常の通信を実施するために、以下の方法が本発明の実施形態によって用いられうる。トップレベルウインドウとしての個々のタブに対応するページウインドウを生成する場合、メインフレームウインドウとページウインドウの間のマッピング関係もまた生成され、そのようなマッピング関係が記憶されうる。したがって、メインフレームウインドウがメッセージをユーザから受信した後、メインフレームウインドウは記憶前のマッピング関係に基づいて対応するページウインドウを発見し、メッセージをページウインドウに送信しうる。メッセージはノンブロッキングモードで送信されうる。さらに、ページウインドウは受信されたメッセージに応じて対応する動作を実行する。そのような動作はズーム動作、切り換え動作、またはルックアップ動作などを含むことができる。もちろん、将来において、Windowsシステムまたは他のオペレーティングシステムが、本発明の実施形態に記載のウインドウ構造を用いて、メインフレームウインドウとページウインドウの間のマッピング関係を自動的に生成することが可能になる可能性はある。
本発明の実施形態において、タブに対応するページウインドウは、実際の必要性に応じていつでもトップレベルウインドウとして生成またはつくられることができる。好ましい方法は、新しいタブを生成するとき、生成されたタブに対応するページウインドウをトップレベルウインドウとして生成することである。さらに、マルチタブブラウザにおいて、新しいタブを生成することは2つの手法を含んでもよい。1つはユーザがタブバーをダブルクリックしたときに新しいタブを生成し該タブに対応するページウインドウが空白である。他方は、新しいタブに対応するページウインドウにおいて、通常は現在示されているページ内のリンクをクリックすることによって、あるウェブページが開かれるときにブラウザによって新しいタブが自動的に開かれる。この手法はマルチタブドキュメントエディタにおいてより有意義である。例えば「excel」において、ページウインドウのハングはドキュメント編集処理の最中にのみ発生しうるのではなく、excelドキュメントを開くときにも発生しうる。excelドキュメントが開かれたとき、タブに対応するページウインドウがハングしてタブに対応するページウインドウがトップレベルウインドウとして生成されない場合、ハングしていないだろう他のページウインドウのデータをチェックすることができなくなるだろう。したがって、新しいタブを生成するときにトップレベルウインドウとして対応するページウインドウを生成することは、この状況が発生することを阻止することができる。
本発明の実施形態によって提供される方法においては、メインフレームウインドウおよびタブに対応するページウインドウが互いに独立していることに留意すべきである。これは、従来の構成において、タブに対応するページウインドウがメインフレームウインドウのある子ウインドウという、子ウインドウであることとは異なる。必要な配置なしに、メインフレームウインドウおよびページウインドウのサイズおよび位置は任意であってよい。しかしながら、ユーザがよりよい視覚的効果を得ることを可能にするために、タブに対応するページウインドウの位置およびサイズはメインフレームウインドウの位置およびサイズと適切に合致するように調整されてもよい。言い換えれば、最後にユーザの前に示されるブラウザインターフェイスは、Yaoyouならびに他のブラウザのインターフェイスと異ならなくてもよいかもしれない。しかしながら、実際にはこのブラウザインターフェイスは単一のエンティティではなく、互いに接続された複数のエンティティである。本発明の実施形態によってユーザに提供されるそのようなインターフェイスは「非同期ユーザインターフェイス(UI)」と呼ばれる。このユーザインターフェイスは、1つのタブページウインドウのハングがブラウザフレームまたはほかのタブページウインドウの動作不能を引き起こす状況が発生することを阻止することができる。
上記方法の全部または一部が、対応するハードウェアに命令するコンピュータプログラムによって達成されることができることを、当業者は理解することができる。コンピュータプログラムはコンピュータ読み取り可能な記憶媒体上に記憶されることができる。コンピュータプログラムは、実行された際に、以下のステップを含む。トップレベルウインドウとして、マルチタブアプリケーションプログラムにおいてタブに対応するページウインドウを生成し、該マルチタブアプリケーションプログラムにおいてメッセージ対話を実行する。記載の記憶装置は、例えば、ROM/RAM、ディスク、およびCD−ROMなどであることができる。
本発明の実施形態において提供されるマルチタブアプリケーションプログラムにおいてメッセージ対話を実施する方法に対応して、マルチタブアプリケーションプログラムにおけるメッセージ対話を実行するシステムもまた、本発明の実施形態において提供される。図6を参照すると、システムは以下を含む。
ウインドウ管理モジュールU601は、トップレベルウインドウとして、マルチタブアプリケーションプログラムにおいてタブに対応するページウインドウを生成するように用いられる。前記方法によれば、マルチタブアプリケーションプログラムのメインフレームウインドウもまたトップレベルウインドウである。したがって、ページウインドウがトップレベルウインドウとして生成された後、ページウインドウとメインフレームウインドウは同じレベルにあり、すべてトップレベルウインドウである。
メッセージ対話モジュールU602は、トップレベルウインドウの間のユーザメッセージ対話を実行するように用いられる。ユーザメッセージ対話とはすなわち、ページウインドウに関連するメッセージ対話、例えばアプリケーションプログラムのメインフレームウインドウと、今はトップレベルウインドウであるページウインドウの間のメッセージ対話などである。
さらに、ウインドウ管理モジュールU601はマルチタブアプリケーションプログラムにおけるタブに対応するページウインドウをトップレベルウインドウとして生成し、マルチタブアプリケーションプログラムにおけるメッセージ対話を実行する。タブに対応するページウインドウは親ウインドウを有さないようにすることもできる。したがって、メッセージに応答する場合、ページウインドウにシステムメッセージをブロッキングモードで送信する親ウインドウは存在しない。したがって、あるページウインドウがハングした場合でさえも、他のページウインドウは影響を受けず、ユーザエクスペリエンスは向上する。
また、Windowsおよび他のオペレーティングシステムにおいて、トップレベルウインドウのオーナウインドウがページウインドウにメッセージを送信することを阻止するために、ウインドウ管理モジュールU601は、エンプティオーナを有するトップレベルウインドウとして、マルチタブアプリケーションプログラムにおいてタブに対応するページウインドウを生成することができる。非Windowsオペレーティングシステムにおいては、エンプティオーナ問題には関与しなくてよいことに留意すべきである。トップレベルウインドウとして、タブに対応するページウインドウを生成する必要があるだけであり、ユーザがあるページウインドウを動作したとき、いかなる親ウインドウもその子ウインドウ、すなわちページウインドウにシステムメッセージをブロッキングモードで送信する必要がなくなる、という目標が達成されうる。さらに、ハングの蔓延の発生の可能性を減少させるという目標もまた達成されうる。
上記の方法によれば、ハングの蔓延の発生をさらに減少させるために、メッセージ対話モジュールU602が、ノンブロッキングモードを使用してページウインドウにメッセージを送信するマルチタブアプリケーションプログラムのメインフレームウインドウにおいて、特に使用されてもよい。
本発明の実施形態によって生成されるウインドウ構造の下でメッセージに応答する処理の最中に、メインフレームウインドウはタブに対応するページウインドウにメッセージを送信し、ページウインドウは対応する動作を実行することができる。このことはメインフレームウインドウとページウインドウの間のマッピング関係を必要とする。しかしながら、ウインドウ構造は従来のウインドウ構造とは異なる上記の方法によって生成される。オペレーティングシステムはメインフレームウインドウとページウインドウの間のマッピング関係を自動的に生成することが不可能である。したがって、トップレベルウインドウを生成する場合、メインフレームウインドウとページウインドウの間のマッピング関係もまた生成されて記憶される。したがって、メッセージ対話モジュールU602は以下のサブモジュールを有してもよい。
マルチタブアプリケーションプログラムのメインフレームウインドウとページウインドウの間のマッピング関係を生成して記憶するように使用される、記憶サブモジュールU6021。
特定のタブに対応するトップレベルページウインドウにメッセージを送信するようにメインフレームウインドウをトリガし、受信されたメッセージに対応する特定の動作を実行するようにトップレベルページウインドウをトリガするように用いられる、通信サブモジュールU6022。最後に示されたインターフェイスの見え方をユーザによって用いられてきた見え方にいっそう一致させるために、システムは以下を有してもよい。
ページウインドウの位置およびサイズをメインフレームウインドウの位置およびサイズに合致させるように、ページウインドウの位置およびサイズを調整するように用いられる、ウインドウ調整モジュールU603。
加えて、システムは以下を有してもよい。
あるタブに対応するページウインドウがハングした場合、ユーザにページウインドウを閉じるかリロードすることを促すことを含む、ある告知情報をユーザにプロンプトで示すように用いられる、プロンプトモジュールU604。
本発明の好ましい形態において、新しいタブが生成された場合、例えば、新しい空白のページを生成するか新しいウインドウ内にページを開く場合、新しいタブに対応するページウインドウはトップレベルウインドウとして生成される。この手法はマルチタブドキュメントエディタにおいて、ドキュメントを開く過程の最中に1つのページのハングによってドキュメント全体が開けなくなる状況を回避するために、特に有利である。もちろん、実際の必要に応じていつでも、例えば多数のページウインドウが開かれている場合にトップレベルウインドウを生成する必要に応じて、タブに対応するページウインドウがトップレベルウインドウとして生成されうる。
上記の方法に応じて、ハングの蔓延の発生をさらに減少させるために、システムは以下を含んでもよい。
異なるスレッドにおいてマルチタブアプリケーションプログラムにおける異なるタブに対応するページウインドウを生成するように用いられる、第1の生成モジュール。ウインドウがスレッドに生成される場合、該ウインドウは該スレッドに属するため、このマルチスレッド生成モジュールは、異なるスレッドに属するマルチタブアプリケーションプログラムにおける異なるタブに対応するページウインドウを設けるように用いられてよい。
加えて、特定のメッセージ対話の最中、マルチタブアプリケーションプログラムのメインフレームウインドウは、トップレベルウインドウとして個々のページウインドウにメッセージを送信する必要がある可能性がある。上記方法において記載されたように、メインフレームウインドウおよびページウインドウが同じスレッドに属する場合、ブロッキングモードまたはノンブロッキングモードのいずれがメッセージを送信するように用いられるかにかかわらず、メインフレームウインドウとページウインドウの間のハングの蔓延はなお発生するかもしれない。したがって、好ましくは、システムは以下を含んでもよい。
メインフレームウインドウと、異なるスレッドにおける1つ以上のタブに対応する1つ以上のページウインドウと、を生成する第2の生成モジュール。すなわち、マルチタブアプリケーションプログラムのメインフレームウインドウと各ページウインドウは異なるスレッドに属する。したがって、これらの2つのウインドウが同じスレッドに属することはないため、メインフレームウインドウがページウインドウにメッセージを送信する必要がある場合、メッセージがノンブロッキングモードで送信される限り、ハングの蔓延の発生は起こらない。
上記の詳細な説明は、本発明によって提供されるマルチタブアプリケーションプログラムにおけるメッセージ対話を実行する方法および装置を記載する。個別の例は本発明の原則および実装を記載するように用いられる。しかしながら、例および実施形態は本発明の方法および精神の理解に役立たせるためのみに用いられる。また、当業者のために、特別の実装および応用の範囲が本発明の原則に基づいて変更されてもよい。要するに、本明細書の内容は本発明のいかなる限定として解釈されるべきでもない。
本出願は、発明の名称が「マルチタブアプリケーションプログラムにおけるメッセージ対話を実現する方法およびシステム」である、中国特許庁に2009年1月23日に出願された中国特許出願第200910077869.5号の優先権を主張し、その内容の全体が本明細書に参照によって組み込まれる。
好ましくは、前記マルチタブアプリケーションプログラムは、マルチタブウェブページブラウザ、マルチタブドキュメントエディタ、およびマルチタブリーダのうち1つ以上を含む。
好ましくは、前記マルチタブアプリケーションプログラムは、マルチタブウェブページブラウザ、マルチタブドキュメントエディタ、およびマルチタブリーダのうち1つ以上を含む。

Claims (22)

  1. 1つ以上のトップレベルウインドウとして、マルチタブアプリケーションプログラムにおける各タブに対応する1つ以上のページウインドウを生成することと、
    1つ以上の前記ページウインドウに関連するメッセージ対話を実行することと、を含む、
    マルチタブアプリケーションプログラムにおけるメッセージ対話を実行する方法。
  2. 1つ以上のトップレベルウインドウとして、マルチタブアプリケーションプログラムにおける各タブに対応する1つ以上のページウインドウを生成することが、
    前記マルチタブアプリケーションプログラムのメインフレームウインドウと同じレベルに、1つ以上のトップレベルウインドウとして、マルチタブアプリケーションプログラムにおける各タブに対応する1つ以上の前記ページウインドウを生成することをさらに含む、
    請求項1に記載の方法。
  3. 前記ページウインドウに関連する前記メッセージ対話を実行することが、
    前記マルチタブアプリケーションプログラムのメインフレームウインドウによって、1つ以上のメッセージをノンブロッキングモードで1つ以上の前記ページウインドウに送信することを含む、
    請求項1に記載の方法。
  4. 前記ノンブロッキングモードは、
    タイムアウトメカニズムと共に、非同期メッセージ送信モードまたは同期メッセージ送信方法を含む、
    請求項3に記載の方法。
  5. 前記ページウインドウに関連する前記メッセージ対話を実行することが、
    前記マルチタブアプリケーションプログラムのメインフレームウインドウと1つ以上の前記ページウインドウの間にマッピング関係を生成し、記憶することと、
    前記メインフレームウインドウによって、前記メインフレームウインドウと1つ以上の前記ページウインドウの間の前記マッピング関係に基づいて、1つ以上のメッセージを前記ページウインドウに送信することと、
    受信されたメッセージに対応する1つ以上の動作を実行するように、1つ以上の前記ページウインドウをトリガすることと、を含む、
    請求項1に記載の方法。
  6. 前記マルチタブアプリケーションプログラムのメインフレームウインドウの位置およびサイズと合致させるように、前記ページウインドウの位置およびサイズを調整することをさらに含む、
    請求項1から5のいずれか一項に記載の方法。
  7. タブに対応するページウインドウのハングを判定した場合、ユーザにプロンプトで示すことをさらに含む、
    請求項1から5のいずれか一項に記載の方法。
  8. 1つ以上のトップレベルウインドウとして、前記マルチタブアプリケーションプログラムにおける各タブに対応する1つ以上のページウインドウを生成することが、
    前記マルチタブアプリケーションプログラムにおける新しいタブを生成する場合、トップレベルウインドウとして前記新しいタブに対応するページウインドウを生成することをさらに含む、
    請求項1から5のいずれか一項に記載の方法。
  9. 前記マルチタブアプリケーションプログラムは、マルチタブウェブページブラウザ、マルチタブドキュメントエディタ、またはマルチタブリーダを含む、請求項1から5のいずれか一項に記載の方法。
  10. 前記マルチタブアプリケーションプログラムにおける複数の前記タブに対応する複数の前記ページウインドウが、異なるスレッドに属し、
    および/または、
    前記マルチタブアプリケーションプログラムのメインフレームウインドウと、複数の前記タブに対応する1つ以上の前記ページウインドウが、異なるスレッドに属する、
    請求項1から5のいずれか一項に記載の方法。
  11. トップレベルウインドウとして、前記マルチタブアプリケーションプログラムにおける各タブに対応する1つ以上の前記ページウインドウを生成することが、
    エンプティオーナを有する1つ以上のトップレベルウインドウとして、前記マルチタブアプリケーションプログラムにおける前記各タブに対応する1つ以上の前記ページウインドウを生成することをさらに含む、
    請求項1から5のいずれか一項に記載の方法。
  12. 1つ以上のトップレベルウインドウとして、マルチタブアプリケーションプログラムにおける各タグに対応する1つ以上のページウインドウを生成するように構成された、ウインドウ管理モジュールと、
    前記ページウインドウに関連するメッセージ対話を実行するように構成された、メッセージ対話モジュールと、を含む、
    マルチタブアプリケーションプログラムにおけるメッセージ対話を実行するシステム。
  13. 前記ウインドウ管理モジュールはさらに、前記マルチタブアプリケーションプログラムのメインフレームウインドウと同じレベルに、1つ以上のトップレベルウインドウとして、前記マルチタブアプリケーションプログラムにおける前記各タブに対応する1つ以上のページウインドウを生成するように用いられる、請求項12に記載のシステム。
  14. 前記メッセージ対話モジュールはさらに、前記マルチタブアプリケーションプログラムのメインフレームウインドウにおいて、1つ以上のメッセージをノンブロッキングモードで前記ページウインドウに送信するように用いられる、請求項12に記載のシステム。
  15. 前記メッセージ対話モジュールは、
    前記マルチタブアプリケーションプログラムのメインフレームウインドウと1つ以上の前記ページウインドウの間のマッピング関係を生成し、記憶するように構成されたマッピング関係記憶サブモジュールと、
    前記メインフレームウインドウと1つ以上の前記ページウインドウの間のマッピング関係に基づいて、1つ以上のメッセージを1つ以上のページウインドウに送信するメインフレームウインドウによって構成され、受信されたメッセージに対応する1つ以上の動作を実行するように1つ以上の前記ページウインドウをトリガするように用いられる、通信サブモジュールと、をさらに含む、
    請求項12に記載のシステム。
  16. 前記マルチタブアプリケーションプログラムのメインフレームウインドウの位置およびサイズと合致させるように、1つ以上の前記ページウインドウの位置およびサイズを調整するように構成された、ウインドウ調整モジュールをさらに含む、
    請求項12から15のいずれか一項に記載のシステム。
  17. ページウインドウがハングした場合、ユーザにプロンプトで示すように構成されたプロンプトモジュールをさらに含む、
    請求項12から15のいずれか一項に記載のシステム。
  18. 前記ウインドウ管理モジュールは、前記マルチタブアプリケーションプログラムにおける新しいタブを生成する場合、トップレベルウインドウとして前記新しいタブに対応するページウインドウを生成するようにさらに構成される、請求項12から15のいずれか一項に記載のシステム。
  19. 前記マルチタブアプリケーションプログラムは、マルチタブウェブページブラウザ、マルチタブドキュメントエディタ、またはマルチタブリーダを含む、請求項12から15のいずれか一項に記載のシステム。
  20. 前記マルチタブアプリケーションプログラムにおける複数の前記タブに対応する複数の前記ページウインドウを異なるスレッドに生成するように構成された、第1の生成モジュール、
    および/または、
    前記マルチタブアプリケーションプログラムのメインフレームウインドウと、1つ以上の前記タブに対応する1つ以上の前記ページウインドウを異なるスレッドに生成するように構成された、第2の生成モジュール、をさらに含む、
    請求項12から15のいずれか一項に記載のシステム。
  21. 前記ウインドウ管理モジュールは、エンプティオーナを有する1つ以上のトップレベルウインドウとして、前記マルチタブアプリケーションプログラムにおける各タブに対応する1つ以上のページウインドウを生成するようにさらに構成される、請求項12から15のいずれか一項に記載のシステム。
  22. コンピュータプログラム命令がコンピュータユニットによって実行された場合、コンピュータユニットに、
    1つ以上のトップレベルウインドウとして、マルチタブアプリケーションプログラムにおける各タブに対応する1つ以上のページウインドウを生成することと、
    前記ページウインドウに関連するメッセージ対話を実行することと、を指示する、
    コンピュータプログラム命令を含むコンピュータ読み取り可能な媒体。
JP2011546578A 2009-01-23 2010-01-22 マルチタブアプリケーションにおけるメッセージ対話を実現する方法およびシステム Pending JP2012515961A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN2009100778695A CN101504658B (zh) 2009-01-23 2009-01-23 一种实现多标签应用程序中进行消息交互的方法及系统
CN200910077869.5 2009-01-23
PCT/CN2010/070326 WO2010083772A1 (zh) 2009-01-23 2010-01-22 一种实现多标签应用程序中进行消息交互的方法及系统

Publications (1)

Publication Number Publication Date
JP2012515961A true JP2012515961A (ja) 2012-07-12

Family

ID=40976904

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011546578A Pending JP2012515961A (ja) 2009-01-23 2010-01-22 マルチタブアプリケーションにおけるメッセージ対話を実現する方法およびシステム

Country Status (6)

Country Link
US (1) US8887082B2 (ja)
EP (1) EP2390796A4 (ja)
JP (1) JP2012515961A (ja)
CN (2) CN101504658B (ja)
RU (1) RU2490693C2 (ja)
WO (1) WO2010083772A1 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101504658B (zh) * 2009-01-23 2011-09-28 北京搜狗科技发展有限公司 一种实现多标签应用程序中进行消息交互的方法及系统
CN101609470B (zh) * 2009-07-02 2011-08-10 腾讯科技(深圳)有限公司 一种多页面浏览器防假死方法及装置
CN102141893B (zh) * 2011-05-11 2012-09-05 清华大学 面向大幅面交互式桌面的多用户窗口系统
US20130031490A1 (en) * 2011-07-26 2013-01-31 Microsoft Corporation On-demand tab rehydration
CN102521026A (zh) * 2011-11-30 2012-06-27 深圳市万兴软件有限公司 一种实现与iTunes交互的方法和电子设备
CN102591711B (zh) * 2011-12-29 2014-06-25 奇智软件(北京)有限公司 一种窗口防假死方法和装置
CN104035815B (zh) * 2011-12-29 2017-12-12 北京奇虎科技有限公司 一种窗口防假死方法和装置
CN103246505B (zh) * 2012-02-13 2017-11-10 腾讯科技(深圳)有限公司 一种窗体标题栏的创建方法及装置
CN103246552B (zh) * 2012-02-14 2018-03-09 腾讯科技(深圳)有限公司 防止线程出现阻塞的方法和装置
CN102915251B (zh) * 2012-03-08 2014-06-18 北京金山安全软件有限公司 一种多页面浏览器处理消息的方法和装置
CN103377228B (zh) * 2012-04-25 2016-09-07 阿里巴巴集团控股有限公司 一种用于浏览器的页面内容呈现方法及装置
CN103034695A (zh) * 2012-12-03 2013-04-10 北京奇虎科技有限公司 浏览器中进行声音控制的方法及装置
CN104899088B (zh) * 2014-03-03 2019-04-12 腾讯科技(深圳)有限公司 一种消息处理方法及装置
CN104252538B (zh) * 2014-09-22 2018-10-12 可牛网络技术(北京)有限公司 网页处理方法和装置
CN105677658B (zh) * 2014-11-19 2020-07-28 阿里巴巴集团控股有限公司 页面展现方法及装置
CN104572271B (zh) * 2015-02-04 2018-04-13 北京瑞星网安技术股份有限公司 多标签页浏览器防假死的方法和系统
CN106708613B (zh) * 2016-05-05 2019-09-17 腾讯科技(深圳)有限公司 一种输入控制灵敏度的检测方法及检测装置
CN107368357B (zh) * 2016-05-11 2020-10-09 上海高欣计算机系统有限公司 资源管理窗口的多标签显示方法及模块
US10769233B2 (en) * 2017-06-13 2020-09-08 Open Text Corporation Systems and methods for communication across multiple browser pages for an application
CN109992324B (zh) * 2017-12-29 2022-11-04 Oppo广东移动通信有限公司 应用程序冻结方法、装置、存储介质和终端
CN110781009A (zh) * 2018-07-30 2020-02-11 北京京东尚科信息技术有限公司 浏览器页面实时通信的方法及装置
US11036365B2 (en) * 2019-06-07 2021-06-15 Microsoft Technology Licensing, Llc Hang condition mitigation for browser applications
CN112446654A (zh) * 2019-08-29 2021-03-05 北京京东尚科信息技术有限公司 地图显示方法、装置、设备和存储介质
CN115344168A (zh) * 2021-05-13 2022-11-15 荣耀终端有限公司 消息展示方法、终端及计算机可读存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008536217A (ja) * 2005-04-07 2008-09-04 マイクロソフト コーポレーション タブ式ブラウザ内でタブを選択するためのシステムと方法

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6049812A (en) * 1996-11-18 2000-04-11 International Business Machines Corp. Browser and plural active URL manager for network computers
US6232971B1 (en) * 1998-09-23 2001-05-15 International Business Machines Corporation Variable modality child windows
US6489975B1 (en) * 1998-12-14 2002-12-03 International Business Machines Corporation System and method for improved navigation between open windows in an application program using window tabs
US6356908B1 (en) * 1999-07-30 2002-03-12 International Business Machines Corporation Automatic web page thumbnail generation
US6801227B2 (en) * 2001-01-16 2004-10-05 Siemens Medical Solutions Health Services Inc. System and user interface supporting user navigation and concurrent application operation
US6981223B2 (en) * 2001-03-19 2005-12-27 Ecrio, Inc. Method, apparatus and computer readable medium for multiple messaging session management with a graphical user interface
CN100433006C (zh) * 2001-03-26 2008-11-12 腾讯科技(深圳)有限公司 在浏览器的单一窗口中显示多个网页的方法和浏览系统
US20030097640A1 (en) * 2001-07-25 2003-05-22 International Business Machines Corporation System and method for creating and editing documents
WO2003040955A1 (en) 2001-11-06 2003-05-15 Farooq Khan Method and apparatus for capturing and displaying web page information
GB0203617D0 (en) * 2002-02-15 2002-04-03 Ibm Application window closure in response to event in parent window
US7177815B2 (en) * 2002-07-05 2007-02-13 At&T Corp. System and method of context-sensitive help for multi-modal dialog systems
US7487460B2 (en) * 2003-03-21 2009-02-03 Microsoft Corporation Interface for presenting data representations in a screen-area inset
US7921365B2 (en) * 2005-02-15 2011-04-05 Microsoft Corporation System and method for browsing tabbed-heterogeneous windows
US7673255B2 (en) * 2005-04-22 2010-03-02 Microsoft Corporation Interface and system for manipulating thumbnails of live windows in a window manager
US7523409B2 (en) * 2005-05-24 2009-04-21 Microsoft Corporation Methods and systems for operating multiple web pages in a single window
US20070073697A1 (en) * 2005-06-20 2007-03-29 Woods Michael E System, Method, and Computer Program Product for Internet Tool
US9195372B2 (en) * 2006-06-28 2015-11-24 Scenera Technologies, Llc Methods, systems, and computer program products for grouping tabbed portion of a display object based on content relationships and user interaction levels
US7793226B2 (en) * 2006-08-14 2010-09-07 International Business Machines Corporation Method and system for grouping and stacking tab user interface objects with icon status indicators
US8595635B2 (en) * 2007-01-25 2013-11-26 Salesforce.Com, Inc. System, method and apparatus for selecting content from web sources and posting content to web logs
CN101072263A (zh) 2007-03-30 2007-11-14 腾讯科技(深圳)有限公司 一种在网络上发起voip呼叫的方法及系统
KR100844070B1 (ko) * 2007-05-09 2008-07-07 엘지전자 주식회사 탭브라우징 이동통신 단말기 및 그 제어방법
CN100570610C (zh) * 2007-12-07 2009-12-16 腾讯科技(深圳)有限公司 多页面浏览器网页子窗口处理方法及多页面浏览器
US20090287559A1 (en) * 2007-12-20 2009-11-19 Michael Chen TabTab
CN101179474B (zh) 2007-12-21 2012-02-01 深圳市迅雷网络技术有限公司 一种下载方法、系统及装置
US20090193358A1 (en) * 2008-01-30 2009-07-30 Intuit Inc. Method and apparatus for facilitating information access during a modal operation
CN101299220A (zh) * 2008-06-24 2008-11-05 腾讯科技(深圳)有限公司 多页面浏览器窗口拆分方法、合并方法和多页面浏览器
US8631340B2 (en) * 2008-06-25 2014-01-14 Microsoft Corporation Tab management in a user interface window
US8819585B2 (en) * 2008-10-27 2014-08-26 Microsoft Corporation Child window surfacing and management
CN101504658B (zh) * 2009-01-23 2011-09-28 北京搜狗科技发展有限公司 一种实现多标签应用程序中进行消息交互的方法及系统
CN101609470B (zh) * 2009-07-02 2011-08-10 腾讯科技(深圳)有限公司 一种多页面浏览器防假死方法及装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008536217A (ja) * 2005-04-07 2008-09-04 マイクロソフト コーポレーション タブ式ブラウザ内でタブを選択するためのシステムと方法

Non-Patent Citations (8)

* Cited by examiner, † Cited by third party
Title
CSND200400454002; 山口哲弘: '基礎からわかるVisual C++ 基本操作を覚えてメニューやダイアログボックスを作る' 日経ソフトウエア 第6巻第5号, 20030424, P.38-49, 日経BP社 *
CSND200800735016; 肥後 紀子: '超速「新ブラウザ」&「グーグル地図」の驚きワザ大解説! グーグルの2大新サービスを使いつくす' ドットPC 第11巻第12号, 20081028, P.78-84, 株式会社アスキー・メディアワークス *
JPN6013011470; 山口哲弘: '基礎からわかるVisual C++ 基本操作を覚えてメニューやダイアログボックスを作る' 日経ソフトウエア 第6巻第5号, 20030424, P.38-49, 日経BP社 *
JPN6013054510; 肥後 紀子: '超速「新ブラウザ」&「グーグル地図」の驚きワザ大解説! グーグルの2大新サービスを使いつくす' ドットPC 第11巻第12号, 20081028, P.78-84, 株式会社アスキー・メディアワークス *
JPN6013054512; '秀丸エディタの紹介(Ver8.00対応版)(新タブモード)' 秀まるおのホームページ , 20131028, 有限会社サイトー企画 *
JPN6013054514; '秀丸エディタの紹介(Ver7.00対応版)(概要)' 秀まるおのホームページ , 20070411, 有限会社サイトー企画 *
JPN6013054515; '秀丸エディタの紹介(Ver7.00対応版)(高度なウィンドウ管理)' 秀まるおのホームページ , 20131028, 有限会社サイトー企画 *
JPN6013054518; '秀丸エディタの紹介(Ver7.00対応版)(便利なタブ機能)' 秀まるおのホームページ , 20131028, 有限会社サイトー企画 *

Also Published As

Publication number Publication date
WO2010083772A1 (zh) 2010-07-29
CN102356391B (zh) 2013-12-04
RU2011134656A (ru) 2013-02-27
CN101504658B (zh) 2011-09-28
CN102356391A (zh) 2012-02-15
US20110276899A1 (en) 2011-11-10
US8887082B2 (en) 2014-11-11
CN101504658A (zh) 2009-08-12
EP2390796A1 (en) 2011-11-30
EP2390796A4 (en) 2014-09-03
RU2490693C2 (ru) 2013-08-20

Similar Documents

Publication Publication Date Title
JP2012515961A (ja) マルチタブアプリケーションにおけるメッセージ対話を実現する方法およびシステム
WO2020238815A1 (zh) 显示控制方法及装置、电子设备和存储介质
US10547895B1 (en) Methods, systems, and computer program products for controlling play of media streams
US10831363B2 (en) Content manipulation using swipe gesture recognition technology
US9626079B2 (en) System and method for browsing tabbed-heterogeneous windows
RU2520361C2 (ru) Способ предотвращения ложной приостановки многостраничного браузера и соответствующее устройство
US8776078B2 (en) Method for dynamically freeing computer resources
RU2554395C2 (ru) Система и способ для выбора вкладки в браузере с вкладками
US10754489B2 (en) System and method for pinning tabs in a tabbed browser
US8661361B2 (en) Methods, systems, and computer program products for navigating between visual components
US20110252356A1 (en) Methods, systems, and computer program products for identifying an idle user interface element
US20130326430A1 (en) Optimization schemes for controlling user interfaces through gesture or touch
US20090077487A1 (en) Canceling window close commands
US20110202843A1 (en) Methods, systems, and computer program products for delaying presentation of an update to a user interface
US20130145314A1 (en) System and Method for Changeable Focus Modal Windows
US11455075B2 (en) Display method when application is exited and terminal
US11249771B2 (en) Terminal input invocation
CN112506854A (zh) 页面模板文件的存储和页面生成方法、装置、设备及介质
CN114490126A (zh) 页面处理方法、装置、电子设备和存储介质
CN115454296A (zh) 一种跨运行环境的用户行为智能融合方法
US20130304807A1 (en) Methods, systems, and computer program products for processing a non-returnable command response based on a markup element
US20120137248A1 (en) Methods, systems, and computer program products for automatically scrolling items in a selection control
US20110295932A1 (en) Methods, systems, and computer program products for processing an attached command response based on a markup element
US12019851B2 (en) Drawer page overlay for multitasking
CN116107575B (zh) 一种窗口管理器

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130312

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130313

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130612

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130619

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130709

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20131112