aboutsummaryrefslogtreecommitdiff
path: root/files/ja/mozilla/javascript_code_modules/downloads.jsm/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'files/ja/mozilla/javascript_code_modules/downloads.jsm/index.html')
-rw-r--r--files/ja/mozilla/javascript_code_modules/downloads.jsm/index.html297
1 files changed, 297 insertions, 0 deletions
diff --git a/files/ja/mozilla/javascript_code_modules/downloads.jsm/index.html b/files/ja/mozilla/javascript_code_modules/downloads.jsm/index.html
new file mode 100644
index 0000000000..f01fc476ac
--- /dev/null
+++ b/files/ja/mozilla/javascript_code_modules/downloads.jsm/index.html
@@ -0,0 +1,297 @@
+---
+title: Downloads.jsm
+slug: Mozilla/JavaScript_code_modules/Downloads.jsm
+translation_of: Mozilla/JavaScript_code_modules/Downloads.jsm
+---
+<p>{{ gecko_minversion_header("26") }}</p>
+
+<p>Downloads.jsmはダウンロードに関する機能を提供するJavaScriptモジュールです。新規にダウンロードを開始したり、ダウンロード中に制御を行ったり、ダウンロードに関連する設定を呼び出したりできます。これを使用するにはまずモジュールをインポートする必要があります。</p>
+
+<pre>Components.utils.import("resource://gre/modules/Downloads.jsm");
+</pre>
+
+<h2 id="メソッドの概要">メソッドの概要</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <td><code><a href="https://developer.mozilla.org/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise" title="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise">Promise</a>&lt;<a href="/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm/Download" title="/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm/Download">Download</a>&gt; <a href="#createDownload()">createDownload</a>(<a href="/en-US/docs/JavaScript/Reference/Global_Objects/Object" title="/en-US/docs/JavaScript/Reference/Global_Objects/Object">Object</a> aProperties);</code></td>
+ </tr>
+ <tr>
+ <td><code><a href="https://developer.mozilla.org/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise" title="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise">Promise</a>&lt;void&gt; <a href="#fetch()">fetch</a>(aSource, aTarget, [optional] <a href="/en-US/docs/JavaScript/Reference/Global_Objects/Object" title="/en-US/docs/JavaScript/Reference/Global_Objects/Object">Object</a> </code><code>aOptions);</code></td>
+ </tr>
+ <tr>
+ <td><code><a href="https://developer.mozilla.org/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise" title="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise">Promise</a>&lt;<a href="/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm/DownloadList" title="/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm/DownloadList">DownloadList</a>&gt; <a href="#getList()">getList</a>(aType);</code></td>
+ </tr>
+ <tr>
+ <td><code><a href="https://developer.mozilla.org/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise" title="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise">Promise</a>&lt;<a href="/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm/DownloadSummary" title="/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm/DownloadSummary">DownloadSummary</a>&gt; <a href="#getSummary()">getSummary</a>(aType);</code></td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="定数">定数</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <td class="header">定数</td>
+ <td class="header">説明</td>
+ </tr>
+ <tr>
+ <td><code>PUBLIC</code></td>
+ <td>Work on downloads that were not started from a private browsing window.</td>
+ </tr>
+ <tr>
+ <td><code>PRIVATE</code></td>
+ <td>Work on downloads that were started from a private browsing window.</td>
+ </tr>
+ <tr>
+ <td><code>ALL</code></td>
+ <td>Work on both <code>Downloads.PRIVATE</code> and <code>Downloads.PUBLIC</code> downloads.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="プロパティ">プロパティ</h2>
+
+<table class="standard-table" style="width: auto;">
+ <tbody>
+ <tr>
+ <td class="header">属性</td>
+ <td class="header">型</td>
+ <td class="header">説明</td>
+ </tr>
+ <tr>
+ <td><code>Error</code> <span class="inlineIndicator readOnly readOnlyInline" title="This value may not be changed.">Read only </span></td>
+ <td><a href="/en-US/docs/JavaScript/Guide/Working_with_Objects#Using_a_constructor_function" title="/en-US/docs/JavaScript/Guide/Working_with_Objects#Using_a_constructor_function"><code>Constructor</code></a></td>
+ <td>Constructor for a <a href="/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm/DownloadError" title="/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm/DownloadError"><code>DownloadError</code></a> object. When you catch an exception during a download, you can use this to verify if <code>ex instanceof Downloads.Error</code>, before reading the exception properties with the error details. Example (using <a href="/en-US/docs/Mozilla/JavaScript_code_modules/Task.jsm" title="/en-US/docs/Mozilla/JavaScript_code_modules/Task.jsm"><code>Task.jsm</code></a>):
+ <pre class="brush: js">
+try {
+ yield Downloads.fetch(sourceUri, targetFile);
+} catch (ex if ex instanceof Downloads.Error &amp;&amp; ex.becauseTargetFailed) {
+ console.log("Unable to write to the target file, ignoring the error.");
+}</pre>
+ </td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="メソッド">メソッド</h2>
+
+<h3 id="createDownload()">createDownload()</h3>
+
+<p>新しく<a href="/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm/Download" title="/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm/Download"><code>Download</code></a>オブジェクトを生成します。</p>
+
+<pre>Promise&lt;Download&gt; createDownload(
+ Object aProperties
+);
+</pre>
+
+<h5 id="パラメーター">パラメーター</h5>
+
+<dl>
+ <dt><code>aProperties</code></dt>
+ <dd>Provides the initial properties for the newly created download. This matches the serializable representation of a <code><a href="/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm/Download" title="/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm/Download">Download</a></code> object. Some of the most common properties in this object include:
+ <ul>
+ <li><code>source</code>: String containing the URI for the download source. Alternatively, may be an {{Interface("nsIURI")}}, a <a href="/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm/DownloadSource" title="/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm/DownloadSource"><code>DownloadSource</code></a> object, or an object with the following properties:
+ <ul>
+ <li><code>url</code>: String containing the URI for the download source.</li>
+ <li><code>isPrivate</code>: {{optional_inline()}} Indicates whether the download originated from a private window. If omitted, the download is public.</li>
+ <li><code>referrer</code>: {{optional_inline()}} String containing the referrer URI of the download source. Can be omitted or <code>null</code> if no referrer should be sent or the download source is not HTTP.</li>
+ </ul>
+ </li>
+ <li><code>target</code>: String containing the path of the target file. Alternatively, may be an {{Interface("nsIFile")}}, a <a href="/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm/DownloadTarget" title="/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm/DownloadTarget"><code>DownloadTarget</code></a> object, or an object with the following properties:
+ <ul>
+ <li><code>path</code>: String containing the path of the target file.</li>
+ </ul>
+ </li>
+ <li><code>saver</code>: {{optional_inline()}} String representing the class of the download operation. If omitted, defaults to "copy". Alternatively, may be the serializable representation of a <code>DownloadSaver</code> object.</li>
+ </ul>
+ </dd>
+</dl>
+
+<h5 id="Promise_resolves_to">Promise resolves to</h5>
+
+<p>新しく生成された<a href="/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm/Download" title="/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm/Download"><code>Download</code></a>オブジェクト.</p>
+
+<h3 id="fetch()">fetch()</h3>
+
+<p>ネットワーク上のデータをローカルにダウンロードします。</p>
+
+<p>この関数はダウンロードをキャンセルしたり再開するインターフェイスを提供していません。その場合は<a href="#createDownload()" title="#createDownload()"><code>createDownload()</code></a>関数を利用して<a href="/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm/Download" title="/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm/Download"><code>Download</code></a>オブジェクトを参照してください。</p>
+
+<p>ダウンロードは再開されないため、たとえダウンロードが失敗しても部分的にダウンロードデータが保存されることはありません。</p>
+
+<pre>Promise fetch(
+ aSource,
+ aTarget,
+ Object aOptions
+);
+</pre>
+
+<h5 id="パラメーター_2">パラメーター</h5>
+
+<dl>
+ <dt><code>aSource</code></dt>
+ <dd>String containing the URI for the download source. Alternatively, may be an {{Interface("nsIURI")}} or a <a href="/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm/DownloadSource" title="/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm/DownloadSource"><code>DownloadSource</code></a> object.</dd>
+ <dt><code>aTarget</code></dt>
+ <dd>String containing the path of the target file. Alternatively, may be an {{Interface("nsIFile")}} or a <a href="/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm/DownloadTarget" title="/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm/DownloadTarget"><code>DownloadTarget</code></a> object.</dd>
+ <dt><code>aOptions</code> {{optional_inline()}}</dt>
+ <dd>An optional object used to control the behavior of this function. You may pass an object with a subset of the following fields:
+ <ul>
+ <li><code>isPrivate</code>: {{optional_inline()}} Indicates whether the download originated from a private window. If omitted, the download is public.</li>
+ </ul>
+ </dd>
+</dl>
+
+<h5 id="Promise_resolves_to_2">Promise resolves to</h5>
+
+<p><code>undefined</code> when the download has finished successfully and you can access the target file.</p>
+
+<h5 id="Promise_can_be_rejected_with">Promise can be rejected with</h5>
+
+<p><a href="/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm/DownloadError" title="/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm/DownloadError"><code>DownloadError</code></a> if the download failed.</p>
+
+<h3 id="getList()">getList()</h3>
+
+<p>Retrieves the specified type of <a href="/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm/DownloadList" title="/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm/DownloadList"><code>DownloadList</code></a> object. There is one download list for each type, and this method always retrieves a reference to the same download list when called with the same argument.</p>
+
+<p>この関数を呼び出すと、ダウンロードリストが(すでにロードされている場合をのぞいて)リロードされます。</p>
+
+<pre>Promise&lt;DownloadList&gt; getList(aType);
+</pre>
+
+<h5 id="パラメーター_3">パラメーター</h5>
+
+<dl>
+ <dt><code>aType</code></dt>
+ <dd>This can be <code>Downloads.PUBLIC</code>, <code>Downloads.PRIVATE</code>, or <code>Downloads.ALL</code>. Downloads added to the <code>Downloads.PUBLIC</code> and <code>Downloads.PRIVATE</code> lists are reflected in the <code>Downloads.ALL</code> list, and downloads added to the <code>Downloads.ALL</code> list are also added to either the <code>Downloads.PUBLIC</code> or the <code>Downloads.PRIVATE</code> list based on their properties.</dd>
+</dl>
+
+<h5 id="Promise_resolves_to_3">Promise resolves to</h5>
+
+<p>The requested <a href="/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm/DownloadList" title="/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm/DownloadList"><code>DownloadList</code></a> object.</p>
+
+<h3 id="getSummary()">getSummary()</h3>
+
+<p>Retrieves the specified type of <a href="/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm/DownloadSummary" title="/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm/DownloadSummary"><code>DownloadSummary</code></a> object. There is one download summary for each type, and this method always retrieves a reference to the same download summary when called with the same argument.</p>
+
+<p>Calling this function does not cause the list of public downloads to be reloaded from the previous session. The summary will behave as if no downloads are present until the <a href="#getList()" title="#getList()"><code>getList()</code></a> method is called.</p>
+
+<pre>Promise&lt;DownloadSummary&gt; getSummary(aType);
+</pre>
+
+<h5 id="パラメーター_4">パラメーター</h5>
+
+<dl>
+ <dt><code>aType</code></dt>
+ <dd>This can be <code>Downloads.PUBLIC</code>, <code>Downloads.PRIVATE</code>, or <code>Downloads.ALL</code>.</dd>
+</dl>
+
+<h5 id="Promise_resolves_to_4">Promise resolves to</h5>
+
+<p>The requested <a href="/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm/DownloadSummary" title="/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm/DownloadSummary"><code>DownloadSummary</code></a> object.</p>
+
+<h2 id="例">例</h2>
+
+<h3 id="ローカルにダウンロードする">ローカルにダウンロードする</h3>
+
+<p>この例では、HTMLファイルをダウンロードしています。ダウンロードの進捗状況を表示したり、エラー処理は行っていません。</p>
+
+<pre class="brush: js">Components.utils.import("resource://gre/modules/Downloads.jsm");
+Components.utils.import("resource://gre/modules/osfile.jsm")
+Components.utils.import("resource://gre/modules/Task.jsm");
+
+Task.spawn(function () {
+
+ yield Downloads.fetch("http://www.mozilla.org/",
+ OS.Path.join(OS.Constants.Path.tmpDir,
+ "example-download.html"));
+
+ console.log("example-download.html has been downloaded.");
+
+}).then(null, Components.utils.reportError);
+</pre>
+
+<h3 id="ダウンロードの監視">ダウンロードの監視</h3>
+
+<p>この例では、グローバルなダウンロードリストに変化が発生するたびに、メッセージを記録しています。</p>
+
+<p>To demonstrate the logging, a new download is started while a message box is being shown. The download is stopped and removed from the list when the message box is closed, regardless of whether it has been completed or not.</p>
+
+<pre class="brush: js">Components.utils.import("resource://gre/modules/Downloads.jsm");
+Components.utils.import("resource://gre/modules/osfile.jsm")
+Components.utils.import("resource://gre/modules/Task.jsm");
+
+Task.spawn(function () {
+
+ let list = yield Downloads.getList(Downloads.ALL);
+
+ let view = {
+ onDownloadAdded: download =&gt; console.log("Added", download),
+ onDownloadChanged: download =&gt; console.log("Changed", download),
+ onDownloadRemoved: download =&gt; console.log("Removed", download)
+ };
+
+ yield list.addView(view);
+ try {
+ let download = yield Downloads.createDownload({
+ source: "http://www.mozilla.org/",
+ target: OS.Path.join(OS.Constants.Path.tmpDir, "example-download.html"),
+ });
+ list.add(download);
+ try {
+ download.start();
+ alert("Now monitoring all downloads. Close the message to stop.");
+ } finally {
+ yield list.remove(download);
+ yield download.finalize(true);
+ }
+ } finally {
+ yield list.removeView(view);
+ }
+
+}).then(null, Components.utils.reportError);
+</pre>
+
+<h2 id="Conversion_from_nsIDownloadManager">Conversion from nsIDownloadManager</h2>
+
+<p>Starting in Firefox for Desktop version 26, the {{interface("nsIDownloadManager")}} and {{interface("nsIDownload")}} interfaces are not available anymore.</p>
+
+<p>The new module works differently from the old component. In general, you should be aware of the following highlights:</p>
+
+<ul>
+ <li>There is no difference between active downloads and finished downloads. The <a href="/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm/Download" title="/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm/Download"><code>Download</code></a> object can be used without requiring direct database access.</li>
+ <li>Observer notifications (for example, <code>"dl-done"</code>) and download listeners are replaced by views on the <a href="/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm/DownloadList" title="/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm/DownloadList"><code>DownloadList</code></a> object returned by the <a href="#getList()" title="#getList()"><code>getList()</code></a> method.</li>
+ <li>Object identity replaces the use of numeric identifiers. You can use <a href="/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm/Download" title="/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm/Download"><code>Download</code></a> objects as keys in a <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set"><code>Set</code></a> or <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map"><code>Map</code></a> to associate your own state to them for the session.</li>
+ <li>There is no separate count of active downloads. If a count is needed, it should be maintained using a view on a <code>DownloadList</code>.</li>
+ <li>The <code><a href="/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm/Download#start()" title="/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm/Download#start()">start()</a></code> method can be used to restart a failed download. Handling of downloads that have been paused is also different.</li>
+</ul>
+
+<p>While some of the legacy methods and properties have an equivalent in <code>Downloads.jsm</code>, there might be subtle differences in behavior. For example, the properties that handle progress are now more detailed and don't use the special value <code>-1</code> anymore. You may see the documentation of the new methods and properties for details.</p>
+
+<h2 id="Using_it_in_a_XUL_app">Using it in a XUL app</h2>
+
+<p>In a XUL standalone application (running with XULRunner or <code>firefox --app</code>), you have to do additionnal things in order to use the new download manager. By default it is not enabled. It will be enabled when the <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=851471">bug 851471</a> will be closed. If you don't activate it, you could use Downloads.jsm, but your view will not be called by the external helper app service (when a user click on a file to download, in a web page). To enable the new download manager :</p>
+
+<ul>
+ <li>First you have to set the pref {{pref("browser.download.useJSTransfer")}} to <code>true</code>.</li>
+ <li>Then you should declare the new {{interface("nsITransfer")}} object during the startup of your app.</li>
+</ul>
+
+<pre> Components.manager.QueryInterface(Components.interfaces.nsIComponentRegistrar)
+                   .registerFactory(Components.ID("{1b4c85df-cbdd-4bb6-b04e-613caece083c}"), "", "@mozilla.org/transfer;1", null);
+
+</pre>
+
+<p> </p>
+
+<h2 id="See_also">See also</h2>
+
+<ul>
+ <li><a class="internal" href="/en-US/docs/JavaScript_code_modules/Using" title="en-US/docs/JavaScript code modules/Using JavaScript code modules">Using JavaScript code modules</a></li>
+ <li><a class="internal" href="/en-US/docs/Mozilla/JavaScript_code_modules" title="en-US/docs/Mozilla/JavaScript code modules">JavaScript code modules</a></li>
+ <li><a class="internal" href="/en-US/docs/Components.utils.import" title="en-US/docs/Components.utils.import"><code>Components.utils.import</code></a></li>
+</ul>
+
+<div id="xunlei_com_thunder_helper_plugin_d462f475-c18e-46be-bd10-327458d045bd"> </div>