From a065e04d529da1d847b5062a12c46d916408bf32 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 21:46:22 -0500 Subject: update based on https://github.com/mdn/yari/issues/2028 --- .../javaxpcom/development/index.html | 24 ---- .../index.html | 156 --------------------- .../javaxpcom/examples/index.html | 13 -- .../xpcom/language_bindings/javaxpcom/index.html | 73 ---------- .../javaxpcom/other_resources/index.html | 15 -- 5 files changed, 281 deletions(-) delete mode 100644 files/ja/mozilla/tech/xpcom/language_bindings/javaxpcom/development/index.html delete mode 100644 files/ja/mozilla/tech/xpcom/language_bindings/javaxpcom/embedding_mozilla_in_a_java_application_using_javaxpcom/index.html delete mode 100644 files/ja/mozilla/tech/xpcom/language_bindings/javaxpcom/examples/index.html delete mode 100644 files/ja/mozilla/tech/xpcom/language_bindings/javaxpcom/index.html delete mode 100644 files/ja/mozilla/tech/xpcom/language_bindings/javaxpcom/other_resources/index.html (limited to 'files/ja/mozilla/tech/xpcom/language_bindings/javaxpcom') diff --git a/files/ja/mozilla/tech/xpcom/language_bindings/javaxpcom/development/index.html b/files/ja/mozilla/tech/xpcom/language_bindings/javaxpcom/development/index.html deleted file mode 100644 index 6d9b1ca50b..0000000000 --- a/files/ja/mozilla/tech/xpcom/language_bindings/javaxpcom/development/index.html +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: Development -slug: Mozilla/Tech/XPCOM/Language_Bindings/JavaXPCOM/Development -tags: - - JavaXPCOM - - 'XPCOM:Language Bindings' -translation_of: Mozilla/Tech/XPCOM/Language_bindings/JavaXPCOM/Development ---- -

-

-

ソース

-

最新のソースコードは、Mozilla trunk上の {{ Source("extensions/java/xpcom") }} ディレクトリ内にあります。 -

-

構築手順

-

ビルドの手順はここにあります: Building JavaXPCOM。 -

-

バグ

-

すべての JavaXPCOM バグは、 Bugzilla内で、"Core" プロダクトと "Java to XPCOM Bridge" コンポーネントを使って記録されています。 -

- -{{ languages( { "en": "en/JavaXPCOM/Development", "zh-cn": "cn/JavaXPCOM/\u5f00\u53d1" } ) }} diff --git a/files/ja/mozilla/tech/xpcom/language_bindings/javaxpcom/embedding_mozilla_in_a_java_application_using_javaxpcom/index.html b/files/ja/mozilla/tech/xpcom/language_bindings/javaxpcom/embedding_mozilla_in_a_java_application_using_javaxpcom/index.html deleted file mode 100644 index d523b94ce1..0000000000 --- a/files/ja/mozilla/tech/xpcom/language_bindings/javaxpcom/embedding_mozilla_in_a_java_application_using_javaxpcom/index.html +++ /dev/null @@ -1,156 +0,0 @@ ---- -title: Embedding Mozilla in a Java Application using JavaXPCOM -slug: >- - Mozilla/Tech/XPCOM/Language_Bindings/JavaXPCOM/Embedding_Mozilla_in_a_Java_Application_using_JavaXPCOM -tags: - - Embedding Mozilla - - JavaXPCOM - - 'XPCOM:Language Bindings' -translation_of: Archive/Mozilla/Embedding_Mozilla_in_a_Java_Application_using_JavaXPCOM ---- -

-

XULRunnerにはJavaXPCOMが標準搭載されており、これは、JavaのコードとXPCOMの相互利用を可能にするものです。この記事で示すとおり、JavaでのXPCOMオブジェクトの操作は、C++の場合とそれほど大きな差はありません。 -

-

必要な環境

- -

組み込み

-

Mozilla を Java アプリケーションに埋め込むためには、<tt>xulrunner/sdk/lib</tt>フォルダーにある<tt>MozillaInterfaces.jar</tt>というライブラリをclasspathに追加する必要があります。このライブラリは Mozilla をブートストラップし、XPCOM メソッドを呼び出すために必要なインターフェースを提供します。 -

