aboutsummaryrefslogtreecommitdiff
path: root/files/ja/mozilla/firefox/multiprocess_firefox
diff options
context:
space:
mode:
Diffstat (limited to 'files/ja/mozilla/firefox/multiprocess_firefox')
-rw-r--r--files/ja/mozilla/firefox/multiprocess_firefox/index.html75
-rw-r--r--files/ja/mozilla/firefox/multiprocess_firefox/message_manager/index.html71
-rw-r--r--files/ja/mozilla/firefox/multiprocess_firefox/message_manager/message_manager_overview/index.html444
-rw-r--r--files/ja/mozilla/firefox/multiprocess_firefox/web_content_compatibility/index.html28
-rw-r--r--files/ja/mozilla/firefox/multiprocess_firefox/which_uris_load_where/index.html61
-rw-r--r--files/ja/mozilla/firefox/multiprocess_firefox/目的/index.html44
6 files changed, 0 insertions, 723 deletions
diff --git a/files/ja/mozilla/firefox/multiprocess_firefox/index.html b/files/ja/mozilla/firefox/multiprocess_firefox/index.html
deleted file mode 100644
index 3adde0c9b6..0000000000
--- a/files/ja/mozilla/firefox/multiprocess_firefox/index.html
+++ /dev/null
@@ -1,75 +0,0 @@
----
-title: マルチプロセス Firefox
-slug: Mozilla/Firefox/Multiprocess_Firefox
-translation_of: Mozilla/Firefox/Multiprocess_Firefox
----
-<p>現バージョンのデスクトップ版 Firefox は、オペレーティングシステムにおけるプロセス 1 つでブラウザ全体を実行しています。特に、ブラウザ UI (別名 "chrome code") の JavaScript を実行するプロセスと Web ページ (別名 "content" または "web content") のコードを実行するプロセスが同じです。<br>
- <br>
- 将来のバージョンの Firefox は、ブラウザ UI のプロセスと web content のプロセスを分離します。このアーキテクチャの第 1 段階では、すべてのブラウザタブを同一のプロセスで実行して、ブラウザ UI を別のプロセスで実行する予定です。また将来の段階で、複数の content プロセスを持つようにする予定です。マルチプロセス Firefox を提供するプロジェクトは Electrolysis と呼ばれ、e10s と略されることがあります。</p>
-
-<p>一般的な Web ページは、マルチプロセス Firefox の影響を受けません。Firefox そのものや Firefox アドオンの開発に携わる人々は、web content に直接アクセスできる機能に依存するコードを使用している場合に影響を受けます。</p>
-
-<p>content へ直接アクセスせずに、chrome JavaScript では <a href="/ja/Firefox/Multiprocess_Firefox/Message_manager">メッセージマネージャ</a> を使用して content にアクセスしなければなりません。容易に移行できるようにするため、<a href="/ja/Firefox/Multiprocess_Firefox/Cross_Process_Object_Wrappers">クロスプロセスオブジェクトラッパー</a>や<a href="/ja/Firefox/Multiprocess_Firefox/Limitations_of_chrome_scripts#Compatibility_shims">アドオン開発者向けの互換性 shim</a> を実装しました。あなたがアドオン開発者で影響を受けるかがわからない場合は、<a href="/ja/Add-ons/Working_with_multiprocess_Firefox">マルチプロセス Firefox を扱うためのガイド</a>をご覧ください。</p>
-
-<p>現在マルチプロセス Firefox は <a class="external external-icon" href="https://www.mozilla.org/firefox/developer/">Firefox Developer Edition</a> で、既定で有効です。</p>
-
-<hr>
-<div class="column-container">
-<div class="column-half">
-<dl>
- <dt><a href="/ja/Firefox/Multiprocess_Firefox/Technical_overview">技術概要</a></dt>
- <dd>マルチプロセス Firefox がどのように実装されているかを、高レベルから概観します。</dd>
- <dt><a href="/ja/Firefox/Multiprocess_Firefox/Glossary">用語</a></dt>
- <dd>マルチプロセス Firefox で使用する用語のリファレンスです。</dd>
- <dt><a href="/ja/Firefox/Multiprocess_Firefox/Message_Manager">メッセージマネージャ</a></dt>
- <dd>chrome と content の間の通信に使用するオブジェクトのガイドです。</dd>
- <dt><a href="/ja/Mozilla/Add-ons/SDK/Guides/Multiprocess_Firefox_and_the_SDK">SDK ベースのアドオン</a></dt>
- <dd>Add-on SDK を使用して開発したアドオンのマイグレーション方法です。</dd>
- <dt><a href="/ja/Firefox/Multiprocess_Firefox/Which_URIs_load_where">URI ごとの読み込み先</a></dt>
- <dd>どの URI (chrome:、about:、file:、resource:) がどのプロセスに読み込まれるかのクイックガイドです。</dd>
-</dl>
-</div>
-
-<div class="column-half">
-<dl>
- <dt><a href="/ja/Firefox/Multiprocess_Firefox/Motivation">マルチプロセス化を行う理由</a></dt>
- <dd>なぜマルチプロセス Firefox を実装するか? その答えはパフォーマンス、セキュリティ、安定性です。</dd>
- <dt><a href="/ja/Add-ons/Working_with_multiprocess_Firefox">アドオンのマイグレーションガイド</a></dt>
- <dd>あなたがアドオン開発者でしたら、アドオンが影響を受けるかを突き止めてコードの更新方法を確認してください。</dd>
- <dt><a href="/ja/Firefox/Multiprocess_Firefox/Cross_Process_Object_Wrappers">クロスプロセスオブジェクトラッパー</a></dt>
- <dd>クロスプロセスオブジェクトラッパーは、chrome code が同期的に content にアクセスする機能を提供する、マイグレーション支援措置です。</dd>
- <dt><a href="/ja/Firefox/Multiprocess_Firefox/Debugging_frame_scripts">content プロセスのデバッグ</a></dt>
- <dd>frame やプロセスのスクリプトを含む、content プロセスで実行しているコードをデバッグする方法です。</dd>
- <dt><a href="https://developer.mozilla.org/docs/Mozilla/Firefox/Multiprocess_Firefox/Tab_selection_in_multiprocess_Firefox">マルチプロセス化された Firefox におけるタブの選択方法</a></dt>
- <dd>マルチプロセス化された Firefox ではタブの選択方法が異なります。</dd>
-</dl>
-</div>
-</div>
-
-<hr>
-<div class="column-container">
-<div class="column-half">
-<dl>
- <dt><a href="/ja/Firefox/Multiprocess_Firefox/Limitations_of_chrome_scripts">chrome スクリプトの制限</a></dt>
- <dd>chrome code で実施できなくなることと、その修正方法の実例です。</dd>
-</dl>
-</div>
-
-<div class="column-half">
-<dl>
- <dt><a href="/ja/Firefox/Multiprocess_Firefox/Limitations_of_frame_scripts">frame スクリプトの制限</a></dt>
- <dd>frame スクリプトで実施できなくなることと、その代替手段の実例です。</dd>
-</dl>
-</div>
-</div>
-
-<hr>
-<h2 id="Contact_us" name="Contact_us">問い合わせ先</h2>
-
-<p>プロジェクトについて詳しく知り、参加するか疑問点を尋ねてください。</p>
-
-<ul>
- <li><strong>Electrolysis プロジェクトのページ</strong>: <a href="https://wiki.mozilla.org/Electrolysis">https://wiki.mozilla.org/Electrolysis</a></li>
- <li><strong>IRC</strong>: <a href="https://wiki.mozilla.org/IRC">irc.mozilla.org</a> の #e10s</li>
- <li><strong>メーリングリスト</strong>: <a href="https://groups.google.com/forum/#!forum/mozilla.dev.tech.electrolysis">dev.tech.electrolysis</a></li>
-</ul>
diff --git a/files/ja/mozilla/firefox/multiprocess_firefox/message_manager/index.html b/files/ja/mozilla/firefox/multiprocess_firefox/message_manager/index.html
deleted file mode 100644
index 869474d44f..0000000000
--- a/files/ja/mozilla/firefox/multiprocess_firefox/message_manager/index.html
+++ /dev/null
@@ -1,71 +0,0 @@
----
-title: Message manager
-slug: Mozilla/Firefox/Multiprocess_Firefox/Message_Manager
-tags:
- - NeedsTranslation
- - TopicStub
-translation_of: Mozilla/Firefox/Multiprocess_Firefox/Message_Manager
----
-<p>Message managers provide a way for chrome-privileged JavaScript code to communicate across process boundaries. They are particularly useful for allowing chrome code, including the browser's own code and extension code, to access web content when the browser is running web content in a separate process.</p>
-
-<p>These guides explain how to use message managers in multiprocess Firefox.</p>
-
-<p>Note that none of this requires multiprocess Firefox: everything described here will work with single-process Firefox, so the same code will work in both variants.</p>
-
-<hr>
-<h2 id="Guides">Guides</h2>
-
-<div class="column-container">
-<div class="column-half">
-<dl>
- <dt><a href="/en-US/Firefox/Multiprocess_Firefox/Message_Manager/Message_manager_overview">Message manager overview</a></dt>
- <dd> </dd>
- <dt><a href="/en-US/Firefox/Multiprocess_Firefox/Message_Manager/Frame_script_loading_and_lifetime">Frame script loading and lifetime</a></dt>
- <dd> </dd>
- <dt><a href="/en-US/Firefox/Multiprocess_Firefox/Message_Manager/Communicating_with_frame_scripts">Communicating with frame scripts</a></dt>
- <dd> </dd>
- <dt><a href="/en-US/Firefox/Multiprocess_Firefox/Message_Manager/Performance">Performance Best Practices</a></dt>
- <dd> </dd>
-</dl>
-</div>
-
-<div class="column-half">
-<dl>
- <dt><a href="/en-US/Firefox/Multiprocess_Firefox/Message_Manager/Frame_script_environment">Frame script environment</a></dt>
- <dd> </dd>
- <dt><a href="/en-US/Firefox/Multiprocess_Firefox/Message_Manager/_Limitations_of_frame_scripts">Limitations of frame scripts</a></dt>
- <dd> </dd>
- <dt><a href="/en-US/Firefox/Multiprocess_Firefox/Message_Manager/Process_scripts">Process scripts</a></dt>
- <dd> </dd>
-</dl>
-</div>
-</div>
-
-<hr>
-<h2 id="API_reference">API reference</h2>
-
-<div class="column-container">
-<div class="column-half">
-<dl>
- <dt><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIFrameScriptLoader">nsIFrameScriptLoader</a></dt>
- <dd> </dd>
- <dt><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIMessageListenerManager">nsIMessageListenerManager</a></dt>
- <dd> </dd>
- <dt><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIMessageBroadcaster">nsIMessageBroadcaster</a></dt>
- <dd> </dd>
- <dt><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIMessageSender">nsIMessageSender</a></dt>
- <dd> </dd>
-</dl>
-</div>
-
-<div class="column-half">
-<dl>
- <dt><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsISyncMessageSender">nsISyncMessageSender</a></dt>
- <dd> </dd>
- <dt><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIContentFrameMessageManager">nsIContentFrameMessageManager</a></dt>
- <dd> </dd>
- <dt><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIProcessScriptLoader">nsIProcessScriptLoader</a></dt>
- <dd> </dd>
-</dl>
-</div>
-</div>
diff --git a/files/ja/mozilla/firefox/multiprocess_firefox/message_manager/message_manager_overview/index.html b/files/ja/mozilla/firefox/multiprocess_firefox/message_manager/message_manager_overview/index.html
deleted file mode 100644
index 5e00266603..0000000000
--- a/files/ja/mozilla/firefox/multiprocess_firefox/message_manager/message_manager_overview/index.html
+++ /dev/null
@@ -1,444 +0,0 @@
----
-title: Message manager overview
-slug: Mozilla/Firefox/Multiprocess_Firefox/Message_Manager/Message_manager_overview
-translation_of: Mozilla/Firefox/Multiprocess_Firefox/Message_Manager/Message_manager_overview
----
-<div class="summary">
-<p>マルチプロセスの Firefo では 2 つのプロセスが存在します。</p>
-
-<ul>
- <li>Chrome プロセスまたは親プロセスと呼ばれるもので、ブラウザ UI(chrome) コードと拡張によって挿入されたコードが動いています。</li>
- <li>コンテンツプロセスまたは子プロセスと呼ばれます。Web コンテンツのすべてが動いています。近い将来のマルチプロセス Firefo のバージョンでは、それぞれのタブが個別のプロセスで動作するようになりますが、現在はすべてのコンテンツタブが 1 つのコンテンツプロセスを共有している状況です。</li>
-</ul>
-
-<p>Message manager はあるプロセス上の chrome 権限 JavaScript がほかのプロセス上の Chrome 権限 JavaScript と通信することを可能にします。</p>
-
-<p>この記事では種類の違う message manager の説明、アクセス方法、使いどころの説明をします。</p>
-</div>
-
-<p>トップレベルにおいて、2つの違う種類の message manager が存在します。</p>
-
-<ul>
- <li><em>Frame message managers:</em>コンテンツタブにロードされた iframe にロードされた chrome プロセスコードを有効にします。(現在は 1 つのブラウザタブ) それは<em> frame scripts</em> と呼ばれ、 その名の通り、ブラウザ内の特定のフレームにスコープされます。もし chrome コードを子プロセスで動作して、Web コンテンツにアクセスしたい場合は、一般的にこの種の message manager を使います。</li>
- <li><em>Process message managers: </em>プロセスの境界を越え、親(chrome) プロセスで動作しているコードが子(コンテンツ)プロセスで動作するコードと通信することを可能にします。これが子プロセスにおいてはグローバルである事を除いては、frame scripts に似ています。Process scripts は <a href="/en/docs/Observer_Notifications">observer</a> や <a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIContentPolicy">content policy</a> のグローバルサービスにアクセスするように、エクステンションがコンテンツプロセスで限られたコードを実行する場合と使い方が似ています。</li>
-</ul>
-
-<h2 id="Frame_message_managers">Frame message managers</h2>
-
-<p>マルチプロセスの Firefo では、chrome コードが Web コンテンツにアクセスする必要が出た時に、以下のように使います。</p>
-
-<ul>
- <li>factor the code that needs direct access to content into separate scripts, which are called "frame scripts"</li>
- <li>use a frame message manager to load these frame scripts into the content process</li>
- <li>use the frame message manager API to communicate with the frame script</li>
-</ul>
-
-<div class="note">
-<p>Some older articles on multiprocess Firefox and the message manager might refer to "content scripts" instead of "frame scripts", but this usage is deprecated because the Add-on SDK uses "content script" to refer to a <a href="https://developer.mozilla.org/en-US/Add-ons/SDK/Guides/Content_Scripts">similar but different kind of script</a>.</p>
-</div>
-
-<p>So fundamentally, frame message managers enable chrome code to:</p>
-
-<ul>
- <li>load a script into a frame (essentially, a single browser tab) in the content process. These scripts are called "frame scripts".</li>
- <li>communicate with frame scripts using message-passing APIs</li>
-</ul>
-
-<p>There are various types of frame message managers, as depicted in this diagram:</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/10795/frame-message-managers.png" style="display: block; height: 596px; margin-left: auto; margin-right: auto; width: 737px;"></p>
-
-<p>This diagram shows the setup when there are 2 browser windows open, one with 2 tabs open and one with 1 tab open.</p>
-
-<h3 id="Chrome_process">Chrome process</h3>
-
-<p>In the chrome process, there's a hierarchy of frame message managers: the global frame message manager, window message managers, and browser message managers.</p>
-
-<h4 id="Global_frame_message_manager">Global frame message manager</h4>
-
-<table class="fullwidth-table standard-table">
- <tbody>
- <tr>
- <td style="width: 20%;">Description</td>
- <td>
- <p>There's a single <em>global frame message manager</em> in the chrome process.</p>
-
- <p>This operates on all frames, in all content tabs. If you load a frame script using the global frame message manager, the script gets loaded separately into every open tab: three times, in the diagram above. Similarly, if you send a message using the global frame message manager, it's received by all content tabs, and is then delivered to any frame scripts that are listening for it.</p>
-
- <p>Its most important functions and attributes are:</p>
-
- <p><code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIMessageBroadcaster#childCount">childCount</a></code> : contains the number of children (typically, browser windows)</p>
-
- <p><code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIMessageBroadcaster#getChildAt()">getChildAt()</a></code> : get the child at the given index</p>
-
- <p><code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIFrameScriptLoader#loadFrameScript()">loadFrameScript()</a></code> : load a frame script into every tab in the browser</p>
-
- <p><code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIMessageBroadcaster#broadcastAsyncMessage()">broadcastAsyncMessage()</a></code> : send a message to frame scripts</p>
-
- <p><code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIMessageListenerManager#addMessageListener()">addMessageListener()</a></code> : start listening to a specific message from all frame scripts</p>
-
- <p><code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIMessageListenerManager#removeMessageListener()">removeMessageListener()</a></code> : stop listening to a specific message</p>
- </td>
- </tr>
- <tr>
- <td>Interfaces</td>
- <td>
- <p><code><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIFrameScriptLoader" title="">nsIFrameScriptLoader</a></code></p>
-
- <p><code><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIMessageListenerManager" title="">nsIMessageListenerManager</a></code></p>
-
- <p><code><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIMessageBroadcaster" title="">nsIMessageBroadcaster</a></code></p>
- </td>
- </tr>
- <tr>
- <td>How to access</td>
- <td>
- <p>Access it using <code><a href="/en-US/docs/Components.classes">Components.classes</a></code>:</p>
-
- <pre class="brush: js language-js">
-// chrome script
-let globalMM = Cc["@mozilla.org/globalmessagemanager;1"]
- .getService(Ci.nsIMessageListenerManager);</pre>
-
- <p>You can also access it as the <code>mm</code> property of <a href="/en-US/docs/Mozilla/JavaScript_code_modules/Services.jsm">Services.jsm</a>, if you are in the parent process.</p>
- </td>
- </tr>
- </tbody>
-</table>
-
-<h4 id="Window_message_manager">Window message manager</h4>
-
-<table class="fullwidth-table standard-table">
- <tbody>
- <tr>
- <td style="width: 20%;">Description</td>
- <td>
- <p>There's a <em>window message manager</em> for every browser window: two, in the diagram above.</p>
-
- <p>It operates on all content tabs in a given window. If you load a frame script using the window message manager it gets loaded separately into each tab open in that particular window. If you send a message using the window message manager, it gets sent to all content tabs in that window.</p>
-
- <p>Its most important functions and attributes are:</p>
-
- <p><code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIMessageBroadcaster#childCount">childCount</a></code> : contains the number of children (typically, browser tabs)</p>
-
- <p><code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIMessageBroadcaster#getChildAt()">getChildAt()</a></code> : get the child at the given index</p>
-
- <p><code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIFrameScriptLoader#loadFrameScript()">loadFrameScript()</a></code> : load a frame script into every tab in this window</p>
-
- <p><code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIMessageBroadcaster#broadcastAsyncMessage()">broadcastAsyncMessage()</a></code> : send a message to all frame scripts in this window</p>
-
- <p><code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIMessageListenerManager#addMessageListener()">addMessageListener()</a></code> : start listening to a specific message from frame scripts</p>
-
- <p><code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIMessageListenerManager#removeMessageListener()">removeMessageListener()</a></code> : stop listening to a specific message</p>
- </td>
- </tr>
- <tr>
- <td>Interfaces</td>
- <td>
- <p><code><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIFrameScriptLoader" title="">nsIFrameScriptLoader</a></code></p>
-
- <p><code><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIMessageListenerManager" title="">nsIMessageListenerManager</a></code></p>
-
- <p><code><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIMessageBroadcaster" title="">nsIMessageBroadcaster</a></code></p>
- </td>
- </tr>
- <tr>
- <td>How to access</td>
- <td>
- <p>You can access it as a property of the browser window:</p>
-
- <pre class="brush: js">
-// chrome script
-let windowMM = window.messageManager;</pre>
- </td>
- </tr>
- </tbody>
-</table>
-
-<h4 id="Browser_message_manager">Browser message manager</h4>
-
-<div class="note">
-<p>Note that in this context, "browser" refers to the <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/browser">XUL &lt;browser&gt; object</a>, which is a frame that hosts a single Web document. It does not refer to the more general sense of a Web browser.</p>
-</div>
-
-<table class="fullwidth-table standard-table">
- <tbody>
- <tr>
- <td style="width: 20%;">Description</td>
- <td>
- <p>Finally, there's a <em>browser message manager</em> for every open content tab: three, in the diagram above.</p>
-
- <p>This corresponds one-to-one with a content tab. Scripts you load using a browser message manager are loaded only into that content tab, and messages you send are delivered only to that content tab.</p>
-
- <p>You can mix and match: so for example, you could load a script into every tab using the global message manager, but then send a message to the script instance loaded into a specific tab by using the browser message manager.</p>
-
- <p>Its most important functions are:</p>
-
- <p><code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIFrameScriptLoader#loadFrameScript()">loadFrameScript()</a></code> : load a frame script into this browser frame (tab)</p>
-
- <p><code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIMessageSender#sendAsyncMessage()">sendAsyncMessage()</a></code> : send a message to all frame scripts in this browser frame</p>
-
- <p><code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIMessageListenerManager#addMessageListener()">addMessageListener()</a></code> : start listening to a specific message from frame scripts</p>
-
- <p><code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIMessageListenerManager#removeMessageListener()">removeMessageListener()</a></code> : stop listening to a specific message</p>
- </td>
- </tr>
- <tr>
- <td>Interfaces</td>
- <td>
- <p><code>nsIProcessChecker</code></p>
-
- <p><code><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIFrameScriptLoader">nsIFrameScriptLoader</a></code></p>
-
- <p><code><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIMessageListenerManager">nsIMessageListenerManager</a></code></p>
-
- <p><code><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIMessageSender">nsIMessageSender</a></code></p>
- </td>
- </tr>
- <tr>
- <td>How to access</td>
- <td>
- <p>The browser message manager can be accessed as a property of the XUL <code>&lt;browser&gt;</code> element:</p>
-
- <pre class="brush: js">
-// chrome script
-let browserMM = gBrowser.selectedBrowser.messageManager;</pre>
- </td>
- </tr>
- </tbody>
-</table>
-
-<h3 id="Content_process">Content process</h3>
-
-<h4 id="Content_frame_message_manager">Content frame message manager</h4>
-
-<table class="fullwidth-table standard-table">
- <tbody>
- <tr>
- <td style="width: 20%;">Description</td>
- <td>
- <p>There's a <em>content frame message manager</em> for every open tab. It's the content-side end of frame message manager conversations.</p>
-
- <p>Frame scripts are loaded into the content frame message manager scope, and messages from chrome message managers end up here.</p>
-
- <p>The content frame message manager provides the <a href="/en-US/Firefox/Multiprocess_Firefox/Frame_script_environment">global object for frame scripts</a> (but note that there is trickery to ensure that top-level variables defined by frame scripts are not shared).</p>
-
- <p>Frame scripts can use this object to send messages to the chrome process, and to receive messages from the chrome process.</p>
-
- <p>Its most important attributes and functions are:</p>
-
- <p><code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIContentFrameMessageManager#content">content</a></code> : access the DOM window hosted by the tab</p>
-
- <p><code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIContentFrameMessageManager#docShell">docShell</a></code> : access the top-level docshell</p>
-
- <p><code><a href="/en-US/docs/Components_object">Components</a></code> : access privileged objects and APIs</p>
-
- <p><code><a href="/en-US/docs/Web/API/EventTarget/addEventListener">addEventListener()</a></code> : listen to DOM events</p>
-
- <p><code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIMessageListenerManager#addMessageListener()">addMessageListener()</a></code> : receive messages from the chrome process</p>
-
- <p><code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIMessageSender#sendAsyncMessage()">sendAsyncMessage()</a></code> : send asynchronous messages to the chrome process</p>
-
- <p><code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsISyncMessageSender#sendSyncMessage()">sendSyncMessage()</a></code> : send synchronous messages to the chrome process</p>
- </td>
- </tr>
- <tr>
- <td>Interfaces</td>
- <td>
- <p><code><a href="https://developer.mozilla.org/en-US/docs/XPCOM_Interface_Reference/nsIDOMEventTarget">nsIDOMEventTarget</a></code></p>
-
- <p><code><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIMessageListenerManager">nsIMessageListenerManager</a></code></p>
-
- <p><code><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIMessageSender">nsIMessageSender</a></code></p>
-
- <p><code><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsISyncMessageSender">nsISyncMessageSender</a></code></p>
-
- <p><code><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIContentFrameMessageManager">nsIContentFrameMessageManager</a></code></p>
- </td>
- </tr>
- <tr>
- <td>How to access</td>
- <td>The content frame message manager is the global object in frame scripts.</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Process_message_managers">Process message managers</h2>
-
-<p>Process message managers はプロセス境界を越え、異なるプロセスと通信することを可能にします。マルチプロセスの Firefo のコンセプトは次の通り。</p>
-
-<ul>
- <li>"親プロセス"</li>
- <li>"子プロセス" は親プロセスによって生成されたプロセス</li>
-</ul>
-
-<p>実用的な目的で、マルチプロセスの Firefo の親プロセスは chrome プロセスで、子プロセスは コンテンツプロセスです。</p>
-
-<p>各子プロセスは、single <em>child process message manager</em> (CPMM) を持ちます。それに加え、親プロエスでは <em>child-in-process message manager</em> (CIPMM) をもっています。</p>
-
-<p>各子プロセスの message manager は、親プロセスに対応する <em>parent process message manager</em> (PPMM) を持っています。</p>
-
-<p>親プロセスには 1つの <em>global parent process message manager</em> (GPPMM) をもっており、それがすべての親プロセスの message manager に対するアクセスを提供します。2 つの子プロセスを持つと以下の図のように構築されます。</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/10799/process-message-managers.png" style="display: block; height: 477px; margin-left: auto; margin-right: auto; width: 477px;"></p>
-
-<p>GPPMM を使って、CIPMM とすべての CPMM にブロードキャストすることができます。PPMM は対応する CPMM にだけメッセージを送信できます。CPMM では親プロセスにメッセージを送信できます。まず初めに対応する PPMM が受信でき、次に GPPMM が受信します。<br>
- <br>
- From Firefox 38 onwards, you can also use a parent process message manager to load a script into a child process. This is the recommended way to load a script that executes just once per child process, which is something you might want to do if you are interacting with some global service (for example, adding listeners to observer notifications or registering a content policy).</p>
-
-<h3 id="Parent_process">Parent process</h3>
-
-<h4 id="Global_parent_process_message_manager">Global parent process message manager</h4>
-
-<table class="fullwidth-table standard-table">
- <tbody>
- <tr>
- <td style="width: 20%;">Description</td>
- <td>
- <p>The global parent process message manager (GPPMM) is global to the parent process.</p>
-
- <ul>
- <li>Messages sent using the GPPMM get sent to all CPMMs in all child processes.</li>
- <li>Process scripts loaded using the GPPMM get loaded in all child processes.</li>
- </ul>
-
- <p>Its most important functions and attributes are:</p>
-
- <p><code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIMessageBroadcaster#childCount">childCount</a></code> : contains the number of children (child processes, plus the in-content child)</p>
-
- <p><code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIMessageBroadcaster#getChildAt()">getChildAt()</a></code> : get the child at the given index</p>
-
- <p><code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIProcessScriptLoader#loadProcessScript()">loadProcessScript()</a></code> : load a process script into every content process</p>
-
- <p><code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIMessageBroadcaster#broadcastAsyncMessage()">broadcastAsyncMessage()</a></code> : send a message to all process scripts</p>
-
- <p><code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIMessageListenerManager#addMessageListener()">addMessageListener()</a></code> : start listening to a specific message from process scripts</p>
-
- <p><code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIMessageListenerManager#removeMessageListener()">removeMessageListener()</a></code> : stop listening to a specific message</p>
- </td>
- </tr>
- <tr>
- <td>Interfaces</td>
- <td>
- <p><code><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIProcessScriptLoader">nsIProcessScriptLoader</a></code></p>
-
- <p><code><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIMessageListenerManager" title="">nsIMessageListenerManager</a></code></p>
-
- <p><code><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIMessageBroadcaster" title="">nsIMessageBroadcaster</a></code></p>
- </td>
- </tr>
- <tr>
- <td>How to access</td>
- <td>
- <p>You can access the GPPMM with code like this:</p>
-
- <pre class="brush: js">
-// parent process
-let ppmm = Cc["@mozilla.org/parentprocessmessagemanager;1"]
- .getService(Ci.nsIMessageBroadcaster);</pre>
-
- <p>You can also access it as the <code>ppmm</code> property of <a href="/en-US/docs/Mozilla/JavaScript_code_modules/Services.jsm">Services.jsm</a>, if you are in the parent process.</p>
- </td>
- </tr>
- </tbody>
-</table>
-
-<h4 id="Parent_process_message_manager">Parent process message manager</h4>
-
-<table class="fullwidth-table standard-table">
- <tbody>
- <tr>
- <td style="width: 20%;">Description</td>
- <td>
- <p>There's one parent process message manager (PPMM) in the parent process for every child process, and its API is oriented to that one child process.</p>
-
- <ul>
- <li>Messages sent using the PPMM are received only by the corresponding CPMM</li>
- <li>Scripts loaded using the PPMM are loaded only into the corresponding child process.</li>
- </ul>
-
- <p>Its most important functions are:</p>
-
- <p><code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIProcessScriptLoader#loadProcessScript()">loadProcessScript()</a></code> : load a process script into the content process</p>
-
- <p><code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIMessageBroadcaster#broadcastAsyncMessage()">broadcastAsyncMessage()</a></code> : send a message to process scripts</p>
-
- <p><code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIMessageListenerManager#addMessageListener()">addMessageListener()</a></code> : start listening to a specific message from process scripts</p>
-
- <p><code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIMessageListenerManager#removeMessageListener()">removeMessageListener()</a></code> : stop listening to a specific message</p>
- </td>
- </tr>
- <tr>
- <td>Interfaces</td>
- <td>
- <p><code>nsIProcessChecker</code></p>
-
- <p><code><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIProcessScriptLoader">nsIProcessScriptLoader</a></code></p>
-
- <p><code><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIMessageListenerManager">nsIMessageListenerManager</a></code></p>
-
- <p><code><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIMessageSender">nsIMessageSender</a></code></p>
- </td>
- </tr>
- <tr>
- <td>How to access</td>
- <td>
- <p>You can access a PPMM using the <code>getChildAt()</code> function in the GPPMM:</p>
-
- <pre class="brush: js">
-// parent process
-let ppmm = Services.ppmm.getChildAt(1);</pre>
- </td>
- </tr>
- </tbody>
-</table>
-
-<h3 id="Child_process">Child process</h3>
-
-<h4 id="Child_process_message_manager">Child process message manager</h4>
-
-<table class="fullwidth-table standard-table">
- <tbody>
- <tr>
- <td style="width: 20%;">Description</td>
- <td>
- <p>There's one child process message manager (CPMM) in each child process. Messages sent using the CPMM are sent to the corresponding PPMM and are also relayed to the GPPMM.</p>
-
- <p>Its most important attributes and functions are:</p>
-
- <p><code><a href="/en-US/docs/Components_object">Components</a></code> : access privileged objects and APIs</p>
-
- <p><code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIMessageListenerManager#addMessageListener()">addMessageListener()</a></code> : receive messages from the parent process</p>
-
- <p><code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIMessageSender#sendAsyncMessage()">sendAsyncMessage()</a></code> : send asynchronous messages to the parent process</p>
-
- <p><code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsISyncMessageSender#sendSyncMessage()">sendSyncMessage()</a></code> : send synchronous messages to the parent process</p>
- </td>
- </tr>
- <tr>
- <td>Interfaces</td>
- <td>
- <p><code><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIMessageListenerManager">nsIMessageListenerManager</a></code></p>
-
- <p><code><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIMessageSender">nsIMessageSender</a></code></p>
-
- <p><code><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsISyncMessageSender">nsISyncMessageSender</a></code></p>
-
- <p><code>nsIContentProcessMessageManager</code></p>
- </td>
- </tr>
- <tr>
- <td>How to access</td>
- <td>
- <p>Code running in a child process can access the CPMM with code like this:</p>
-
- <pre class="brush: js">
-// child process script
-let cpmm = Cc["@mozilla.org/childprocessmessagemanager;1"]
- .getService(Ci.nsISyncMessageSender);</pre>
-
- <p>You can also access it as the <code>cpmm</code> property of <a href="/en-US/docs/Mozilla/JavaScript_code_modules/Services.jsm">Services.jsm</a>, if you are in the child process.</p>
- </td>
- </tr>
- </tbody>
-</table>
diff --git a/files/ja/mozilla/firefox/multiprocess_firefox/web_content_compatibility/index.html b/files/ja/mozilla/firefox/multiprocess_firefox/web_content_compatibility/index.html
deleted file mode 100644
index c94bbd1737..0000000000
--- a/files/ja/mozilla/firefox/multiprocess_firefox/web_content_compatibility/index.html
+++ /dev/null
@@ -1,28 +0,0 @@
----
-title: Web コンテンツの互換性
-slug: Mozilla/Firefox/Multiprocess_Firefox/Web_content_compatibility
-translation_of: Mozilla/Firefox/Multiprocess_Firefox/Web_content_compatibility
----
-<div>{{FirefoxSidebar}}</div>
-
-<p><span class="seoSummary">Firefoxにマルチプロセス機能を導入するには、Webコンテンツにシームレスで目に見えないものが必要ですが、過去の挙動からの例外や微妙な変更があります。 この資料では、遭遇する可能性のある既知の相違点について説明します。</span></p>
-
-<h2 id="イベント">イベント</h2>
-
-<p>ここでは、マルチプロセスのFirefoxの実装によって動作が変更されたイベントに関する情報を見つけることができます。</p>
-
-<h3 id="&lt;option>_から_&lt;select>_へイベントがバブルしない"><code>&lt;option&gt;</code> から <code>&lt;select&gt;</code> へイベントがバブルしない</h3>
-
-<p>以前より、Firefoxはキーボードとマウスのイベントを {{HTMLElement("option")}} 要素から {{HTMLElement("select")}} 要素にバブルアップさせました。この動作は多くのブラウザで矛盾(たとえば、イベントがChromeでバブルアップしないなど)しています。 Web互換性を高めるため(加えて技術的な理由のため)に、Firefoxがマルチプロセスモードで、<code>&lt;select&gt;</code>要素がドロップダウンリストとして表示されている場合、これらのイベントはバブルアップしません。<code>&lt;select&gt;</code>がインラインで表示され、<code>multiple</code>属性が定義されているか、<code>size</code>属性が1より大きい値に設定されている場合、これらのイベントはバブルアップします。<br>
- <br>
- イベントの {{HTMLElement("option")}} 要素を見るのではなく、{{HTMLElement("select")}} の {{event("change")}} イベントを監視する必要があります。詳細は {{bug(1090602)}} を参照してください。</p>
-
-<h2 id="関連情報">関連情報</h2>
-
-<ul>
- <li><a href="/en-US/docs/Mozilla/Firefox/Multiprocess_Firefox">Multiprocess Firefox</a></li>
- <li>{{HTMLElement("option")}}</li>
- <li>{{HTMLElement("select")}}</li>
- <li>{{domxref("HTMLOptionElement")}}</li>
- <li>{{domxref("HTMLSelectElement")}}</li>
-</ul>
diff --git a/files/ja/mozilla/firefox/multiprocess_firefox/which_uris_load_where/index.html b/files/ja/mozilla/firefox/multiprocess_firefox/which_uris_load_where/index.html
deleted file mode 100644
index d4eccacf5a..0000000000
--- a/files/ja/mozilla/firefox/multiprocess_firefox/which_uris_load_where/index.html
+++ /dev/null
@@ -1,61 +0,0 @@
----
-title: URIのロードする先
-slug: Mozilla/Firefox/Multiprocess_Firefox/Which_URIs_load_where
-translation_of: Mozilla/Firefox/Multiprocess_Firefox/Which_URIs_load_where
----
-<div>{{FirefoxSidebar}}</div>
-
-<p>最初にページのURIスキームに基づいて、ブラウザは Chrome プロセスまたはコンテンツプロセスでページを読み込むかどうかを決定できます。一部のスキームでは、デフォルトの動作を変更できます。</p>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">スキーム</th>
- <th scope="col">振る舞い</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td><code>about:</code></td>
- <td>
- <p>By default, <code>about:</code> pages are always loaded in the chrome process. However, when you register a new <code>about:</code> page, you can change this default.</p>
-
- <p>Two new flags are defined in <code><a href="https://dxr.mozilla.org/mozilla-central/source/netwerk/protocol/about/nsIAboutModule.idl">nsIAboutModule</a></code>:</p>
-
- <ul>
- <li><code>URI_CAN_LOAD_IN_CHILD</code>: the page will be loaded in the same process as the <code><a href="/en-US/docs/XUL/browser">browser</a></code> that has loaded it.</li>
- <li><code>URI_MUST_LOAD_IN_CHILD</code>: the page will always be loaded in a child process.</li>
- </ul>
-
- <p>To use one of these flags, return it from your implementation of <code>getURIFlags</code> in the <a href="/en-US/docs/Custom_about:_URLs">code that registers the <code>about:</code> URI</a>.</p>
-
- <p>If you use these flags, you must register the about page in the framescript for each tab. If you do not set multiprocessCompatible to true in your install.rdf then shims will be used. But the e10s shims will be deprecated soon. Read more here - <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1257201">Bug 1257201</a>.</p>
- </td>
- </tr>
- <tr>
- <td><code>chrome:</code></td>
- <td>
- <p>By default, <code>chrome:</code> pages are always loaded in the chrome process. However, when you register a new <code>chrome:</code> page, you can change this default.</p>
-
- <p>Two new flags are defined in the <a href="/en-US/docs/Chrome_Registration">chrome.manifest file</a>:</p>
-
- <ul>
- <li>remoteenabled: the page will be loaded in the same process as the <code><a href="/en-US/docs/XUL/browser">browser</a></code> that has loaded it.</li>
- <li>remoterequired: the page will always be loaded in a child process.</li>
- </ul>
- </td>
- </tr>
- <tr>
- <td><code>file:</code></td>
- <td>
- <p>常にコンテンツプロセスに読み込まれます。</p>
-
- <p><strong>注:</strong> これは <code>file:</code> という意味ではなく、コンテンツプロセスのコードでURIを自由に使用することができます。 サンドボックス化は特定のディレクトリをブラックリストに載せ、今後の変更により <code>file:</code> URIを通常のWebコンテンツとは別の独立したコンテンツプロセスに制限する可能性があります。<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1187099">bug 1187099</a> で、これがプロファイルディレクトリからファイルをロードしようとしているアドオンにどのように影響するかを見てください。</p>
- </td>
- </tr>
- <tr>
- <td><code>resource:</code></td>
- <td>常にコンテンツプロセスに読み込まれます。</td>
- </tr>
- </tbody>
-</table>
diff --git a/files/ja/mozilla/firefox/multiprocess_firefox/目的/index.html b/files/ja/mozilla/firefox/multiprocess_firefox/目的/index.html
deleted file mode 100644
index b9635595c4..0000000000
--- a/files/ja/mozilla/firefox/multiprocess_firefox/目的/index.html
+++ /dev/null
@@ -1,44 +0,0 @@
----
-title: マルチプロセス化を行う理由
-slug: Mozilla/Firefox/Multiprocess_Firefox/目的
-translation_of: Mozilla/Firefox/Multiprocess_Firefox/Motivation
----
-<p>Firefoxがコンテンツを別のプロセスで動作するようにするには、3つの目的があります。:それは、パフォーマンス、セキュリティ、安定性です</p>
-
-<h2 id="パフォーマンス">パフォーマンス</h2>
-
-<p>Mozilla は過去2年間、ブラウザの応答性の向上に注力してきました。その目的は<a href="/docs/Glossary/Jank">プチフリ</a>、つまり大きなページをロードしているときやタイピング中、もしくはスクロール中にブラウザがフリーズしたように見える状況を減らすことにありました。近年、応答性はスループットよりも重要になりつつあります。応答性の向上に関する様々な改良は、<a href="https://wiki.mozilla.org/Performance/Snappy">Snappy project</a> の一部として達成されました。主な点を挙げると以下の通りになります:</p>
-
-<ul>
- <li>メインスレッドがユーザへの応答を続けられるようにするために、時間のかかる処理の別スレッドへの移行すること</li>
- <li>入出力によってメインスレッドがブロックされるのさけるため、入出力を別スレッドで非同期に行うこと</li>
- <li>インクリメンタルGC に代表される時間のかかる処理を細かく分割し、イベントループ中で処理を行うように変更すること</li>
-</ul>
-
-<p>すぐにできる改良の多くは成されており、残った問題は修正が難しい物ばかりでした。例えば JavaScript の実行やメインスレッドで行われるレイアウト処理などです。これらはイベントループをブロックするのですが、別のプロセスへ分離するには難しい処理でもあります。これらの処理は DOM のようなデータにアクセスする必要がありますが、これらのデータはスレッドセーフではないからです。他の選択肢として、イベントループを JavaScript の処理の中に入れる事も検討しましたが、Firefox  の他の部分(アドオンではありません)によって難しい事がわかりました。</p>
-
-<p>Web コンテンツを別のプロセスに分離する事は、良い代替策でした。スレッドを利用するアプローチと同様、Firefox は JavaScript やレイアウト処理がコンテントプロセスで行われている間に イベントループを実行できる上に、DOM やコンテンツデータにアクセスしない UI のコードをスレッドセーフにしなくても済みます。その反面、Firefox の UI プロセスは明示的にメッセージパッシングを行わないとコンテンツデータにアクセスできなくなります。</p>
-
-<p>このトレードオフはいくつかの理由から許容できると考えています:</p>
-
-<ul>
- <li>すべての Firefox のコードがよくコンテンツ DOM にアクセスするわけではない</li>
- <li>Firefox OS と共有されているコードはすでにメッセージパッシングを利用するものになっていること</li>
- <li>マルチプロセスモデルでのメッセージパッシングを利用したコンテントアクセスはその失敗が明白であるのに対し、適切なロックなしに行われたコンテンツアクセスに起因するスレッドのバグは発見が難しくデバッグも困難であるため</li>
-</ul>
-
-<h2 id="セキュリティ">セキュリティ</h2>
-
-<p>Firefox に攻撃可能なバグがあった場合、それを利用してユーザのコンピュータを乗っ取ることが可能です。この問題の解決策として最も強力なものは、<a href="http://en.wikipedia.org/wiki/Sandbox_%28computer_security%29">サンドボックス化</a>です。 技術的にはサンドボックス化にマルチプロセス化は必要ありません。しかしシングルプロセスの Firefox 上でサンドボックス化を行っても、あまり有用ではありません。サンドボックスはあくまでプロセスが、通常のプロセスがしないような振る舞いをするのを阻止するための機能です。アドオンがインストールされている場合が典型的ですが、Firefox の通常プロセスはネットワーク通信やファイルへのアクセスを行います。そのため、シングルプロセスの Firefox では制限をうまく掛けることが難しくなっています。</p>
-
-<p>マルチプロセス化したFirefoxでのコンテンツプロセスは、サンドボックス化されます。通常、コンテンツプロセスはファイルシステムに直接アクセスすることはありません。そのような場合はメインプロセスに対してファイルアクセスリクエストを送ります。メインプロセスは、そのリクエストが妥当なものかを検証できるため、コンテンツプロセスに対するサンドボックスの制限は極めて厳しいものなります。その結果として、Firefox にセキュリティホールを作ることが難しくなると期待されます。</p>
-
-<h2 id="安定性">安定性</h2>
-
-<p>Web ページ中で実行されるプログラムがクラッシュした場合、ブラウザ全体が停止してしまします。マルチプロセス化することによって、停止するのはクラッシュしたプログラムの動作するコンテントプロセスのみとなります。</p>
-
-<div class="note">
-<p>このページの内容の多くは、Bill McCloskey のブログポストの内容を含んでいます。詳しくはこちらをご覧ください: <a href="http://billmccloskey.wordpress.com/2013/12/05/multiprocess-firefox/">http://billmccloskey.wordpress.com/2013/12/05/multiprocess-firefox/</a></p>
-</div>
-
-<p> </p>