組み込みを開始するために、Mozilla共有クラスの提供するメソッドを使用します。はじめに、Java アプリケーションは適切な XULRunner installationを見つける必要があります。 -

-
 Mozilla mozilla = Mozilla.getInstance();
- GREVersionRange[] range = new GREVersionRange[1];
- range[0] = new GREVersionRange("1.8.0", true, "1.9", false);
-   // work with trunk nightly version 1.9a1  ^^
-
- try {
-   File grePath = Mozilla.getGREPathWithProperties(range, null);
-   LocationProvider locProvider = new LocationProvider(grePath);
-   mozilla.initEmbedding(grePath, grePath, locProvider);
- } catch (FileNotFoundException e) {
-   // この例外は greGREPathWithProperties が GRE を見つけられなかったときに送出されます
- } catch (XPCOMException e) {
-   // この例外は initEmbedding が失敗したときに送出されます
- }
-
-

LocationProviderはJavaアプリケーションによって提供されるクラスです。これはインターフェースIAppFileLocProviderを実装しているもので、 -and tells XPCOM where to find certain files and directories. -

initEmbeddingメソッドは embedding process を開始するもので、Java アプリケーションと XPCOM や Mozilla の連携を可能にするものです。ひとたび Java アプリケーションが Mozilla を使う作業を終えたとき、それは embedding process を terminate する必要があります。 -

-
 try {
-   mozilla.termEmbedding();
- } catch (XPCOMException e) {
-   // この例外は termEmbedding が失敗したときに送出されます
- }
-
-

XPCOMオブジェクトを利用する

-

Mozilla が組み込まれると、Java アプリケーションは XPCOM オブジェクトを利用することができるようになります。Mozilla クラスはこれの手助けをするメソッドを提供しており、たとえば、getServiceManagergetComponentManagernewLocalFileがあります。JavaXPCOM により、 Java アプリケーションがXPCOM オブジェクトを取得し、メソッドを呼び出すのに加え、Java クラスオブジェクトを XPCOM メソッドに渡すことも可能になります。 -

例えば: -

-
 Mozilla mozilla = Mozilla.getInstance();
- WindowCreator creator = new WindowCreator();  // nsIWindowCreator を実装
-
- nsIServiceManager serviceManager = mozilla.getServiceManager();
-
- nsIWindowWatcher windowWatcher = (nsIWindowWatcher) serviceManager
-   .getServiceManagerByContractID(NS_WINDOWWATCHER_CONTRACTID,
-     nsIWindowWatcher.NS_IWINDOWWATCHER_IID);
- windowWatcher.setWindowCreator(creator);
-
-

この例では、nsIWindowCreatorインターフェースを実装した Java のクラスであるWindowCreatorが存在し、それを Mozilla に登録しようとしています。そのために、まず service manager を取得するのですが、それは Mozilla のwindow watcherのリファレンスにある方法によります。 -

別の例: (rayh.co.ukにあるもの) -

-
     // linux 上ではこのコードが実行されるより前に gtk が初期化されている必要があることに注意
-     Mozilla moz = Mozilla.getInstance();
-
-     // 次に XUL アプリケーションを実行するために、XPCOMのservice managerのインスタンスを取得する必要がある
-     nsIServiceManager serviceManager = moz.getServiceManager();
-
-     // 次に @mozilla.org/toolkit/app-startup;1 サービスを取得する必要がある
-     nsIAppStartup appStartup = (nsIAppStartup)serviceManager.getServiceByContractID("@mozilla.org/toolkit/app-startup;1", nsIAppStartup.NS_IAPPSTARTUP_IID);
-
-     // 上のものへの nsIWindowWatcher インターフェースを取得する
-     nsIWindowCreator windowCreator = (nsIWindowCreator)appStartup.queryInterface(nsIWindowCreator.NS_IWINDOWCREATOR_IID);
-
-     // window watcher サービスを取得する
-     nsIWindowWatcher windowWatcher = (nsIWindowWatcher)serviceManager.getServiceByContractID("@mozilla.org/embedcomp/window-watcher;1", nsIWindowWatcher.NS_IWINDOWWATCHER_IID);
-
-     // window creator をsetする (from step 6)
-     windowWatcher.setWindowCreator(windowCreator);
-
-     // Create the root XUL window を作成:
-     nsIDOMWindow win = windowWatcher.openWindow(null, "chrome://your-app/content/window.xul", "mywindow", "chrome,resizable,centerscreen", null);
-
-     // これを active window にする
-     windowWatcher.setActiveWindow(win);
-
-     // application を xpcom/xul に手渡し、ここでブロックする:
-     appStartup.run();
-
-

これは動作する LocationProvider の例です : -

-
       public class LocationProvider implements IAppFileLocProvider {
-
-
       private final File libXULPath;
-       int counter = 0;
-
-       public LocationProvider(File grePath) {
-       this.libXULPath = grePath;
-       }
-
-
       public File getFile(String aProp, boolean[] aPersistent) {
-       File file = null;
-       if (aProp.equals("GreD") || aProp.equals("GreComsD")) {
-           file = libXULPath;
-           if (aProp.equals("GreComsD")) {
-               file = new File(file, "components");
-           }
-       }
-       else if (aProp.equals("MozBinD") ||
-                aProp.equals("CurProcD") ||
-                aProp.equals("ComsD") ||
-                aProp.equals("ProfD"))
-           {
-               file = libXULPath;
-               if (aProp.equals("ComsD")) {
-                   file = new File(file, "components");
-               }
-           }
-       return file;
-   }
-
-
   public File[] getFiles(String aProp) {
-       File[] files = null;
-       if (aProp.equals("APluginsDL")) {
-           files = new File[1];
-           files[0] = new File(libXULPath, "plugins");
-       }
-       return files;
-   }
-
-


-

-

XPCOM の UI を別のスレッドから呼び出す

-

appStartup.run() はメインのイベントループを始動し、アプリケーションが終了するまでそこに留まります。これ以降の場所で XPCOM とcommunicateするためには、nsIProxyObjectManager を使用する必要があります。 -

上の例に引き続き新しいウインドウを作成するためには、このようにします : -

-
 // まず、event queue service を取得します。これは、XPCOM の全てのイベントキューを処理するものです。
- nsIEventQueueService eventQueueServive = (nsIEventQueueService)serviceManager.getServiceByContractID("@mozilla.org/event-queue-service;1",nsIEventQueueService.NS_IEVENTQUEUESERVICE_IID);
-
- // 次に、ウインドウを開くために、UI スレッドを取得します。
- // nsIEventQueueService が所有するstatic変数がUIイベント用の特別なキューを所有しています。
- nsIEventQueue eventQueue = eventQueueServive.getSpecialEventQueue(nsIEventQueueService.UI_THREAD_EVENT_QUEUE);
-
- // 次に、proxy object manager 用の proxy を作成します。
- nsIProxyObjectManager proxy = (nsIProxyObjectManager)componentManager.createInstanceByContractID("@mozilla.org/xpcomproxy;1",null,nsIProxyObjectManager.NS_IPROXYOBJECTMANAGER_IID);
-
- // そして、proxy object manager を使って、さきほど作成した nsIWindowWatcher のインスタンスへの proxy を作成します。
- nsIWindowWatcher windowProxy = (nsIWindowWatcher)proxy.getProxyForObject(eventQueue,windowWatcher.NS_IWINDOWWATCHER_IID,windowWatcher,nsIProxyObjectManager.INVOKE_SYNC);
-
- // そうすれば、proxy を使ってメソッドを普通に呼び出すことができます。
- windowProxy.openWindow(null, chromeUri, name, "centerscreen", null);
-
-

さらに詳しい情報は、XulPlanet's documentation of nsIProxyObjectManagerを参照してください。 -

これは、Injecting Events onto XPCOM’s UI Threadからとられたものです。 -

diff --git a/files/ja/mozilla/tech/xpcom/language_bindings/javaxpcom/examples/index.html b/files/ja/mozilla/tech/xpcom/language_bindings/javaxpcom/examples/index.html deleted file mode 100644 index 9c34d27c84..0000000000 --- a/files/ja/mozilla/tech/xpcom/language_bindings/javaxpcom/examples/index.html +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: Examples -slug: Mozilla/Tech/XPCOM/Language_Bindings/JavaXPCOM/Examples -tags: - - JavaXPCOM - - 'XPCOM:Language Bindings' -translation_of: Mozilla/Tech/XPCOM/Language_bindings/JavaXPCOM/Examples ---- -

-

いくつかの Java テストアプリケーションがソースツリーにチェックインされています。ここには、Java から Gecko の埋め込みや XPCOM の初期化をする方法の例があります。mozilla/extensions/java/xpcom/tests -

-
-
diff --git a/files/ja/mozilla/tech/xpcom/language_bindings/javaxpcom/index.html b/files/ja/mozilla/tech/xpcom/language_bindings/javaxpcom/index.html deleted file mode 100644 index c2707f8de0..0000000000 --- a/files/ja/mozilla/tech/xpcom/language_bindings/javaxpcom/index.html +++ /dev/null @@ -1,73 +0,0 @@ ---- -title: JavaXPCOM -slug: Mozilla/Tech/XPCOM/Language_Bindings/JavaXPCOM -tags: - - JavaXPCOM - - 'XPCOM:Language Bindings' - - 要更新 -translation_of: Mozilla/Tech/XPCOM/Language_bindings/JavaXPCOM ---- -

 

-
-

JavaXPCOM は Java と XPCOM のコミュニケーションを可能にします。つまり、Java アプリケーションは、XPCOM オブジェクトにアクセスでき、XPCOM オブジェクトも XPCOM インターフェースを実装するすべての Java class にアクセスできます。 JavaXPCOM を使うことで、開発者は Java アプリケーションから XPCOM や埋め込み Gecko にデータを伝送することができます。 JavaXPCOM は XPConnect (JavaScript-XPCOM ブリッジ) に非常によく似ていて XPIDL を使用します。

-

JavaXPCOM は XULRunner の一部として標準で構築されています。 最近のビルドまたは XULRunner 1.8.0.4 をダウンロードして試してみてください。

-
- - - - - - - -
-

ドキュメンテーション

-
-
- JavaXPCOM Development
-
- ソースの取得・構築方法、それから読み方・バグの報告の方法。
-
-
-
- サンプルコード
-
- いくつかの Java テストアプリケーションがソースツリーにチェックインされており、Java から Gecko の埋め込みや XPCOM を初期化する方法の例があります。
-
-
-
- JavaXPCOM を使って Java アプリケーションへ Mozilla を組み込む
-
- XULRunner には JavaXPCOM が標準搭載されており、これは、Java のコードと XPCOM の相互利用を可能にするものです。この記事で示すとおり、Java での XPCOM オブジェクトの操作は C++ の場合とそれほど大きな差はありません。
-
-

すべて見る...

-
-

コミュニティ

-
    -
  • Mozilla Java フォーラムを見る...
  • -
- -
    -
  • Mozilla Embedding フォーラムを見る...
  • -
- - -

関連項目

-
-
- XPCOM, Embedding Mozilla
-
-
diff --git a/files/ja/mozilla/tech/xpcom/language_bindings/javaxpcom/other_resources/index.html b/files/ja/mozilla/tech/xpcom/language_bindings/javaxpcom/other_resources/index.html deleted file mode 100644 index 14a9eb1ee0..0000000000 --- a/files/ja/mozilla/tech/xpcom/language_bindings/javaxpcom/other_resources/index.html +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: その他の情報源 -slug: Mozilla/Tech/XPCOM/Language_Bindings/JavaXPCOM/Other_Resources -tags: - - JavaXPCOM - - 'XPCOM:Language Bindings' -translation_of: Mozilla/Tech/XPCOM/Language_bindings/JavaXPCOM/Other_Resources ---- -

その他の情報源

- -- cgit v1.2.3-54-g00ecf